Содержание
-
Проектирование цифровых устройств на языке VHDL
Описание комбинационных схем 1
-
Комбинационные схемы
Сдвиговые Сдвиг влево / вправо Вращение влево / вправо Логические Реализация булевых функций Арифметические Сложение, вычитание Умножение, деление Схемотехнические Мультиплексоры, демультиплексоры Шифраторы, дешифраторы 2 Классификация условная
-
Структура цифрового устройства
3 ... ... Комбинационная логика Регистры
-
Стили описания на VHDL
4 Стиль Потоков данных (dataflow) Структурный (structural) Поведенческий (behavioral) синтезируемый не синтезируемый «параллельные» операторы компоненты и связи «последовательные» операторы
-
Арифметические и логические операторы, операторы отношений
5
-
Основные операторы
6 not * / + - & sllsrlslasrarorrol = /= >= and or nand nor xorxnor приоритет не равно VHDL-93 конкатенация
-
Арифметические операторы
Умножение (*) Деление (/) Сложение (+) Вычитание (–) Приоритет операций обычный (арифметический) Результат синтеза – комбинационная схема 7
-
Пакеты IEEE
std_logic_1164 Стандарт IEEE Определяет типы std_logicи std_logic_vector Пример: std_logic_vector(7 downto 0) Описывает логические операции std_logic_arith Не является стандартом (разработан Synopsys) Определяет типы signed (знаковое целое) и unsigned (беззнаковое целое) Пример: unsigned(7 downto 0) Описывает арифметические операции 8
-
std_logic_unsigned Не является стандартом (разработан Synopsys) Заставляет компилятор интерпретировать std_logic_vectorкак unsigned std_logic_signed Не является стандартом (разработан Synopsys) Заставляет компилятор интерпретировать std_logic_vectorкак signed Не используйте одновременноstd_logic_unsignedи std_logic_signed Преобразования типов можно выполнять явно 9
-
numeric_std Стандарт IEEE Определяет типы signedи unsigned Описывает арифметические операции Несовместим с пакетом std_logic_arith 10
-
Подключение арифметических пакетов IEEE
Работа с беззнаковыми целыми числами (unsigned) Работа со знаковыми целыми числами (signed) Работа как с беззнаковыми, так и со знаковыми целыми числами 11 library ieee; use ieee.std_logic_1164.all; useieee.std_logic_arith.all; -- определение арифметических операций useieee.std_logic_unsigned.all; -- std_logic_vector unsigned library ieee; use ieee.std_logic_1164.all; useieee.std_logic_arith.all; -- определение арифметических операций useieee.std_logic_signed.all; -- std_logic_vector signed library ieee; use ieee.std_logic_1164.all; useieee.std_logic_arith.all; -- определение арифметических операций
-
Преобразование типов данных
12
-
Присваивание
13
-
Простое присваивание Условное присваивание (when-else) Выборочное присваивание (with-select-when) 14
-
Простое присваивание
Оператор
-
Простое присваивание – пример
Сдвиг влево (дополнение нулем) 16 a_shl
-
Вращение вправо 17 a_ror
-
Условное присваивание
Оператор
-
19 sig_name
-
Условное присваивание – пример
20 library ieee; use ieee.std_logic_1164.all; entitytri_stateis port ( ena: in std_logic; input: in std_logic_vector(7 downto 0); output: out std_logic_vector(7 downto 0)); endtri_state; architecture dataflow oftri_stateis begin output ‘Z’); end architecture; все явно не указанные компоненты вектора
-
Управляемое присваивание
Оператор
-
22 withchoise_expressionselect sig_name
-
Описание вариантов выбора (choisei)
Указание одиночного значения Перечисление нескольких значений Задание диапазоназначений Ключевое слово others – все остальные случаи Всегда используйте others – возможных вариантов больше, чем ‘0’ и ‘1’ 23 withselselect result
-
Простые правила
Для описания чисто комбинационной логики используйте только параллельные операторы 24
-
Генерация выражений
25
-
Конструкция for-generate Конструкция if-generate 26 label: forvarin range generate concurrent statements end generate; label: if condition generate concurrent statements end generate;
-
Генерация выражений – пример
Подсчет четности вектора Интерфейс объекта: Вход – 8-разрядный вектор data Выход – бит четности parity Функциональность объекта: 27
-
28 library ieee; use ieee.std_logic_1164.all; entitypar_countis port ( data: in std_logic_vector(7 downto 0); parity: out std_logic); endpar_count; architecture dataflow ofpar_countis signal temp: std_logic_vector(7 downto 0); begin temp(0)
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.