- •Вопросы к экзамену по дисциплине «программируемые цифровые устройства»
- •История появления микросхем программируемых цифровых устройств. Предшественники плис.
- •Микросхемы типа программируемая логическая матрица. Их основные параметры. Упрощенная схема.
- •Микросхемы типа программируемая матричная логика. Их основные параметры.
- •Функциональные разновидности плм и пмл.
- •Базовые матричные кристаллы. Их характеристики. Полузаказные и заказные ис.
- •Понятие эквивалентного вентиля цифровой схемы.
- •Базовая ячейка бмк.
- •Микросхемы типа «система на кристалле» (SoC).
- •Современные плис. Их разновидности, основные применения.
- •Программируемые цифровые устройства – микропроцессоры и плис. Их характерные особенности и отличия.
- •Память конфигурации плис, питание современных плис.
- •Сложные программируемые логические устройства. Обобщенная структура плис типа cpld.
- •Функциональные блоки плис типа cpld.
- •Программируемая матрица соединений плис типа cpld.
- •Матрица распределения термов плис типа cpld.
- •Макроячейка плис типа cpld.
- •Программируемые пользователем вентильные матрицы – плис типа fpga.
- •Функциональный блок плис типа fpga.
- •Блоки ввода-вывода плис типа fpga.
- •Система межсоединений плис типа fpga.
- •Плис с комбинированной архитектурой.
- •Современные направления развития плис.
- •Методы описания поведения цифровых схем. &&&
- •Язык описания схем vhdl, основные понятия.
- •Структура программы. Ход выполнения проекта на языке vhdl.
- •Ключевые слова и пользовательские идентификаторы языка vhdl.
- •Синтаксис объявления объекта на языке vhdl.
- •Состав архитектуры объекта на языке vhdl.
- •Типы данных языка vhdl – предопределенные и определяемые пользователем.
- •Скалярные и составные типы языка vhdl.
- •Скалярные типы языка vhdl. Атрибуты скалярных типов.
- •Физические типы языка vhdl. Атрибуты физических типов.
- •Преобразование скалярных типов языка vhdl.
- •Перечислимые типы языка vhdl.
- •Понятия базового типа и подтипа языка vhdl.
- •Составные типы. Массивы. Размерность массива.
- •Задание начальных значений массиву на языке vhdl. Ассоциирование.
- •Задание начальных значений массиву на языке vhdl. Агрегаты.
- •Атрибуты данных типа массив языка vhdl.
- •Массивы неограниченной длины на языке vhdl.
- •Предопределенные типы массивов языка vhdl. Битовые векторы и строки.
- •Операции над массивами на языке vhdl. Фрагменты массивов.
- •Записи, их описание, присвоение значений на языке vhdl.
- •Указательные типы данных языка vhdl.
- •Основные операторы языка vhdl.
- •Оператор условия языка vhdl. Пустой оператор.
- •Оператор case языка vhdl.
- •Циклы. Оператор Loop языка vhdl.
- •Циклы с условием. Оператор цикла while языка vhdl.
- •Операторы управления сбором информации о ходе моделирования языка vhdl.
- •Принцип событийного моделирования на языке vhdl.
- •Понятия сигнала, источника сигнала, временной диаграммы, порта на языке vhdl.
- •Атрибуты сигналов языка vhdl.
- •Различие между сигналами и переменными языка vhdl.
- •Разрешение неоднозначности установления сигнала на языке vhdl.
- •Процессы, их описание на языке vhdl. Список чувствительности.
- •Виды задержек и их описание на языке vhdl.
- •Оператор ожидания wait языка vhdl.
- •Компоненты. Декларация компонента на языке vhdl.
- •Структурное описание объекта моделирования на языке vhdl.
- •Описание переменных и констант на языке vhdl. Литералы.
- •Библиотеки, их описание на языке vhdl.
- •Пакеты, их описание на языке vhdl.
- •Оператор генерации generate языка vhdl.
- •Задание конфигурации компонентов на языке vhdl. Конфигурационная спецификация и конфигурационная декларация.
- •Задание конфигурации компонентов на языке vhdl. Правила связывания по умолчанию.
- •Описание переменных и констант на языке vhdl.
- •Последовательные операторы языка vhdl.
- •Синхронные и асинхронные процессы и их описание на языке vhdl.
- •Способы описания комбинационной логики на языке vhdl.
- •Описание триггерных схем на языке vhdl.
- •Описание регистровых схем на языке vhdl.
- •Вычисляемые сигналы языка vhdl.
- •История появления микросхем программируемых цифровых устройств. Предшественники плис.
- •Микросхемы типа программируемая логическая матрица. Их основные параметры. Упрощенная схема.
Физические типы языка vhdl. Атрибуты физических типов.
Для представления физических величин (таких как длина, масса, время), в языке VHDL используются так называемые физические типы. Данные, принадлежащие к физическому типу, определяются своим значением и единицей измерения. Для одного и того же физического параметра может использоваться множество единиц измерения.
Организация физических типов в VHDL позволяет установить соответствие между различными единицами измерения.
Определение физического типа включает в себя первичный модуль, в котором определяется основная единица измерения. Оно также может включать в себя вторичные модули, в которых определяются дополнительные единицы измерения и их связь с основной единицей.
Определение имеет следующий синтаксис:
type name is range simple_expression (to/downto) simple_expression units
ed;
Ked=X ed;
end units name;
Здесь:
- ed — имя первичного модуля;
- ked — имя вторичного модуля.
Например:
type length is range 0 to 1E9
units
um; -- micron
mm=1000 um;
m=1000 mm;
mi1=254 um;
inch= 1000 mil;
end units length;
Величина, описанная типом length, может принимать значения от 0 um до 1Е9 um. Для задания значения величины может использоваться и действительное число. Оно будет округлено до ближайшего целого в основных единицах измерения.
Атрибуты физических типов:
T'pos(x) - Номер позиции х в T
Т' val (n) - Значение в Т на позиции n
T'succ(x) - Значение в т на позиции, на 1 большей, чем х
T'pred(x) - Значение в т на позиции, на 1 меньшей, чем х
T'leftof(х) - Значение в T на позиции, на 1 левее, чем х
T'rightof (х) - Значение в Т на позиции, на 1 правее, чем х
Преобразование скалярных типов языка vhdl.
Тип определяет множество значений и множество применимых к ним операций.
Для выполнения ряда операций требуется, чтобы операнды были одного и того же типа. Преобразование типов integer в real и наоборот, осуществляется следующим образом:
real(integer_value); integer(real_value)
При преобразовании действительного числа к целому производится округление до ближайшего целого.
Для преобразования данных из одного перечислимого типа в другой, могут использоваться атрибуты pos и val. Например:
Variable i2:bit;
i2:=bit' val (boolean' pos (true));
Атрибут image может быть использован при сохранении результатов работы в файле, а атрибут value - при чтении данных из файла.
Перечислимые типы языка vhdl.
Перечислимый тип – это такой тип данных, при котором количество всех возможных значений конечно.
Перечислимый тип объявляется путем перечисления названий элементов-значений. Объекты, тип которых объявлен как перечислимый, могут содержать только те значения, которые указаны при перечислении. Элементы перечислимого типа должны быть идентификаторами или символами, которые должны быть уникальными в пределах одного типа. Повторное использование названий элементов в других перечислимых типах разрешается.
Объявление перечислимого типа имеет вид:
TYPE имя_типа IS ( название_элемента , название_элемента );
Пример
Type State_type IS (stateA, stateB, stateC);
VARIABLE State: State_type;
State:= stateB
В данном примере объявляется переменная State, допустимыми значениями которой являются stateA, stateB, stateC.
Любой перечислимый тип имеет внутреннюю нумерацию: первый элемент всегда имеет номер 0, второй – номер 1 и т. д. Порядок нумерации соответствует порядку перечисления.
Операторы отношения
Значения определенных пользователем перечислимых типов могут участвовать в выражениях. Операторы отношения (=, /=, <, <=, >, >=) определены как для перечислимых типов, так и для одномерных массивов, содержащих элементы этих типов. Результат выражения имеет тип BOOLEAN.
Тип BOOLEAN
Тип BOOLEAN является перечислимым типом. Объект данного типа может принимать значения FALSE (ложь) и TRUE (истина), причем FALSE эквивалентно 0, а TRUE эквивалентно 1. Все три типа объектов в VHDL (константы, переменные и сигналы) могут иметь тип BOOLEAN.
Логические операторы
Для операндов типа BOOLEAN и одномерных массивов, содержащих элементы типа BOOLEAN определены все логические операции (AND, OR, NAND, NOR, XOR и NOT). Тип и размер операндов должны быть одинаковыми. Тип и размер результата такой же как тип и размер операндов.
Оператор конкатенации
Оператор конкатенации также определен для операндов типа BOOLEAN и одномерных массивов, содержащих элементы типа BOOLEAN. Результат выражения представляет собой одномерный массив, содержащий элементы типа BOOLEAN; размер массива равен сумме размеров операндов.
Тип INTEGER
Стандарт VHDL определяет тип INTEGER для использования в арифметических выражениях. По умолчанию объекты типа INTEGER имеют размерность 32 бита и представляют целое число в интервале –(231(-). Стандарт языка позволяет также объявлять объекты типа INTEGER, имеющие размер меньше 32 бит, используя ключевое слово RANGE, ограничивающее диапазон возможных значений:
SIGNAL X : INTEGER RANGE –127 TO 127
Данная конструкция определяет X как 8-битное число.
Кроме того, можно определить ограниченный целый тип, используя следующую конструкцию:
TYPE имя_типа IS RANGE диапазон_индексов;
Операторы отношения
Значения типа INTEGER могут участвовать в выражениях. Операторы отношения (=, /=, <, <=, >, >=) определены для операндов типа INTEGER и одномерных массивов, содержащих элементы типа INTEGER. Результат выражения имеет тип BOOLEAN.
Арифметические операторы
Операторы +, –, ABS допустимы для операндов типа INTEGER. Результат выражения имеет тип INTEGER.
Операторы *, /, MOD, REM допустимы в следующих случаях:
если оба операнда являются константами (CONSTANT);
если второй операнд является константой и его значение равно 2n, где n = 0, 1, 2, 3….
Применение операторов *, /, MOD, REM недопустимо если оба операнда являются сигналами (SIGNAL) или переменными (VARIABLE).
Тип BIT
Объект данного типа может принимать значение '0' (лог.0) или '1' (лог.1).
Операторы отношения
Значения типа BIT могут участвовать в выражениях. Операторы отношения (=, /=, <, <=, >, >=) определены для операндов типа BIT и одномерных массивов, содержащих элементы типа BIT. Результат выражения имеет тип BOOLEAN.
Логические операторы
Для операндов типа BIT и одномерных массивов, содержащих элементы типа BIT определены все логические операции (AND, OR, NAND, NOR, XOR и NOT). Тип и размер операндов должны быть одинаковыми. Тип и размер результата такой же как тип и размер операндов.
Тип STD_LOGIC
Типы STD_LOGIC является перечислимым типом. Объекты типа STD_LOGIC могут принимать 9 значений: '0', '1', 'Z', '–', 'L', 'H', 'U', 'X', 'W'.
Для синтеза логических схем используются только первые четыре:
'0' – логический "0"; '1' – логическая "1"; 'Z' – третье состояние; '–' – не подключен.
Операторы отношения
Значения типа STD_LOGIC могут участвовать в выражениях. Операторы отношения (=, /=, <, <=, >, >=) определены для операндов типа STD_LOGIC и одномерных массивов, содержащих элементы типа STD_LOGIC. Результат выражения имеет тип BOOLEAN.
Логические операторы
Для операндов типа STD_LOGIC и одномерных массивов, содержащих элементы типа STD_LOGIC определены все логические операции (AND, OR, NAND, NOR, XOR и NOT). Тип и размер операндов должны быть одинаковыми. Тип и размер результата такой же как тип и размер операндов.
Оператор конкатенации
Оператор конкатенации также определен для операндов типа STD_LOGIC и одномерных массивов, содержащих элементы типа STD_LOGIC. Результат выражения представляет собой одномерный массив, содержащий элементы типа STD_LOGIC.
