В чем разница между поведенческим и структурным кодом в VHDL?


Ответ 1:

Поведенческий VHDL-код предназначен для пользователей, чтобы сказать синтезаторам (Xilinx ISE, Quartus II, RTL-компилятор и т. Д.) Синтезировать любые цифровые логические схемы для выполнения конкретной функции в соответствии с поведением, записанным в коде. Таким образом, синтезаторы будут определять, как выглядит схема, исходя из поведения кода, а пользователи заботятся только о функциональности кода.

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

Например, вы хотите реализовать сложение двух чисел A и B. Используя код поведения, просто напишите: S <= A + B; Затем синтезаторы будут синтезировать или выбирать любые структуры для выполнения сложения. Это могут быть обычные последовательные сумматоры или что-то еще для выполнения сложения. Используя структурный код, вы спроектируете структуру, которую хотите применить для выполнения сложения. Например, чтобы повысить скорость сумматора, вы проектируете сумматор Carry, а затем пишете структурный код для него.

Проверьте полный пример поведенческого и структурного VHDL для полного сумматора: код VHDL для полного сумматора


Ответ 2:

Структурный код в любом HDL - это материал, который описывает такие вещи, как проводка и физические вещи. Поведенческий код используется для описания моделей вещей, соединенных между проводами.

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