Перейти к содержанию
    

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

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

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

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

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

 

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

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

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

 

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

Изменено пользователем FAE

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Изменено пользователем FAE

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Изменено пользователем SemperAnte

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

..Не говоря уже о NIOS, который платный. ...

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...