Leka 0 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба 5 hours ago, haker_fox said: А что со средами? Код предпочитаю в Slick Edit писать, он и подсветку имеет для этих языков. Моделировать ModelSim? Синтезировать только в "родной" среде от производителя ПЛИС? У меня Квартус, использую старую версию 13.1, код пишу в Notepad++, синтез и прошивка через bat-файлы (запуск программ в режиме командной строки). Графическую оболочку Квартуса запускаю очень редко (если надо глобальные настройки поменять, или посмотреть расклад ЛЕ по модулям). ModelSim не использую. Когда осваивал Верилог, моделировал в Icarus Verilog c текстовым выводом. На этапе освоения очень полезно смотреть, в какую схему синтезируется та или иная конструкция (viewer Квартуса также можно запустить из командной строки). Правильность алгоритмов обычно проверяю на Си, потом перевожу в Верилог. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 0 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба В общем, если Верилог и Альтера, то для быстрого старта советую начинать с Icarus Verilog + Viewer в Квартусе. Включить поддержку SystemVerilog, но писать на Верилоге, используя из SV только упакованные массивы. Массивы объявлять только упакованными. Разобраться с принципом синхронного дизайна, с блокирующими и неблокирующими присваиваниями (и посылать копать огород тех, кто советует не смешивать в одном always-блоке блокирующие и неблокирующие присваивания). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба 6 hours ago, yes said: поэтому только систем верилог, рекомендовать для освоения VHDL это просто издеваться над начинающим, по-моему. Начинающим нужно начинать с vivado ip integrtor, hls и матлабовского симулинка. После них, если и понадобится пару десятков строчек дописать на уровне триггеров и лутов, то уже без разницы какой-там язык. А по скорости разработки и сложности систем за такое короткое время никакой SV с ними не сравнится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 0 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба Последний проект, который делал - реализация в Циклоне-4е USB-CDC вместе с FS PHY. Чтобы не писать свой драйвер, снял логи, и сделал логическую эмуляцию CH340G. Заработал лучше "оригинала", скорость выросла до 6МБит/сек (ограничение драйвера для Windows). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 0 13 мая, 2019 Опубликовано 13 мая, 2019 (изменено) · Жалоба 19 minutes ago, dmitry-tomsk said: начинать с vivado ip integrtor, hls и матлабовского симулинка USB-CDC модуль в каком-либо варианте получится с этими инструментами? На эмуляцию CH340G у меня ушло ~300 строк на Верилоге (кристалл - самый мелкий Циклон-4е). Изменено 13 мая, 2019 пользователем Leka Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 0 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба 30 minutes ago, dmitry-tomsk said: нужно начинать с vivado ip integrtor, hls и матлабовского симулинка И не сводится ли это в конечном итоге к покупке готовых ядер? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба ну а какой таки чип выбрал автор? я например, тоже считаю вивадо лучшим струментом на рынке в настоящий момент, но там совсем другая весовая категория, по-моему. и ПЛИСов за 1-2 бакса совсем нет и задачи не для SPI имплементации.... когда много писал кода использовал xemacs/emacs с verilog-mode - шайтан машина, однако. но SV в стандарт языка внес много конструкций типа *, убирающих тупое копи-пастанье и verilog-mode AUTO-сы менее актуальны стали. собственно, редакторы пользую встроенные в среды (квартус, симплифай) или нотепад++ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба 9 minutes ago, Leka said: И не сводится ли это в конечном итоге к покупке готовых ядер? да у ксайлинса и бесплатных ядер полно. но hls и матлаб - это может быть тяжелая артиллерия, например, что-то типа обработка видео/распознавания образов или суровый DSP. считаю, что в данной теме это из вредных советов. а эмулировать USB-CDC - можно в каком-нибудь хардваре-хакоконе давать как вступительный экзамен :) ну и по поводу смешивать блокирующее и неблокирующее - некоторые симуляторы (например ncsim) очень такого не любят. то есть выигрыша от этого никакого, а гемор можно поиметь на ровном месте Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 0 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба 22 minutes ago, yes said: смешивать блокирующее и неблокирующее Для разных сигналов, конечно. Смешивать присваивания для одной переменной нельзя по стандарту (синтезатор выдаст ошибку). 26 minutes ago, yes said: эмулировать USB-CDC Имел в виду - "железный" модуль в ПЛИС (для замены внешнего модуля на CH340G), а не симуляцию на компе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 0 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба 41 minutes ago, yes said: тоже считаю вивадо лучшим струментом на рынке в настоящий момент Я в свое время перешел с ISE на Quartus из-за существенной разницы в скорости синтеза некоторых сложных проектов. Несколько минут в Квартусе, против нескольких часов (!!!) в ISE. Vivado сравнялась с Квартусом в скорости синтеза? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба 38 minutes ago, Leka said: Я в свое время перешел с ISE на Quartus из-за существенной разницы в скорости синтеза некоторых сложных проектов. Несколько минут в Квартусе, против нескольких часов (!!!) в ISE. Vivado сравнялась с Квартусом в скорости синтеза? Вивадо сейчас плох, с 2017 версий только хуже. Они сейчас сильно задумались над качеством, новых версий нет уже давно. Синтез там смешали с имплементацией, всё затянуто. Но сами чипы лучше альтеровских по соотношению производительность-цена, топовые артиксы позволяют решать довольно серьёзные задачи при низкой стоимости, у альтеры такие задачи решаются дороже. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба 1 hour ago, Leka said: Vivado сравнялась с Квартусом в скорости синтеза? тяжело сравнивать. но там развита паралельность запусков, много разумного в флоу. у меня было две платы с приблизительно схожими функциями : циклон-V A9 и кинтекс U40 (в ксайлинсе еще софт-проц, в альтере внешний) - ну гораздо быстрее вивадо по ощущениям. но и проще ему было по времянке и т.п. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nieve 0 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба 3 hours ago, Leka said: В общем, если Верилог и Альтера, то для быстрого старта советую начинать с Icarus Verilog + Viewer в Квартусе. Включить поддержку SystemVerilog, но писать на Верилоге, используя из SV только упакованные массивы. Массивы объявлять только упакованными. Разобраться с принципом синхронного дизайна, с блокирующими и неблокирующими присваиваниями (и посылать копать огород тех, кто советует не смешивать в одном always-блоке блокирующие и неблокирующие присваивания). Привидите пример использования в одном always блоке блокирующего и неблокируюего присвоения. Не видел никогда ничего подобного, любопытно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба 1 hour ago, Leka said: Для разных сигналов, конечно. Смешивать присваивания для одной переменной нельзя по стандарту (синтезатор выдаст ошибку). для разных сигналов, естественно. когда моделируется RTL и нетлист в одном прогоне, то из-за оптимизации или еще чего-то времянка может разваливаться и циклы "выпадать". особенно много с ncsim-ом такого видел, но в нем и гонял симуляции дофига. Just now, Nieve said: Привидите пример использования в одном always блоке блокирующего и неблокируюего присвоения. Не видел никогда ничего подобного, любопытно. begin A<=c+d; B=c+1; end смысла в этом мало, просто описка, на которую варнинг, а не ошибка выдается, по-моему Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 0 13 мая, 2019 Опубликовано 13 мая, 2019 · Жалоба Кстати, м/б важно при выборе производителя FPGA, это внутренняя память - м/б критично для некоторых задач. У Xilinx во всех семействах есть disrtributed RAM, у Альтеры нет (но на замену в дорогих семействах есть мелкая память с асинхронным чтением). У Lattice в мелких семействах может отсутствовать true dual port RAM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться