Jump to content

    

Делюсь: openMsp430 core for Cyclone-III

Поднял СНК на ядре openMsp430, взятом c opencores, на альтеровском циклоне-3.

Проект полностью рабочий, отсимулированный, съимплементированный и протестированный "на железе".

Занимает приблизительно 8% ресурсов fpga EP3C55F484C8.

Имеется документация, содержащая пошаговые инструкции по выполнению.

 

Может использоваться как замена внешнего микроконтроллера.

Возможно, заинтересует так же студентов в качестве основы для курсовика.

Скачивать отсюда: http://vk.com/doc53320565_184197403

 

Хотелось бы также получить отклик от тех, кому этот проект оказался полезным.

Edited by FAE

Share this post


Link to post
Share on other sites

Немного оффтопик, но хочу Вас как специалиста спросить. Почему ядра типа мсп, 51 и подобные кушают так много LE? Ядро Ниос2 с кешами, защитой памяти, и кучкой еще чего насколько я помню в 3000 ле лезет, а тут 5000 на детский процессор.

Share this post


Link to post
Share on other sites
Немного оффтопик, но хочу Вас как специалиста спросить. Почему ядра типа мсп, 51 и подобные кушают так много LE? Ядро Ниос2 с кешами, защитой памяти, и кучкой еще чего насколько я помню в 3000 ле лезет, а тут 5000 на детский процессор.

Ну наверное потому, что Nios II разрабатывался Альтерой с учетом архитектурных особенностей целевых семейств ПЛИС, а "мсп, 51 и подобные" - нет. :)

Share this post


Link to post
Share on other sites
Немного оффтопик, но хочу Вас как специалиста спросить. Почему ядра типа мсп, 51 и подобные кушают так много LE? Ядро Ниос2 с кешами, защитой памяти, и кучкой еще чего насколько я помню в 3000 ле лезет, а тут 5000 на детский процессор.

Наверняка что-то в командах процика Ниос реализовывалось комплементарными операциями с ограничением на разрядность операндов. Как раз случай, когда ненужная единичка добавляет вычислительный блок или разряд.

Share this post


Link to post
Share on other sites
Немного оффтопик, но хочу Вас как специалиста спросить. Почему ядра типа мсп, 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% из всего этого можно упаковать в размер меньше квадратного миллиметра и это уже кажется много !!! Прогресс, однако!

Edited by FAE

Share this post


Link to post
Share on other sites

Не понимаю столь гневного ответа.Безусловно, работа заслуживает уважения. Я бы на данном моменте своего опыта не смог. Интерес был только в причине.Причина — оптимизация, понял, спасибо. Просто я думал, что может причиной является именно архитектура мсп ( какая нибудь неортогональность команд или что то в этом роде). Так что не воспринимайте как подколку ни в коем разе.

Share this post


Link to post
Share on other sites
Не понимаю столь гневного ответа.Безусловно, работа заслуживает уважения. Я бы на данном моменте своего опыта не смог. Интерес был только в причине.Причина — оптимизация, понял, спасибо. Просто я думал, что может причиной является именно архитектура мсп ( какая нибудь неортогональность команд или что то в этом роде). Так что не воспринимайте как подколку ни в коем разе.

 

DASM, если задел ваши чувства, искренне прошу меня извинить. Никакого гнева ни на вас, ни на кого-то другого у меня не было и нет. Наоборот, хотел ответить подробно и аргументированно. Видимо, не получилось :( Что касается самой работы - ее сложность невелика, т.к. я пользовался практически всем готовым. Самому пришлось написать только верхний модуль, тестбенч и один программный тест. Основной мой вклад, на мой взгляд, это то, что я подробно задокументировал все шаги выполнения проекта. Так что прошу не обижаться и успехов в работе!

 

Share this post


Link to post
Share on other sites
DASM, если задел ваши чувства, искренне прошу меня извинить. Никакого гнева ни на вас, ни на кого-то другого у меня не было и нет. Наоборот, хотел ответить подробно и аргументированно.

У вас получился замечательный, подробный и интересный ответ!

Большое вам спасибо за него и вообще за тему, прочитал с большим удовольствием!

Никакого гнева я в нем не увидел :)

 

Share this post


Link to post
Share on other sites

Прикольная штука, спасибо автору.

 

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

Share this post


Link to post
Share on other sites
Прикольная штука, спасибо автору.

 

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

 

На опенкорес я видел несколько ядер PIC16. Но выбирая встроенный процессор для своих целей я остановился на MSP430.

Возможно, кто-то захочет поднять PIC16 и поделиться результатом. Единственная разумная причина для этого, на мой взгляд - обеспечение совместимости с ранее написанным софтом.

Share this post


Link to post
Share on other sites
На опенкорес я видел несколько ядер PIC16. Но выбирая встроенный процессор для своих целей я остановился на MSP430.

Возможно, кто-то захочет поднять PIC16 и поделиться результатом. Единственная разумная причина для этого, на мой взгляд - обеспечение совместимости с ранее написанным софтом.

Да, так и есть. В проекте используется связка Циклон 3 + PIC-контроллер. Интересна возможность переноса существующего кода для МК внутрь ПЛИС.

Edited by SemperAnte

Share this post


Link to post
Share on other sites
Да, так и есть. В проекте используется связка Циклон 3 + PIC-контроллер. Интересна возможность переноса существующего кода для МК внутрь ПЛИС.

Если код написан на C, то, наверное, тип процессора не настолько критичен, чтобы его нельзя было заменить.

Share this post


Link to post
Share on other sites
Почему такой подход в некоторых случаях предпочтительней, чем использование микроблейза или ниоса? Ответ очевиден - универсальность.

 

Еще бы добавил: BSD лицензия, позволяющая его использовать в коммерческих закрытых приложениях.

Далеко не все процессоры на opencores.org идут под этой лицензией. А точнее их почти нет.

Не говоря уже о NIOS, который платный. Не уверен, что большинство инженеров на электрониксе, или фирмы в которых они работают, приобретали лицензию. Несмотря на то, что цена разумная.

 

В общем цену в сравнение тоже надо включать. Наш российский инженер по дурной привычке этого не делает.

Share this post


Link to post
Share on other sites
..Не говоря уже о NIOS, который платный. ...

NIOSII версии s - бесплатно раздают, и думаю у него производительность получше будет

 

Share this post


Link to post
Share on other sites
NIOSII версии s - бесплатно раздают, и думаю у него производительность получше будет

Бесплатный NIos II - это Economy (версия "e"). А версии "s" и "f" - платные.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this