1
© 2007 Санкт-Петербург Антонов А.П.
Язык VHDL:
описание цифровых устройств
2
© 2007 Санкт-Петербург Антонов А.П.
Литература, средства проектирования
Литература
- любые книги по языку VHDL
например:
«Ю.Е. Шейнин, Е.А. Суворова Проектирование
Цифровых Систем на VHDL»
Средства проектирования- пакет QuartusII
3
© 2007 Санкт-Петербург Антонов А.П.
Введение
4
© 2007 Санкт-Петербург Антонов А.П.
Предпосылки использования HDL
100
10.000
1.000.000
100.000.000
Использованные
транзисторы
/ чел. мес.
Транзисторы
/СБИС (без эл-тов
памяти)
10
1.000
100.000
10.000.000
1981 1985 1989 1993 1997 2001 2005 2009
Закон
Мура
Продуктивность
разработки
Предел для опытных
инженеров
Кризис продуктивности разработки
5
© 2007 Санкт-Петербург Антонов А.П.
Как бороться с кризисом продуктивности?
Переход к высокоуровневым средствам и методам
проектирования:
– Использование языков VHDL, Verilog
– Использование С подобных языков (SystemC)
– Использование библиотек параметризированных модулей
– Использование библиотек готовых решений для
алгоритмически сложных устройств – IP (Intellectual Property)
модулей
Совершенствование элементной базы – создание
функционально законченных и параметризуемых модулей
аппаратно реализованных на кристаллах (умножители,
модули памяти, интерфейстные модули)
6
© 2007 Санкт-Петербург Антонов А.П.
Термины
Поведенческое (алгоритмическое) моделирование –
моделирование алгоритма работы,
моделирование с 0-ми
задержками
Временное (Timing, Gate Level) моделирование –
моделирование с задержками, полученными после
трассировки и размещения внутренних ресурсов СБИС
Синтез – преобразование описания проекта в схему на
заданном элементном базисе
Временные параметры:
– Fmax – максимальная тактовая частота работы
– Tco (clock-to-output)
– Th (hold)
– Tsu (setup time)
– Tpd (propagation delay)
7
© 2007 Санкт-Петербург Антонов А.П.
Синтез
Process (a, b, c, d, sel)
begin
case (sel) is
when “00” => mux_out <= a;
when “01” => mux_out <= b;
when “10” => mux_out <= c;
when “11” => mux_out <= d;
end case;
a
d
a
d
Translation
Optimization
a
d
sel
2
b
inferred
mux_out
c
8
© 2007 Санкт-Петербург Антонов А.П.
Этапы процесса проектирования
Разработка алгоритма и
архитектуры
«Поведенческое
моделирование»
Алгоритм
OK?
Синтез
«Временное
моделирование»
Синтезировано
ОК?
Да
Нет
Спецификация
Реализация
Да
Временные
параметры
ОК?
Нет
Нет
Да
Внедрение
Отладка в составе системы
9
© 2007 Санкт-Петербург Антонов А.П.
VHDL и Verilog HDL
Основа языка:
– VHDL – Ада;
– Verilog – С
Типизация:
– VHDL – строгая,
– Verilog – нестрогая
Пользовательские типы:
– VHDL: да,
– Verilog - нет
10
© 2007 Санкт-Петербург Антонов А.П.
Что обозначает аббревиатура VHDL?
V
HSIC (Very High Speed Integrated Circuit)
Hardware
Description
Language
11
© 2007 Санкт-Петербург Антонов А.П.
История языка 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
Версии 1987, 1993, 2002
12
© 2007 Санкт-Петербург Антонов А.П.
Термины
Поведенческое описание – описание алгоритма
работы устройства
Структурное описание – описание в виде
взаимосвязанных компонентов более низкого
уровня в иерархии описаний
Конфигурируемые (параметризируемые)
описания – описания, которые позволяют
изменять (настраивать) структуру и
характеристики задаваемых ими модулей путем
изменения значений передаваемых в описание
параметров.
13
© 2007 Санкт-Петербург Антонов А.П.
Поведенческое описание
input1, , inputn
output1, , outputn
IF shift_left THEN
FOR j IN high DOWNTO low LOOP
shft(j) := shft(j);
END LOOP;
output1 <= shft AFTER 5ns;
Только алгоритм работы, но не структура.
Используется для синтеза и моделирования
(Synthesis, Simulation)
Left Bit Shifter
14
© 2007 Санкт-Петербург Антонов А.П.
Структурное описание
input1
inputn
output1
outputn
Компонент верхнего уровня
Компонент
нижнего
уровня 1
Компонент
нижнего
уровня 2
Структура модуля
Могут применяться специфические аппаратные элементы
Используется для синтеза и моделирования (Synthesis,
Simulation)
15
© 2007 Санкт-Петербург Антонов А.П.
Основные концепции языка
Возможность использования как для создания описаний
проектируемого модуля, так и для задания тестов.
Возможность создания поведенческого, структурного и
смешанного описании проекта
Параллельность выполнения операторов
Возможность создания последовательных описании
Поддержка работы со временем
Конфигурируемость описаний
Возможность повторного использования созданных
компонентов (иерархическое описание)
Возможность переопределения существующих операторов
Возможность работы с библиотеками
Возможность работы с файлами
16
© 2007 Санкт-Петербург Антонов А.П.
Подмножества языка VHDL
Операторы языка
VHDL
синтезируемое
подмножество
Синтезируемое описание – описание, допускающее
автоматическую реализацию процедуры синтеза на
заданном элементном базисе.
17
© 2007 Санкт-Петербург Антонов А.П.
Уровни описания проекта
Поведенческий
уровень
Уровень
регистровых
передач
Логический
уровень
Физический
уровень
Behavioral
RTL
Gate Level
Physical
18
© 2007 Санкт-Петербург Антонов А.П.
Терминология
Register Transfer Level (RTL) - уровень
детализации описания цифровой системы
RTL Synthesis - преобразование текстового
описания, заданного на RTL уровне, в
оптимизированную схему, реализованную на
заданном элементном базисе.
19
© 2007 Санкт-Петербург Антонов А.П.
Процедура проектирования в рамках пакета QuartusII
Синтез
(Quartus II)
Техническое задание
Разводка и размещение внутренних
ресурсов СБИС
Ввод описания проекта
- Поведенческое и/или структурное
описание проекта
Моделирование
- Функциональное моделирование
(Quartus II)
LE
M512
M4K
I/O
20
© 2007 Санкт-Петербург Антонов А.П.
Процедура проектирования в рамках пакета QuartusII
Временной анализ
- проверка соответствия созданной СБИС
требованиям к быстродействию
Моделирование на вентильном уровне
Тестирование и отладка
СБИС в составе системы
(ISP, SignalTap II )
t
clk
21
© 2007 Санкт-Петербург Антонов А.П.
Основы языка VHDL
22
© 2007 Санкт-Петербург Антонов А.П.
Вводные замечания VHDL
Два подмножества языка:
– Синтезируемое
– Несинтезируемое
Содержит зарезервированные ключевые слова (Reserved
Keywords)
В большинстве случаев не различает строчные и прописные
буквы.
Операторы заканчиваются точкой с запятой (; )
Допускает свободное использование пробелов для улучшения
читаемости текста.
Комментарии все от символа “ ” до конца строки
Описания на языке VHDL могут быть созданы на :
– Поведенческом уровне (Behavioral)
– Структурном (Structural)
– Смешанном (Mixed)
23
© 2007 Санкт-Петербург Антонов А.П.
Основные элементы проектирования
Entity
– объект проекта
• Используется для задания интерфейса (аналог символа)
Architecture
– архитектурное тело проекта
• Используется для задания алгоритма работы на
поведенческом или структурном уровне.
Configuration
– «Соединение» architecture & entity
Package
– Определение часто используемых типов данных, компонент и
функций
Library - библиотеки
24
© 2007 Санкт-Петербург Антонов А.П.
Основные элементы проектирования
Package
Declaration
Package Body
Entity
Configuration
Architecture Architecture Architecture
Library
Package
25
© 2007 Санкт-Петербург Антонов А.П.
Packages & Libraries
Package
– Содержит часто используемые типы, операторы…
– Состоит из:
• Декларация пакета
• Тело пакета
Library
– Содержит пакет или множество пакетов.