Файл: Проектирование устройства формирования тестового видеоизображения на базе плис.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.01.2024

Просмотров: 61

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Более подробно ознакомиться с принципами описания аппаратуры на языке AHDL можно в методических указаниях:

  • Основы языка AHDL;

  • Практическое использование языка AHDL;

  • Иерархическое описание;

  • Конечные автоматы.

Ниже приводится пример описания блока Reset с использованием языка AHDL.
SUBDESIGN Reset

Reset_in, Reset_out: INPUT;

Reset_c: OUTPUT;

)

BEGIN

Reset_c=Reset_in OR !Reset_out;

END.
3.2 Описание на языке VHDL
Наиболее универсальным и распространенным языком описания аппаратуры является VHDL. На этом языке возможно как поведенческое, так структурное и потоковое описание цифровых схем.

Язык VHDL используется во многих системах для моделирования цифровых схем, проектирования программируемых логических интегральных микросхем, базовых матричных кристаллов, заказных интегральных микросхем.

С точки зрения программиста язык VHDL состоит как бы из двух компонент: обще алгоритмической и проблемно-ориентированной.

Обще алгоритмическая компонента VHDL - это язык, близкий по синтаксису и семантике к современным языкам программирования типа Паскаль, С и др. Язык от носится к классу строго типизированных. Помимо встроенных (пакет STANDART) простых (скалярных) типов данных: целый, вещественный, булевский, битовый, данных типа время, данных типа ссылка (указатель) - пользователь может вводить свои типы данных (перечислимый, диапазонный и др.).

Помимо скалярных данных можно использовать агрегаты: массивы array, в том числе и битовые векторы bit_vector, и символьные строки string, записи record, файлы file.

Последовательно выполняемые (последовательные) операторы VHDL могут использоваться в описании процессов, процедур и функций. Их состав включает:

  • оператор присваивания переменной (:=);

  • последовательный оператор назначения сигнала (<=);

  • последовательный оператор утверждения (assert);

  • условный (if);

  • выбора (case);

  • цикла (loop);

  • пустой оператор (null);

  • оператор возврата процедуры-функции (return);

  • оператор последовательного вызова процедуры.

Язык поддерживает концепции пакетного и структурного программирования. Сложные операторы заключены в операторные скобки: if- end if; process- end process; case-end case; loop- end loop и т. д.

Различаются локальные и глобальные переменные. Область "видимости" локальных переменных ограничена пределами блока (процессного, процедурного, оператора блока, оператора описания архитектуры).

Фрагменты описаний, которые могут независимо анализироваться компилятором и при отсутствии ошибок помещаться в библиотеку проекта (рабочую библиотеку), называются пакетами проекта. Такими пакетами могут быть объявление интерфейса объекта проекта
entity, объявление архитектуры architecture, объявление конфигурации configuration, объявление интерфейса пакета package и объявление тела пакета package body.

Модули проекта, в свою очередь, можно разбить на две категории: первичные и вторичные. К первичным пакетам относятся объявления пакета, объекта проекта, конфигурации. К вторичным - объявление архитектуры, тела пакета. Один или несколько модулей проекта могут быть помещены в один файл, называемый файлом проекта (design file).

Каждый проанализированный модуль проекта помещается в библиотеку проекта (design library) и становится библиотечным модулем (library unit).

Каждая библиотека проекта в языке VHDL имеет логическое имя (идентификатор). По отношению к сеансу работы с VHDL-системой существует два класса рабочих библиотек проекта: рабочие библиотеки и библиотеки ресурсов.

Рабочая библиотека - это библиотека, с которой в данном сеансе работает пользователь и в которую помещается пакет, полученный в результате анализа пакета проекта.

Библиотека ресурсов - это библиотека, содержащая библиотечные модули, ссылка на которые имеется в анализируемом модуле проекта.

В каждый конкретный момент времени пользователь работает с одной рабочей библиотекой и произвольным количеством библиотек ресурсов.

Модули, как и в обычных алгоритмических языках, - это средство выделения из ряда программ и подпрограмм общих типов данных, переменных, процедур и функций, позволяющее упростить, в частности, процесс их замены.

Так же, как в описаниях проектируемых систем разделяются описания интерфейсов и тел, в VHDL у пакета разделяются описание интерфейса и тела пакета. По умолчанию предусмотрено подключение стандартных пакетов STAND ART и TEXT 10. Пакет STANDART, в частности, содержит описание булевских операций над битовыми данными и битовыми векторами. Нестандартные пакеты реализуются пользователями, желающими более точно отобразить свойства описываемых ими объектов. Например, можно в пользовательском пакете переопределить логические операции И, ИЛИ и НЕ и перейти от булевского (0,1) к многозначному (1,0, X, Z) алфавиту моделирования.

Проблемно-ориентированная компонента позволяет описывать цифровые системы в привычных для разработчика понятиях и терминах. Сюда можно отнести:

  • понятие модельного времени now;

  • данные типа time/, позволяющие указывать время задержки в физических единицах;


данные вида сигнал signal, значение которых изменяется не мгновенно, как у обычных переменных, а с указанной задержкой, а также специальные операции
3.3 Описание с использованием мастера мегафункций MegaWizard
Система QUARTUS II содержит большое число всевозможных мегафункций параметризированных блоков (полуфабрикатов) позволяющих на своей основе спроектировать функционально законченные узлы проекта. Рассмотрим использование этого инструмента на примере создания 8-ми разрядного счетчика. Для создания счетчика необходимо выполнить следующую последовательность действий:

  • на поле окна с блок-схемой проектируемого устройства два раза щелкнуть левой кнопкой мыши. Появится окно «Символ» (Symbol);

  • в появившемся окне выбрать клавишу MegaWizard Plug-In Manager[page 1]. Появляется окно мастера MegaWizard.

Данное окно можно так же вызвать, используя меню «Инструментальные средства» (Tools). В этом меню необходимо выбрать команду MegaWizard Plug-In Manager.

В появившемся окне необходимо ответить на вопрос «Какое действие Вы хотите выполнить?» (Which action do you want to perform? ).

  • Из предложенного перечня действий необходимо выбрать строку «Создать новый блок на основе мегафункции» (Create a new custom megafunction variation) и далее нажать клавишу «Следующий шаг» (Next).

  • Появляется новое окно с названием MegaWizard Plug-In Manager[page 2а. В правом верхнем углу возле надписи «Какое семейство ПЛИС Вы хотите использовать?» (Witch device family will you be using) необходимо выбрать требуемый тип ПЛИС. Ниже, под вопросом «Какой тип выходного файла вы хотите создать» (Witch type of output file do you want to create?), необходимо выбрать язык описания который будет использовать разрабатываемый файл. Можно выбрать АHDL, VHDL или VerilogHDL. Ниже, на вопрос «Как Вы хотите назвать выходной файл?» (What name do you want for the output file?), необходимо ввести имя создаваемого файла с указанием пути к нему.

Выбираем язык AHDL и имя выходного файла «Count_8b».

В левой части окна под надписью «Подключаемые вспомогательные программы» (Installed Plug-Ins) необходимо открыть подпункт «Арифметические» (Arithmetic) и ниже табличку с надписью LPM COUNTER.

Далее необходимо нажать кнопку «Следующий шаг» (Next).

  • На экране появляется следующее окно с названием MegaWizard Plug-In Manager - LPM_COUNTER [page 3 of 6], позволяющее выбрать разрядность его выходной шины (How wide should the “q” output bus de). Ниже под вопросом «Какое направление счета счетчика» (What should the counter direction be?) предлагается выбрать одну из следующих возможностей:


  • Суммирующий (Up only);

  • Вычитающий (Down only);

  • Реверсивный с входом управления направлением счета (1 – суммирующий; 0 - вычитающий) (Create an “updown” input to allow me do both (12 counts up; 0 counts down)).

Все внесенные параметры отображаются на условном обозначении счетчика, присутствующем в левой части окна. После завершения выбора можно нажать либо кнопку «Следующий шаг» (Next), что позволит продолжить ввод требуемых параметров, либо, если все требуемые параметры уже введены и требуется завершить создание файла счетчика, кнопку «Завершить» (Finish).

  • Если была нажата кнопка «Следующий шаг» (Next) на экране появляется окно с названием MegaWizard Plug-In Manager - LPM_COUNTER [page 4 of 6] (рис.37), позволяющее выбрать:

  • модуль счеты счетчика - (Witch type of counter do you want?). Предлагается создать либо двоичный счетчик (Plain binary)? Либо счетчик с заданным модулем счета. Причем значение модуля задается в специальном окне (Modulus, with f count modulus of).

  • Дополнительные входы управления счетчиком такие как:

Вход разрешения сигнала синхронизации (Clock Enable)

Вход разрешения работы счетчика (Count Enable)

Вход сигнала переноса (Carry-in)

Выход сигнала переноса (Carry-out)

  • После выбора указанных параметров можно либо завершить создание счетчика (нажать кнопку «Завершить» (Finish)), либо продолжить задание необходимых свойств счетчика (нажать кнопку «Следующий шаг»).

  • Если была нажата кнопка «Следующий шаг» (Next) на экране появляется окно с названием MegaWizard Plug-In Manager - LPM_COUNTER [page 5 of 6], позволяющее выбрать: синхронные и асинхронные входы установки (Set), сброса (Clear) или записи (Load) информации.

  • Если была нажата кнопка «Следующий шаг» (Next) на экране появляется окно с названием MegaWizard Plug-In Manager - LPM_COUNTER [page 5 of 6]—Summary. Это окно содержит информацию обо всех создаваемых файлах счетчика. Для завершения процесса создания файлов с описанием счетчика необходимо нажать клавишу «Завершить» (Finish).

После создания описания счетчика, разработанные файлы необходимо подключить к проекту. Для этого необходимо выполнить следующую последовательность действий:

  • В меню «Проект» (Project) выбрать команду «Добавить/Удалить файлы в проекте» (Add/Remove Files in Project). Появляется окно «Назначения в проекте N_Pro_1» (Setting – N_Pro_1) .

  • В правой части окна под надписью «Выберите рабочие файлы, которые Вы хотите включить в проект. Выберите «Включить все» чтобы добавить в проект все рабочие файлы, содержащиеся в каталоге проекта» (Select the design files you want to include in the project. Click Add All to Add all design files in the project directory to the project ) находится дополнительное окно в которое необходимо ввести имя файла, подключаемого к проекту. Ниже этого окна, под названием «Имена файлов» (File Name), перечислены имена всех файлов, уже подключенных к данному проекту. Правее указан их тип.


После указания имени подключаемого файла необходимо нажать кнопку «Добавить» (Add).

После ввода всех подключаемых файлов необходимо нажать кнопку «ОК».

На этом процесс подключения файлов к проекту завершается.