Что заставило бы меня выбрать Verilog или VHDL вместо схематического дизайна для CPLD или FPGA?

13

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

Мне удалось получить хорошие результаты с помощью CPLD только с помощью схематического проектирования, но при поиске информации о CPLD я натолкнулся на множество примеров с использованием VHDL и Verilog. Мне интересно, что может заставить меня захотеть определить свое устройство на одном из этих языков. Что они могут сделать, чего не может сделать схема? Они используются в основном для функций?

До сих пор я использовал только CPLD, получают ли конструкции FPGA больше, чем CPLD, от использования этих языков?

Бруно Феррейра
источник
1
Вы, вероятно, найдете поставляемые поставщиком инструменты синтеза для Verilog и VHDL для основных компонентов. Поэтому выбор - это исключительно мнение. Я бы посоветовал вам взглянуть на оба и решить, что вы предпочитаете. Xilinx предоставляет хорошие примеры на обоих языках, я подозреваю, что и другие производители тоже.
Дэвид
3
Вы должны определенно отойти от схематического захвата для логического проектирования. В начале это кажется легче, но это иллюзорно. Мои 0,02 доллара на языках: VHDL - мерзость, используйте Verilog.
Markt
@ Markt, почему вы думаете, что VHDL это плохо?
Станри
2
С таким же успехом можно сказать, что Verilog - мерзость, используйте VHDL. VHDL ожидает, что вы скажете именно то, что вы хотите, а Верилог вроде как догадывается. Но это только мои £ 0,02.
Брайан Драммонд
1
@markt, я начал с VHDL, поэтому однажды я оценил его строгую типизацию. Это заставило меня задуматься о том, что я хотел, и создать хорошие привычки, когда я начинал. Сейчас я слишком далеко в лагере SystemVerilog, чтобы честно заботиться о чём-либо.
станри

Ответы:

14

Схематическое проектирование полезно только тогда, когда вы связываете только несколько готовых модулей (счетчики, сумматоры, память и т. Д.). Но реализовать реальный алгоритм (скажем, алгоритм хеширования криптографии) почти невозможно без HDL (например, VHDL или Verilog), поскольку нет способа описать систему на уровне поведения с помощью схематических символов.

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

CPLD, как правило, используются для склеивания логики и в меньшей степени используются для обработки, и, как правило, логику легко реализовать схематически, поэтому я думаю, что вы правы, когда предлагаете, чтобы конструкции на основе FPGA извлекали большую выгоду из использования HDL.

Джей Карлсон
источник
Вы можете делать очень сложные вещи в системе символических схем. Я бы сказал, что все, что можно сделать в HDL, может быть реализовано в системе, основанной на схемах, хотя и ценой ремонтопригодности. Пока набор инструментов может определять блоки символов, которые действуют как один символ, вы можете делать практически все что угодно.
Коннор Вольф
1
Один хороший пример здесь - labview. Это символический интерфейс программирования, где люди проектировали чрезвычайно сложные системы, которые автоматизируют целые фабрики. Конечный результат почти не поддерживается, но это возможно (примечание: я не говорю о том, хорошая ли это идея, просто базовая жизнеспособность).
Коннор Вольф
«Большинство проектов выполняются в поведенческом стиле ЛПВП ...» не поддерживается, и на самом деле это НЕ то, как работают потоки проектирования.
заполнитель
@ConnorWolf Должен не согласиться с тем, что код Labview не поддерживается, но я не большой поклонник. Есть несколько лучших практик, которые действительно помогают. Для меня это, как правило, отказ от любой надежды на прямую или обратную совместимость, которая вызывает проблемы с обслуживанием, в отличие от всего, что присуще языку G;)
Скотт Сейдман
4

Пара практических аспектов в дополнение к превосходному ответу Джея:

  • Ошибок. Инструменты схемы, как правило, работают хуже, чем остальные наборы инструментов. Возможно, это связано с тем, что Verilog / VHDL предпочтительнее, чем схемы в промышленности, и поэтому разработчикам программного обеспечения уделяется меньше внимания вводу схемы.
  • Скорость.Схема должна быть сначала преобразована в HDL перед передачей ее в инструмент синтеза. Это может оказать негативное влияние на время сборки. Сгенерированный HDL также может быть не очень читабельным, если вам по какой-то причине нужно его проверить.
  • Переносимость. В зависимости от количества используемых примитивов поставщика Verilog и VHDL более или менее переносимы между устройствами. При переносе схем вам либо нужно перерисовать все, либо полагаться на предоставленные возможности импорта / экспорта (если есть).

* Моей любимой ошибкой в ​​Xilinx ISE была невозможность выбора вертикальных проводов.

wailashi
источник
2

Many Существует много преимуществ HDL (языков описания аппаратного обеспечения) в качестве стандарта для проектирования.

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

Языки описания оборудования VHDL и Verilog были разработаны для моделирования оборудования с целью моделирования на более высоком уровне абстракции, который включает такие функции, как параллелизм, синхронизация, иерархия, повторное использование компонентов, поведение состояний, синхронное поведение, асинхронное поведение, синхронизация и присущий параллелизм ,

Проблемы возникают во время синтеза, сопоставления описания проекта с конкретным процессом и реализации шлюза. Это требует, чтобы вы не могли использовать высокоуровневые функции HDL - вы должны создать «синтезируемый Verilog / VHDL»

Таким образом, у вас есть HDL для синтеза и HDL для симуляции, а подмножество для синтеза зависит от инструмента.

Вы не можете перейти от описания дизайна поведения к сетевому списку / макету. Но вы можете структурировать свой дизайн так, чтобы иметь поведенческие компоненты, которые также имеют синтезируемый аспект, который можно сравнивать друг с другом. Вы начинаете с поведения, а затем, когда это работает, вы переписываете для синтеза (который является подмножеством). По пути вы переходите от общего к конкретному и строите испытательные стенды.

заполнитель
источник
1

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

мгц
источник
0

В дополнение к тому, что уже было сказано: представление текста просто намного более управляемо, особенно в больших проектах. Вы можете (хотя и с огромными трудностями) преобразовать любой синтезируемый ЛПВП в схему, но с сотнями строк простого текста работать легче, чем с сотнями элементов схемы.

valplo
источник