- •Введение
- •Работа №1. Описание и моделирование системы логических функций. Основные сведения о языке vhdl
- •Синтаксис основных конструкций и операторов языка vhdl
- •Задание
- •Ход выполнения
- •Пример выполнения
- •Варианты заданий
- •Содержание отчёта
- •Работа №2. Описание и моделирование нерегулярных логических схем. Задание
- •Ход выполнения
- •Пример выполнения
- •Описание логических элементов
- •Содержание отчёта
- •Работа №3. Описание и моделирование регулярных (систолических) схем. Задание
- •Синтаксис основных конструкций и операторов языка vhdl
- •Ход выполнения
- •Пример выполнения
- •Содержание отчёта
- •Приложение 1
- •Список литературы и источников
- •Содержание
Работа №3. Описание и моделирование регулярных (систолических) схем. Задание
Провести описание логической схемы с регулярным соединением элементов двумя способами и сравнить результаты моделирования.
Способ №1. Составить трёхуровневое иерархическое описание ограниченного фрагмента регулярной схемы:
первый (нижний) уровень иерархии составляют функциональные описания логических элементов;
второй (средний) уровень иерархии должны составлять две подсхемы (выделены штриховой линией);
третий (верхний) уровень иерархии – описание схемы в целом;
Способ №2. Составить параметризованное описание регулярной схемы, то есть описать регулярную схему с использованием операторов generate и generic для произвольной разрядности N.
Синтаксис основных конструкций и операторов языка vhdl
Параллельный оператор генерации generate
Оператор генерации позволяет сокращённо, используя цикл, описывать совокупности повторяющихся параллельных операторов, в том числе и операторов конкретизации компонентов. Таким образом, оператор генерации представляет собой механизм для проектирования регулярных (систолических) структур.
Есть три способа употребления оператора генерации:
способ for;
способ if;
комбинированный способ.
Способ for. Кроме ключевого слова generate, в начале описания оператора генерации используется только конструкция с ключевым словом for. По сути представляет собой цикл с параметром генерации, который выглядит следующим образом:
Метка: for параметр генерации generate
Параллельные операторы
end generate метка;
Параметр генерации – некоторая константа дискретного типа в определённом диапазоне. Параметром генерации не может быть декларированная переменная или сигнал! Для описания параметра генерации используется конструкция следующего вида:
Имя параметра генерации in K to (downto) L.
K и L – целочисленные константы, которые определяют границы диапазона изменения параметра генерации. Если используется ключевое слово to, то K – нижняя граница, а L – верхняя. Шаг цикла равен +1. Если используется ключевое слово downto, то всё наоборот, и шаг цикла равен -1.
Таким образом, полностью структура оператора генерации по способу for выглядит следующим образом:
Метка: for имя параметра генерации in K to (downto) L 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 может быть несколько.