У меня нет абсолютно никакого опыта в программируемой логике, я использую в своих проектах в основном микроконтроллеры, но недавно мне нужно было работать с видео, и микроконтроллер слишком медленный для того, что мне было нужно, поэтому я начал играть с CPLD.
Мне удалось получить хорошие результаты с помощью CPLD только с помощью схематического проектирования, но при поиске информации о CPLD я натолкнулся на множество примеров с использованием VHDL и Verilog. Мне интересно, что может заставить меня захотеть определить свое устройство на одном из этих языков. Что они могут сделать, чего не может сделать схема? Они используются в основном для функций?
До сих пор я использовал только CPLD, получают ли конструкции FPGA больше, чем CPLD, от использования этих языков?
источник
Ответы:
Схематическое проектирование полезно только тогда, когда вы связываете только несколько готовых модулей (счетчики, сумматоры, память и т. Д.). Но реализовать реальный алгоритм (скажем, алгоритм хеширования криптографии) почти невозможно без HDL (например, VHDL или Verilog), поскольку нет способа описать систему на уровне поведения с помощью схематических символов.
Большинство проектов выполняются в поведенческом HDL-стиле, потому что они слишком сложны, чтобы их можно было синтезировать вручную и рисовать с использованием логических примитивов.
CPLD, как правило, используются для склеивания логики и в меньшей степени используются для обработки, и, как правило, логику легко реализовать схематически, поэтому я думаю, что вы правы, когда предлагаете, чтобы конструкции на основе FPGA извлекали большую выгоду из использования HDL.
источник
Пара практических аспектов в дополнение к превосходному ответу Джея:
* Моей любимой ошибкой в Xilinx ISE была невозможность выбора вертикальных проводов.
источник
Many Существует много преимуществ HDL (языков описания аппаратного обеспечения) в качестве стандарта для проектирования.
Описание функциональных возможностей может быть на более высоком уровне, проекты на основе HDL могут быть синтезированы в описание выбранной технологии на уровне шлюза, дизайн HDL более понятен, чем сетевой список на уровне шлюза или схематическое описание и HDL уменьшить количество ошибок из-за строгой проверки типов.
Языки описания оборудования VHDL и Verilog были разработаны для моделирования оборудования с целью моделирования на более высоком уровне абстракции, который включает такие функции, как параллелизм, синхронизация, иерархия, повторное использование компонентов, поведение состояний, синхронное поведение, асинхронное поведение, синхронизация и присущий параллелизм ,
Проблемы возникают во время синтеза, сопоставления описания проекта с конкретным процессом и реализации шлюза. Это требует, чтобы вы не могли использовать высокоуровневые функции HDL - вы должны создать «синтезируемый Verilog / VHDL»
Таким образом, у вас есть HDL для синтеза и HDL для симуляции, а подмножество для синтеза зависит от инструмента.
Вы не можете перейти от описания дизайна поведения к сетевому списку / макету. Но вы можете структурировать свой дизайн так, чтобы иметь поведенческие компоненты, которые также имеют синтезируемый аспект, который можно сравнивать друг с другом. Вы начинаете с поведения, а затем, когда это работает, вы переписываете для синтеза (который является подмножеством). По пути вы переходите от общего к конкретному и строите испытательные стенды.
источник
Еще одно преимущество заключается в том, что HDL получают все те же преимущества, что и обычные языки программирования, в том смысле, что их можно использовать в стандартных системах контроля версий, использовать для анализа изменений и т. Д.
источник
В дополнение к тому, что уже было сказано: представление текста просто намного более управляемо, особенно в больших проектах. Вы можете (хотя и с огромными трудностями) преобразовать любой синтезируемый ЛПВП в схему, но с сотнями строк простого текста работать легче, чем с сотнями элементов схемы.
источник