Вы находитесь на странице: 1из 29

Введение в язык

VHDL

Copyright © 2003 Тренинг партнер фирмы Altera® в России


1 Санкт-Петербург Автор Антонов А.П.
Основы языка
VHDL

Copyright © 2003 Тренинг партнер фирмы Altera® в России


2 Санкт-Петербург Автор Антонов А.П.
Что обозначает аббревиатура VHDL?

VHSIC (Very High Speed Integrated Circuit)

Hardware

Description

Language

Copyright © 2003 Тренинг партнер фирмы Altera® в России


3 Санкт-Петербург Автор Антонов А.П.
История языка VHDL

„ 1980 - U.S. Department of Defense (DOD) Funded a


Project to Create a Standard Hardware Description
Language Under the Very High Speed Integrated
Circuit (VHSIC) Program
„ 1987 - the Institute of Electrical and Electronics
Engineers (IEEE) Ratified As IEEE Standard 1076
„ 1993 - the VHDL Language Was Revised and
Updated to IEEE 1076 ’93

Copyright © 2003 Тренинг партнер фирмы Altera® в России


4 Санкт-Петербург Автор Антонов А.П.
Терминология

„ HDL - Hardware Description Language – «…который


предназначен для формального представления цифровых
систем различного уровня функциональной и
конструктивной сложности на различных уровнях
детализации.»

„ Поведенческое описание (Behavior Modeling) – задание


алгоритма работы компонента в формализованном виде

„ Структурное описание (Structural Modeling) – представление


компонента в виде совокупности взаимосвязанных
компонентов более низкого уровня иерархии.

Copyright © 2003 Тренинг партнер фирмы Altera® в России


5 Санкт-Петербург Автор Антонов А.П.
Поведенческое описание

„ Только алгоритм работы, но не структура.


„ Используется для синтеза и моделирования
(Synthesis, Simulation)

output1, .., outputn


input1, .., inputn
IF shift_left THEN
FOR j IN high DOWNTO low LOOP
shft(j) := shft(j);
END LOOP;
output1 <= shft AFTER 5ns;

Left Bit Shifter


Copyright © 2003 Тренинг партнер фирмы Altera® в России
6 Санкт-Петербург Автор Антонов А.П.
Структурное описание
„ Структура модуля
„ Могут применяться специфические аппаратные элементы
„ Используется для синтеза и моделирования (Synthesis,
Simulation)

Компонент верхнего уровня


input1 output1

Компонент
нижнего
уровня 2
Компонент
нижнего
уровня 1

inputn outputn
Copyright © 2003 Тренинг партнер фирмы Altera® в России
7 Санкт-Петербург Автор Антонов А.П.
Терминология

„ Register Transfer Level (RTL) - уровень


детализации описания цифровой системы
„ Synthesis – преобразование текстового описания
в схему на заданном элементном базисе
„ RTL Synthesis - преобразование текстового
описания, заданного на RTL уровне, в
оптимизированную схему, реализованную на
заданном элементном базисе.
„ Синтезируемое описание – описание,
допускающее автоматическую реализацию
процедуры синтеза на заданном элементном
базисе.

Copyright © 2003 Тренинг партнер фирмы Altera® в России


8 Санкт-Петербург Автор Антонов А.П.
Синтез
Process (a, b, c, d, sel)
inferred
a
begin b mux_out
case (sel) is c
when “00” => mux_out <= a; d
when “01” => mux_out <= b; sel
when “10” => mux_out <= c; 2
when “11” => mux_out <= d;
end case;

Translation
d

Optimization d

Copyright © 2003 Тренинг партнер фирмы Altera® в России


9 Санкт-Петербург Автор Антонов А.П.
Процедура проектирования.
Этап функционального моделирования

VHDL VHDL VHDL


Library Model TestBench

Optional

Simulation
Compiler

Simulation Test
Model Vectors

Waveform VHDL
Simulation Text Output

Copyright © 2003 Тренинг партнер фирмы Altera® в России


10 Санкт-Петербург Автор Антонов А.П.
Процедура проектирования.
Этап синтеза и временного моделирования.

VHDL VHDL Technology


Library Model Library

Synthesis
Compiler

Place/Route Simulation
Timing Analysis Netlist
Model

Text Output
Test
Simulation Vectors
Waveform

Copyright © 2003 Тренинг партнер фирмы Altera® в России


11 Санкт-Петербург Автор Антонов А.П.
VHDL
„ Два подмножества языка:
– Синтезируемое
– Несинтезируемое
„ Содержит зарезервированные ключевые слова (Reserved
Keywords)
„ В большинстве случаев не различает строчные и прописные
буквы.
„ Операторы заканчиваются точкой с запятой (; )
„ Допускает свободное использование пробелов для улучшения
читаемости текста.
„ Комментарии все от символа “- - ” до конца строки
„ Описания на языке VHDL могут быть созданы на :
– Поведенческом уровне (Behavioral)
– Структурном (Structural)
– Смешанном (Mixed)

Copyright © 2003 Тренинг партнер фирмы Altera® в России


12 Санкт-Петербург Автор Антонов А.П.
Модули проекта на языке
VHDL

Copyright © 2003 Тренинг партнер фирмы Altera® в России


13 Санкт-Петербург Автор Антонов А.П.
Модули проекта в языке VHDL

„ Элементы проекта на языке VHDL


– Library - библиотеки
– Entity – объект проекта
• Используется для задания интерфейса (аналог
символа)
– Architecture – архитектурное тело проекта
• Используется для задания алгоритма работы на
поведенческом или структурном уровне.

Copyright © 2003 Тренинг партнер фирмы Altera® в России


14 Санкт-Петербург Автор Антонов А.П.
Библиотека Std

„ Library Std;
– Содержит следующие пакеты:
• Standard (задает типы объектов: Bit, Boolean, Integer,
Real, and Time; и все операторы и функции для
данных объектов)
• Textio (файловые операторы)

– Встроенная библиотека
• Нет необходимости ссылаться на нее в VHDL
описании

Copyright © 2003 Тренинг партнер фирмы Altera® в России


15 Санкт-Петербург Автор Антонов А.П.
Типы, определенные в пакете Standard
Package

„ Тип BIT
– 2 Logic Value System (‘0’, ‘1’)
Signal A_temp : Bit;
– Bit_vector Array of Bits
Signal Temp : Bit_vector(3 Downto 0);
Signal Temp : Bit_vector(0 to 3) ;
„ Type Boolean
– (False, True)
„ Integer
– Положительные и отрицательные десятичные числа
Signal Int_tmp : Integer; -- 32 разрядное число
Signal Int_tmp1 : Integer Range 0 to 255; --8 разрядное число
Ö Note: в Standard Package определены и другие типы

Copyright © 2003 Тренинг партнер фирмы Altera® в России


16 Санкт-Петербург Автор Антонов А.П.
Библиотеки - Libraries

„ Рабочая библиотека - Working Library


– Библиотека, в которую компилируются модули

Copyright © 2003 Тренинг партнер фирмы Altera® в России


17 Санкт-Петербург Автор Антонов А.П.
VHDL : Entity - Architecture
input1 output1

Entity
Символ
inputn outputn
(интерфейс)

Architecture
a
Схема и/или алгоритм
b D Q
mux_out
c
d clk
ENA
sel CLRN
2
clr

Copyright © 2003 Тренинг партнер фирмы Altera® в России


18 Санкт-Петербург Автор Антонов А.П.
Объявление объекта (Entity)
ENTITY <entity_name> IS
Port Declarations
END <entity_name>; (1076-1987 version)
END ENTITY <entity_name> ; ( 1076-1993 version)

„ аналогия : символ
„ <Entity_name> - заголовок объекта (любое имя)
„ Generic Declarations – список параметров настройки
– Используется для передачи значения параметров настройки в
описание объекта ( в пакете Quartus II имеются ограничения на
использование Generics)
„ Port Declarations – описание портов
– используется для описания входных/выходных портов объекта
проекта (аналог – входы/выходы схемы)

Copyright © 2003 Тренинг партнер фирмы Altera® в России


19 Санкт-Петербург Автор Антонов А.П.
Список параметров настройки :
Generic Declaration

ENTITY <entity_name> IS
Generic ( constant tplh , tphl : time := 5 ns;
-- Note constant is assumed and is not required
tphz, tplz : time := 3 ns;
default_value : integer := 1;
cnt_dir : string := “up”
);
Port Declarations
END <entity_name>; (1076-1987 version)
END ENTITY <entity_name> ; ( 1076-1993 version)

„ Новые значения могут передаваться при компиляции

Copyright © 2003 Тренинг партнер фирмы Altera® в России


20 Санкт-Петербург Автор Антонов А.П.
Описание входов/выходов:
Port Declarations
ENTITY <entity_name> IS
Generic Declarations
Port ( signal clk : in bit;
--Note: signal is assumed and is not required
q : out bit
);
END <entity_name>; (1076-1987 version)
END ENTITY <entity_name> ; ( 1076-1993 version)

„ структура : Object_name : <Mode> <Type> ;


• Object_name : имя объекта
• <Mode> : направление передачи данных
– in (Input) Out (Output)
– Inout (Bidirectional) Buffer (Output W/ Internal Feedback)
• <Type> : тип объекта

Copyright © 2003 Тренинг партнер фирмы Altera® в России


21 Санкт-Петербург Автор Антонов А.П.
Описание входов/выходов:
Port Declarations
OR4
A INPUT
VCC
B INPUT
VCC OUTPUT X
C INPUT
VCC
D INPUT
VCC
OR4_GATE

ENTITY or4_gate IS
PORT (
A,B,C,D : IN BIT;
X : OUT BIT
);
END or4_gate;

Copyright © 2003 Тренинг партнер фирмы Altera® в России


22 Санкт-Петербург Автор Антонов А.П.
Архитектурное тело проекта - Architecture

„ Аналогия : Схема (хотя может быть и поведенческое


описание)
„ Описывает схему (алгоритм) работы устройства и/или его
временные параметры
„ Связано с ENTITY
„ ENTITY может иметь несколько архитектур
„ Операторы выполняются параллельно (Concurrently)
(исключение – операторы внутри процессов - Processes)
„ Стили описания
– Поведенческое (Behavioral) : Как объект работает
– Структурное (Structural) : Из каких элементов объект состоит
• Gate/Component Level
– Смешанное.

Copyright © 2003 Тренинг партнер фирмы Altera® в России


23 Санкт-Петербург Автор Антонов А.П.
Архитектурное тело - Architecture

ARCHITECTURE <Identifier> OF <Entity_identifier> IS


--раздел объявлений (включены не все возможные варианты объявлений)
BEGIN

Concurrent Statements

END <Identifier> ; (1076-1987 Version)


End ARCHITECTURE; (1076-1993 Version)

Copyright © 2003 Тренинг партнер фирмы Altera® в России


24 Санкт-Петербург Автор Антонов А.П.
Логические операторы языка VHDL

„ and
„ or
„ nand
„ nor
„ xor
„ xnor( в VHDL-93)

Copyright © 2003 Тренинг партнер фирмы Altera® в России


25 Санкт-Петербург Автор Антонов А.П.
Простой оператор назначения сигнала
(Simple Signal Assignment)

„ Формат: <signal_name> <= <expression>;

„ Пример: qa <= r or t ;
Подразумеваемый
qb <= (qa and not(g xor h)); процесс
r qa
Ö скобки ( ) определяют
t последовательность
операторов
g qb

„ Операторы VHDL описывают процесс

Copyright © 2003 Тренинг партнер фирмы Altera® в России


26 Санкт-Петербург Автор Антонов А.П.
Архитектурное тело - Architecture

OR4
A INPUT
VCC
B INPUT
VCC OUTPUT X
C INPUT
VCC
D INPUT
VCC
OR4_GATE

ENTITY or4_gate IS
PORT (
A,B,C,D : IN BIT;
X : OUT BIT
);
END or4_gate;

ARCHITECTURE arch_or4_gate OF or4_gate IS


BEGIN
x<=a or b or c or d;
END arch_or4_gate;

Copyright © 2003 Тренинг партнер фирмы Altera® в России


27 Санкт-Петербург Автор Антонов А.П.
Задание №1
„ Придумать логическую функцию 4 переменных (составить ее таблицу
истинности).
„ Проверить по Карно, что функция не является тривиальной.
„ Записать соответствующее ей логическое выражение в ДНФ и КНФ.
„ В Visio нарисовать соответствующие логические схемы.
„ На языке VHDL создать текстовые описания для ДНФ и КНФ.
„ ДНФ и КНФ представления реализовать в пакете Quartus как отдельные
проекты:
– каждый проект реализовать в отдельной папке
– осуществить ввод проекта в текстовом виде
– осуществить компиляцию проекта
– с помощью RTL viewer проанализировать и отобразить в отчете синтезированную
пакетом схему.
– Осуществить функциональное моделирование логической функции
(моделирование должно включать перебор в коде Грея всех наборов аргументов
логической функции).
Ожидаемые результаты:
• Отчет, в который включены результаты выполнения всех указанных выше
пунктов.
• созданные проекты.

Copyright © 2003 Тренинг партнер фирмы Altera® в России


28 Санкт-Петербург Автор Антонов А.П.
Задание №2
„ Придумать логическую функцию 5 переменных (составить ее
таблицу истинности).
„ Осуществить минимизацию с помощью карт Карно.
„ Записать соответствующее ей логическое выражение в ДНФ.
„ В Visio нарисовать соответствующую логическую схему.
„ На языке VHDL создать текстовое описание.
„ в пакете Quartus реализовать проект:
– осуществить ввод проекта в текстовом виде
– осуществить компиляцию проекта
– с помощью RTL viewer проанализировать и отобразить в отчете
синтезированную пакетом схему.
– Осуществить функциональное моделирование логической функции
(моделирование должно включать перебор всех наборов аргументов
логической функции).
Ожидаемые результаты:
• Отчет, в который включены результаты выполнения всех
указанных выше пунктов.
• созданные проекты.

Copyright © 2003 Тренинг партнер фирмы Altera® в России


29 Санкт-Петербург Автор Антонов А.П.