Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие_VHDL.doc
Скачиваний:
59
Добавлен:
13.11.2019
Размер:
3.18 Mб
Скачать

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

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

Рис. 3.2. Реализация семейства логических функций с помощью дешифратора

Здесь дешифратор DC реализует все полные конъюнкции заданного числа переменных, а выходные функции воспроизводятся объединением по логике ИЛИ выходов дешифратора, на которых единица вырабатывается на кодах, которым соответствует единичное значение данной функции. Такая конфигурация часто используется для реализации большого числа логических функций одних и тех же переменных и представляет собой фрагмент модуля постоянной памяти. Обучающемуся предоставляется набор файлов, некоторые из которых непосредственно включаются в проект, а некоторые содержат трафареты программ, которые обучающийся модифицирует в соответствии с индивидуальным заданием.

Файл comp_lab3.Vhd содержит декларации ENTITY и поведенческие архитектурные тела компонентов, которые могут потребоваться в проекте: дешифратор (decod), четырехвходной элемент ИЛИ (or4), источник логического нуля (zero), а также модуль генерации тестового воздействия (test). Поведение последнего в точности совпадает с процессом stimulator программы 2.5. Декларации Entity этих компонентов приведены в листинге 3.2.

Листинг 3.2. Декларации ENTITY рекомендованных компонентов

ENTITY decod IS

GENERIC( num_outputs : INTEGER; -- число выходов

DELAY :time);

PORT(input: IN INTEGER RANGE 0 TO num_terms-1;

output: OUT std_logic_vector ( 0 TO num_terms-1));

END decod;

ENTITY or4 IS

PORT (x1, x2, x3, x4 : IN std_logic; y : OUT std_logic) ;

END or4;

ENTITY zero IS

PORT (y : OUT std_logic) ;

END zero;

ENTITY test IS

PORT (stim_integer : OUT INTEGER RANGE 0 TO 7);

END test;

Декларации дешифратора в файле comp_lab3.Vhd подчинены два архитектурных тела, отражающие эту сущность с разных точек зрения. Обучающийся по заданию преподавателя должен определить архитектурное тело, используемое в его проекте, оформив соответствующим образом декларацию конфигурации.

Текст файла comp_lab3.Vhd приведен в листинге 3.3. Это трафарет будущей программы. Обучающийся должен заместить фрагменты, выделенные курсивом, операторами для реализации многовыходной логической схемы в соответствии с индивидуальным заданием.

Листинг 3.3 Трафарет программы описания многокомпонентного устройства

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

ENTITY lab3 IS

PORT (input : IN INTEGER RANGE 0 TO 7;

z1, z2, z3: OUT std_logic );

END lab3;

ARCHITECTURE structure OF lab3 IS

CONSTANT num_terms: INTEGER :=8;

COMPONENT decod

GENERIC( num_outputs : INTEGER; delay :time);

PORT (input : IN INTEGER RANGE 0 TO num_terms-1;

output: OUT std_logic_vector (0 TO num_terms-1));

END COMPONENT;

-- -----------------------------

-- Здесь следует разместить объявление

-- компонентов OR4 и Zero,

-- подобно таким же конструкциям декларации

-- компонента decod

-- ---------------------------------

SIGNAL y : std_logic_vector(0 TO num_terms-1);

SIGNAL zero : std_logic:

BEGIN

u1: decod

GENERIC MAP(num_terms, 5 ns)

PORT MAP(input, y);

-- --------------------------------------

--Здесь следует разместить операторы

-- вхождения и определить

-- подключение выходов (PORT MAP) нескольких компонентов OR4 и zero,

-- ----------------------------------

END structure;

Текст файла tb_lab3.Vhd (листинг 3.4) является заготовкой для создания модели тестирующей установки. Как уже ранее отмечалось, в подобных моделях раздел портов модуля высшей степени иерархии пуст.

Листинг 3.4. Тестирование многокомпонентного устройства

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

ENTITY tb IS

END tb;

ARCHITECTURE structure OF tb IS

COMPONENT lab3 IS

PORT (input : IN INTEGER RANGE 0 TO 7;

z1, z2, z3 : OUT std_logic );

END COMPONENT;

COMPONENT test IS

PORT (stim_integer : OUT INTEGER RANGE 0 TO 7);

END COMPONENT;

-------------------------------

-- Здесь следует разместить объявление связей модуля генератора теста

-- и логической схемы, а также имена выходов устройства

-- ---------------------------------

BEGIN

-- --------------------------------------

-- Здесь следует разместить операторы

-- вхождения и определить подключение выходов компонентов

-- ----------------------------------

END structure;

Рекомендуется придерживаться следующего порядка работы:

1. Создать в системе моделирования новый проект, включив в него файлы comp_Lab3.vhd и Lab3.vhd. Изменить текст программы Lab3.vhd так, чтобы реализовать три функции таблицы 2.1 по заданию преподавателя.

2. Переоформить программу tb_lab2.vhd для реализации процедуры тестирования устройства lab3.

3. Выполнить компиляцию файлов проекта в порядке их вхождения в иерархию проекта.

4. Выполнить моделирование в течение 1 – 3 циклов изменения тестового воздействия в пошаговом режиме. Наблюдать и записать порядок инициализации процессов (окна process и source).

5. Выполнить моделирование узла в автоматическом режиме.

6. Наблюдать временную диаграмму процесса. В случае обнаружения отклонения результатов от ожидаемых повторить пп. 2 и 4.

7. Компилировать проект Lab3.VHD в САПР Quartus II фирмы Altera.

8. Выполнить функциональное и временное моделирование откомпилированного проекта.

9. Произвести «распиновку» проекта в соответствии с возможностями отладочной платы DE0 фирмы Terasic.

10. Выполнить компиляцию проекта и его загрузку в отладочную плату DE0.

11. Проверить функционирование проекта в реальной системе.

Отчет по теме должен содержать:

- Принципиальную схему устройства в соответствии с индивидуальным заданием. При этом необходимо отобразить в рисунках иерархичность фрагментов проекта и реально использованные в тексте имена фрагментов, узлов, цепей и т.д.

- Текст программы с его разбиением на разделы и их наименованием.

- Принципиальную схему системы тестирования со встроенным устройством в форме компонента.

- Текст программы тестирования с его разбиением на разделы и их наименованием.

- Последовательность активизации и дезактивизации процессов при пошаговом моделировании.

- Временные диаграммы результатов моделирования.