Задержки указанные в описании компоненты KP1533TM9
(Tplhc:time:=15 * TD ;
их мажорируют.
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE work.m_prims.all;
ENTITY KP1533TM9 IS
GENERIC (Tplhc:time:=15 ns; -- время задержки распространения сигнала при выключении по C
Tphlc:time:=17 ns); -- время задержки распространения сигнала при включении по C
PORT (D1 : IN std_logic;
D2 : IN std_logic;
D3 : IN std_logic;
D4 : IN std_logic;
D5 : IN std_logic;
D6 : IN std_logic;
C : IN std_logic;
R1 : IN std_logic;
Q1 : OUT std_logic;
Q2 : OUT std_logic;
Q3 : OUT std_logic;
Q4 : OUT std_logic;
Q5 : OUT std_logic;
Q6 : OUT std_logic);
END KP1533TM9;
ARCHITECTURE model OF KP1533TM9 IS
BEGIN
DQFFC_16 : m_DQFFC
GENERIC MAP (trise_clk_q=>Tplhc, tfall_clk_q=>Tphlc)
PORT MAP (q=>Q1 , d=>D1 , clk=>C , cl=>R1 );
DQFFC_17 : m_DQFFC
GENERIC MAP (trise_clk_q=>Tplhc, tfall_clk_q=>Tphlc)
PORT MAP (q=>Q2 , d=>D2 , clk=>C , cl=>R1 );
DQFFC_18 : m_DQFFC
GENERIC MAP (trise_clk_q=>Tplhc, tfall_clk_q=>Tphlc)
PORT MAP (q=>Q3 , d=>D3 , clk=>C , cl=>R1 );
DQFFC_19 : m_DQFFC
GENERIC MAP (trise_clk_q=>Tplhc, tfall_clk_q=>Tphlc)
PORT MAP (q=>Q4 , d=>D4 , clk=>C , cl=>R1 );
DQFFC_20 : m_DQFFC
GENERIC MAP (trise_clk_q=>Tplhc, tfall_clk_q=>Tphlc)
PORT MAP (q=>Q5 , d=>D5 , clk=>C , cl=>R1 );
DQFFC_21 : m_DQFFC
GENERIC MAP (trise_clk_q=>Tplhc, tfall_clk_q=>Tphlc)
PORT MAP (q=>Q6 , d=>D6 , clk=>C , cl=>R1 );
END model;
Обратим внимание на следующие строки.
DQFFC_16 : m_DQFFC
GENERIC MAP (trise_clk_q=>Tplhc, tfall_clk_q=>Tphlc)
PORT MAP (q=>Q1 , d=>D1 , clk=>C , cl=>R1 );
Здесь идёт обращение к примитиву m_DQFFC из пакета m_prims ( см. файл m_prims.vhd). Для понимания работы модели Д-триггера m_DQFFC , откройте фал m_prims.vhd и посмотрите описание m_DQFFC.
Регистры с трёхстабильными выходами в своем описании используют примитив m_tsb пакета m_prims. Советуем ознакомиться с файлом m_prims.vhd.
Для более компактного, чем имеет место быть в используемых библиотеках, описания моделей микросхем можно использовать развитые средства VHDL- оператор generate и др. Сравните библиотечное описание регистра ИР22 и приведенное ниже
Пример описания регистра ИР22 с использованием оператора generate
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE work.m_prims.all;
ENTITY KP1533IR22 IS
GENERIC (Tplh:time:=12 ns;
Tphl:time:=16 ns;
Tpzh:time:=40 ns;
Tpzl:time:=30 ns;
NN: positive := 8
);
PORT (D0 : IN std_logic;
D1 : IN std_logic;
D2 : IN std_logic;
D3 : IN std_logic;
D4 : IN std_logic;
D5 : IN std_logic;
D6 : IN std_logic;
D7 : IN std_logic;
C : IN std_logic;
EZ : IN std_logic;
Q0 : OUT std_logic;
Q1 : OUT std_logic;
Q2 : OUT std_logic;
Q3 : OUT std_logic;
Q4 : OUT std_logic;
Q5 : OUT std_logic;
Q6 : OUT std_logic;
Q7 : OUT std_logic);
END KP1533IR22;
ARCHITECTURE model OF KP1533IR22 IS
SIGNAL L1 : std_logic;
SIGNAL N1 : std_logic;
SIGNAL N2 : std_logic;
SIGNAL N3 : std_logic;
SIGNAL N4 : std_logic;
SIGNAL N5 : std_logic;
SIGNAL N6 : std_logic;
SIGNAL N7 : std_logic;
SIGNAL N8 : std_logic;
signal N,D,Q : std_logic_vector(1 to NN);
BEGIN
N<=(N1 & N2& N3 & N4 & N5 & N6 & N7 & N8);
(Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7)<=Q;
D<=(D0, D1, D2, D3, D4, D5, D6, D7);
L1 <= NOT ( EZ );
G1: for i in 1 to NN generate
DLATCH_3 : m_DLATCH
GENERIC MAP (trise_clk_q=>0 ns, tfall_clk_q=>0 ns)
PORT MAP (q=>N(i) , d=>D(i) , enable=>C );
end generate;
G2: for j in 1 to nn generate
TSB_142 : m_TSB
GENERIC MAP (trise_i1_o=>Tphl, tfall_i1_o=>Tplh, tpd_en_o=>Tpzl, Tpd_en_1=>Tpzh)
PORT MAP (O=>Q(j) , i1=>N(j) , en=>L1 );
end generate;
END model;
3)КАК ПОДКЛЮЧАТЬ БИБЛИОТЕКИ к вашему проекту?
Использовать библиотеки можно с применением разных приемов:
1)Либо включая их файлы в состав проекта и заново транслируя их, начиная с файла m_prims.vhd.Потом, например, КР15ХХ.vhd,- при этом автоматически пакет включается в рабочую библиотеку проекта- по умолчанию WORK,
2) либо один раз, протранслировав его и включив его в библиотеку пользователя.
Последовательность действий при создании и подключении библиотеки пользователя в системе ISIM смотрите в руководстве по системе:
4 . Как пользоваться схемным редактором ?
Помимо алгебраической формы описания схем, использовавшейся в ранее приведенных примерах, можно использовать графическую форму.
Графические редакторы имеются в САПР ISe и САПР ACTIVE-HDL
Типичный порядок действий.
1.Создание графических образов элементов из их HDL-описаний
2.создание на экране поля для рисунка схемы.
3.перенос на экран изображений элементов.
4 соединение элементов проводниками
5.сохранение рисунка схемы в файле.
Для графического редактора САПР ISE это выглядит примерно так:
Создаю новый проект- например с именем prim_sh и указываю его каталог.
Создаю новый файл его описания. Project> new source >shematics
Указываю этим, что использую схемное описание SHEMATICS(а не HDL описание )- файлы схем имеют раснирение .sch
Появляется поле для рисунка в схемном редактора и внизу его
Строка с design,files,libraries,symbol.
Подключаю к проекту библиотеку kr1533.vhd ,указывая путь к файлам и копируя в него все или не все выделенные файлы
Для этого Project>add copy of sourсe
Выделяю нужный элемент в списке элементов библиотеки.
Например KR1533IR37.vhd
В DESIGN UTILITYes выбираю CREATE SHEMATICS
Выбираю sYMBOLS и смотрю, появился ли среди стандартных символов элементов ПЛИС Спартан 3 новый с названием KR1533IR37.
И так создаю символы для всех используемых в схеме элементов.
Начинаю рисовать схему из этих элементов.
Выделяю элемент курсором и переношу на поле схемы- появляется изображение элемента в форме прямоугольника.
Переношу в поле схемы символы всех нужных элементов на нужное место
В вертикальном меню справа от рисунка схемы пиктограммы операций-
Соединяю элементы проводниками-wire или шинами bus
Добавляю в рис.схемы порты ввода-вывода ADD IO Markers-
Проверяю правильность рисунка CHECK DESIGN RULES
Сохраняю файл схемы
СОЗДАЮ ТЕСТБЕНЧ Project> new source>vhdl testbench
Указываю для какого модуля создается-
И тд
ЛАБОРАТОРНАЯ РАБОТА № 2