ЛЕКЦИЯ 16 02.06.08 Экскурс в язык описания аппаратуры VHDL.

Презентация:



Advertisements
Похожие презентации
ЛЕКЦИЯ Язык описания аппаратуры VHDL.
Advertisements

ЛЕКЦИЯ Экскурс в язык описания аппаратуры VHDL.
Язык Verilog, основные особенности. Сравнение с языком VHDL. Модель логического элемента на Verilog. ЛЕКЦИЯ N
ОСНОВЫ ЯЗЫКА VHDL 1. Структурное представление проекта 2 Язык VHDL предоставляет возможность структуризации описания так называемые структурные архитектурные.
ОСНОВЫ ЯЗЫКА VHDL 1. Описание цифровых автоматов 2 Общие сведения об автоматах Устройства, содержащие элементы памяти (ЭП), имеют некоторое внутреннее.
ЯЗЫКИ ОПИСАНИЯ ДИСКРЕТНЫХ УСТРОЙСТВ 1. HDL-программа как модель проектируемого устройства 2 Языковое описание устройства - это текст, сохраняемый в одном.
ОСНОВЫ ЯЗЫКА VHDL 1. Описание типовых дискретных устройств 2 Комбинационные логические схемы Представление функции в форме бинарного дерева решений основано.
Основы языка VHDL Московский Государственный Университет Приборостроения и Информатики.
ЛЕКЦИЯ Язык моделирования PML. Язык поведенческого моделирования PML На этом языке можно создавать функциональные и поведенческие модели цифровых.
2007Архитектура ЭВМ1 VII. Элементы и узлы ЭВМ Триггеры Одноступенчатый асинхронный RS-триггер Триггер – логический элемент, который может находиться в.
ЛЕКЦИЯ Тема 3. Языки и системы моделирования Языки логического моделирования (ЯЛМ) Отличия ЯЛМ от языков программирования Краткий обзор ЯЛМ.
ЛЕКЦИЯ Языки описания аппаратуры. Детерминистский и системный подходы к описанию объекта Мы уже знаем (лекция 2), что существуют два подхода.
Магистрант ММФ БГУ Колб А. И. Научный руководитель: к. т. н., доцент, доцент кафедры УМФ Степанец Владимир Яковлевич, Научный руководитель: к. т. н., доцент,
ПРОЕКТИРОВАНИЕРучноеАвтоматическое Автоматизированное (САПР) ЧеловекМашинаЧеловек + Машина.
Реклама дисциплины «Моделирование» Единство и борьба противоположностей Единство и борьба противоположностей Материя первична, сознание вторично Материя.
ЛЕКЦИЯ Тема 3. Языки и системы моделирования Языки логического моделирования (ЯЛМ) Отличия ЯЛМ от языков программирования Языки описания аппаратуры.
Date: Filename:SCL_3e.1 SIMATIC S7 Siemens AG All rights reserved. Создание и вызов блоков.
СОБОЛЕВ Сергей Сергеевич ЗОЛЬНИКОВ Владимир Константинович КРЮКОВ Валерий Петрович СОБОЛЕВ Сергей Сергеевич ЗОЛЬНИКОВ Владимир Константинович КРЮКОВ Валерий.
V.II Основы языка VHDL (Very high speed integration circuits Hardware Description Language) Стандарт VHDL-87, Стандарт VHDL-93, Стандарт VHDL-AMS Язык.
ЛЕКЦИЯ Языки описания аппаратуры. Детерминистский и системный подходы к описанию объекта Мы уже знаем (лекция 2), что существуют два подхода.
Транксрипт:

ЛЕКЦИЯ Экскурс в язык описания аппаратуры VHDL

Язык VHDL. Почему он так называется? В шутку язык VHDL называют Very Huge Design Language – что переводится как Гигантский язык проектирования Поэтому военное ведомство США решилось выступить в роли спонсора при создании такого языка. Он получил название VHDL. В 1987 году появилась окончательная версия этого языка - VHDL87 В начале 80-х годов прошлого столетия военное ведомство США работало над программой VHSIC – создания сверхскоростных ИМС. Аббревиатура VHSIC расшифровывается как Very-High-Speed Integrated Circuit - сверхскоростные интегральные схемы. При их проектировании обнаружилась необходимость точного учёта временных параметров ИМС, но подходящего языка для моделирования таких схем не было. Язык VHDL – от слов VHSIC HDL (Hardware Description Language)

Язык VHDL используется во многих современных САПР, например OrCAD 9.1, Active-HDL 7.1, Xilinx ISE 6.2 Язык VHDL применяется для: документирования проектов; верификации проектов путём моделирования; описания внешних воздействий (разработка тестов); высокоуровневого синтеза цифровой аппаратуры. Проектирование на VHDL не зависит от конкретной технологии реализации проекта VHDL имеет большое сходство с языком Ада и Паскаль. Verilog имеет своим началом язык Си. VHDL не имеет механизма наследования Скачок популярности и признания полезности VHDL произошёл с появлением коммерческих инструментов синтеза.

Особенности языка VHDL Любой VHDL-объект содержит две части: Интерфейс (сущность) – Entity (Port Declaration), который описывает взаимосвязи между объектом проекта и средой его «обитания». Это внешнее описание объекта. Интерфейс определяет «границы» модели, выделяя объект из окружения. Архитектура (архитектурное тело) – Architecture, которая описывает поведение компонента с функциональной или структурной точки зрения. Это внутреннее описание объекта. Может быть несколько архитектур.

Модель логического элемента AND2 (VHDL87) Тип bit, используемый в первой редакции языка VHDL87, определён как type bit is ('0', '1');

Модель логического элемента AND2 (VHDL93) Алфавит сигнала типа std_logic: (U,X,0,1,Z,W,L,H,-) Девять значений

Модель логического элемента AND2 (VHDL93) Версия VHDL93 позволяет без всяких ухищрений имитировать высокоомный выход ('Z'), открытый коллектор ('H'), шинные структуры и прочие особенности реальной цифровой аппаратуры. Например, на время формирования фронта (среза) на выходе можно задать неизвестное значение X

Особенности языка VHDL VHDL позволяет создавать компоненты (модели) с настраиваемыми параметрами Существуют фирмы, продающие VHDL-модели стандартных микросхем. Проектирование VHDL-компонентов является технологически независимым. То есть разработчик может сосредоточиться на функциях проекта и не беспокоиться о реализации. Процесс синтеза похож на работу компилятора, который транслирует входной код в машинный. Синтезатор выполняет аналогичную работу – транслирует VHDL-код в принципиальную схему с вентилями и триггерами для заданной технологии. До сих пор, однако нельзя перемещать код, предназначенный для синтеза, между произвольными системами синтеза.

Модель логического элемента 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;

Модель логического элемента 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

Результаты моделирования элемента AND2 (VHDL93) с разными задержками

Модель генератора прямоугольных импульсов с периодом 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

Модель генератора прямоугольных импульсов с периодом 200 ns (окончание) GEN_PR: process -- моделирует работу генератора begin if NOW=0ns then Y

Инерционная и транспортная задержки В языке VHDL в оператор назначения

Модель элемента 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

Результаты моделирования элемента AND2 с инерционной и транспортной задержками Порог резекции должен быть меньше задержки элемента

Отыскание «иголок» (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

Отыскание «иголок» (glitch). Результаты моделирования

Контроль минимальной длительности импульса 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

Контроль минимальной длительности импульса. Результаты моделирования

Контроль времени предустановки на входе 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

Контроль времени предустановки на входе D-триггера. Результаты моделирования

Модель сумматора 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;

Модель сумматора 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

Результаты моделирования сумматора add_4

Модель регистра 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;

Модель регистра 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

Результаты моделирования регистра reg_4

Модель счётчика 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;

Модель счётчика 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

Результаты моделирования счётчика count_M9_IP

Особенности языка VHDL Первая особенность – тяжеловесность В языке определены 97 ключевых слов (стандарт VHDL93) Для сравнения в языке PML их всего 11 В языке Verilog - 73

Особенности языка 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- значный и наоборот. Более того, пользователь может самостоятельно определить рабочий алфавит сигналов и число различных значений в нём

Особенности языка VHDL В языке PML определены четыре значения логической силы В языке Verilog – восемь значений Третья особенность – логическая сила в языке VHDL не определена Нагрузочную способность в языке VHDL можно описать только косвенным образом: сильным (Forcing) или слабым (Weak) сигналом Forcing / Weak X / W 0 / L 1 / H Z – High Impedance

Особенности языка VHDL Язык VHDL позволяет непосредственно запрограммировать временную задержку, с которой входной сигнал передаётся на выход. Четвёртая особенность – имитация задержек Y_I

Особенности языка VHDL Пятая особенность – стили описания Язык VHDL поддерживает все стили описание объекта Функциональное (аналитическое или алгоритмическое) Потоковое Структурное Смешанное

Стили описания проекта Да 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

Стили описания проекта architecture BEHAV of MUX2 is begin process (D0, D1, A) -- алгоритмическое begin-- описание функции объекта if A='0' then Y

Стили описания проекта (структурное)

Стили описания проекта 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; --объявление внутренних сигналов

Стили описания проекта (структурное) 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; Поимённое связывание Позиционное связывание: задержек, портов и цепей

Особенности языка VHDL Шестая особенность – сигналы и шины