Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемИнга Томашова
1 ЛЕКЦИЯ Экскурс в язык описания аппаратуры VHDL
2 Язык VHDL. Почему он так называется? В шутку язык VHDL называют Very Huge Design Language – что переводится как Гигантский язык проектирования Поэтому военное ведомство США решилось выступить в роли спонсора при создании такого языка. Он получил название VHDL. В 1987 году появилась окончательная версия этого языка - VHDL87 В начале 80-х годов прошлого столетия военное ведомство США работало над программой VHSIC – создания сверхскоростных ИМС. Язык VHDL – от слов VHSIC HDL (Hardware Description Language) Аббревиатура VHSIC расшифровывается как Very-High-Speed Integrated Circuit - сверхскоростные интегральные схемы. При их проектировании обнаружилась необходимость точного учёта временных параметров ИМС, но подходящего языка для моделирования таких схем не было.
3 Язык VHDL используется во многих современных САПР, например OrCAD 9.1, Active-HDL 7.1, Xilinx ISE 6.2 Язык VHDL применяется для: Проектирование на VHDL не зависит от конкретной технологии реализации проекта VHDL имеет большое сходство с языком Ада и Паскаль. VHDL не имеет механизма наследования Скачок популярности и признания полезности VHDL произошёл с появлением коммерческих инструментов синтеза. Verilog имеет своим началом язык Си. документирования проектов;1 верификации проектов путём моделирования; 2 описания внешних воздействий (разработка тестов);3 высокоуровневого синтеза цифровой аппаратуры. 4
4 Объект проекта Особенности языка VHDL Любой VHDL-объект содержит две части: Интерфейс (сущность) – Entity (Port Declaration), который описывает взаимосвязи между объектом проекта и средой его «обитания». Это внешнее описание объекта. Интерфейс определяет «границы» модели, выделяя объект из окружения. Архитектура (архитектурное тело) – Architecture, которая описывает поведение компонента с функциональной или структурной точки зрения. Это внутреннее описание объекта. Чёрный ящик Функция, Структура, … ENTITYARCHITECTURE A B C D Y1 Y2Y2 Внешнее описание объекта Внутреннее описание объекта Name Объект проекта может иметь несколько архитектур. A B Y AND2 Объект проекта A B Y &
5 Модель логического элемента AND2 (VHDL87) Тип bit, используемый в первой редакции языка VHDL87, определён как type bit is ('0', '1'); Интерфейс Архитектура Имя объекта проектаВид сигнала Тип сигнала A B Y AND2_87 Выполняемая функция Объект проекта entity AND2_87 is port( A : in bit; B : in bit; Y : out bit ); end AND2_87; architecture model of AND2_87 is begin Y
6 Задержка распространения сигнала Комментарий Многозначная логика Модель логического элемента AND2 (VHDL93) library IEEE; use IEEE.STD_LOGIC_1164.all; entity AND2 is port( A : in std_logic; B : in std_logic; -- variable B : in std_logic; ERROR!!! signal Y : out std_logic ); end AND2; architecture delay_10 of AND2 is begin Y
7 Модель логического элемента AND2 с разными задержками по фронту и срезу выходного сигнала Реальный элемент AND2 в пакете OrCAD 9.1 называется 7408 PSpice - проект Simulate - проект I0 I1I1 O A B Y PSpice - модель Динамическая модель Разные задержки VHDL - модель В чём различие PSpice и Simulate объектов?
8 architecture delay_10 of AND2 is begin Y
9 architecture delay_10 of AND2 is begin Y
10 architecture delay_X_15_10 of AND2 is begin Y
11 Комментарий architecture truth_table of AND2 is type truth_table is array (0 to 3) of std_logic ; -- создаём новый тип constant table_and2 : truth_table:= -- создаём таблицу истинности ( -- Y -- B A '0', '0', '0', ' ); -- компактнее в строчку truth_table: = ('0','0','0','1'); signal TEMP : integer range0 to 3; signal BA : std_logic_vector (1 downto 0); begin BA
12 Модель логического элемента AND2 (VHDL93) Версия VHDL93 позволяет без всяких ухищрений имитировать высокоомный выход ('Z'), открытый коллектор ('H'), шинные структуры и прочие особенности реальной цифровой аппаратуры. Например, на время формирования фронта (среза) на выходе можно задать неизвестное значение X
13 Особенности языка VHDL VHDL позволяет создавать компоненты (модели) с настраиваемыми параметрами Существуют фирмы, продающие VHDL-модели стандартных микросхем. Проектирование VHDL-компонентов является технологически независимым. То есть разработчик может сосредоточиться на функциях проекта и не беспокоиться о реализации. Процесс синтеза похож на работу компилятора, который транслирует входной код в машинный. Синтезатор выполняет аналогичную работу – транслирует VHDL-код в принципиальную схему с вентилями и триггерами для заданной технологии. До сих пор, однако нельзя перемещать код, предназначенный для синтеза, между произвольными системами синтеза.
14 Модель логического элемента AND2 (VHDL93) с разными задержками (начало) library IEEE;-- с помощью ключевых слов Library и Use use IEEE.STD_LOGIC_1164.all;-- подключаем нужный пакет, в котором -- определён девятизначный алфавит entity and2_tpLH_tpHL is generic(tpLH : time := 15ns;-- настраиваемые параметры tpHL : time := 20ns); port( A : in STD_LOGIC; B : in STD_LOGIC; Y : out STD_LOGIC :='0' -- нужна начальная инициализация --Y : inout STD_LOGIC :='0' -- работает без Y'driving_value --Y : buffer STD_LOGIC :='0' –работает без Y'driving_value ); end and2_tpLH_tpHL;
15 Модель логического элемента AND2 (VHDL93) с разными задержками (окончание) architecture and2_tpLH_tpHL of and2_tpLH_tpHL is -- для ленивых begin PROCESS (A,B) variable Y_INT : std_logic; begin Y_INT:=A and B; -- Вычисляем выход без задержки if Y_INT='1' and Y'driving_value ='0' then --работает с Y'driving_value Y
16 Результаты моделирования элемента AND2 (VHDL93) с разными задержками
17 Модель генератора прямоугольных импульсов с периодом 200 ns (начало) library IEEE; use IEEE.STD_LOGIC_1164.all; entity gener is port (Y : out STD_LOGIC);-- Y выходной порт end gener; architecture gener of gener is constant stop_gen : time :=1100ns; -- задаём время останова signal done : std_logic; -- сигнал окончания работы begin
18 Модель генератора прямоугольных импульсов с периодом 200 ns (окончание) GEN_PR: process -- моделирует работу генератора begin if NOW=0ns then Y
19 Инерционная и транспортная задержки В языке VHDL в оператор назначения
20 Модель элемента AND2 с инерционной и транспортной задержками. Резекция library IEEE; use IEEE.STD_LOGIC_1164.all; entity and2_I_T is port( A : in STD_LOGIC; B : in STD_LOGIC; Y_I, Y_T, Y_I_R : out STD_LOGIC); end and2_I_T; architecture and2_I_T of and2_I_T is begin Y_I
21 Результаты моделирования элемента AND2 с инерционной и транспортной задержками Порог резекции должен быть меньше задержки элемента
22 Отыскание «иголок» (glitch) library IEEE; use IEEE.STD_LOGIC_1164.all; entity and2_glitch is port( A : in STD_LOGIC; B : in STD_LOGIC; Y : out STD_LOGIC ); end and2_glitch; architecture and2_glitch of and2_glitch is signal Y_I, Y_T : std_logic; begin Y_I
23 Отыскание «иголок» (glitch). Результаты моделирования
24 Контроль минимальной длительности импульса library IEEE; use IEEE.STD_LOGIC_1164.all; entity buffer_my is port (A : in STD_LOGIC; Y : out STD_LOGIC); end buffer_my; architecture model of buffer_my is begin PROCESS (A) variable t_event : time :=0ns; --переменная t_event инициализируется нулём begin if now > 8ns then assert (now - t_event >= 8ns) report violation minimum A" severity ERROR; end if; t_event:=now; end process; Y
25 Контроль минимальной длительности импульса. Результаты моделирования
26 Контроль времени предустановки на входе D-триггера library IEEE; use IEEE.STD_LOGIC_1164.all; entity DFF_setup is port (D, C : in STD_LOGIC; Q : out STD_LOGIC); end DFF_setup; architecture DFF_setup of DFF_setup is begin process (C) begin if C='1' and C'EVENT then -- атрибут C'EVENT не обязателен if (D'last_event>=10ns) then Q
27 Контроль времени предустановки на входе D-триггера. Результаты моделирования
28 Модель сумматора add_4 (начало) library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all;-- добавил для арифм. операций entity add_4 is port( CI : in STD_LOGIC; A : in STD_LOGIC_VECTOR(3 downto 0); B : in STD_LOGIC_VECTOR(3 downto 0); CO : out STD_LOGIC; S : out STD_LOGIC_VECTOR(3 downto 0) ); end add_4;
29 Модель сумматора add_4 (окончание) architecture add_4 of add_4 is begin process (A, B, CI) variable TEMP_RESULT : std_logic_vector(4 downto 0); begin TEMP_RESULT:=('0' & A) + ('0' & B) + CI;-- конкатенация --S
30 Результаты моделирования сумматора add_4
31 Модель регистра reg_4 (начало) library IEEE; use IEEE.STD_LOGIC_1164.all; entity reg_4 is port ( DL : in STD_LOGIC; C : in STD_LOGIC; R : in STD_LOGIC; Q : out STD_LOGIC_VECTOR(3 downto 0) ); end reg_4;
32 Модель регистра reg_4 (окончание) architecture reg_4 of reg_4 is signal TEMP_Q : std_logic_vector(3 downto 0); begin process (C, R) begin if R = '1' then TEMP_Q '0'); -- сброс elsif rising_edge (C) then --фронт сигнала C TEMP_Q
33 Результаты моделирования регистра reg_4
34 Модель счётчика count_M9_IP (начало) library IEEE; use IEEE.std_logic_1164.all; entity count_M9_IP is port ( C : in std_logic; R : in std_logic; Q : out std_logic_vector (3 downto 0) ); end entity;
35 Модель счётчика count_M9_IP (окончание) library IEEE; use IEEE.std_logic_unsigned.all;-- для арифметических операций architecture count_M9_IP of count_M9_IP is signal TEMP_Q : std_logic_vector(3 downto 0); begin process (C, R) begin if R = '1' then TEMP_Q '0'); -- можно и так Q
36 Результаты моделирования счётчика count_M9_IP
37 Особенности языка VHDL Первая особенность – тяжеловесность В языке определены 97 ключевых слов (стандарт VHDL93) Для сравнения в языке PML их всего 11 В языке Verilog - 73
38 Особенности языка PML Вторая особенность – многозначный алфавит Алфавит сигнала типа std_logic: (U,X,0,1,Z,W,L,H,-) Девять значений VHDL93 VHDL87 Двузначный алфавит (исключение) type bit is ('0', '1'); Кроме того, пакет std_logic_1164 включает подтип X01Z с четырёхзначным алфавитом (как в языке Verilog) Имеются функции преобразования 9-значного алфавита в 4- значный и наоборот. Более того, пользователь может самостоятельно определить рабочий алфавит сигналов и число различных значений в нём
39 Особенности языка VHDL В языке PML определены четыре значения логической силы В языке Verilog – восемь значений Третья особенность – логическая сила в языке VHDL не определена Нагрузочную способность в языке VHDL можно описать только косвенным образом: сильным (Forcing) или слабым (Weak) сигналом Forcing / Weak X / W 0 / L 1 / H Z – High Impedance
40 Особенности языка VHDL Язык VHDL позволяет непосредственно запрограммировать временную задержку, с которой входной сигнал передаётся на выход. Четвёртая особенность – имитация задержек Y_I
41 Особенности языка VHDL Пятая особенность – стили описания Язык VHDL поддерживает все стили описание объекта Функциональное (аналитическое или алгоритмическое) Потоковое Структурное Смешанное
42 Стили описания проекта Да Library IEEE; Use IEEE.std_logic_1164.all; entity MUX2 is port ( D0, D1, A : in std_logic; Y : : out std_logic); end MUX2; architecture FUNC of MUX2 is -- аналитическое begin -- описание функции объекта Y
43 Стили описания проекта architecture BEHAV of MUX2 is begin process (D0, D1, A) -- алгоритмическое begin-- описание функции объекта if A='0' then Y
44 Стили описания проекта (структурное)
45 Стили описания проекта architecture STRUCT of MUX2 is -- структурное описание объекта component INVR -- объявления компонентов port (IN1:in std_logic; OUT1 : out std_logic); end component; component AND2 generic (TPLH : time:=20ns; TPHL : time:=22ns); port (IN1, IN2:in std_logic; OUT1: out std_logic); end component; component OR2 port (IN1, IN2:in std_logic; OUT1: out std_logic); end component; signal F1, F2, F3 : std_logic; --объявление внутренних сигналов
46 Стили описания проекта (структурное) Begin -- структурное описание объекта -- позиционное связывание DD1 : AND2generic map (10ns,12ns) --карта настройки задержек port map (IN1=>D0, IN2=>F1, OUT1=>F2); -- карта порта DD2 : OR2port map (IN1=>F2, IN2=>F3, OUT1=>Y); DD3 : AND2generic map (TPHL=>15ns,TPLH=>11ns) -- поимённое port map (D1, A, F3); -- связывание DD4 : INVRport map (IN1=>A, OUT1=>F1); end STRUCT; Поимённое связывание Позиционное связывание: задержек, портов и цепей
47 Особенности языка VHDL Шестая особенность – сигналы и шины
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.