Существует специальный интерфейс, с помощью которого объекту можно приписывать уравнения, и разделы (называемые архитектурой), проводить описание схемы. Некоторые дополнительные объявления отвечают на вопросы типа " Что является потенциальными точками сигнала, типа std_logic? " и " Что означает оператор AND?"
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity eqs is
port (a1, a2, a3, a4, a5, a6,
b1, b2, b3, b5, b6 : std_logic;
y1, y2, y3, y4, y5, y6 : out std_logic);
end eqs;
architecture behavior of eqs is
begin
y1 <= a1 and b1;
y2 <= a2 or b2;
y3 <= a3 xor b3;
y4 <= not(a4);
y5 <= a5 nand b5;
y6 <= a6 nor b6;
end behavior;
Каждый главный раздел модели описан ниже:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
Эти три инструкции подключают несколько расширений VHDL, включая разнообразную синтезирующую логику, арифметику, и операции сравнения. Эти функции увеличивают возможности исходного текста. Это будет хорошей привычкой, если вы будете включать эти три инструкции с каждой моделью VHDL, которую вы создаете.
Следующие инструкции модели описывают модель и ее интерфейс. В этом примере, модель eqs имеет 17 портов: 11 - входов, и 6 - выходов. Порты в VHDL эквивалентны штырькам на схеме, или иерархическому порту при схемном решении. Они определяют каналы связи модели.
Порты были определены как тип std_logic, этот тип данных, может изображаться в одном из девяти возможных состояний, включая наиболее общее: '0' для логической "лжи" и '1' для логической "истины". По умолчанию входные порты установлены как вход, и выходные объявлены как выход.
entity eqs is
port (a1, a2, a3, a4, a5, a6,
b1, b2, b3, b5, b6 : std_logic;
y1, y2, y3, y4, y5, y6 : out std_logic);
end eqs;
Раздел архитектуры модели связан с моделью eqs, и включает следующие логические выражения:
architecture behavior of eqs is
begin
y1 <= a1 and b1;
y2 <= a2 or b2;
y3 <= a3 xor b3;
y4 <= not(a4);
y5 <= a5 nand b5;
y6 <= a6 nor b6;
end behavior;
Типы данных.
VHDL, рассматривается, как язык "со строго фиксированными типами", который подразумевает, что все типы данных должны быть объявлены прежде, чем они используются, и для каждого типа строго определен набор операций. Ниже показаны типы данных, которые могут синтезироваться компилятором.
Стандартные типы |
Класс |
boolean, bit character |
Перечисляемые |
integer |
Целые |
natural, positive |
Подтип целых |
string |
Символьный массив |
bit_vector |
Битовый массив |
Тип Std_logic_1164 |
Класс |
std_ulogic |
Перечисляемые |
std_logic |
Подтип std_ulogic |
std_ulogic_vector |
Массив std_ulogic |
std_logic_vector |
Массив std_logic |
Численный _std тип |
Класс |
signed |
Безусловный массив битов |
unsigned |
Безусловный массив битов |
Эти типы включены в стандарт языка VHDL, что означает, что VHDL код составленный с использованием этих типов данных будет переносимым, т.е. доступен для всех систем EDA. Следующие наиболее популярные типы данных для проекта определены IEEE и входят в std_logic_1164. Тип данных std_logic и std_logic_vector используется почти одинаково для всех операций, при описании поведения системы. Данные, определенные как std_logic имеют девять возможных состояний, как показано ниже.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.