Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

1.1. Структура программы на VHDL. Её основные компоненты




1. 1. Структура программы на VHDL. Её основные компоненты

Проект в системе проектирования на основе VHDL представлен совокупностью иерархически связанных фрагментов, называемых проектными модулями. Форма представления модулей может быть различной – схемотехнической или текстовой. В нашем случае будем исходить из задания модулей на языке VHDL.

Проект в целом или его самостоятельная часть называются ENTITY (сущность). Для определения сущности необходимо создать первичный модуль – декларацию ENTITY, и подчиненный этому модулю вторичный модуль –архитектурное тело. Декларация ENTITY –определяет имя некоторого объекта проектирования (целостного проекта или его автономной части), а также, необязательно, его интерфейс, т. е. порты и параметры настройки. Подчиненное этой декларации архитектурное телоописывает тем или иным способом функционирование объекта проектирования, объявленного декларацией, и (или) его структуру. Каждой декларации   ENTITY может быть сопоставлено одно или несколько архитектурных тел, каждое из которых описывает одну из возможных реализаций объекта, и каждому из которых присваивается собственное имя. Для определения, какие  архитектурные тела из числа имеющихся в библиотеке будут использованы на определенном этапе проектирования, существует специальные средства конфигурации [2]. Первичные и соответствующие им вторичные модули могут сохраняться в различных файлах или записываться в одном файле. Важно лишь, чтобы они были скомпилированы в общую проектную библиотеку, причем первичный модуль компилируется раньше подчиненного ему вторичного. При записи первичного и вторичного модуля в одном файле первичный модуль записывается ранее соответствующего ему вторичного.

Типовой текст программы на языке VHDL представляет произвольный набор первичных и вторичных модулей, причем каждому первичному модулю может предшествовать указание на библиотеки и пакеты, информация из которых используется для построения этого модуля. Пакет–это набор объявлений вводимых пользователем типов, переменных, констант, подпрограмм и т. п.

Рассмотрим проект, заключающийся в создании ИС, содержащей модуль, приведенный на рис. 1. 1. и соответствующий реализации логической функции 2(3И)-2ИЛИ. Ввиду тривиальности фрагмента сразу проанализируем структуру и основные разделы программы-образца (листинг 1. 1).

 

 

Рис. 1. 1. Схема исследуемого устройства

 

Как и большинство программ на языке VHDL эта программа начинается с раздела декларации используемых библиотек. Здесь объявляется системная библиотека (ieee. lib) и определяется использование ( USE ) содержащихся в ней пакетов: std_logic_1164 (содержит определение логических преобразований в многозначной логике), и textio (ввод и вывод сообщений).

 

Листинг 1. 1 Описание простого логического устройства

 

LIBRARY ieee;

USE ieee. std_logic_1164. ALL;

USE std. textio. ALL;

 

ENTITY lab1 IS

GENERIC (delay: time: = 5 ns);

       PORT (

                   x0  : IN std_logic;

                   x1  : IN std_logic;

                   x2  : IN std_logic;

                   z    : OUT std_logic

                   );

END lab1;

 

ARCHITECTURE test OF lab1 IS

 

BEGIN         

                   z < = (x0 AND ( NOT x1) AND x2 ) OR

                              (x0 AND ( NOT x1) AND ( NOT x2) );

 

END ARCHITECTURE test;

 

Следующий раздел программы – декларация ENTITY – объявляет имя проекта или описываемого в данном фрагменте модуля, параметры настройки GENERIC (подробнее рассмотрим далее), имена и типы портов, т. е. данных, подаваемых на входы x0, x1, x2 ( IN ), и формируемых на выходе z ( OUT ). Если модуль является вершиной иерархии в проекте, то его имя должно совпадать с именем файла, включающего его (на случай необходимости автономной отладки внутренних модулей проекта целесообразно этого правила придерживаться всегда). Если выводов во внешнюю среду не предусмотрено, т. е. описываемый блок внутренне закончен и определен, поле декларации внешних соединений модуля может отсутствовать (см. примеры в разделах 3 и 4). Параметры настройки рассматриваются как константы внутри модуля, но могут модифицироваться при включении такого модуля в иерархический проект или передаваться в модули более низкого уровня.

Данные, поступающие на вход модуля и выходящие из него, в терминологии языка VHDL являются сигналами (в терминологии САПР QuestaSim или ModelSim фирмы Model Technologies версий старше 5. 8 – объектами).

Архитектурное тело заключается между выражением “ ARCHITECTURE < имя архитектурного тела> ” и выражением “ END ARCHITECTURE < имя архитектурного тела> ”. В декларации архитектурного тела обязательно указывается имя соответствующего первичного ENTITY.

Архитектурное тело программы 1. 1 реализует поведенческое представление проектируемого устройства. Функционирование устройства в рассматриваемом примере задается параллельным оператором присваивания выходному сигналу значения, являющегося логической функцией входных сигналов.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...