- •1.1. Структура программы на vhdl. Её основные компоненты
- •Практикум по теме
- •1.3. Контрольные вопросы
- •2. Представление комбинационных схем
- •2.1. Параллельные и последовательные операторы
- •Переменные и сигналы
- •2.3. Данные, выражения и их интерпретация в цифровом устройстве
- •Типичные ошибки при представлении комбинационных схем на vhdl
- •Практикум по теме
- •2.5. Контрольные вопросы
- •3. Структурное представление устройств
- •3.1. Структура и поведение
- •3.2. Описание структур на языке vhdl
- •3.3. Практикум по теме
- •3.4. Контрольные вопросы
- •4. Описание и синтез последовательностных схем
- •4.1. Триггеры и регистровые схемы
- •4.2. Практикум по теме
- •4.3. Контрольные вопросы:
- •5. Описание и синтез автоматов
- •5.1. Классические понятия цифровых автоматов
- •5.2. Инженерный подход к проектированию цифровых автоматов
- •5.3. Практикум по теме
- •5.4. Контрольные вопросы
- •6. Проектирование операционных устройств
- •6.1. Методы построения операционных устройств
- •6.2. Основные этапы проектирования цифровых устройств
- •6.3 Пример проектирования
- •6.4. Имплементация и отладка проектов
- •6.5. Практикум по теме
- •Рекомендуется придерживаться следующего порядка работы:
- •6.4. Контрольные вопросы
- •I. Описание системы моделирования
- •1. Краткое знакомство с системой меню
- •Окно библиотеки проекта – содержит список доступных библиотек пользователя и файлов, включенных в проект
- •Примерный порядок работы в системе QuestaSim V.6.5/6.6
- •4. Компиляция и синтаксическая отладка
- •5. Моделирование
- •II. Описание системы имплементации проектов в плис
- •2.1. Типовая последовательность выполнения работы.
- •2.2. Процесс моделирования работы узлов средствами пакета Quartus II
- •Работа в редакторе временных диаграмм
- •III. Создание программ, описывающих автоматы
- •Рекомендованные номера контактов для проекта
- •3.2. Таблица соединений платы Cyclone II Starter Board.
2.5. Контрольные вопросы
1. Представьте синтаксическое определение и порядок исполнения операторов if, case, loop, условного присваивания, присваивание по выбору.
2. Определите правила и преимущественные области использования типов данных для представления одиночных данных.
3. Как выполняется переход от табличного задания логической функции к алгебраическому?
4. Когда могут возникнуть в схеме «неожиданные» триггеры?
3. Структурное представление устройств
3.1. Структура и поведение
При проектировании аппаратуры применяют представление проекта с различной степенью детализации, иными словами различные модели. Модель, отражающая объект проектирования в форме правил преобразования входных данных в выходные, называется поведенческой. Применяя поведенческое описание, проектировщик абстрагируются от вопросов технической реализации, сосредотачивая внимание на алгоритмических аспектах работы проектируемого изделия, в том числе на отладке алгоритма функционирования. Поведенческое представления обеспечивает лучший уровень взаимопонимания в коллективе разработчиков, а в ряде случаев также и разработчиков с покупателями проекта, включая распространение результатов проектирования как объектов интеллектуальной собственности (IP-блоков). Одним из преимуществ поведенческого описания является возможность относительно легкого переноса описания в различные САПР и для реализации (синтеза) на основе различных технологий.
Большинство практических разработок строятся из блоков, либо стандартных, либо создаваемых параллельно несколькими исполнителями. Структурная модель описывает проект в виде совокупности модулей, каждый из которых реализует определенную часть задачи, и набора связей между ними. Современные САПР способны синтезировать аппаратную реализацию, как на основе поведенческого представления, так и структурного и смешанного. Однако при этом предполагается, что каждый подблок структуры уже имеет свое описание. При проектировании на VHDL это означает, что описаны и доступны ENTITY и архитектурное тело, определяющее поведение или внутреннюю структуру подблока. В конечном счете, необходимо, чтобы для всех модулей проекта в проектной библиотеке содержались поведенческие модели. В том числе, если компоненты модуля представлены структурными моделями, то компоненты таких вложенных структур в свою очередь должны иметь поведенческое описание, и так далее.
Структурная модель является естественным способом создания сложных проектов, описание которых целесообразно выполнить по иерархическому принципу. Структурная модель приближает описание к реальной конфигурации проектируемого устройства, а, как минимум, к представлению разработчика об этой конфигурации, то есть обеспечивает некоторое влияние разработчика на результат синтеза, например, для учета плохо формализуемых требований к проекту. К тому же надо иметь в виду, что компилятор при синтезе на базе «чисто поведенческого» описания может синтезировать недостаточно эффективные реализации.
Использование структурных моделей кроме того обеспечивает возможность:
- использования широкого набора типовых компонентов, содержащихся в библиотеках систем автоматизированного проектирования;
- многократного использования ранее созданных проектной группой узлов в новых проектах (так называемый процесс reusing);
- параллельной «доработки» фрагментов проекта несколькими разработчиками.
Большинство современных языков проектирования аппаратуры поддерживают возможность описания проекта, как в поведенческой форме, так и в виде совокупности заранее описанных компонентов и их связей (то есть в структурной форме), и язык VHDL не является исключением.
Всякая иерархия представлена главным проектным модулем, который называют вершиной проекта, и совокупностью подчиненных проектных модулей. Вершина проекта содержит объявления портов и внутренних связей, а также так называемые операторы вхождения компонентов (INSTANTION STATEMENT), т. е. определенные синтаксисом языка указания на включенные компоненты и способ их соединений. В VHDL такое описание называют структурным архитектурным телом (SAB – structural architectural body). Подчиненный проектный модуль может быть, в свою очередь, вершиной следующей иерархии. В общем случае, проектные модули независимы в том смысле, что каждый может использоваться самостоятельно в различных конструкциях и быть вершиной проекта. Проектные модули, относящиеся к одному проекту, могут находиться в одном файле или представляться несколькими файлами. В последнем случае проектные файлы должны компилироваться в библиотеку проекта в порядке их вхождения в иерархию снизу вверх.