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. Проверить функционирование проекта в реальной системе.
Отчет по теме должен содержать:
- Принципиальную схему устройства в соответствии с индивидуальным заданием. При этом необходимо отобразить в рисунках иерархичность фрагментов проекта и реально использованные в тексте имена фрагментов, узлов, цепей и т.д.
- Текст программы с его разбиением на разделы и их наименованием.
- Принципиальную схему системы тестирования со встроенным устройством в форме компонента.
- Текст программы тестирования с его разбиением на разделы и их наименованием.
- Последовательность активизации и дезактивизации процессов при пошаговом моделировании.
- Временные диаграммы результатов моделирования.
- 1.1. Структура программы на vhdl. Её основные компоненты
- Практикум по теме
- 1.3. Контрольные вопросы
- 2. Представление комбинационных схем
- 2.1. Параллельные и последовательные операторы
- Переменные и сигналы
- 2.3. Данные, выражения и их интерпретация в цифровом устройстве
- Типичные ошибки при представлении комбинационных схем на vhdl
- Практикум по теме
- 2.5. Контрольные вопросы
- 3. Структурное представление устройств
- 3.1. Структура и поведение
- 3.2. Описание структур на языке vhdl
- 3.3. Практикум по теме
- 3.4. Контрольные вопросы
- 4. Описание и синтез последовательностных схем
- 4.1. Триггеры и регистровые схемы
- 4.2. Практикум по теме
- 4.3. Контрольные вопросы:
- 5. Описание и синтез автоматов
- 5.1. Классические понятия цифровых автоматов
- 5.2. Инженерный подход к проектированию цифровых автоматов
- 5.3. Практикум по теме
- 5.4. Контрольные вопросы
- 6. Проектирование операционных устройств
- 6.1. Методы построения операционных устройств
- 6.2. Основные этапы проектирования цифровых устройств
- 6.3 Пример проектирования
- 6.4. Имплементация и отладка проектов
- 6.5. Практикум по теме
- Рекомендуется придерживаться следующего порядка работы:
- 6.4. Контрольные вопросы
- I. Описание системы моделирования
- 1. Краткое знакомство с системой меню
- Окно библиотеки проекта – содержит список доступных библиотек пользователя и файлов, включенных в проект
- Примерный порядок работы в системе QuestaSim V.6.5/6.6
- 4. Компиляция и синтаксическая отладка
- 5. Моделирование
- II. Описание системы имплементации проектов в плис
- 2.1. Типовая последовательность выполнения работы.
- 2.2. Процесс моделирования работы узлов средствами пакета Quartus II
- Работа в редакторе временных диаграмм
- III. Создание программ, описывающих автоматы
- Рекомендованные номера контактов для проекта
- 3.2. Таблица соединений платы Cyclone II Starter Board.