Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...