- •Вопросы к экзамену по дисциплине «программируемые цифровые устройства»
- •История появления микросхем программируемых цифровых устройств. Предшественники плис.
- •Микросхемы типа программируемая логическая матрица. Их основные параметры. Упрощенная схема.
- •Микросхемы типа программируемая матричная логика. Их основные параметры.
- •Функциональные разновидности плм и пмл.
- •Базовые матричные кристаллы. Их характеристики. Полузаказные и заказные ис.
- •Понятие эквивалентного вентиля цифровой схемы.
- •Базовая ячейка бмк.
- •Микросхемы типа «система на кристалле» (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.
- •История появления микросхем программируемых цифровых устройств. Предшественники плис.
- •Микросхемы типа программируемая логическая матрица. Их основные параметры. Упрощенная схема.
Циклы. Оператор Loop языка vhdl.
Loop – последовательный оператор для выполнения набора последовательных операторов. Операторы повторения loop позволяют сокращенно записывать совокупность однотипных действий.
Простейшая форма оператора loop имеет вид:
[метка:] loop
последовательные операторы
end loop [метка];
Циклы loop могут быть вложенными. Оператор loop сам по себе организует бесконечный цикл. Тело цикла будет выполняться неограниченное число раз, если выполнение цикла не будет прервано другими, специальными управляющими операторами.
Для того чтобы организовать цикл, который бы не был бесконечным, используют оператор exit. Он имеет следующий синтаксис:
Exit [ loop метка] [ when условие];
Если условие when не указано, то выполнение оператора однозначно приводит к завершению цикла; в противном случае цикл завершается только при выполнении условия, стоящего после when. Если не указана метка цикла, то оператор exit осуществляет выход из того цикла, в котором он непосредственно находится. Указание метки после ключевого слова exit позволяет использовать этот оператор для завершения сразу нескольких вложенных друг в друга циклов.
Пример:
L1 : loop
L2 : loop
exit L1 when condition_1; (выход из внутреннего и внешнего циклов)
exit when condition_2; (выход из внутреннего цикла)
end loop L2;
exit when condition_3; (выход из внешнего цикла)
end loop L1;
Для того чтобы на очередной итерации цикла не выполнять всю последовательность действий, включенных в тело цикла, может использоваться оператор next:
next [ loop метка] [ when условие];
Этот оператор отличается от оператора exit тем, что он прерывает не выполнение цикла, а только эту итерацию. После выполнения next прекращается выполнение текущей итерации и происходит переход на следующую итерацию цикла. Этот оператор также может быть снабжен условием выполнения, однако, в отличие от оператора exit (который прерывает выполнение, если условие истинно), next прерывает выполнение, если условие ложно.
Циклы с условием. Оператор цикла while языка vhdl.
Оператор с ключевым словом while обязательно содержит в теле цикла операторы, изменяющие описанное в итерационной схеме условие. Операторы цикла повторяются, пока при вычислении условия не получается значения false. Условие проверяется каждый раз перед исполнением тела цикла. Если перед началом очередной итерации условие истинно, то она выполняется, в противном случае цикл завершается. Такой цикл имеет следующий синтаксис:
[метка:] while условие loop
последовательные операторы
end loop [ метка];
При подобной организации цикла предполагается, что в процессе его выполнения объекты, входящие в условие заголовка цикла, могут изменить свое значение в теле цикла.
while data="0000" loop
data <=data_in;
end loop;
Операторы управления сбором информации о ходе моделирования языка vhdl.
Оператор assert.
При отладке модели полезно контролировать значения, которые принимают объекты, и заносить информацию, получаемую в ходе работы модели, в отчет о проведенном моделировании. Для этого в программу на языке VHDL вводятся специальные операторы, управляющие сбором и сохранением информации о прогоняемой модели.
Для этих целей используется оператор assert, который имеет следующий синтаксис:
assert логическое выражение [report выражение1] [severity выражение2]
Если логическое выражение, стоящее в операторе assert, принимает в ходе моделирования значение false, моделирующая программа немедленно выдает уведомление об этом. Выражение, стоящее в секции report (если она имеется), при этом заносится в отчет. Это выражение может содержать текстовые строки, в качестве которых могут быть использованы атрибуты объектов, приводящие их значения к текстовому типу. Выражение, стоящее в секции severity, позволяет определить уровень ошибки. Оно должно принимать одно из значений, принадлежащих типу severity_level, определение которого выглядит следующим образом:
type severity_level is (note, warning, error, failure);
Например:
assert free_mem<=low_limit report "memory is small" severity warning;
Значение note соответствует ситуации, когда необходимо просто поместить информативное сообщение в отчет. Значение warning соответствует ситуации, когда в ходе выполнения модели возникло нечто, не характерное для нее. Уровень error используется, когда возникшая ситуация свидетельствует об ошибке. Уровень failure свидетельствует о нарушении целостности.
Оператор report
Если информация должна заноситься в отчет при любых условиях, то используется оператор report безусловного занесения информации в отчет. Он имеет следующий синтаксис:
report выражение1 [severity выражение2];
