Мегаобучалка Главная | О нас | Обратная связь


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



2020-02-04 286 Обсуждений (0)
Структура программы на VHDL . Её основные компоненты 0.00 из 5.00 0 оценок




Проект в системе проектирования на основе 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 реализует  поведенческое представление проектируемого устройства. Функционирование устройства  в рассматриваемом примере задается параллельным оператором присваивания выходному сигналу значения, являющегося логической функцией входных сигналов.

 

Практикум по теме

 Для практического освоения материала  раздела рекомендуется выполнить  интерпретацию поведения программы сначала в пакете моделирования  QuestaSim или ModelSim, а затем проанализировать работу синтезированного устройства в реальной ИС FPGA.  Общие правила работы с  пакетами типа  QuestaSim v.6.5 и Quartus II  v.9.0 имеются в приложении. Работа с другими (более поздними) версиями этих продуктов во многом аналогична. Для удобства работы обучающимся  вместе с демо-версией пакета в общем случае предоставляются  трафареты  исходных текстов в электронном виде (исходные файлы).

 

Последовательность работы:

 

I. Подготовительный этап

1. Создать директорий для работы.

2. Скопировать в директорий шаблон рабочей программы lab1.vhd и пакет util_1164.

 

II. Моделирование

1. Запустить моделирующую программу  (QuestaSim или ModelSim).

2. Просмотреть в редакторе текст файлаlab1.vhd. Для данного раздела исходный файл   lab1.vhd соответствует  программе  1.1. Source.

3. Выполнить компиляцию проекта.

4. Загрузить скомпилированный проект в систему моделирования.   

5. Открыть окна наблюдения  Process, Signal, Wave.

6. Запустить  процедуру моделирования, вызвав команду системы моделирования simulate.

5. Сформировать тестовую последовательность, используя команду

     системы моделирования FORCE (в пределах необходимого для полноты проверки числа комбинаций входных данных).

6. Выполнить моделирование в пошаговом режиме.

7. Выполнить моделирование в автоматическом режиме.  Просмотреть временную диаграмму в окне Wave и убедиться в правильности  вычисления логической  функции.

 

III. Синтез и имплементация.

1. Открыть пакет Quartus II (версия задается преподавателем).

2. Создать новый проект – File / New Project Vizard, указав созданный директорий и программу lab1.vhd.

3. Компилировать проект (Processing/Start Compilation), выбрав в качестве ПЛИС схему соответствующую семейству MAX 3000A.

4. Оценить затраты на реализацию проекта Processing / Compilation Report.

5. Просмотреть RTL вид проекта и его топологическую реализацию – Tools / RTL View  –  Tools / Technology Map View.

6. Компилировать проект (Processing / Start Compilation), опираясь на данные о ПЛИС, соответствующие используемому учебному стенду (Assignments / Device).

7. Повторить пункты 4 и 5.

8. Задать номера контактов ИС, соответствующие подключению учебной платы DE0 (приложение III).

9. Выполнить компиляцию проекта с назначенными контактами.

10. Загрузить в ИС полученный загрузочный файл проекта и проверить работоспособность разработки.

 

1.3. Контрольные вопросы

 

1.    Перечислите основные этапы реализации проектов в ПЛИС.

2.                Чем обусловлено расхождение в характеристиках и затратах на реализацию в двух выбранных вариантах?

3.                Какими альтернативными синтаксическими конструкциями можно описать приведенный проект?




2020-02-04 286 Обсуждений (0)
Структура программы на VHDL . Её основные компоненты 0.00 из 5.00 0 оценок









Обсуждение в статье: Структура программы на VHDL . Её основные компоненты

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (286)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)