Курсовая работа: Основы языка VHDL

Язык VHDLслужит для описания модели цифрового устройства (прибора, системы). Описание на языке VHDLопределяет внешние связи устройства (“вид снаружи” или интерфейс) и один или несколько “видов изнутри” (см. рис. 1.1). Вид снаружи задает интерфейс устройства, набор сигналов, которыми устройство обменивается с внешним миром. Этот вид описывает абстрактное представление устройства “в целом” и обозначается английским термином entity, что в дословном переводе означает «сущность» и наиболее точно отражает смысл представления. Однако в литературе термин «сущность» не нашел широкого распространения, для обозначения внешнего описания объекта используются термины «интерфейс объекта», «декларативная часть» и другие. В настоящем пособии будет использоваться термин «интерфейс объекта» или просто «интерфейс».

Рис. 1.1. Цифровое устройство и его модель

Вид изнутри определяет функциональные возможности устройства или его структуру. Внутреннее строение объекта определяет архитектура (architecturebody).

Как и в языках программирования, язык VHDLимеет свои правила, в том числе правила описания имен переменных, объектов, типов данных и других параметров. Основные правила языка VHDLописаны в последующих разделах.

1.2 Идентификаторы в языке VHDL

Идентификаторы - это последовательность букв и цифр произвольной длины. Легальными символами являются прописные (A…Z), строчные (a…z), цифры (0…9), знак подчеркивания. Первый символ должен быть буквой, а последний символ не может быть знаком подчеркивания. Строчные и прописные буквы считаются идентичными, например, Count, COUNT и CouNTрассматриваются как один идентификатор. Знаки подчеркивания не должны следовать друг за другом. Комментарии начинаются с двойного дефиса и следуют до конца строки, например,

- это комментарий, он продолжается до конца строки

- это продолжение комментария

entityUARTisend -- это комментарий, который следует за декларацией интерфейса устройства.

Следующие идентификаторы зарезервированы для использования в качестве ключевых слов и не могут быть использованы иначе:

Abs Access after alias All
And architecture array begin Block
Body Buffer case component Configu-ration
Constant disconnect downto else Elsif
End Entity file for function
generate Generic guarded if In
inout Is label library linkage
loop Map mod nand New
next Nor not null Of
on Open or others Out
package Port procedure process Range
record Register rem select severity
signal Subtyupe then to Transport
type Units until use vriable
wait When while with Xor

1.3 Объекты языка VHDL

Объекты это область хранения данных определенного типа. Создаются объекты посредством декларации объекта, например:

variableCOUNT: INTEGER;

В результате порождается объект с именем COUNT, который хранит целочисленную величину. Кроме того, COUNTдекларируется как класс variable.

Объекты – данные могут быть трех классов:

- сonstant(константа) - может хранить отдельное значение определенного типа. Это значение присваивается объекту в начале моделирования и не может изменяться в процессе моделирования.

- variable(переменная) - объект этого класса может хранить отдельное значение определенного типа, однако, в процессе моделирования ему могут присваиваться различные значения. Для этого используются выражения присваивания (variableassignmentstatement).

- signal(сигнал) – объект данного класса имеет предыдущее значение, имеет текущее значение и набор последующих значений.

Объекты класса signalмоделируют проводные соединения в схемах, в то время как переменные (variable) и константы (constant) используются для моделирования поведения схемы, они аналогичны объектам, используемым в языках программирования Cи Pascal.

Декларация констант

Декларации объектов (objectdeclaration) имеют целью дать имя объекту, объявить его тип, класс и даже присвоить значение. Примеры деклараций констант описаны ниже:

constantRISE_TIME: TIME:= 10ns;

constantBUS_WIDTH: INTEGER:= 8:

В первом случае объявляется объект RISE_TIME, который хранит значение типа TIME, объекту в начале моделирования присваивается величина 10 наносекунд. Во втором случае объявляется, что BUS_WIDTH(ширина шины) типа INTEGER(целое) и ей присвоено значение 8.

Декларация переменных

Примеры деклараций объектов класса variableприведены ниже:

variable CTRL_STATUS: BIT_VECTOR(10 downto 0);

variable SUM: INTEGER range 0 to 100 := 10;

variableFOUND, DONE: BOOLEAN;

В первом случае декларируется переменная CTRL_STATUSкак массив из 11 элементов, причем, каждый элемент типа BIT. Во втором случае переменная SUMдекларируется как целое, лежащее в диапазоне от 0 до 100, в начале моделирования переменной присваивается значение 10. Если переменной в начале моделирования не задано значение, то используется значение по умолчанию. Им служит самое “левое” значение в наборе значений данного типа. Например, переменная типа BOOLEANимеет набор значений (FALSE, TRUE) и в третьем примере начальное значение переменных FOUNDи DONEбудет взято по умолчанию, т.е. FALSE.

Декларация сигналов

Декларации объектов класса signalсхожи с декларациями переменных:

signal CLOCK: BIT;

--> ЧИТАТЬ ПОЛНОСТЬЮ <--

К-во Просмотров: 841
Бесплатно скачать Курсовая работа: Основы языка VHDL