- •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.
6.4. Имплементация и отладка проектов
Теперь, когда проект полностью описан, самое время вернуться к вопросу проверки верности и работоспособности спроектированного устройства. Важность и практическая неизбежность отладки мало мальски сложного (с точки зрения разработчика) проекта заставляет обсудить эту проблему. Эффективность процедуры отладки складывается из двух сильно связанных частей: инструментария, имеющегося в распоряжении проектировщика, и его умения пользоваться подобным инструментарием. Из опыта, полученного в ходе выполнения работ предыдущих разделов, видно, что как системы моделирования, так и системы имплементации позволяют производить поиск синтаксических и семантических ошибок проектов, написанных на языке VHDL. Однако эффективность использования этих двух систем для целей отладки различна.
В моделирующих САПР, и значительно реже в синтезирующих, для проверки работоспособности проектируемого устройства осуществляется разработка специальных тестирующих программ (TestBench). В этих программах определяется последовательность перебора внешних сигналов, достаточных для исполнения требуемых тестовых действий. В состав TestBench либо включается описание явно выраженного компонента-генератора тестирующих воздействий, формирующего требуемую последовательность, либо требуемые изменения тактирующих импульсов встроены в TestBench. Каждый подход имеет свои плюсы и минусы. Обычно это поведенческое описание алгоритма с изменением значений сигналов генератора в запрограммированные моменты модельного времени. Такое описание можно непосредственно встраивать в программу, представляющую проектируемое устройство (имея ввиду исключение этого фрагмента из программы при передаче описания в подсистему синтеза), однако более целесообразно строить специальную программу (TestBench), описывающую на структурном уровне модель испытательной установки, содержащей проектируемое устройство и генератор тестирующих воздействий. Отлаживаемое устройство встраивается как компонент в состав TestBench (смотри раздел 3).
Достоинством моделирующих систем является, прежде всего, то, что отладка может производиться на различных уровнях детализации проектируемой системы, и что очень существенно на функциональном уровне описания. Для функционального описания характерно отсутствие ограничений на используемые конструкции языка (можно использовать не синтезируемые конструкции). Следующее отличие связано с тем, что моделирование осуществляется в соответствии с текстом отдельных файлов, поэтому при отладке легко идентифицировать какие действия и где выполняются. В синтезирующих системах отладка выполняется над моделью, синтезированной в результате компиляции. Объединение в одной модели описаний из разных файлов далеко не всегда позволяет просто определить источник расхождений желаемого и наблюдаемого поведения системы. Достоинством синтезирующих систем является возможность моделирования поведения как функциональной, так и временной модели. Хотя результаты моделирования временной модели можно просматривать в моделирующих системах.