Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Делюсь: openMsp430 core for Cyclone-III
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
FAE
Поднял СНК на ядре openMsp430, взятом c opencores, на альтеровском циклоне-3.
Проект полностью рабочий, отсимулированный, съимплементированный и протестированный "на железе".
Занимает приблизительно 8% ресурсов fpga EP3C55F484C8.
Имеется документация, содержащая пошаговые инструкции по выполнению.

Может использоваться как замена внешнего микроконтроллера.
Возможно, заинтересует так же студентов в качестве основы для курсовика.
Скачивать отсюда: http://vk.com/doc53320565_184197403

Хотелось бы также получить отклик от тех, кому этот проект оказался полезным.
DASM
Немного оффтопик, но хочу Вас как специалиста спросить. Почему ядра типа мсп, 51 и подобные кушают так много LE? Ядро Ниос2 с кешами, защитой памяти, и кучкой еще чего насколько я помню в 3000 ле лезет, а тут 5000 на детский процессор.
Stewart Little
Цитата(DASM @ May 20 2013, 20:27) *
Немного оффтопик, но хочу Вас как специалиста спросить. Почему ядра типа мсп, 51 и подобные кушают так много LE? Ядро Ниос2 с кешами, защитой памяти, и кучкой еще чего насколько я помню в 3000 ле лезет, а тут 5000 на детский процессор.

Ну наверное потому, что Nios II разрабатывался Альтерой с учетом архитектурных особенностей целевых семейств ПЛИС, а "мсп, 51 и подобные" - нет. sm.gif
Tiro
Цитата(DASM @ May 20 2013, 19:27) *
Немного оффтопик, но хочу Вас как специалиста спросить. Почему ядра типа мсп, 51 и подобные кушают так много LE? Ядро Ниос2 с кешами, защитой памяти, и кучкой еще чего насколько я помню в 3000 ле лезет, а тут 5000 на детский процессор.

Наверняка что-то в командах процика Ниос реализовывалось комплементарными операциями с ограничением на разрядность операндов. Как раз случай, когда ненужная единичка добавляет вычислительный блок или разряд.
FAE
Цитата(DASM @ May 20 2013, 20:27) *
Немного оффтопик, но хочу Вас как специалиста спросить. Почему ядра типа мсп, 51 и подобные кушают так много LE? Ядро Ниос2 с кешами, защитой памяти, и кучкой еще чего насколько я помню в 3000 ле лезет, а тут 5000 на детский процессор.


Уважаемый DASM, текущая конфигурация занимает всего 4443 LE, что составляет 8% LE EP3C55F, из них 3375 комбинаторных LE и 2504 регистров. Причем это все - для процессора, перифирии и блока отладки.

Корректно ли сравнивать коммерческий продукт, созданный производителем FPGA командой профессионалов и оптимизированный на уровне логических ячеек и бесплатную поделку, созданную одним человеком, скорее всего, в бытность его студентом, и написанную без привязки к конкретной архитектуре на верилоге?

Мне кажется, достойно удивления, что эта штука работает, причем на достаточно высокой частоте, и занимает вполне допустимое количество ресурсов.

Почему такой подход в некоторых случаях предпочтительней, чем использование микроблейза или ниоса? Ответ очевиден - универсальность. Вы не привязаны к конкретной аппаратной платформе. Поэтому вы можете, например, использовать альтеру для прототипирования, а коммерческое устройство выпустить, например, на актеле (microsemi). К тому же можно обойтись стандартным toolchain_ом GCC и получить удобную и привычную среду разработки ПО. Это удобно, поскольку стандартные средства разработки как Xilinx, так и Altera громоздки, тупы и, в общем случае, дороги (последний пункт к России не относится). Поэтому сравнивать надо с имеющимися универсальными софт-процессорными ядрами, написанными на языке высокого уровня. А в этом сегменте с этим ядром все в порядке.
Можно сравнить и с 32х-разрядными системами, напр. LEON и с 8-разр, напр. тот же 51. Но 8-разрядные системы мертвы, а 32х-разр. для моих целей избыточны. (Нужна 32х-разрядная система - выбирай встроенный ARM и ни очем не думай). Поэтому я сосредоточил свой выбор на 16-разр. системе. Что здесь есть?
Например, ядро 80186 намного более объемное, к тому же имеет очень невысокую тактовую частоту (В 2004г. в недоброй памяти фирме "СКБ интегральных систем" для APA1000 у нас съимплементировалось всего на 6 МГц и мы были страшно этому рады. )
Всякие PICи и AVRы имеют ублюдочную архитектуру и нищебродскую систему команд.
В этом отношении msp430, являясь потомком PDP-11 отличается от указанных процессоров в лучшую сторону. Он имеет неплохую архитектуру, богатую, но компактную систему команд, а адресация к портам в/в как к ячейкам памяти, на мой взгляд, удобна для СнК.

Лирическое отступление: я еще помню нашу кафедральную СМ-4, середины 80х годов прошлого века, занимавшую 4 стойки, имевшую жесткий диск на 5МБ (именно МБ, а не ГБ !!!), шумяшую как реактивный самолет и зависающую каждые пол-часа. А теперь 90% из всего этого можно упаковать в размер меньше квадратного миллиметра и это уже кажется много !!! Прогресс, однако!
DASM
Не понимаю столь гневного ответа.Безусловно, работа заслуживает уважения. Я бы на данном моменте своего опыта не смог. Интерес был только в причине.Причина — оптимизация, понял, спасибо. Просто я думал, что может причиной является именно архитектура мсп ( какая нибудь неортогональность команд или что то в этом роде). Так что не воспринимайте как подколку ни в коем разе.
FAE
Цитата(DASM @ May 22 2013, 07:52) *
Не понимаю столь гневного ответа.Безусловно, работа заслуживает уважения. Я бы на данном моменте своего опыта не смог. Интерес был только в причине.Причина — оптимизация, понял, спасибо. Просто я думал, что может причиной является именно архитектура мсп ( какая нибудь неортогональность команд или что то в этом роде). Так что не воспринимайте как подколку ни в коем разе.


DASM, если задел ваши чувства, искренне прошу меня извинить. Никакого гнева ни на вас, ни на кого-то другого у меня не было и нет. Наоборот, хотел ответить подробно и аргументированно. Видимо, не получилось sad.gif Что касается самой работы - ее сложность невелика, т.к. я пользовался практически всем готовым. Самому пришлось написать только верхний модуль, тестбенч и один программный тест. Основной мой вклад, на мой взгляд, это то, что я подробно задокументировал все шаги выполнения проекта. Так что прошу не обижаться и успехов в работе!
SpyBot
Цитата(FAE @ May 22 2013, 11:12) *
DASM, если задел ваши чувства, искренне прошу меня извинить. Никакого гнева ни на вас, ни на кого-то другого у меня не было и нет. Наоборот, хотел ответить подробно и аргументированно.

У вас получился замечательный, подробный и интересный ответ!
Большое вам спасибо за него и вообще за тему, прочитал с большим удовольствием!
Никакого гнева я в нем не увидел sm.gif
SemperAnte
Прикольная штука, спасибо автору.

Интересно, нет ли чего подобного для PIC16?
FAE
Цитата(SemperAnte @ May 31 2013, 12:39) *
Прикольная штука, спасибо автору.

Интересно, нет ли чего подобного для PIC16?


На опенкорес я видел несколько ядер PIC16. Но выбирая встроенный процессор для своих целей я остановился на MSP430.
Возможно, кто-то захочет поднять PIC16 и поделиться результатом. Единственная разумная причина для этого, на мой взгляд - обеспечение совместимости с ранее написанным софтом.
SemperAnte
Цитата(FAE @ May 31 2013, 12:59) *
На опенкорес я видел несколько ядер PIC16. Но выбирая встроенный процессор для своих целей я остановился на MSP430.
Возможно, кто-то захочет поднять PIC16 и поделиться результатом. Единственная разумная причина для этого, на мой взгляд - обеспечение совместимости с ранее написанным софтом.

Да, так и есть. В проекте используется связка Циклон 3 + PIC-контроллер. Интересна возможность переноса существующего кода для МК внутрь ПЛИС.
FAE
Цитата(SemperAnte @ May 31 2013, 13:16) *
Да, так и есть. В проекте используется связка Циклон 3 + PIC-контроллер. Интересна возможность переноса существующего кода для МК внутрь ПЛИС.

Если код написан на C, то, наверное, тип процессора не настолько критичен, чтобы его нельзя было заменить.
x736C
Цитата(FAE @ May 21 2013, 12:13) *
Почему такой подход в некоторых случаях предпочтительней, чем использование микроблейза или ниоса? Ответ очевиден - универсальность.


Еще бы добавил: BSD лицензия, позволяющая его использовать в коммерческих закрытых приложениях.
Далеко не все процессоры на opencores.org идут под этой лицензией. А точнее их почти нет.
Не говоря уже о NIOS, который платный. Не уверен, что большинство инженеров на электрониксе, или фирмы в которых они работают, приобретали лицензию. Несмотря на то, что цена разумная.

В общем цену в сравнение тоже надо включать. Наш российский инженер по дурной привычке этого не делает.
Kuzmi4
Цитата(x736C @ Jun 1 2013, 22:21) *
..Не говоря уже о NIOS, который платный. ...

NIOSII версии s - бесплатно раздают, и думаю у него производительность получше будет
Stewart Little
Цитата(Kuzmi4 @ Jun 3 2013, 11:40) *
NIOSII версии s - бесплатно раздают, и думаю у него производительность получше будет

Бесплатный NIos II - это Economy (версия "e"). А версии "s" и "f" - платные.
FLTI
Цитата(Stewart Little @ Jun 3 2013, 12:42) *
Бесплатный NIos II - это Economy (версия "e"). А версии "s" и "f" - платные.

На Web Edition даже с версией "e" всё равно только в режиме OpenCores получается ( так сообщает Quartus ) , хотя генерится не лимитированный по времени sof.

Warning (12189): OpenCore Simulation-Only Evaluation feature is turned on for all cores in the design
Warning (12191): Some cores in this design do not support the OpenCore Plus Hardware Evaluation feature
Warning (12192): "Nios II Processor (6AF7_00A2)" does not support the OpenCore Plus Hardware Evaluation feature
Corner
NIOS съедает так мало LE, потому что банк регистров сделан на блоках ОЗУ. А в этой поделке защелки и мультиплексоры. Аналог Mega128 легко влезает в 300... 500 LE и имеет гораздо более продвинутую систему команд.
DASM
Насколько я помню... не сказал бы что у Меги более продвинутая система, чем МСП (хотя МСП я лично недолюбливаю, даже не знаю почему... наверное потому что не АРМ =))
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.