Введение в стандарт IEEE. Справочное руководство по языку VHDL (Пересмотр стандарта IEEE. 1076-1987), страница 2

     Существует специальный интерфейс, с помощью которого объекту можно приписывать уравнения, и разделы (называемые архитектурой), проводить описание схемы. Некоторые дополнительные объявления отвечают на вопросы типа " Что является потенциальными точками сигнала, типа 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 имеют девять возможных состояний, как показано ниже.