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

Какой способ разработки систем на ПЛИС сейчас наиболее популярен?  

209 проголосовавших

  1. 1. Какой способ разработки Вы используете?

    • Схемотехнический ввод
      11
    • Verilog
      102
    • VHDL
      83
    • AHDL
      5
    • другой
      8


В железо ввел переменную, потом в тексте "программы" ошибку искал.

VHDL не поможет, если на птичьем языке общаться. Только незнание усугубит.

 

Вспоминая старый програмистский анекдот - VHDL попросту не даст прострелить вам ногу, в то время как Verilog предоставляет для этого широчайшие возможности...

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


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

Вспоминая старый програмистский анекдот - VHDL попросту не даст прострелить вам ногу, в то время как Verilog предоставляет для этого широчайшие возможности...

 

Могу поспорить, студент в графике не нарисует делитель на 2 на D или Т триггере. Вот это и есть реалии сегодняшнего дня.

С консерватории надо начинать.

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


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

Verilog,verilog....

У меня вот студент ввёл в модуль новую переменную,а объявить её забыл.Потом целый день искал почему модуль перестал работать. ISE даже не ругнулся. На VHDL такие номера не проходят.

Это потому что студенты Warning не любят читать. Их только Error останавливает. :) Молодые, горячие - что делать. :)

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


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

Verilog,verilog....

У меня вот студент ввёл в модуль новую переменную,а объявить её забыл.Потом целый день искал почему модуль перестал работать. ISE даже не ругнулся. На VHDL такие номера не проходят.

`default_nettype none

- в файле макросов, включаемом во все файлы проекта (и `timescale задавать удобно там же). По крайней мере в этом Verilog позволяет разработчику себя застраховать. А вот ошибки, связанные с молчаливым обрезанием / расширением разрядности и применением не всегда интуитивных правил определения signed / unsigned порой делаю и сам, увы.

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


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

Уже много лет для разработки проектов ПЛИС любой сложности использую Simulink + Simulink HDL Coder

Обладает всеми плюсами схематика:

...

2) "Языконезависимость". В том смысле, что если придется встраиваться в команду разработчиков, которая привыкла к какому-либо одному из языков VHDL или Verilog - нет проблем, указывается кодеру язык и в путь

Я правильно понял, что Simulink HDL Coder генерирует именно код на HDL, а не какие-то кубики из готовых библиотек? Как на Ваш взгляд этот код по сравнению с человеческим?

Какова эффективность такого описания?

5) ... Причем тестировать можно и чей-либо чужой vhdl/verilog-код, загнав его в ModelSim и использовать EDA Link for ModelSim.

Можно чуть подробнее про EDA Link for ModelSim?

 

Еще несколько вопросов - для каких систем, на Ваш взгляд, такой подход не очень подходит?

Насколько просто (грубо говоря сколько времени требуется) разобраться с этим инструментарием при условии что с матлабом и симулинком дружу очень давно и много с ними работаю (правда с симулинком меньше значительно)?

И какие подводные камни можете указать?

 

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


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

Я правильно понял, что Simulink HDL Coder генерирует именно код на HDL, а не какие-то кубики из готовых библиотек? Как на Ваш взгляд этот код по сравнению с человеческим?

Какова эффективность такого описания?

 

На мой взгляд, такой подход вполне подходит для data flow алгоритмов, для которых Simulink и придуман в первую очередь. Никаких особых изысков там нет - сумматоры, умножители и т.д. - их трудно описать оптимальнее руками. При этом возможности синтезатора (квартуса по крайней мере, с ISE давненько не работал по данной теме) позволяют вполне успешно упаковывать все это в разные типы DSP-блоков в зависимости от используемого кристалла.

Для управляющих алгоритмов ничего лучше ручного написания кода (на vhdl), на мой взгляд не изобрели, все эти stateflow красивы, но не вполне удобны.

 

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

Один из основных недостатков - трудности создания многочастотных систем и отсутствие поддержки временного мультиплексирования (по крайней мере на данный момент).

 

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


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

Я правильно понял, что Simulink HDL Coder генерирует именно код на HDL, а не какие-то кубики из готовых библиотек? Как на Ваш взгляд этот код по сравнению с человеческим?

Какова эффективность такого описания?

Simulink HDL Coder генерирует именно код на HDL (VHDL, Verilog). Есть много уже готовых блоков, которые поддерживаются для генерации HDL-кода (подробнее - наберите команду 'hdllib' или 'hdldemolib' без кавычек). Вы также можете сами писать ЛЮБЫЕ блоки, которые вам нужно с помощью Embedded MATLAB языка.

Какова эффективность такого описания?

Ну это смотря как эту эффективность мерить. Если Вы интересуетесь насколько хорошо этот код синтезируется и разводится в кристалл САПРами, то могу сказать, что очень хорошо. На этапе создания модели в Симулинке необходимо отдавать себе отчет во что превратиться тот или иной блок в ПЛИС. Если такое понимание есть, то создаются модели эффективные с точки зрения синтеза в ПЛИС, а соответственно и код эффективный. А если рассматривать с точки зрения того, что при таком подходе Вы убиваете сразу двух зайцев - и модель создаете, и проект ПЛИС четко привязанный к этой модели, то тут эффективность разработки, по моему мнениею, намного выше традиционных подходов. Может если Вы хотите выбрать из кристалла максимум, на который он способен, то здесь возможно ручное кодирование вырвется вперед, но это очень сильно зависит от опытности человека, который будет писать код. Хотя я не проводил подобные соревнования. Надо понимать, что время создания большого проекта ПЛИС с целью выжать максимум возможности кристалла в несколько раз выше, чем время создания такого же большого проекта, но без цели выжать максимум. (это как гражданская авиация и истребительная авиация с большими перегрузками). В подавляющем большинстве случаев люди берут ПЛИС с ресурсом с запасом.

 

Можно чуть подробнее про EDA Link for ModelSim?

почитайте блог des_00, он как-то уже писал про использование этого инструмента. Можно почитать на сайте Mathworks, посмотреть записанные вебинары на эту тему.

 

для каких систем, на Ваш взгляд, такой подход не очень подходит?

не понял вопроса. Мы тут обсуждаем вопрос разработки ПЛИС. Я считаю для этой темы вполне подходит. Я не занимаюсь разработкой DSP-систем, как наверное думают многие, когда слышат про Симулинк. Используя подход, который я описал разрабатывал модули канального уровня Ethernet (прием-передача), оконечные устройства (TLP-уровень) PCI Express интерфейса, в прошлом и PCI-устройства, сейчас планирую SATA делать.

 

Для управляющих алгоритмов ничего лучше ручного написания кода (на vhdl), на мой взгляд не изобрели, все эти stateflow красивы, но не вполне удобны.

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

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


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

почитайте блог des_00[/url], он как-то уже писал про использование этого инструмента.

писал MKS, а симулинк я просто использую для РРЛ систем. хдл кодер не использую, т.к. мне важен ресурс, но модели обкатываю в симулинке

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


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

...

 

Большое спасибо за развернутый ответ.

 

...

не понял вопроса. Мы тут обсуждаем вопрос разработки ПЛИС. Я считаю для этой темы вполне подходит. Я не занимаюсь разработкой DSP-систем, как наверное думают многие, когда слышат про Симулинк. Используя подход, который я описал разрабатывал модули канального уровня Ethernet (прием-передача), оконечные устройства (TLP-уровень) PCI Express интерфейса, в прошлом и PCI-устройства, сейчас планирую SATA делать.

 

Все правильно поняли :rolleyes: Именно про это (то, на что Вы ответили) я и спрашивал.

Еще раз спасибо.

 

Планирую спокойно поизучать все это.

 

 

 

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


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

Я тоже на схематике в квартусе проекты ваяю. Вполне уставивает. Согласен, что аккуратно нужно назначать имена сигналов. Особенно осторожно с цифрами в конце имени. Иначе эти цифры любят перебраться в индексы. А все остальное очень удобно. Любой старый проект можно открыть и сразу видишь что куда бежало.

 

Может еще удобство того или иного способа разработки зависит от функции проекта. В моих проектах в-основном работа с потоками данных. Например взять видео поток с видео процессора, засунуть его в СДРАМ. Перед этим обработать по ходу дела, перегнать на карточку или разбить и отправить на какой либо интерфеис. Математику сложнее писать. Но ее можно подцепить отдельным модулем.

 

Может, конечно, я просто привык за много лет работы и мне лень переходить на другой способ (как писалось выше). Согласен.

 

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

 

Таково мое мнение.

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


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

Внутри модулей пишу на Verilog, а топ левел оставляю на схематике.

А тестбенчи тогда как запускаете? Или не запускаете? :) Или из топа генерите потом снова текст?

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


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

А тестбенчи тогда как запускаете? Или не запускаете? :) Или из топа генерите потом снова текст?

Это вы не у меня спрашивали, но я отвечу. Ага, из топа текст.

 

И это конечно не в тему, но реально это пригодилось один раз, когда я еще умела строить только в схематике, а диплом надо было сдавать как программисту, то есть - программу (получилось несколько больше чем нужно строчек кода ^^).

 

Пишу на Verilog. Читаю на VHDL.

Пользую Quartus, ModelSim, Matlab.

 

Из последних открытий было важным что информацию с SignalTap можно считать и представить в Matlab в виде массива данных.

 

 

 

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


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

А тестбенчи тогда как запускаете? Или не запускаете? :) Или из топа генерите потом снова текст?

 

А какая разница? В чем проблема? Можно хоть так, хоть так..

Тестбенч всегда... (Я под ISE). Может кактус не имеет возможности?

После отладки можно и сгенерировать в текст ...в конце. :biggrin:

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


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

А какая разница? В чем проблема? Можно хоть так, хоть так..

Что значит, хоть так, хоть так? Вы можете скормить, скажем, моделсиму или альдеку какой-то левый схематик?

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


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

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

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

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

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

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

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

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

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

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