Геморрой под названием Modelsim Altera Starter Edition

Небольшое философское вступление. Я окончательно понял, что Человечество действительно идет к концу света. И это произойдет не от падения какого-то там офонаревшего метеорита, или вдруг очнувшегося супер-мега-гига-вулкана. А просто потому, что мы начали отходить от важнейшего принципа: «надежно и просто работающее в усовершенствовании не нуждается». Это хорошо видно во всем: от современных автомобилей, которые осталось только оснастить ракетами «автомобиль-автомобиль», что бы по сложности они догнали истребители, до средств разработки.

Яркий пример тому – это попу_лярная среда разработки Quartus (в среде отечественных разработчиков-остряков «крякус», «кактус», «<вставить собственное созвучие>» и т.п.) от легендарной Altera. Популярность этой среды в массах, на мой не в меру скромный взгляд, объясняется, прежде всего наличием удобной графической среды. Потому как, опять же на мой вышеуказанного типа взгляд, писать огромные проекты с нуля в HDL-тексте – это такой же идиотизм, как писать большие программы на asm’е. С теми же последствиями. Та же Xilinx, по-сути, отказалась от схематического ввода в своей оболочке под названием «Xilinx ISE … и еще что-то там трудно выговариваемое». И поимела падение своей и так не высокой популярности в сравнении с Altera в нашей многострадальной державе.

Ну, впрочем, я хочу толкнуть речь не об сравнении этих славных производителей. А о нарушении вышеуказанного принципа. Была у Alter’ы надежная и простая как молоток среда разработки Max+Plus II. До сих пор ей пользуюсь для относительно небольших проектов. Особенно восхищает входящий в её имитатор разработанной схемы. Сказать простой и удобный – значит просто промолчать. Увы, славный Max+Plus II скончался в середине нулевых на версии 10.2 с некоторым количеством заплаток к этой версии.

Но, шло время, и Altera зачем-то начала тащить параллельную среду разработки Quartus. Смысл этого мегаманевра я не понял до сих пор. Видимо последствия каких-то внутриконторских разборок на Alter’е (так обычно бывает). Quartus, делая все то же самое (а, впрочем, чем еще должен заниматься САПР от производителя ПЛИС?), что и Max+Plus II (по началу даже для одинакового списка камней) стала уже заметно более капризной, назойливой, тормозной и т.д. Короче, это называется усовершенствовали козу путем добавления к нёй баяна. В тех же прилагательных можно описать и имитатор, встроенный в крякус. Но, все ж таки он хоть был близок по смыслу к оному из Max+Plus II.

Но наступил конец нулевых и Altera, осознав, что баян козе как-то не к морде лица, решила заменить его не меньше, чем на целый синтезатор. По-моему, в десятой версии, Altera сделала «мощный шаг вперед»: собственный имитатор был похерен в пользу урезанной версии имитатора Modelsim от доставшей изрядно всех своей «мегаинновационной» продукцией Mentor Graphics. Бывший простой и надежный молоток усовершенствовали до уровня бензопилы. Причем, если уж продолжать сравнение, ненадежной, жрущей ведрами бензин и масло (это я о ресурсах компа) и запускающейся с помощью одного известного близкого родственника.

Сейчас я вкратце, на примере, объясню, что я имею в виду.

Итак, среда разработки крякус (между прочим, лицензионная!) выпуска 11.0, на халяву прилагающийся к оному Modelsim Altera Starter Edition выпуска 6.6d. Для примера взят проект ЖКИ-управителя, свистнутый с сайта Altera. После правки его под имеющуюся у меня отладку с камнем Stratix IV, проект был успешно собран и, в соответствии с настройками в разделе “Assignments/Settings” автоматом запущен имитатор.
Первое, что мы видим в этом «чуде Mentor Graphics’овской техники» — это список библиотек. Одна из которых, под названием “RTL” – это так называемое RTL-описание собранного проекта. Т.е. когда сборщик распихал ваш проект по крупным блокам, которые доступны в выбранном камне. Вторая «библиотека» — это описание на уровне логических элементов выбранного камня, т.е. описание максимально приближенное к физике дела.


Уже на этом этапе начинаются вопросы: объясните, зачем мне выдавать список библиотек, если я просто хочу отмоделировать КОНКРЕТНЫЙ ПРОЕКТ?! На кой мне нужно показывать библиотеку с RTL-описанием, если в крякусе я выбрал моделирование вентильного уровня? А на кой мне, например, модель альтеровских буферов, я, что, их моделировать сюда пришел?!
Далее начинается быть еще интереснее. Естественное желание сделать дальше что? Верно – загнать все входы, выходы и, возможно интересные внутренние соединения в правщик сигналов (waveform editor), задать эти самые сигналы, задавить кнопоря «Run» и убедиться, что схема работает нифига не правильно. Читаем помощь к modelsim’у (поверьте, читаю иногда!) и делаем как там. Щелкаем правой кнопкой грызуна на шапке проекта (в нашем случае – lcd_controller), вываливаем
менюшку и тыкаем на «Create Wave». И видим следующее:


О, Боги, неужели все так просто и зря я вылил канистру отработанного масла на славного производителя? Щаззз! Нифига не зря! Выясняется, что тот список, что мы видим на экране – это, список для задания сигналов (о чем нам сообщает Edit впереди и соответствующая иконка). Причем, на кой ляд в этот список было вносить сигналы, объявленные как output, знает, видимо, только Mentor Gpaphics. Хорошо, задаем. Задание производится щелчком на соответствующем выводе и выборе в выпавшей менюшке пункта «Create/Modify Waveform». При этом, почему-то пункты менюшки «Force», «Noforce » и «Clock» не действуют: при попытке задать сигналы через них огребаем офигенно информативную ошибку вида:
# ** Error: (vsim-3561) No objects found matching 'Edit'.
# ** Error: (vsim-4008) Object 'Edit:/lcd_controller/osc_w' not found.

Уже заданные сигналы можно править графически с помощью кнопок на панели


точно так же, как и в старом добром Max+Plus II. Причем можно править и выходы, только это ни на что не влияет.
Далее давим кнопку «Run», «Continue Run», или «Run -All» (в зависимости от того, чего хочется) и … ничего. Вы начинаете смачно ругаться, а не надо: вы же имеете дело с усовершенствованным молотком (он же, блин, «industry standart», а не нонейм какой-нить занюханный!). Он вовсе не предназначен для того, что бы лихо одни ударом вколотить гвоздь! Осознав это, мы обреченно лезем в меню View в главном окне и установкой галочки напротив Objects вываливаем одноименное окно


В этом окне вывален полный список всех мест снаружи и внутри вашей схемы, в которой Modelsim в состоянии подсмотреть сигналы. Поскольку, пока мы хотим просто проверить работает ли схема, выбираем Ctrl+мышь только входные и выходные сигналы. Хоть здесь у разработчиков башка варила: все внешние сигналы находятся в вершине списка. А то, для полного кайфа, я бы их еще и по всему списку раскидал .

Выбираем, как показано на рисунке, щелкаем «Add/To Wave/Selected Signals», получаем нечто следующее:


Ура, свершилось! У нас появились сигналы, для которых имитатор будет считать значения (с приставкой sim и синеньким ромбиком). Правда, тут же начинаются вопросы. Во-первых, на кой член в списке рассчитываемых сигналов на этот раз входы схемы? Причем для них, как и в случае с выходами, можно задать значения сигналов только с помощью менюшки «Force», «Noforce » и «Clock». Самое смешное, что имитатор учитывает эти установки вместе с тем, что вы задали для этих же сигналов с приставкой «Edit».Объединяет он сигналы, как я понял по логике «ИЛИ» и вы начинаете получать какой-то сумасшедший компот. Сермяжный смысл такого фортепляса я отказываюсь понимать.Ну хорошо, сигналы вы задали (я уже умолчу про местные геморрои этого дела), начали моделировать, получили первые итоги:


Теперь не плохо бы сохранить итог, а главное управляющие задания. Жмём на «Save», нам предлагают сохранить «Format» в файле с расширением .do. Ставим обе галки, записываем. Теперь, положим мы, сгоряча закрыли окно «wave» и хотим восстановить итоги моделирования. Открываем пустое окно wave. Давим кнопку «Open…», выбираем наш файлик (тот, что с расширением .do, по умолчанию – wave.do) и, естественно, рассчитываем увидеть предыдущую картинку. Ага, конечно! На экран вываливается текстовый редактор с потрохами нашего файла. Вы наивно пытаетесь найти что-либо напоминающее кнопку запуска. Не-е-е! Тут походу поработали малолетние дебилы, мнящие себя крутыми программистами и как мантру повторяющие магическую фразу: «настоящие программеры под Линух GUI не пользуются, они все пишут ру-у-учками». Вот и вам все придется писать ручками.
Щелкаем по текстовому командному окну («Transcript») и обреченно набираем «do wave.do». Думаю для иллюстрации достаточно. А ведь это я еще не написал про другие «удобства» Modelsim, про его прожорливость и законченную глючность, когда любое неверное телодвижение с вашей стороны заканчивается мертвым повисанием. Кстати, думаю будет полезно знать, что в диспетчере задач виндовоза Modelsim прячется под кличками vish.exe и vlm.exe. А то хрен найдешь сразу :)

Так что, готовьтесь, братцы, к концу света.

2011, Kluwert, имею право.
  • 0
  • 01 декабря 2011, 14:44
  • Kluwert
  • 3
Файлы в топике: Fig1.JPG, Fig2.JPG, Fig3.JPG

Комментарии (38)

RSS свернуть / развернуть
Вот-вот
У меня на одной машине этот глюкодром отказывается запускаться, так как какая-то проблема с лицензией(ага, бесплатный же !), на остальные даже не ставил.
Ну кому, плять, мешала симуляция в квартусе?
О том, что тут(в моделсиме) можно вэйвформы рисовать, я даже не знал ))) Как увидел все эти библиотеки, всю эту громоздкость — так и забыл о нём. Пишу тестбенчи и юзаю Icarus-Verilog. Но все равно топ-левел как-то приучился делать в схематике, и 8-9ый квартус был невероятно удобен. Сразу откомпилил и сразу отсимулировал.
0
О Квартус))) Помню это детище еще по универу.
Сначала учились в Максе. Там все было как для идиотов. Мышкой наклацал и получил результат. Даже ничего учить не нужно было.

После пересели на более крутой инструмент Квартус. Это тихий ужас. Больше всего запомнилась его фича с дивной сборкой проекта. Даже рабочий проект собирался через раз или два.
Вполне возможно это в квартусе была защита от ломаных версий…
0
  • avatar
  • a9d
  • 01 декабря 2011, 18:58
Ну вот ща собирается нормально вроде… Шоб именно квартус криво собрал — такого не было
0
Щас пытаюсь мучать квартус ВебЕдишн, бохтымойвочтовонопривратилось. :(
Пытался пару месяцев назад запустить максплюс2, думал понастальгировать с старыми проектами, ага, щазззз… На что мне максплюс2 сказал, мол: «Дарагой, мой врем истек, я не знать какой счас год, шагай давай дасвиданья»
А как же было в нем удобно работать.
Видимо теперь прийдется в виртуалбоксе запускать с скручеными часами на десяток лет назад, когда оно гарантировано работало.
0
Зачем уж так глобально. Можно скриптик же написать, который перед запуском программы откручивает время назад, а потом возвращает, как было.)
0
Или проверку времени найти и прибить.
0
нееее, я пас, так уже пытался сделать много лет назад, гдето в 2003м или 2004м, пока не наткнулся на одну неприятность. (забыл перевести время) Макс2плюс проверяет время проекта, и если в соответствии с времением окончания указанным в лицензионном ключике, проект создан «в будущем времени» то он его тупо херит, во всяком случае эта неприятность мне похерила один важный проект. Так что я больше не хотел бы так встрявать, та и компы щас мощные, так что виртуалка не напрягает ;)
0
Чтобы так не встревать, надо использовать систему контроля версий.
0
Эт щас я везде git юзаю и на винде и в линуксе, а 10 лет назад было совершенно не интересно юзать какие либо системы контроля версий, хватало копи-бэкапов
Не шути так, 2003й(или раньше даже) да какая там система контроля версий, да ещё под виндой, о чем речь ) теболее это надо было качать по тугому диалапу чтото… все было намного проще ;)
0
CVS использовался уже тогда, а весил 200 кило в архиве, скачать совершенно не проблема даже по моему тогдашнему 12кбод диалапу.
Другое дело, что тогда я о нем даже и не слышал, а узнал о VCS в 2005-м, на примере SVN.
0
Когда первые разы осваивал этом модел сим, в голове была фраза одного товарища:
«Это пример того как делать не надо».
Добавление линий, установка их значений, имхо действительно сделано через жопу. А как к примеру подать на вход, предварительно сформированный, не периодический сигнал я так и не нашел.
0
я еще не знаток ModelSim'a, но зря вы на него так ругаетесь и плюетесь. За себя пока ничего не могу сказать, но мой более опытный коллега пользуется им влет. Его все устраивает. И это учитывая то, что пишет он не под ПЛИС, а занимается дизайном цифровых микросхем (хотя на самом деле большой совсем большой разницы не вижу). Чес говоря, не помню ни одного нелестного слова в адрес ModelSimа. Может это просто дело привычки?
Я хоть и пользовался им совсем немножко, но до этого момента так же большого дискомфорта не испытывал.
зы. если чо, то юзаю ModelSim Altera Starter edition
0
А ты видел Макса? и после посмотри на Квартус…
Они почему-то убежали от простого и понятного к сложному и запутанному.

Такое ощущение создается, что разработчики квартуса никогда ничего не проектировали на плисах. Поэтому и создали такое детище.
0
Честно, MAX II не пробовал.
Но вот не пойму, за что квартус ругают. Что в нем сложного и непонятного? Вполне удобное схемотехническое проектирование, MegaWizard тоже ничо так, остальное тоже на уровне. Лично меня огорчает встроенный редактор HDL-кода. От блокнота он практически не отличается. Приходится юзать Notepad++( в котором есть нормальная подсветка синтаксиса и прочее).
Кстати, похоже, у Альтеры всё так делается. Вот был MAX II Plus — сделали квартус. Теперь вот вместо SOPC Builder'а какой-то QSYS. Есть в нем прикольные моменты, но: в SOPC Builder'e ты просто ставишь то, что тебе надо, правишь имена, и по большому счету всё. Сколько не пробовал НИОС под ним поднимать(ах да, NIOS IDE — отдельная тема. ТАКОЕ ЗАГЛЮЧЕННОЕ НЕЧТО !!), всё всегда собиралось и работало. QSYS пару раз пробовал — не вышло.
0
Ничего сложного и непонятного. Только, почему-то один и тот же проект на одном и том же компе Max+Plus II собирает за 2 минуты. А Quartus 11.0 собирает за 7-8. Да, Кактус может успешно упихать проект, который Max+Plus II не осилит. Но всё-таки.
А по поводу встроенных процессоров — вообще отдельная тема. Всегда был и остаюсь их ярым противником. Отьедать в дорогущем и мощном камне типа того же стратикса четвертого немало ресурсов на реализацию совершенно вшивого проца, ну не знаю… По-моему, гораздо проще установить внешний ARM-проц с залитым линухом. А ресурсы ПЛИСины оставить для главного — перемалывания сигналов.
0
не путайте кислое с белым. софтовый процессор вещь полезная и порой не заменимая.
насчет производительности вы неправы, просто не умеете их готовить)
0
Альтера ща от этого начала отходить )
Выпустила 5-ый циклон со встроенным АРМ-ом.
Да и вместе с интелом они запилили Атом с встроенной плисиной
0
Да я на него не плююсь, но то что он сделан достаточно запутано и интуитивно не понятен факт. Когда надо проверить схему по уровню сложности равную в пять триггеров. Как то не хочется разбираться с десятками настроек и меню, а так конечно прочитав мануал все становится на места.
0
Нет, так я рад за вашего коллегу. Я просто изложил свой собственный опыт и своё собственное видение. Я утверждаю только то, что по сравнению со старым добрым Max+Plus II MASe не выдерживает никакой критики.
0
Все умные и по делу комментируют, а я тупо спрошу «эээ, а где картики???» :)
0
  • avatar
  • ACE
  • 02 декабря 2011, 04:43
Я еще добавлю, что картинки не в аттачи класть надо, а загружать отдельной специально обученной кнопкой в редакторе поста.
0
О, а я думал, это из-за того что вчера опять через раз 502 вылетало. Кстати в аттаче только первые три картинки, а не отображаются последние 3.
0
Вот потому, что они в аттаче, они и отображаются. Вместо остальных трех вообще какие-то странные линки:
http://jpreview_files/Fig6.jpg
0
А сколько дали. При создании блога мне разрешили почему-то только три картинки заложить. А выкладывать на внешние сервисы чревато тем, что со временем их оттуда удаляют. И не будет через какое-то время в статье вообще не одной :(
0
Как добавлять картинки в пост
С сохранением на нашем сервере. Для этого выбираете кнопку «Изображение» после чего картинка закачивается к нам, на нее лепится водяной знак нашего сообщества, а в текст записи вставляется уже обрамленная нужными тэгами ссылка.
0
Количество картинок не лимитируется (либо лимитируется на вполне разумном уровне). Но добавляются они кнопкой «вставить картинку» в редакторе записи (там же где B I U S и подобные кнопки). А то, что использовал ты — это аттачи, они предназначены для прилагаемых к статье файлов — архив с прошивкой например, файл с трассировкой платы и все такое.
Так что удали все аттачи и передобавь картинки указанной кнопкой.
0
… я не спец по ModelSim'у но насколько я помню на симуляцию надо передовать тестбенч, на ваших картинках я такого не вижу. Кстати, в коллективном блоге есть свежеиспеченная статья opolo84 про ModelSim, как ни странно все работает
0
Дак и тут все работает. Только как работает? А «тестбенч», ну как бы вам объяснить… Конечно можно. Ну, представьте, что вы купили дорогущий многоканальный цветной осцилл. Распаковываете, его, включаете и… выясняется, что для того, что бы он начал работать, вы должны загрузить в него некий файл, который сначала собирается в некой программулине, написан в специальном формате и т.д. Интересно, он отправится к продавцу назад сразу после распаковки, или пару дней спустя?
0
«Я купил машину за сто килобаксов, так еще и бензин к ней покупать должен? И, о боже, мне еще и права получать надо??! =0» омфг!!!
0
как и каждый профессиональный инструмент, моделсим требует грамотного использования. непонятен скепсис и утверждения в стиле «вот раньше умели делать». modelsim инструмент совершенно другого уровня, нежели встроенные симуляторы quartus и max ii.

не получается что-то пишите вопросы. не надо утверждать что все говно, это опыта вам не добавит
0
  • avatar
  • covsh
  • 02 декабря 2011, 16:40
вот-вот. Еще скажите, что продукты от Cadence тоже УГ. Не соглашусь.
Там нет кнопки «сделать микросхему», однако дизайнеры по всему миру пользуют ее продукты.
Чем более универсальный и серьезный продукт, тем, к сожалению, он более сложен с освоением.

примеров дофига. меня, например, от одного имени 3D-Max в дрожь бросает :)
0
если от 3дc макса бросает в дрожь, попробуйте google scetchup.
вам понравится)
0
3d-max это довольно удобная штука. Ничего в нем ужасного нет.
В нем просто дофига полезных крутилок.
0
вы меня простите за мой плохой французский, но это просто пиздец какой-то!
Наступило время практики… Выпало мне один проект делать… И вот уже 4-ый день кряду ебусь с этим моделсимом… сукааа как оно меня бесит!!! не могу банальную дрыгалку пинами из под ниоса просимлировать!!!
0
причем делаю всё по альтеровскому аппноуту — у них работает, а на моем проекте — нет!
0
Так это нормально. Пару-тройку месяцев назад решил попробовать поставить Quartus web edition и прогнать пример в точности по альтеровским инструкциям. В Квартусе всё отработало безупречно. Modelsim же первое что сделал при запуске — это… упал! Попробовал на другом компе — тот же результат. Я реально ржал аки конь! :(
0
Не нужно недооценивать внутрифирменные разборки. Один человек, наделенный властью в фирме, может похерить вообще все, ради собственной выгоды.
Как вариант, в середине нулевых, когда допилили MAX+Plus II почти до совершенства, кто-то из начальников из-за опасности потерять место, решил обеспечить работу себе и своему отделу еще лет на 10.
0
… патылся поставить и дома и на работе quartus + multisim (версии 10, 12 и 13). Делал настройку мультисима как сказано в статье по ссылке итог, не работает мультисим.
Это какой то кашмар, multisim не запускается по разным причинам, то спотыкается на переменных окружения лицензиных ключей, то тупо не находит пути, в то время когда явно в настройках сказано где.
Я не знаю как назвать это всё, во что превратился за 10 лет альтеровский продукт, но это мрак. Раньше то не было у них даже таких проблем, всё ставилось без проблем и запускалось, пусть медленно, пость долго компилило, но все логично работало, щас же сплошное разочарование.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.