Практикум по теме
Для практического освоения темы предлагается выполнить модификацию и осуществить моделирование комбинационной схемы на основе различных способов реализации логической функции. Варианты индивидуальных заданий сведены в табл. 2.1.
Таблица 2.1.
Входной | Числовой | Варианты задания функции | |||||||
код | эквивалент | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
000 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |
001 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 |
010 | 2 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 |
011 | 3 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 |
100 | 4 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
101 | 5 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 1 |
110 | 6 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
111 | 7 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
В качестве исходных обучающемуся представляется файлы Lab21.vhd, Lab22.vhd и Lab23.vhd, содержание которых соответствует различным схемным реализациям комбинационных схем (рис. 2.2), а представление на языке VHDL приведено в программах 2.1 – 2.4.
При проведения тестовых экспериментов над рядом схожих схем использование команды системы моделирования FORCE не рационально. В данной работе и последующих, в отличие от работы №1, используется принцип построения специальной тестовой программы TestBench. Текст программы содержится в файле Tb_Lab2 и приведен на листинге 2.5. В отличие от программы на листинге 1.1 здесь декларация ENTITY не определяет портов. Предполагается, что проект полностью «внутренне» определен. Он содержит генератор тестовой последовательности (процесс Stimulator) и модель некоторого «исследуемого» устройства (компонент – Lab2*), выходы которого будут наблюдаться проектировщиком в сеансе моделирования. Такой подход – создание модели экспериментальной установки, включающей в качестве компонентов собственно проектируемое устройство, генератор тестовых воздействий, а иногда и модуль анализа результатов – это весьма распространенный прием проектирования и отладки.
В программе (листинг 2.5.) процесс stimulator не имеет определенных инициализаторов и поэтому, безусловно, запускается в начале моделирования. Процесс включает в себя цикл изменения переменной i, причем между последующими изменениями предусмотрена приостановка (сохранение сигналов неизменными) на 50 нс. модельного времени. В начале каждого периода выполняется формирование сигналов, соответствующих текущему значению параметра цикла i в нескольких различных формах: как целое, как вектор, как набор независимых скалярных сигналов. В процессе выполнения работы этот фрагмент не меняется и служит для тестирования различных модификаций способа описания комбинационной логической схемы. В процессе работы обучающийся модифицирует функцию, воспроизводимую процессом.
Листинг 2.5 Совместное представление комбинационной схемы и генератора тестового воздействия
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_arith.ALL;
USE STD.textio.ALL;
ENTITY Tb_Lab2 IS
END Tb_Lab2;
ARCHITECTURE test OF Tb_Lab2 IS
SIGNAL stim_integer : INTEGER;
SIGNAL z, x0, x1, x2 : std_logic;
SIGNAL v : std_logic_vector( 1 DOWNTO 0);
COMPONENT Lab2
PORT (
x0, x1, x2 : IN std_logic;
z : OUT std_logic
);
END COMPONENT;
BEGIN
u1: Lab2
PORT MAP(x0, x1, x2, z);
stimulator:
PROCESS
VARIABLE i : INTEGER;
VARIABLE stim_vector : std_logic_vector( 2 DOWNTO 0);
BEGIN
--TIME_VAR := 5ns;
FOR i IN 0 TO 15 LOOP
stim_integer <= i;
stim_vector :=conv_std_logic_vector(i, 3);
x0 <= stim_vector(0);
x1 <= stim_vector(1);
x2 <= stim_vector(2);
WAIT FOR 50 ns;
END LOOP;
ASSERT false REPORT "End of Stimulation !"
SEVERITY error;
WAIT;
END PROCESS;
END test;
Рекомендуется придерживаться следующего порядка работы:
I. Моделирование
1. Запустить моделирующую программу (QuestaSim или ModelSim).
2. Создать в системе моделирования новый проект, включив в него файл Tb_Lab2.vhd, а также файлы Lab21.vhd, Lab22.vhd и Lab23.vhd . Изменить тексты программ в файлах Lab2*.vhd так, чтобы реализовать в каждой из них одну из функций таблицы 2.1 по заданию преподавателя.
3. Выполнить компиляцию проекта Tb_Lab2.vhd со встроенным компонентом Lab21.
4. Запустить процедуру моделирования, вызвав опцию simulate системы моделирования. Открыть окна наблюдения source, signal, wave. После отладки проект сохранить в новом директории.
5. Выполнить моделирование в автоматическом режиме. Просмотреть временную диаграмму, убедиться в правильности реализации логической функции.
6. Повторить пункты 3 – 5 для компонента Lab22. Объяснить получаемую реализацию.
7. Повторить пункты 3 – 5 для компонента Lab23. Объяснить получаемую реализацию.
II. Синтез и имплементация.
1. Открыть пакет Quartus II (версия задается преподавателем).
2. Создать новый проект – File / New Project Vizard, указав созданный директорий и программу lab2.vhd.
3. Компилировать проект (Processing / Start Compilation), опираясь на данные о ПЛИС, соответствующие используемому учебному стенду (Assigments / Device)
4. Оценить затраты на реализацию проекта Processing / Compilation Report.
5. Просмотреть RTL вид проекта и его топологическую реализацию – Tools / RTL View – Tools / Technology Map View.
6. Задать номера контактов ИС, соответствующие подключению учебной платы DE0. Подключить к контактам ИС x0, x1 x2 переключатели SW, а к контакту z Led.
7. Выполнить компиляцию проекта с назначенными контактами.
8. Загрузить в ИС полученный загрузочный файл проекта и проверить работоспособность разработки.
9. Повторить пункты 2 – 8, перестроив программу Tb_Lab2.vhd, чтобы она включала компонент Lab22.
10. Повторить пункты 2 – 8, перестроив программу Tb_Lab2.vhd, чтобы она включала компонент Lab23.
11. Объяснить расхождение поведения проектов.
12. Имплементировать проект в ИС учебного стенда
13. Проверить реальную работу загруженной программы
Содержание отчета по теме:
- Порядок и результаты синтеза устройств по пп. 1, 8, 9.
- Тексты всех разработанных версий программы с комментарием вносимых изменений.
- Временные диаграммы результатов моделирования.
- 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.