РУКОВ_по_использ_библ_ элементов (Методички для ACTIVE-HDL)
Описание файла
Файл "РУКОВ_по_использ_библ_ элементов" внутри архива находится в следующих папках: МЕТОДИЧКИ_для_ACTIVE-HDL, Дополнительные материалы. Документ из архива "Методички для ACTIVE-HDL", который расположен в категории "". Всё это находится в предмете "схемотехника" из 2 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. .
Онлайн просмотр документа "РУКОВ_по_использ_библ_ элементов"
Текст из документа "РУКОВ_по_использ_библ_ элементов"
НИУ Московский Энергетический Институт
Кафедра
Вычислительных Машин Систем и Сетей
Руководство к использованию библиотек элементов
(Версия 2015-)
Доц. Поляков А.К.
Москва, МЭИ, . 2015
-
ОБЩИЕ СВЕДЕНИЯ
А)МОДЕЛИ ЛОГИЧЕСКИХ ЭЛЕМЕНТОВ
Имеется четыре VHDL библиотеки структурных моделей микросхем :
микросхемы КР1533 (пакет КР1533),
микросхемы КР1554(пакет КР1554), ,
обобщенная библиотека 15ХХ- узлов типа 1533-1554(частей микросхем),
библиотека моделей зарубежных микросхем серии 74ХХ
В ЛАБОРАТОРНОМ ПРАКТИКУМЕ ДИСТАНЦИОННОГО ОБУЧЕНИЯ ИСПОЛЬЗУЕТСЯ только ЧАСТЬ ЭЛЕМЕНТОВ БИБЛИОТЕКИ 15ХХ- не корпуса микросхем , а элементы.
----------------------------------------------------
Б)МОДЕЛИ ГЕНЕРАТОРОВ сигналов
Для упрощения создания тестирующих программ- тест бенчей
Имеется библиотека типовых источников – генераторов сигналов
-- К типовым источникам сигналов относятся
--CEN_1 постоянная 1
--CEN_0 постоянный 0
-- GEN_RST - Источник асинхронного сигнала сброса
--GEN_CLK-- тактовый генератор
-- GEN_ CNT-- генератор векторного сигнала с выходов счетчика
--GEN_SHIFT-- генератор вектора- сдвигаемой единицы
--GEN_ABCD_SEQ -- генератор скалярных сигналов авсд, снимаемых с выходов счетчика
----GEN_RST - Источник асинхронного сигнала сброса
-- GEN_VECT_SYN-- синхронный генератор векторных выходов 4 разр счетчика ,запускается после сигнала сброса
Ниже интерфейсы ряда генераторов сигналов из которых ясны их стандартные временные параметры
ENTITY CEN_RST is GENERIC (
Tstart:time:=30 ns;
Tdlit:time:=30 ns;
Poliarnost : std_logic:='1'
);
PORT ( RST : OUT std_logic);
end ;
ENtity GEN_CLK is
GENERIC (Tperiod:TIME:=40 ns;
T_1: TIME:= 20 ns );
PORT (CLK:out std_logic );
end;
entity GEN_ABCD_SEQ is
GENERIC ( M: positive :=4; Tperiod: TIME:= 40 ns;
Tpd: TIME:=1 ns);
port( A,B,C,D: out std_logic
);
end ;
ENTITY GEN_SHIFT1_VECT is
GENERIC (M:integer:=4; Tpd:TIME :=1 ns);
PORT( C :IN STD_LOGIC;
R : IN STD_LOGIC :='1';
VECTOR:OUT STD_LOGIC_VECTOR(M-1 downto 0));
END;
В) МОЛЕЛИ ЛОГИЧЕСКИХ ЯЧЕЕК ПЛИС ТИПА FPGA
entity LUT_3_AND is
generic(
init : STD_LOGIC_VECTOR( 7 DOWNTO 0 ) := "10000000";
Tpd : TIME := 11 ns
);
port(
x1 : in STD_LOGIC;
x2 : in STD_LOGIC;
x3 : in STD_LOGIC;
y : out STD_LOGIC
);
end LUT_3_AND;
entity LUT_4 is
generic(
init : STD_LOGIC_VECTOR( 15 DOWNTO 0 ) := "1000000000000000";
Tpd : TIME := 8 ns
);
port(
x1 : in STD_LOGIC;
x2 : in STD_LOGIC;
x3 : in STD_LOGIC;
x4 : in STD_LOGIC;
y : out STD_LOGIC
);
end LUT_4;
-
СТРУКТУРА МОДЕЛЕЙ ЛОГИЧЕСКИХ ЭЛЕМЕНТОВ
Термин структурная модель означает, что модель отображает функциональную схему элемента и состоит из соединений примитивов типа И,ИЛИ, Д-триггер и т.п. Модели примитивов находятся в библиотеке m_prims, и этот пакет необходимо включать в проект вместе библиоткой микросхем.
Библиотека узлов - логических элементов-частей микросхем - это пакет 15XX - файл 15XX.vhd.
Во все библиотеки только с целью моделирования добавлены несинтезабельные модели двух элементов - RC цепочки-задержки и AG3 - одновибратора. Они использовались несколько лет назад при моделировании Курсовых проектов ЗУ в которых применялись эти цепочки для реализации задержек, а не счетчики.
Во всех библиотеках наряду со скалярными моделями элементов имеются и их векторные модели. Их применение позволяет более компактно описывать схемы с шинными связями. Векторные имена моделей элементов отличаются от их скалярных аналогов наличием суффикса _V в именах. Например, IR22 и IR22_V.
В векторных моделях, например, регистра ИР22_V можно на вход D подавать 8 разрядный вектор, а не описывать поразрядную связь с 8 сигналами данных на входах и выходах регистра и т.п. Векторизация сокращает трудоемкость подготовки и обьем описаний схем.
Библиотеки в основном ориентированы на моделирование и синтез схем управления и обработки данных в курсовых проектах по ЗУ. Включены в них в основном лишь модели микросхем, используемых в курсовых проектах кафедры ВМСС МЭИ по курсу ЗУ. В версии, где модели микросхем описаны в виде корпусов, выводы питания и земли исключены, обозначения выводов корпуса приближено к обозначениям выводов корпусов, указанных в СПРАВОЧНИКе по микросхемам КР1533-КР1554 из-ва БИНОМ,1993 г. Библиотека не включает микросхемы с открытым коллектором.
.
Модели элементов структурные, те построены как схемы(приведенные в справочниках) из базовых элементов- примитивов пакета m_prims, таких как Д-триггер и т.п. В моделях используется 9 –значный алфавит моделирования пакета STD_LOGIC_1164.
Отметим, что при появлении на входах библиотечных элементов высокоимпедансных - Z сигналов, они воспринимаются в моделях как неопределенные - X.Можно неиспользуемые входы элементов не подключать, но это не рекомендуется правилами схемотехники ( для ряда технологий - ТТЛ висящий в воздухе вход =1, хотя такой режим не рекомендован - шину обычно подтягивают к земле или питанию, желающим учесть эти тонкости следует проверить библиотеку на таких сигналах (слабый 0,слабая 1) и, может, им придется поправить модели).
Если триггера не сброшены, то на выходах их моделей имеем U.
Все модели синтезабельны (кроме RC-цепочек и одновибратора АГ3), т.е. проходят через систему синтеза в базисе ПЛИС, но не все полученные из сделанных из структурных описаний микросхем синтезатором САПР ПЛИС схемы счетчиков и сдвигателей в базисе ПЛИС эффективны.
Модели элементов библиотеккак отмечалось, строятся структурно на базе вспомогательного пакета m_prims, в котором описаны примитивы, из которых строятся структурные модели микросхем(D,JK триггера и т.п.).
Таким образом, пользователь в модели своего устройства всегда, кроме стандартных пакетов IEEE, подключает два пакета. Например, компилирует комбинацию в виде двух файлов KP1533.vhd (пакет- KP1533-корпусные модели) и файл m_prims.vhd (пакет примитивов m_prims), и в заголовке модели своего устройства описывает подключение (USE) двух соответствующих пакетов.
В файле KP1533.vhd находятся описания моделей элементов (входные, выходные порты, временные задержки, функции моделей), а в m_prims.vhd примитивы (триггера, защелки и т.п.), из которых строятся модели сложных
микросхем.
Второй пример - Файл с элементами ( модели узлов ,а не корпусов микросхем)без корпусов КР15ХХ.vhd (пакет КР15ХХ) и файл m_prims.vhd (пакет примитивов m_prims).
2) КАК УСТРОЕНЫ И КАК ИСПОЛЬЗОВАТЬ БИБЛИОТЕКИ ?
2.1.Модели элементов
Обращаем внимание на то, что при использовании в проекте библиотек-пакетов нет необходимости в описании в проекте их компонент - они описаны в пакетах!
ПРИМЕР МОДЕЛИ цепочки счетчиков, ИСПОЛЬЗОВАВШЕЙСЯ ДЛЯ ТЕСТИРОВАНИЯ МОДЕЛЕЙ узлов-СЧЕТЧИКОВ библиотеки КР15ХХ._ Сравнивались скалярные и векторные модели
----------------------------------------------------------------------------------
-- Company:
-- Engineer: POLIAKOV-AGAFONOV
-- Create Date: 02:23:34 10/26/2007
-- Design Name:
-- Module Name: CNT - Behavioral
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use work.KP15xx.all;
entity CNT is
Port ( clk : in STD_LOGIC;
ECR : in STD_LOGIC;
ECT : in STD_LOGIC;
nEWR : in STD_LOGIC;
nR : in STD_LOGIC;
q1 : out STD_LOGIC_VECTOR (0 to 7);
q2 : out STD_LOGIC_VECTOR (0 to 7);
q1_v : out STD_LOGIC_VECTOR (0 to 7);
q2_v : out STD_LOGIC_VECTOR (0 to 7)
);
end CNT;
architecture Behavioral of CNT is
SIGNAL wire_CR1: STD_LOGIC;
SIGNAL wire_CR2: STD_LOGIC;
SIGNAL wire_CR1_v: STD_LOGIC;
SIGNAL wire_CR2_v: STD_LOGIC;
begin
--скалярные модели
DD1: IE10 PORT MAP ( D1=>'0', D2=>'1', D4=>'0', D8=>'0', ECT=>ECT, ECR=>ECR, C=>clk, EWR=>nEWR, R=>nR,
Q1=>q1(0), Q2=>q1(1), Q4=>q1(2), Q8=>q1(3), CR=>wire_CR1);
DD2: IE9 PORT MAP ( D1=>'0', D2=>'1', D4=>'0', D8=>'0', ECT=>wire_CR1, ECR=>wire_CR1, C=>clk, EWR=>nEWR, R=>nR,
Q1=>q1(4), Q2=>q1(5), Q4=>q1(6), Q8=>q1(7));
DD3: IE18 PORT MAP ( D1=>'0', D2=>'1', D4=>'0', D8=>'0', ECT=>ECT, ECR=>ECR, C=>clk, EWR=>nEWR, R=>nR,
Q1=>q2(0), Q2=>q2(1), Q4=>q2(2), Q8=>q2(3), CR=>wire_CR2);
DD4: IE11 PORT MAP ( D1=>'0', D2=>'1', D4=>'0', D8=>'0', ECT=>wire_CR2, ECR=>wire_CR2, C=>clk, EWR=>nEWR, R=>nR,
Q1=>q2(4), Q2=>q2(5), Q4=>q2(6), Q8=>q2(7));
---------------------------------------------------------векторные модели
DD1_V: IE10_V PORT MAP ( D=>"0100",--D1=>'0', D2=>'1', D4=>'0', D8=>'0',
ECT=>ECT, ECR=>ECR, C=>clk, EWR=>nEWR, R=>nR,
Q=>q1_v(0 to 3), --Q1=>q1(0), Q2=>q1(1), Q4=>q1(2), Q8=>q1(3),
CR=>wire_CR1_v
);
DD2_V: IE9_V
PORT MAP (D=>"0100", --D1=>'0', D2=>'1', D4=>'0', D8=>'0',
ECT=>wire_CR1, ECR=>wire_CR1_v, C=>clk, EWR=>nEWR, R=>nR,
Q=>q1_v(4 to 7) --Q1=>q1(4), Q2=>q1(5), Q4=>q1(6), Q8=>q1(7)
);
DD3_V: IE18_V
PORT MAP ( D=>"0100",--D1=>'0', D2=>'1', D4=>'0', D8=>'0',
ECT=>ECT, ECR=>ECR, C=>clk, EWR=>nEWR, R=>nR,
Q=>q2_v(0 to 3),--Q1=>q2(0), Q2=>q2(1), Q4=>q2(2), Q8=>q2(3),
CR=>wire_CR2_v
);
DD4_V: IE11_V
PORT MAP ( D=>"0100",--D1=>'0', D2=>'1', D4=>'0', D8=>'0',
ECT=>wire_CR2_v, ECR=>wire_CR2_v, C=>clk, EWR=>nEWR, R=>nR,
Q=>q2_v(4 to 7) --Q1=>q2(4), Q2=>q2(5), Q4=>q2(6), Q8=>q2(7)
);
end Behavioral;
Как реализованы модели элементов в библиотеках?
Отметим, что это нужно только тем, кто хочет их менять или делать новые модели элементов. Модели счетчиков и регистров реализованы структурно- из примитивов пакета m_prims. Их синтез в базисе плис может порождать неэффективные схемы (c так называемым управляемым тактовым сигналом).
.
Пример описания модели корпуса микросхемы KP1533LA3:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY KP1533LA3 IS
GENERIC (Tp:time:=10 ns); -- время задержки распространения сигнала
PORT (I1_1 : IN std_logic;
I1_2 : IN std_logic;
I2_1 : IN std_logic;
I2_2 : IN std_logic;
I3_1 : IN std_logic;
I3_2 : IN std_logic;
I4_1 : IN std_logic;
I4_2 : IN std_logic;
O1 : OUT std_logic;
O2 : OUT std_logic;
O3 : OUT std_logic;
O4 : OUT std_logic);
END KP1533LA3;
ARCHITECTURE model OF KP1533LA3 IS
BEGIN
O1 <= NOT ( I1_1 AND I1_2 ) AFTER Tp;
O2 <= NOT ( I2_1 AND I2_2 ) AFTER Tp;
O3 <= NOT ( I3_1 AND I3_2 ) AFTER Tp;
O4 <= NOT ( I4_1 AND I4_2 ) AFTER Tp;
END model;
Пример описания функции 2ИНЕ- LA3:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY LA3 IS
GENERIC (Tp:time:=10 ns); -- âðåìÿ çàäåðæêè ðàñïðîñòðàíåíèÿ ñèãíàëà
PORT (I1_1 : IN std_logic;
I1_2 : IN std_logic;
O1 : OUT std_logic
);
END LA3;
ARCHITECTURE model OF LA3 IS
Begin
O1 <= NOT ( I1_1 AND I1_2 ) AFTER Tp;
End;
В примере Tp – это средняя задержка сигнала.
Не забываем после ENTITY X (X – название элемента) заново описать интерфейс элемента - временные параметры и входные и выходные порты. Описание непосредственно логики работы начинается после ARCHITECTURE:
ARCHITECTURE model OF KP1533LA3 IS
BEGIN
-- далее описываете функции