БАЛАШ_Лабораторная работа_3_08 (1274894), страница 2
Текст из файла (страница 2)
Qbar <= not(D) after 5 ns; -- назначение сигнала Qbar
end if;
end process;
end REDFF_behavior_1;
Редактор HDL упрощает составление описания, позволяя:
-
автоматически завершать ключевые слова (Enter),
-
автоматически переносить шаблон оператора в окно Редактора HDL из Помощника по языку (Language Assistant),. Для этого после печати имени шаблона необходимо нажать Ctr+Enter.
Для проверки правильности VHDL описания необходимо провести трансляцию файла. Для этого необходимо выбрать выпадающее меню Design оболочки ACTIVE-HDL, а затем выбрать пункт Compile (или нажать F11). Если ошибок нет, то в нижнем окне Console Редактора HDL появится надпись
# Compile success 0 Errors 0 Warnings Analysis time : 1.0 [s]
П
ри наличии ошибок в этом окне появится надпись красного цвета, поясняющая характер ошибки. Заметим, что в окне Design Browser перед именем файла появляются различные значки ( ? – файл не транслирован,
- файл не содержит ошибок, ! – файл содержит ошибки ).
После исправления ошибок трансляцию необходимо повторить.
2. Испытательный стенд (VHDL Test Bench) Active - HDL
VHDL Испытательный Стенд (Test Bench) – специальная программа на VHDL, образующая верхний иерархический уровень модели. Эта программа создает необходимую последовательность входных сигналов и подключает графическое окно логического анализатора Waveform Viewer.
К созданию испытательного стенда необходимо приступать после написания и успешной трансляции текста VHDL описания цифрового устройства.
Для создания программы Test Bench необходимо выбрать в выпадающем меню Tools программы Active - HDL (рис. 5) опцию Generate Test Bench (создание испытательного стенда). В результате появится окно Помощника (Test Bench Generator Wizard) (рис. 11).
Рисунки 11 и 12. Окна Test Bench Generator Wizard
В окошках окажутся записанными название устройства (redff_1) и название архитектуры устройства (redff_bechavior_1). Нажав кнопку "Далее" получим следующее окно (рис. 12), в окошке которого можно указать имя существующего файла с описанием сигналов проверки. Если такого файла нет, то нужно нажать кнопку "Далее". Получим следующее окно Помощника (рис. 13), в окошках которого будут записаны имя файла системы Test Bench и имя папки, в которую он помещен.
Рисунки 13 и 14. Test Bench Generator Wizard
После нажатия кнопки "Далее" появится итоговое окно Помощника с перечислением созданных файлов (рис.14). Необходимо нажать кнопку "Готово".
В результате получим папку TestBench, содержащую шаблон файла Испытательного стенда redff_1_TB.vhd. Этот файл нужно перевести в окно Редактора HDL (кликнув по нему два раза). Содержательная часть шаблона VHDL описания Испытательного стенда имеет следующий вид (многочисленные строки комментариев удалены)
-------------------------------------------------------------------------------------------- Description : Automatically generated Test Bench for redff_1_tb
--------------------------------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
entity redff_1_tb is
end redff_1_tb;
architecture TB_ARCHITECTURE of redff_1_tb is
component redff_1 -- объявление проверяемого
port ( -- компонента redff_1
D : in std_logic;
C : in std_logic;
Q : out std_logic;
Qbar : out std_logic );
end component;
signal D : std_logic; -- объявление сигналов на входа и выходах
signal C : std_logic; -- проверяемого цифрового компонента
signal Q : std_logic;
signal Qbar : std_logic;
begin
UUT : redff_1 – конкретизация проверяемого компонента
port map (
D => D,
C => C,
Q => Q,
Qbar => Qbar
);
-- Add your stimulus here ...
end TB_ARCHITECTURE;
configuration TESTBENCH_FOR_redff_1 of redff_1_tb is
for TB_ARCHITECTURE
for UUT : redff_1
use entity work.redff_1(behavior_1);
end for;
end for;
end TESTBENCH_FOR_redff_1;
Этот автоматически сгенерированный файл является обычным VHDL описанием с именем redff_1_tb (входы и выходы отсутствуют !!!) и архитектурой с именем TB_ARCHITECTURE. В описание архитектуры этого файла входит компонент UUT : redff_1, являющийся описанием разработанного нами цифрового устройства (UUT – Unit Under Test). Файл redff_1_tb необходимо оттранслировать и поместить на верхний уровень иерархии файлов проекта.
Для организации иерархической структуры файлов проекта необходимо войти в меню Design, выбрать пункт Setting и в открывшемся окне Design Setting (пункт General) указать имя файла верхнего уровня.
Файл верхнего уровня можно выбрать и в выпадающем меню окна Design Browser (режим Структура Stru …).
Рисунок 15. Окна Design Setting и Design Browser, в которых можно указать имя файла верхнего уровня проекта.
3. Моделирование в Active – HDL.
До начала моделирования необходимо провести инициализацию проекта, выбрав опцию Initialize Simulation из выпадающего меню Simulation.
Очередным подготовительным этапом к моделированию является вызов и настройка графического окна для построения временных диаграмм New Waveform. Для этого необходимо выбрать иконку на верхней панели оболочки Active - HDL, вызывающую Waveform Editor (рис. 16).
П осле этого нужно перетащить мышкой из окна Design Browser имя файла redff_1_tb (tb_architecture) в окно Waveform Editor. В результате в этом окне автоматически будут указаны имена сигналов и сформированы оси для построения временных диаграмм.
Рисунок 16. Окна Design Setting и Waveform Editor, подготовленные к моделированию.
Указать необходимый набор сигналов в окне Waveform Editor можно также в выпадающем меню Waveform (пункт Add Signals). В появившемся графическом окне Add Signals необходимо выделить по очереди строки и добавить сигналы (нажать кнопку add)
Теперь необходимо сформировать входные сигналы D и C, соответствующие внешним воздействиям на моделируемое цифровое устройство. Для этого в окне Waveform Editor (рис. 16) выделяется мышкой необходимый сигнал (например, С), и нажимается правая кнопка мышки. В появившемся меню выбирается пункт Stimulators.
Рисунок 17. Графическое окно Stimulators.
Для формирования сигнала С выбираем тип сигнала Clock, определяющий последовательность импульсов. В окошках появившегося графического окна выбираем параметры этой последовательности: частота 10 МГц, длительности импульса и паузы по 50 нс (скважность импульсов 1).
Рисунок 18. Выбор параметров последовательности сигналов Clock.
Для подключения сигнала к модели необходимо нажать кнопку Apply.
Для формирования сигнала D можно также выбрать тип сигнала Clock и задать последовательность импульсов другой частоты, например 1 МГц. Однако для примера выберем второй тип сигнала Formula.
Рисунок 19. Выбор параметров сигнала Formula
Форма сигнала задается в окошках value и time offset по следующему правилу. Логический уровень сигнала (value) "1", время начала действия сигнала (time offset) – 0 нс, логический уровень сигнала (value) "0", время начала действия сигнала (time offset) – 1000 нс, логический уровень сигнала (value) "1", время начала действия сигнала (time offset) – 2000 нс, и т.д. Таким образом сигнал "1" действует на интервале 0 – 1000 нс, затем на интервале 1000 – 2000 нс действует сигнал "0" и т.д.
Форму сигнала можно прямо записать в нижнем окошке Enter formula этого окна. Для подключения сигнала к модели необходимо нажать кнопку Apply.
Сигналы типа formula удобно использовать для задания входных сигналов Reset, Preset и т.д. Время начала действия сигнала целесообразно выбирать 0 нс. Если время начала действия сигнала сдвинуть, например на 100 нс, то уровень сигнала на интервале 0 – 100 нс будет неопределенным, что не удобно при моделировании.
Т еперь проект полностью готов к моделированию. Необходимо установить время моделирования (например, 4000 ns) и нажать кнопку Run на верхней панели Waveform Editor. В результате получим результаты моделирования D-триггера в виде временной диаграммы сигналов на его входах и выходах.
Рисунок 20. Результаты моделирования D-триггера.
Временная диаграмма позволяет убедиться в правильности работы триггера и измерить его динамические параметры. Для удобства измерения можно изменить масштаб оси времени (окно view) или кнопки "+" и "–" на правой панели клавиатуры (режим Num Lock). Измерение параметров сигналов удобно проводить в режиме Measurement Mode окна Waveform. При работе в окне Waveform Editor (рис. 20) всем этим функциям соответствуют кнопки в верхней части графического окна.
Варианты заданий к лабораторной работе
1. D триггер с синхронизацией по заднему фронту и выходом с тремя состояниями.
(Falling Edge Tri-state Flipflop)
D триггер с выходом с тремя состояниями представляет собой объединение триггера и выходного буферного элемента, реализующего выход с тремя состояниями.