end generateметка;. метка1: ifусловие generate. Ход выполнения. Пример выполнения. Entityимя объектаis. Параллельные операторы после ключевого слова generate будут выполняться только в том случае, если условие истинно!
end generateметка; Способ if. Кроме ключевого слова generate, в начале описания оператора генерации используется только конструкция с ключевым словом if. Условием является логическое выражение. Полностью структура оператора генерации по способу if выглядит следующим образом: Метка: if условие generate Параллельные операторы end generate метка; Параллельные операторы после ключевого слова generate будут выполняться только в том случае, если условие истинно! Комбинированный способ сочетает в себе два предыдущих. Его структура выглядит следующим образом: метка: for имя параметра генерации in K to ( downto ) L generate метка1: ifусловие generate параллельные операторы end generate метка1; end generate метка; Операторов генерации по способу if внутри оператора по способу for может быть несколько.
Ход выполнения 1. Ввести имена входов и выходов схемы с использованием типа данных BIT_VECTOR (только для способа №2). 2. Составить VHDL-модель каждого из типов элементов, входящих в схему и составляющих первый уровень иерархии. 3. Составить VHDL-модель подсхем, составляющих второй уровень иерархии для способа №1. 4. Составить VHDL-модель схемы в целом по способу №1 для конкретного значения N (N=4). 5. Составить тестирующую программу и провести моделирование иерархического описания и получить временную диаграмму. 6. Произвести описание регулярной схемы по способу №2 с использованием операторов generate и generic для произвольной разрядности N. 7. Составить тестирующую программу для моделирования по способу №2 при том же значении параметра N, выбранного в п. 4. 8. Сравнить результаты моделирования по способу №1 и способу №2 (результаты должны совпасть).
9. Проверить модель по способу №2 при N={2, 3, 5}.
Пример выполнения
Способ №1 Иерархическое описание схемы в целом аналогично описанию, рассмотренному в работе №2. Отличие состоит в том, что добавляется описание подсхемы, а также в состав компонент могут входить более мелкие и простые компоненты. Получающаяся иерархическая структура представлена на рисунке 5.
∙ ∙ ∙
Рисунок 5. Иерархическая структура проекта для способа №1. Для простоты следует ограничить количество значений каждого входного сигнала в тестирующей программе до 32. Способ №2 В иерархической структуре проекта для способа №2, по сравнению со способом №1, отсутствует описание подсхемы, и все компоненты связаны напрямую с основной программой. Рассмотрим особенности основной программы. Вид оператора generic, который находится в описании интерфейса объекта entity (см. работу №1): Entityимя объектаis Generic (N: natural: = натуральное число); Port (…); End имя объекта; N – настроечный параметр типа natural, которому присваивается конкретное значение (в нашем случае это будут значения от 2 до 5). Тип сигнала BIT_VECTOR задаётся в описании интерфейса объекта следующим образом: Entityимя объектаis Port (имя сигнала: in BIT_VECTOR (K to L); имя сигнала: out BIT_VECTOR (P downto Q)); End имя объекта; Здесь K и Q – нижние границы диапазона, а L и P – верхние. В нашем случае нижняя граница всегда будет равна 0, а верхняя – N-1 или N. Также тип данных BIT_VECTOR могут иметь и внутренние сигналы, объявляемые после ключевого слова signal в архитектурном теле объекта. Рисунок 6. Схема N-разрядного сумматора. Приведём небольшой пример описания N-разрядного сумматора (см. рисунок 6), иллюстрирующий все эти особенности, а также использование оператора generate.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|