Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> VHDL

Мастер VHDL:комплексное введение в проектирование FPGA и ASIC

Учебное пособие. Введение в VHDL

VHDL — ужасная аббревиатура. Это означает V. HSIC H аппаратное обеспечение D описание L язык. Аббревиатура внутри аббревиатуры, круто! VHSIC означает V. эри Ч ай S пописал Я интегрированный C цепь. Следовательно, расширенный VHDL равен V. очень быстродействующая интегральная схема H аппаратное обеспечение D описание L язык. УФ, это глоток. VHDL — один из двух языков, используемых в образовании и бизнесе для разработки FPGA и ASIC. Если вы не знакомы с этими увлекательными схемами, сначала вам может быть полезно познакомиться с FPGA и ASIC. VHDL и Verilog — это два языка, которые цифровые дизайнеры используют для описания своих схем, и по конструкции они отличаются от традиционных языков программного обеспечения, таких как C и Java.

В приведенном ниже примере мы создадим файл VHDL, который описывает и ворота. В качестве напоминания:простой И-ворот имеет два входа и один выход. Выходной сигнал равен 1 только тогда, когда оба входных сигнала равны 1. Ниже показано изображение вентиля И, который мы будем описывать с помощью VHDL.

Ан И Ворота

Давайте займемся этим! Основная единица VHDL называется сигналом. . А пока предположим, что сигнал может быть либо 0, либо 1 (на самом деле есть и другие возможности, но к этому мы еще вернемся). Вот некоторая базовая логика VHDL:

signal and_gate : std_logic;
and_gate <= input_1 and input_2;

Первая строка кода определяет сигнал типа std_logic и называется and_gate. Std_logic — это тип, который чаще всего используется для определения сигналов, но есть и другие, о которых вы узнаете. Этот код сгенерирует логический элемент И с одним выходом (and_gate) и двумя входами (input_1 и input_2). Ключевое слово «и» зарезервировано в VHDL. Оператор <=известен как оператор присваивания. Когда вы устно анализируете приведенный выше код, вы можете сказать вслух:«Сигнал and_gate ПОЛУЧАЕТ input_1 и обрабатывается с input_2».

Теперь вы можете спросить себя, откуда взялись input_1 и input_2. Как следует из их названия, они являются входными данными для этого файла, поэтому вам нужно сообщить о них инструментам. Входные и выходные данные файла определяются в объекте. . Объект содержит порт, который определяет все входные и выходные данные в файл. Давайте создадим простую сущность:

entity example_and is
 port (
 input_1 : in std_logic;
 input_2 : in std_logic;
 and_result : out std_logic
 );
end example_and;

Это ваша основная сущность. Он определяет объект с именем example_and и 3 сигнала, 2 входа и 1 выход, все из которых имеют тип std_logic. Для завершения этого процесса необходимо еще одно ключевое слово VHDL — architecture. . Архитектура используется для описания функциональности конкретного объекта. Думайте об этом как о дипломной работе:сущность — это оглавление, а архитектура — это содержание. Давайте создадим архитектуру для этого объекта:

architecture rtl of example_and is 
 signal and_gate : std_logic;
begin
 and_gate <= input_1 and input_2;
 and_result <= and_gate;
end rtl;

Приведенный выше код определяет архитектуру под названием rtl объекта example_and. Все сигналы, используемые архитектурой, должны быть определены между ключевыми словами «is» и «begin». Фактическая логика архитектуры находится между ключевыми словами «начало» и «конец». Вы почти закончили работу с этим файлом. И последнее, что вам нужно сообщить инструментам:какую библиотеку использовать. Библиотека определяет, как определенные ключевые слова ведут себя в вашем файле. А пока просто примите как должное, что вам нужны эти две строки в верхней части вашего файла:

library ieee;
use ieee.std_logic_1164.all;

Поздравляем! Вы создали свой первый файл VHDL. Вы можете увидеть готовый файл здесь:

library ieee;
use ieee.std_logic_1164.all;
entity example_and is
 port (
 input_1 : in std_logic;
 input_2 : in std_logic;
 and_result : out std_logic
 );
end example_and;
architecture rtl of example_and is
 signal and_gate : std_logic;
begin
 and_gate <= input_1 and input_2;
 and_result <= and_gate;
end rtl;

Кажется, что вам пришлось написать много кода только для того, чтобы создать дурацкий и гейт? Во-первых, и ворота не глупые. Во-вторых, вы правы; VHDL — очень многословный язык. Привыкайте к тому, что выполнение того, что было очень просто в программном обеспечении, займет у вас значительно больше времени в HDL, таком как Verilog или VHDL. Но просто попросите какого-нибудь программиста попытаться сгенерировать изображение на VGA-мониторе, на котором будет отображаться «Игра жизни» Конвея, и вы увидите, как у них закружится голова от изумления! Кстати, это видео создано с помощью VHDL и FPGA. Скоро вы сможете это сделать!

Далее мы обсудим еще одно фундаментальное ключевое слово VHDL:процесс.


VHDL

  1. Подписанный и неподписанный в VHDL
  2. Как инициализировать RAM из файла с помощью TEXTIO
  3. Как сделать AXI FIFO в блочной ОЗУ, используя готовое/действующее рукопожатие
  4. Как создать синхронизированный процесс в VHDL
  5. Как создать управляемый Tcl тестовый стенд для модуля кодовой блокировки VHDL
  6. Использование встроенного логического анализатора (ILA) и виртуального ввода/вывода (VIO)
  7. Как просмотреть переменные VHDL в Modelsim во время моделирования
  8. Базовая викторина VHDL — часть 1
  9. Как использовать процедуру в VHDL
  10. Файл стимула читается в тестовом стенде с помощью TEXTIO