Файл: Проектирование устройства формирования тестового видеоизображения на базе плис.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.01.2024
Просмотров: 63
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Примечание: программа автоматически в качестве имени файла верхнего уровня проекта предлагает имя проекта.
2.4 Введение исходных блоков
Создание блок схемы проекта выполняется с использованием панели инструментов главного окна программы.
→ Выбрать на панели инструментов клавишу «Рисование блока »(Block Tool).
→ Нажать на белой части поля проекта левую кнопку мыши, и нарисовать прямоугольную область, размеры которой соответствуют вводимому блоку. Корректировать свои действия при этом можно используя команды отмены (Undo) и повтора (Redo) действий меню «Правка» (Edit).
→ Выбрать на панели инструментов клавишу «указатель выделения» - в виде стрелки, навести указатель мыши на созданный блок и дважды щелкнуть левой кнопкой мыши. Открывается диалоговое окно «Свойства блока» (Block Properties). Оно предназначено для ввода имени проекта и обозначения его входных и выходных сигналов.
Примечание: Вызвать окно Block Properties можно и не выходя из режима «Ввод блока». Для этого достаточно наведя курсор на нужный блок нажать правую клавишу мыши. В открывшемся меню надо выбрать строку Block Properties.
→ Выбрать вкладку «Основные» (General) и, в открывшемся окне ввести имя блока. Назовем, в нашем случае, этот блок «Count_m» - блок счетчика.
Имя во втором окне вкладки оставляем без изменения ( Instance name - inst)
-
Выбрать вкладку I/0s. В окно «Имя» (Name) ввести имя первого входного вывода блока – CLK. В окне «Тип» (Type) указать тип вывода. В нашем случае это вход – Input и нажать клавишу «Добавить» (Add). В нижерасположенном окне (Existing block I/0s) появится соответствующая запись. Аналогичным образом ввести и имена остальных выходов и выходов данного блока. При этом необходимо следить за правильным назначением функции выводов: вход (Input), выход (Output) или двунаправленный вывод (Bidir). Нужное выбирается из вкладки «Тип» (Type). После окончания ввода имен всех выводов данного блока необходимо нажать ОК. После этого введенные названия входов и выходов появятся в таблице редактируемого блока.
Примечание: В блоке Count_m выходным сигналам необходимо присвоить имя D[3..0] взамен DATA[3..0]. Это необходимо для дальнейшего описания свойств системы Quartus II.
Аналогичным образом вводятся имена входов и выходов всех блоков рассматриваемой структуры.
Примечание: После ввода имен выводов может оказаться, что из-за малых размеров блоков они полностью не отображаются в таблицах. Увеличить размеры блоков можно двумя путями:
-
при выбранном на панели инструментов указателе выделения (стрелка) щелкнуть по нужному блоку левой кнопкой мыши и растащить его до нужного размера за точки на обрамляющем его контур;
выделить вышеуказанным способом нужный блок и выбрать в меню «Правка» (Edit) команду AutoFit. Блок автоматически увеличится до нужных размеров.
При необходимости, разработанные блоки можно расставить в площади главного окна программы наиболее удобным образом. Для этого на панели инструментов необходимо выбрать команду «Указатель выделения».- стрелку. Выбрать данную команду можно также нажав клавишу ESC. Навести указатель мыши на передвигаемый блок, нажать левую кнопку мыши и, удерживая ее, переместить блок на новое место.
После выполнения всех описанных действий необходимо записать проект (команда Save в меню File).
2.5 Создание описаний отдельных блоков проекта
Для того, чтобы создать файлы описания отдельных блоков проекта предварительно необходимо выполнить следующую последовательность действий:
-
Запустить пакет Quartus II; -
Вызвать меню «Файл» (File) и в нем выбрать команду «Открыть проект» (Open Project); -
В открывшемся меню (рис.27) в строке «Тип Файлов» выбрать расширение файла, соответствующее проекту (Quartus II Project File(*.qpf;*.quartus;*.qar)), в строке «Папка» указать путь к Вашему проекту, а в свободном поле выбрать имя проекта и нажать кнопку «Открыть»; -
Во втором открывшемся окне (рис.28) выбрать имя нужного файла верхнего уровня проекта и нажать «Открыть». -
В главном окне программы появится вызванный Вами файл верхнего уровня проекта. В нашем случае это файл N_PRO_1, содержащий блок-схему устройства, общий вид которого соответствует рис.26. -
Выделите левой кнопкой мыши на блок-схеме проекта блок, описание которого Вы хотите ввести. В нашем случае это блок Reset, содержащий два входа (Reset_in, Reset_out) и один выход (Reset_c) и нажмите правую кнопку мыши;
В появившемся окне (Рис.29) выделить курсором строку «Создать файл проекта для выделенного блока» (Create Design File from Selected Block) и нажать левую кнопку мыши;
-
Появившееся окно (Рис.30) предоставляет Вам возможность ввести либо поведенческое описание алгоритма работы блока на языках высокого уровня - (AHDL, VHDL или Verilog HDL), либо вариант его схемотехнического
представления (Schematic). В зависимости от выбранного типа описания
Quartus II создаст файл описания блока с соответствующим расширением. Имя создаваемого файла автоматически задается как имя первоначально выделенного блока. При выборе описания AHDL будет создан файл Reset.tdf, при VHDL – файл Reset.vhd, при Verilog HDL – Reset.v, а при выборе Schematic – Reset.bdf. Необходимо обратить внимание, чтобы в меню был установлен флаг около надписи «Добавить новый файл к текущему проекту» (Add the new design file to the current project). После выбора типа описания файла необходимо нажать кнопку ОК.
-
Система Quartus II соответствующей надписью, появляющейся на экране, сообщает об успешном открытии нужного файла и открывает его в своем главном окне. Теперь можно вводить описание блока.
3. Описание
3.1 Описание на языке AHDL
Язык описания аппаратуры AHDL был разработан фирмой Altera и относится к языкам описания аппаратуры низкого уровня. Он предназначен для описания комбинационных и последовательностных логических устройств, групповых операций, цифровых автоматов (state machine) и таблиц истинности с учетом архитектурных особенностей ПЛИС фирмы Altera. Он полностью интегрируется с системами автоматизированного проектирования ПЛИС MAX+PLUS П и QUARTUS II. Файлы описания аппаратуры, написанные на языке AHDL, имеют расширение * .TDF (Text design file). Для создания TDF-файла можно использовать как текстовыми редакторами систем MAX+PLUS II или QUARTUS II, так и любыми другими текстовыми редакторами. Проект, выполненный в виде TDF-файла, компилируется, отлаживается и используется для формирования файла программирования или загрузки ПЛИС фирмы Altera.
Операторы и элементы языка AHDL являются достаточно мощным и универсальным средством описания алгоритмов функционирования цифровых устройств, удобным в использовании. Язык описания аппаратуры AHDL дает возможность создавать иерархические проекты в рамках одного этого языка или же использовать в иерархическом проекте как TDF-файлы, разработанные на языке AHDL, так и другие типы файлов. Для создания проектов на AHDL можно, конечно, пользоваться любым текстовым редактором, но текстовые редакторы систем MAX+PLUS II или QUARTUS II предоставляет ряд дополнительных возможностей для ввода, компиляции и отладки проектов.
Описания, созданные на языке AHDL, легко внедряются в иерархическую структуру Проекта. Системы MAX+PLUS П и QUARTUS II позволяет автоматически создать символ компонента, алгоритм функционирования которого описывается TDF-файлом, и затем вставить его в файл схемного описания (GDF-файл). Подобным же образом можно вводить собственные функции разработчика, помимо разработанных фирмой Altera порядка 300 макрофункций, в любой TDF-файл. Для всех функций, включенных в мак-библиотеку систем MAX+PLUSII или QUARTUS II, фирма Altera поставляет файлы с расширением -*.inc, которые используются в операторе включения INCLUDE.
При распределении ресурсов устройств разработчик может пользоваться командами текстового редактора или операторами языка AHDL, для того чтобы сделать назначения ресурсов и устройств. Кроме того, разработчик может только проверить синтаксис или выполнить полную компиляцию для отладки и запуска проекта. Любые ошибки автоматически обнаруживаются обработчиком сообщений и высвечиваются в окне текстового редактора.
При работе с AHDL следует соблюдать так называемые "Золотые правила" (Golden rules). Выполнение этих правил позволит эффективно применять язык AHDL и избегать многих ошибок:
-
Следует соблюдать форматы и Правила присвоения имен, чтобы программа была читаемой и содержала меньше ошибок; -
Несмотря на то. что язык AHDL не различает прописные и строчные буквы, Altera рекомендует для улучшения читаемости использовать прописные буквы для ключевых слов; -
Не следует применять вложенные конструкции условного оператора If, если можно использовать оператор выбора Case; -
Строка в TDF-файле может быть длиной до 255 символов. Однако, следует стремиться к длине строки, умещающейся на экране. Строки заканчиваются нажатием клавиши Enter; -
Новую строку можно начинать в любом свободном месте, т.е. на местах пустых строк, табуляций, пробелов. Основные конструкции языка отделяются пустым пространством; -
Ключевые слова, имена и числа должны разделяться соответствующими символами или операторами, и/или одним и более пробелами; Комментарии должны быть заключены в символы процента (%). Комментарий может включать любой символ, кроме символа %, поскольку компилятор систем МАХ+PLUS II или QUARTUS II игнорирует все, заключенное в символы процента. Комментарии не могут быть вложенными; -
При соединении одного примитива с другим используйте только "разрешенные" связи между ними, не все примитивы могут соединяться друг с другом. • Используйте только макрофункции EXPDFF, EXPLATCH, NANDLTCH и NORLTCH, входящие в макробиблиотеку системI. Не создавайте свои собственные структуры перекрестных связей. Избегайте многократного последовательного использования примитивов EXPDFF, EXPLATCH, NANDLTCH и NORLTCH. Многочисленные повторы этих макрофункций должны всегда разделяться примитивами LCELL.
При вводе проекта следует помнить о следующем:
-
Если несколько двунаправленных или выходных выводов связаны вместе, нельзя использовать оператор Pin Connection для соединения выводов при функциональном моделировании с аппаратной поддержкой или функциональном тестировании; -
Не стоит создавать прототипы функций для примитивов. Однако разработчик может переопределить примитивы в объявлениях прототипов функций для изменения порядка вызова входов в TDF-ФАЙЛЕ; -
Не редактируйте файл Fit. Если разработчик желает отредактировать назначения для проекта, необходимо сохранить сначала файл Fit как TDF-файл или сделать обратное назначение с помощью команды Project Back-Annotate и отредактировать их с помощью команд Chip to Device, Pin/LC/Chip u Enter Assignments; -
Если разработчик хочет загрузить регистр по определенному фронту глобального тактового сигнала Clock, фирма Alterа рекомендует для загрузки регистра использовать вход Clock Enable одного из триггеров типа Enable: DFFE, TFFE, JKFFE или SRFFE; -
Когда разработчик начинает работать с новым файлом проекта, сразу же необходимо задать семейство ПЛИС, на которое ориентирован проект, с помощью конструкции Family для того, чтобы в дальнейшем иметь возможность воспользоваться макрофункциями, специфичными для данного семейства. Если разработчик не задаст семейство, оно будет считаться таким же, как и в предыдущем проекте; -
Используйте опцию Design Doctor для проверки надежности логики проекта во время компиляции; -
Предоставляемые по умолчанию фирмой Alterа стили для логического синтеза имеют разные установки для разных семейств устройств, что обеспечивает более эффективное использование архитектуры каждого устройства. Когда разработчик использует какой-нибудь из этих стилей, его установки изменятся при переходе к другому семейству устройств. После смены семейства необходимо проверить новые установки стиля.