1. 1. Роль языков описания аппаратуры в
современном проектировании.
Первые VHDL-модели.
Языки описания аппаратуры
Хаханова И.В, каф.АПВТ,
ХНУРЭ, e-mail: 1
hahanova@mail.ru 09.02.2011
2. Структура курса
Лекций – 15
Лабораторных работ – 5
Слайд-лекции по адресу:
10.13.20.100libraryeducationХахановаМОАП
Рейтингова оцінка за дисципліною
Вид заняття / контрольний захід
Ваговий
лб. №1
лб. №2
КТ2
лб. №3
лб. №4
лб. №5
КТ2
коефіцієнт
Тест
Тест
макс 10 10 25 45 10 10 10 25 55
мин 6 6 15 27 6 6 6 15 33
2
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
3. Литература
1. Хаханов В.И., Хаханова И.В. VHDL +
Verilog = Синтез за минуты, Харьков: ООО
«Компания СМИТ» 2007. – 264 с.
2. Семенец В.В, Хаханова И.В., Хаханов В.И.
Проектирование цифровых систем с
использованием языка VHDL, Харьков,
2003. – 492 с.
3
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
4. Словарь
VHDL
Verilog
HDL – Hardware Description Language
IC – Integrated Circuit
VHSIC – Very High Speed IC
ASIC – Application Specific IC
PLD – Programmable Logic Device
4
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
5. Тема: современное проектирование
Цель лекции: ознакомиться с принципами
проектирования современных цифровых устройств с
использованием языков описания аппаратуры
Содержание:
1. Этапы проектирования цифровых устройств
2. Электронная база
3. Модели цифровых систем
4. Мир проектирования до ЯОА
5. Языки описания аппаратуры
6. Функциональные модели комбинационных схем
7. Структурные модели, на примере 4- разрядного сумматора
8. Смешанная модель на примере testbench
5
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
6. Мир проектирования до ЯОА:
Проектирование с использованием булевых уравнений
Использование
булевых уравнений
требует одно
логическое
уравнения на каждый
вход данных
триггера.
Таким образом, этот
метод неприменим
для проектов,
содержащих сотни
триггеров, из-за
большого числа
логических
уравнений.
6
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
7. Мир проектирования до ЯОА:
Схемотехническое проектирование
Долгие годы
рассматривалось как
оптимальное.
Оно расширило метод
булевых уравнений,
поскольку наряду с
вентилями и
триггерами допускало
использование и
других элементов.
Однако размер
современных проектов
делает этот метод
ограниченным и
трудно применимым.
7
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
8. Язык Описания аппаратуры VHDL
VHDL – VHSIC Hardware Description Language.
VHSIC – Very High Speed Integrated Circuit
(высокоскоростные интегральные схемы).
1985 г. – Начало финансирования программы
VHSIC Министерством Обороны США,
результатом работы которой – язык VHDL
Стандарты:
IEEE Std 1076–1987 – первый стандарт
IEEE Std 1076–1993 – стандарт, который был базовым
долгое время
IEEE Std 1076–2000 – незначительные изменения
предыдущего стандарта.
IEEE Std 1076-2002 – незначительные изменения
предыдущего стандарта.
IEEE Std 1076-2008 (ранее названный как 1076-200x).
Глобальная модификация стандарта. Внесено много
новых конструкций
8
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
9. Язык Описания аппаратуры: Verilog
1984 -1985 гг. Филип Мурби (Philip Moorby)
разрабатывает язык Verilog, который становится
собственностью фирмы Gateway Design Automatiion.
1985-1987гг. Рост популярности Verilog.
1990 г. Большинство изготовителей ASIC
используют Verilog, Фирма Cadence покупает
Gateway и делает язык Verilog общедоступным
1993 г. 85% всех ASIC-проектов разрабатывается с
помощью Verilog
Стандарты
IEEE Std 1364-95.
IEEE Std 1364-2001 значительно переработанный
по сравнению с предыдущим.
IEEE Std 1364-2005 добавил небольшие
исправления, уточнения.
9
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
10. VHDL или Verilog?
VHDL
Более сложный язык, его
Verilog
труднее изучать и Verilog легче в понимании
использовать. и использовании.
Обладает большей Имеет недостаток в
гибкостью, что является его конструкциях для описания
преимуществом и сложных многоуровневых
недостатком. систем.
Verilog получил признание
Лучше подходит для в проектировании ASIC
работы с очень сложными схем, особенно для
проектами. проектов низкого уровня.
Популярен в Европе, США Популярен в Северной
и Канаде. Америке и Азии, особенно
в Японии.
Не популярен успехом в Непопулярен в Европе.
Японии.
10
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
11. Типы и уровни абстракции моделей
СТРУКТУРНЫЕ ПОВЕДЕНЧЕСКИЕ
Системный Алгоритмический
Регистровых передач Языков регистровых передач
Вентильный Булевых уравнений
Транзисторный Функций передач
Ячеек
Микросхем
Печатных плат
ФИЗИЧЕСКИЕ
11
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
12. Области применения моделей цифровых
устройств
1. Формальная модель используется для
создания технического задания.
2. Модель необходима при общении
проектировщика и пользователя.
3. Тестирование и верификация
устройства через создание его
моделей.
4. Формальной верификации системы.
5. Автоматический синтез схем.
12
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
13. Область использования VHDL
СТРУКТУРНЫЕ МОДЕЛИ VHDL ПОВЕДЕНЧЕСКИЕ МОДЕЛИ
Системный Алгоритмический
Регистровых передач Языков регистровых передач HDL
Схемотехнический Вентильный Булевых уравнений Булевы уравнения
Транзисторный Функций передач
Ячеек
Модулей
Микросхем
Печатных плат
ФИЗИЧЕСКИЕ МОДЕЛИ
13
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
14. Электронная база
По способу производства все электронные
устройства можно разделить на два класса:
ASIC
ASSP (Application-Specific Standard Product)
ASIC (Application-Specific Integrated Circuit)
PLD (Programmable Logic Device)
CPLD (Complex Programmable Logic Device)
FPGA (Field Programmable Gate Array)
Промежуточное положение между ASIC и PLD
занимают Gate Array (матрицы вентилей).
14
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
15. Сравнительная характеристика PLD и ASIC
Характеристика PLD ASIC
Время создания продукта до
Небольшое Значительное
появления на рынке
Стоимость модулей большого объема Низкая Высокая
Единовременные затраты на
Нет Высокие
проектирование
Возможность реконфигурации после
Высокая Нет
создания
Производительность Средняя Очень высокая
Плотность Средняя Очень высокая
Потребляемая мощ ность Высокая Низкая
Минимальный размер заказа Нет Большой
Сложность процесса проектирования Средняя Очень высокая
Сложность тестирования Низкая Высокая
Общ ее время производственного
Часы Месяцы
цикла
15
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
16. Этапы проектирования цифровых
устройств
Техническое задание
Функциональный
Моделирование поведения
проект
Проект уровня Моделирование для верификации
регистровых передач RTL-модели
Проект Верификация, моделирование
логического уровня неисправностей
Схема проекта Анализ временных
характеристик проекта
Реализация проекта Тестирование проекта
Описание системы для производства
16
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
18. Функциональные модели
комбинационных схем
A C
B E
D
С задержками Без задержек
C <= A and B after 5 ns; C <= A and B;
E <= C or D after 5 ns; E <= C or D;
CLK <= not CLK after 10
ns; CLK <= not CLK;
18
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
19. Пара "Entity-Architecture"
X Cout
FULL
Y ADDER
Cin Sum
entity FullAdder is
port (X, Y, Cin: in bit; -- Входы
Cout, Sum: out bit); -- Выходы
end FullAdder;
architecture Equations of FullAdder is
begin
-- Параллельные операторы назначения
Sum <= X xor Y xor Cin after 10 ns;
Cout <= (X and Y) or (X and Cin) or (Y and Cin) after 10 ns;
end Equations;
19
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
20. Пара "Entity-Architecture" (2)
entity entity-name is
[port(interface-signal-declaration);]
end [entity] [entity-name];
Список сигналов интерфейса: тип режима [:= начальное значение]{ ;
Список сигналов интерфейса: тип режима [:= начальное значение]}
architecture architecture-name of entity-name is
[declarations]
begin
architecture body
end [architecture] [architecture-name];
20
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
21. Структурные модели,
на примере 4- разрядного сумматора
S(3) S(2) S(1) S(0)
Full C(3) Full C(2) Full C(1) Full
Co Ci
Adder Adder Adder Adder
A(3) B(3) A(2) B(2) A(1) B(1) A(0) B(0)
21
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
22. VHDL-код 4-разрядного сумматора
entity Adder4 is
port (A, B: in bit_vector(3 downto 0); Ci: in bit; -- Входы
S: out bit_vector(3 downto 0); Co: out bit); -- Выходы
end Adder4 ;
architecture Structure of Adder4 is
component FullAdder
port (X, Y, Cin: in bit; -- Входы
Cout, Sum: out bit); -- Выходы
end component ;
signal C: bit_vector(3 downto 1);
begin
-- Реализация четырех копий FullAdder
FAO: FullAdder port map (A(0), B(0), Ci, C(1), S(0));
FAl: FullAdder port map (A(1), B(1), C(1), C(2), S(1));
FA2: FullAdder port map (A(2), B(2), C(2), C(3), S(2));
FA3: FullAdder port map (A(3), B(3), C(3), Co, S(3));
end Structure;
22
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
23. in
Режимы портов VHDL- out
inout модель
in – входной порт
out – выходной порт
A2
inout - входной-выходной out
порт, разрешаетя чтение
port B
in 10 ns signal
из данного порта и запись A1 port
в него.
entity And_G1 is
buffer – выходной порт с port (A1: in bit;
возможностью чтение из B: out bit);
него. end And_G1 ;
linkage используется для architecture arch of And_G1 is
подключения к моделям, signal A2: bit;
написанным не на VHDL. begin
Используется очень редко. A2 <= A1 and A2 after 10 ns;
B<=A2;
end arch ;
23
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
24. Смешанная модель на примере testbench
entity adder4_tb is
end adder4_tb;
architecture TB_ARCHITECTURE of adder4_tb is
-- Декларация тестируемого компонента
component adder4
port(A, B: in BIT_VECTOR(3 downto 0); Ci: in BIT;
S: out BIT_VECTOR(3 downto 0); Co: out BIT );
end component
-- Сигналы для генерации тестов
signal A, B: BIT_VECTOR(3 downto 0); signal Ci: BIT;
-- Наблюдаемые сигналы
signal S: BIT_VECTOR(3 downto 0); signal Co: BIT;
begin
-- Тестируемый модуль
UUT : adder4
port map (A => A, B => B, Ci => Ci, S => S, Co => Co );
-- тестовые последовательности
A <= "1111", "0101" after 50 ns;
B <= "0001", "1110" after 50 ns;
Ci <= '1', '0' after 50 ns;
end TB_ARCHITECTURE;
24
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
26. Выводы
Модель – это описание системы, в котором сохранены только
необходимые свойства, существенные для ее использования.
Любая система может быть представлена несколькими
различными моделями.
Модели можно разделить на три типа: поведенческие или
функциональные, структурные и физические .
Языки описания аппаратуры позволяют разрабатывать и
верифицировать модели цифровых устройств различных типов
и уровней детализации
Наиболее популярными языками описания аппаратуры
являются VHDL и Verilog.
По способу создания электронные устройства делятся на два
класса: ASIC и PLD.
Интерфейс устройства, его входы и выходы описываются с
помощью конструкции entity.
Архитектура устройства реализует его функцию. Архитектура
может быть поведенческой, структурной или смешанной. Один
интерфейс может быть связан с несколькими архитектурами.
Testbench – это специальный код на языке HDL, который
реализует механизм подачи тестовых последовательностей на
входы анализируемой HDL-модели. Как правило, не содержит
портов.
26
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
27. Контрольные вопросы и задания
1. Закончите определение: Поведенческие или функциональные
модели описывают …
2. Закончите определение: Структурные модели описывают …
3. Закончите определение: Физические (геометрические) модели
описывают …
4. Дать общее определение модели?
5. Дать определение цифровой системы?
6. Какой процесс проектирования используется для больших
сложных проектов?
7. Какие устройства относятся к классу программируемой
логики?
8. Конфигурация каких микросхем задается непосредственно в
момент их создания на заводе?
9. Конфигурация каких микросхем задается пользователем?
27
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
28. Задание
1. Записать VHDL-код для устройства
вычитания, используя логические
уравнения.
2. Записать VHDL-код для 4-разрядного
устройства вычитания, используя
модуль, созданный в предыдущей
задаче, как компонент.
28
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
29. Задания для самостоятельной работы
1. Система A содержит три подсистемы: B, C и D; восемь линий TL1 –
TL8. Какое из следующих утверждений справедливо и почему?
- Все линии(от TL1 до TL8) являются интерфейсом системы A.
- Не допускается использование одной и той же линии одновременно в
качестве части системы и модуля, как например линия TL2
-TL4 входит в интерфейс модулей B и D, и не принадлежит интерфейсу
системы А
- Все линии TL1 до TL8 доступны вне системы A.
2. Описать интерфейс системы А и интерфейсы модулей B, C и D.
3. Разработать структурную модель системы А, используя B, C и D как
компоненты без их реализации.
29
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011
30. Задания для самостоятельной работы
1. Записать VHDL-описание следующей комбинационной
схемы, используя параллельные операторы. Каждый
элемент имеет задержку 5 ns, за исключением инвертора,
имеющего задержку 2 ns.
2. Разработать TestBench для VHDL-модели, созданной в
предыдущей задаче. На входы {A, B, C, D} подать
следующий входные наборы:0000, 0101, 1111, 1010.
Определить время между присвоением входных тестовых
сигналов исходя из максимальной задержки схемы.
A
B E
C
D
A
F Z
B
C
30
Хаханова И.В, каф.АПВТ, ХНУРЭ, e-mail: hahanova@mail.ru 09.02.2011