Среда разработки Quartus II (Altera)
Схемы разработки программного обеспечения. Понятие проекта - пакет Quartus II. Ввод описания проекта в среде Quartus II. Создание файла верхнего уровня проекта. Описание на языке AHDL. Компилятор, описание с использованием мастера мегафункций MegaWizard.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 03.04.2011 |
Размер файла | 897,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
Современный этап развития электроники характеризуется двумя противоречивыми тенденциями:
§ С одной стороны, расширение области применения электронных средств на все сферы человеческой деятельности, усложнение алгоритмов их работы, необходимость создания аппаратуры управления разнообразными процессами и объектами, в том числе и быстро протекающими, в реальном масштабе времени, требует как увеличения номенклатуры выпускаемых изделий, так и ужесточает требования к их качественным показателям. Это в первую очередь относится к надежности, быстродействию, стоимости, массо-объемные и другим потребительским показателям аппаратуры. Реальное обеспечение всех этих требований невозможно без более тщательной проработки, как отдельных узлов, так и устройства в целом и сопряжено с увеличением времени выхода на рынок готового изделия.
§ С другой стороны стремительный прогресс развития науки и техники, широкое внедрение новых процессов и технологий ведут к значительному сокращению жизненного цикла реально используемой аппаратуры. Зачастую вновь разработанная аппаратура к моменту выхода первых серийных образцов морально устаревает и требует замены.
В связи с этим особое значение приобретает время выхода на рынок новых изделий, что в свою очередь требует сокращения времени, отводимого на разработку, макетирование, испытания и организацию производства вновь разрабатываемых устройств.
Реальным способом разрешения данного противоречия является применение новых принципов проектирования, базирующихся на использовании новейшей элементной базы и средств автоматизации проектирования.
1. Проэктирование в среде QUARTUS II (Altera)
1.1 Схемы разработки программного обеспечения
Программное обеспечение Altera Quartus II предоставляет полную мультиплатформенную среду проектирования, которая может быть легко перенастроена под конкретные требования. Это идеальная среда для проектирования на основе ПЛИС законченных систем на кристалле (SOPS). Программное обеспечение Quartus II включает в себя средства для всех фаз проектирования с применением ПЛИС как FPGA, так и CPLD структур. Взаимосвязь приложений среды проектирования поясняет рис. 1.
Рис. 1
Возможный вариант процедуры проектирования, реализации которой доступна с применением среды Quartus II Web Edition Software Version 4.2, представлен на рис. 2.
Реализация данной процедуры предполагает использование либо стратегии восходящего, либо нисходящего проектирования.
И та и другая стратегии подразумевают использование поведенческих и структурных описаний модулей. При структурном описании модуль представляется в виде совокупности взаимосвязанных компонентов более низкого уровня в иерархии описаний. При поведенческом же описании задается алгоритм работы модуля.
Восходящее проектирование применимо в том случае, когда для создаваемого устройства имеется детальное структурное описание (обычно -- принципиальная схема на микросхемах средней степени интеграции), выполненное в элементном базисе, отличном от имеющегося в распоряжении разработчика СБИС.
Рис. 2
1.2 Понятие проэкта
Под термином «проект» в рамках пакета Quartus II понимается набор файлов, связанных с проектируемым модулем, в котором выделяются две группы файлов:
§ логические файлы, описывающие алгоритм работы устройства (Design Files);
§ вспомогательные файлы(Ancilary Files).
Проект может содержать один логический файл либо несколько логических файлов, образующих иерархическое описание проектируемого модуля. При иерархическом описании среди множества логических файлов различают:
§ файл верхнего уровня в иерархии описаний (Top-level Design File);
§ файлы нижних (одного или нескольких) уровней иерархии (Low-level Design files).
В файле верхнего уровня задается архитектура модуля, определяется набор модулей, входящих в его состав как компоненты, и их взаимосвязь. Описания этих модулей содержатся в логических файлах более низкого уровня иерархии. В их состав, в свою очередь, в виде компонентов также могут входить модули, описания которых приведены в логических файлах еще более низкого уровня иерархии, и т. д.
Имя проекта должно совпадать с именем модуля верхнего уровня в иерархии описаний, а, следовательно, и именем логического файла, в котором хранится его описание. Имена модулей нижних уровней иерархии, в свою очередь, должны совпадать с именами файлов, в которых они описаны.
1.3 Стратегия проектирования
Среда проектирования Quartus II позволяет реализовать либо стратегии восходящего, либо нисходящего проектирования.
И та и другая стратегии подразумевают использование поведенческих и структурных описаний модулей. При структурном описании модуль представляется в виде совокупности взаимосвязанных компонентов более низкого уровня в иерархии описаний. При поведенческом же описании задается алгоритм работы модуля.
Восходящее проектирование применимо в том случае, когда для создаваемого устройства имеется детальное структурное описание (обычно -- принципиальная схема на микросхемах средней степени интеграции), выполненное в элементном базисе, отличном от имеющегося в распоряжении разработчика СБИС.
Таким образом, в процессе проектирования разработчик сначала создает модули нижнего уровня в иерархии описаний, а затем -- модуль верхнего уровня. Отсюда и название стратегии проектирования.
Стратегия нисходящего проектирования применяется в том случае, когда задан алгоритм работы (поведенческое описание) создаваемого устройства и набор системных требований (максимальная тактовая частота работы, задержка распространения сигналов от входов до выходов, потребление энергии, стоимость и т. д.). При этом поведенческое описание может быть как формализованным (блок схема алгоритма, граф, таблица переходов и выходов и т. д.), так и неформализованным (словесное описание). Реализация нисходящего проектирования базируется на итерационном выполнении структурной декомпозиции.
Таким образом, в процессе проектирования разработчик опускается с верхнего уровня иерархии описаний, уровня СБИС, к нижним уровням. Отсюда и название стратегии проектирования.
Следует отметить, что стратегия нисходящего проектирования имеет безусловные преимущества как по временным затратам на разработку, так и по качеству проработки проекта.
2. Ввод описания проекта в среде Quartus II
2.1 Запуск пакета Quartus II
Запуск пакета выполняется либо с использованием иконки, расположенной на рабочем столе компьютера (рис.1.), либо из меню ПУСК: Пуск > Все программы > Altera > Quartus II 4.2 Web Edition Full. Для запуска из командной строки наберите Quartus и нажмите Enter.
Если лицензионный файл не установлен, то после запуска на экране появляется главное окно пакета.
Всплывающее окно запрашивает, какое действие Вы собираетесь совершить:
· Запустить пакет Quartus II;
· Автоматически получить лицензию через Интернет;
· Использовать файл лицензии.
Для запуска пакета выбрать первое действие (Run the Quartus II software).
На экране кратковременно появляется окно обновления пакета (Рис.3.) и далее пакет переходит в рабочий режим. Если файл лицензии установлен, то срезу появляется главное окно проекта. В общем случае рабочее окно состоит из нескольких зон.
2.2 Определение имени проекта и его основных параметров
Новый проект в системе QUARTUS II можно создать с использованием встроенного мастера создания проекта (New Project Wizard).
Алгоритм создания нового проекта:
> Создать в рабочей области жесткого диска папку с названием N_Project_1, где N - номер Вашего варианта задания;
> В меню File выбрать опцию New Project Wizard. Откроется окно New Project. При первом запуске отображается окно заставки, в котором отражена вся возможная последовательность действий, сопровождающая открытие нового проекта. Для перехода к первому окну создания нового проекта следует нажать клавишу Next. В окне первого этапа создания проекта необходимо ввести:
· Первое окно - Как называется рабочий каталог проекта? - Каталог должен содержать все файлы проекта и другие, связанные с данным проектом файлы. Если вводится имя несуществующего каталога, Quartus II создаст его автоматически. В этом окне вводится путь к созданной Вами папке проекта (N_Project_1). Этот путь можно найти, нажав на три кнопки, расположенные слева от окна. Выбранное имя автоматически отображается в остальных окнах задания;
· Второе окно - Какое имя этого проекта - Здесь задается имя файла верхнего уровня проекта. Третье окно - Какое имя блока верхнего уровня иерархии проекта ? - Quartus II автоматически создает установки компиляции и моделирования для блока, указанного в этом окне. После создания проекта Вы сможете добавить другие объекты верхнего уровня иерархии проекта и создать для них установки компиляции и моделирования при помощи меню Processing. Заданное имя проекта автоматически присваивается блоку верхнего уровня иерархии. Однако допустимо задавать имена, отличные от имени блока верхнего уровня иерархии.
> Для завершения операции следует нажать кнопку Next;
> Второе окно создания проекта показано на рис.7. Оно предназначено для подключения к Вашему проекту ранее созданных файлов. Надписи в окнах:
· Выберите имена файлов, которые Вы хотите подключить к своему проекту. Нажмите кнопку Add All, чтобы добавить в рабочий каталог проекта все файлы. Примечание: Если Вы не имеете файлов проекта в других каталогах или файлах, имя которых отлично от имени Вашего проекта, то добавлять файлы в этом окне не обязательно.
· Если ваш проект включает библиотеки специализированных функций, укажите путь к ним.
> Так как на данном этапе работы отсутствуют дополнительные файлы, которые должны быть подключены к проекту, список файлов в окне File Name отсутствует. Примечание: путь к дополнительно подключаемым файлам и их имена могут быть найдены при помощи кнопки «обзор» (Browse - (…)).
> Для завершения операции подключения дополнительных файлов следует нажать кнопку Next;
> Появляется окно выбора семейства и типа ПЛИС, которая будет использована для компиляции проекта. На данном этапе задается ПЛИС семейства Stratix и отмечается строка, обеспечивающая автоматический подбор ее типа.
> Четвертым появляется окно, позволяющее подключить к системе Quartus II при создании данного проекта других средств EDA (Electronic Design Automotion - САПР электронной аппаратуры). При разработке настоящего проекта дополнительные средства EDA не используются, поэтому, не отмечая ни какие дополнительные средства, необходимо нажать кнопку Next
> Последнее, пятое окно содержит полную информацию о сделанных назначениях. При необходимости внесения исправлений, всегда можно вернуться к предыдущим окнам - клавиша Back.
> для завершения создания нового проекта необходимо нажать кнопку -Finish. После закрытия окна создания нового проекта в основном окне программы Project Navigator в строке Hierarchies появится имена используемого семейства ПЛИС и блока верхнего уровня разрабатываемого проекта. Одновременно в верхней части основного окна проекта так же появятся путь к проекту и названия проекта и его блока верхнего уровня иерархии.
2.3 Создание файла верхнего уровня проекта
Для создания файла верхнего уровня проекта выполним следующую последовательность действий:
> создадим файл блок схемы устройства. Для этого выберем в меню FILE команду NEW. Появляется вкладка NEW, позволяющая выбрать тип создаваемого файла. В открывшемся окне необходимо выбрать вкладку Device Design Files и в открывшемся ниже окне выделить строку Block Diagram/Schematic File. Нажать OK. Откроется окно редактора блок-схемы.
> Выбрать команду Save As и ввести имя записываемого файла - N_Pro_1. При необходимости поставьте галочку около сообщения Add file to current project (добавить файл в текущий проект) и запишите файл. В рабочем окне программы появится область с заданным названием файла, а в используемом каталоге проекта появится файл с расширением .bdf (N_PRO_1.bdf).
Примечание: программа автоматически в качестве имени файла верхнего уровня проекта предлагает имя проекта.
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а стили для логического синтеза имеют разные установки для разных семейств устройств, что обеспечивает более эффективное использование архитектуры каждого устройства. Когда разработчик использует какой-нибудь из этих стилей, его установки изменятся при переходе к другому семейству устройств. После смены семейства необходимо проверить новые установки стиля.
Более подробно ознакомиться с принципами описания аппаратуры на языке 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).
После ввода всех подключаемых файлов необходимо нажать кнопку «ОК».
На этом процесс подключения файлов к проекту завершается.
4. Компиляция проекта
4.1 Компилятор пакета Quartus II
программное обеспечение среда quartus
Компилятор пакета Quartus II состоит из ряда модулей, выполняющих следующие функции:
· проверка проекта на наличие ошибок;
· логический синтез;
· размещение и разводка проекта в ПЛИС;
· генерация выходных файлов для моделирования проекта;
· анализ временных характеристик;
· программирование.
В начале компиляции проекта из него извлекается информация об иерархических связях между составляющими его файлами, и описание проекта проверяется на наличие основных ошибок. Затем создается организационная карта проекта, и все файлы преобразуются в единую базу данных, с которой в последствие и будет работать система.
Компиляция может выполняться с учетом заданных требований, к которым относятся:
· обеспечение требуемых временных характеристик проекта;
· увеличение быстродействия;
· оптимизация используемых ресурсов ПЛИС.
Компилятор создает файлы для программирования и конфигурирования ПЛИС фирмы Altera.
Промежуточные и окончательные результаты компиляции в системе Quartus II можно посмотреть в окне «Отчет о компиляции» (Compilation Report).
Программирование и и конфигурирование ПЛИС фирмы Altera может быть выполнено как с помощью встроенных средств пакета, ток и с использованием стандартных промышленных средств программирования.
4.2 Настройка компилятора
Система Quartus II позволяет выполнить компиляцию как всего проекта, так и любой его составляющей части.
При настройке компилятора определяются:
· компилируемая часть проекта (Compilation focus);
· тип компиляции;
· семейство и тип ПЛИС;
· дополнительные параметры компиляции.
При создании нового проекта система Quartus II по умолчанию устанавливает значения всех необходимых параметров. Параметры, заданные по умолчанию, Вы можете переопределить в соответствие с Вашими требованиями. Кроме того, Вы можете выбирать различные параметры настройки непосредственно при выполнении компиляции.
Ниже рассматривается методика настройки основных параметров компиляции, включающая:
· просмотр основных параметров компилятора;
· определение семейства и типа ПЛИС;
· определение режима компиляции;
· определение и настройка параметров логического синтеза и разводки;
· определение параметров верификации проекта на этапе компиляции.
Компилятор системы Quartus II имеет модульный характер. В него входят следующие модули(модули помеченные * являются опциональными и их наличие зависит от настроек):
Модуль анализа и синтеза проекта (Analysis & Synthesis)
Модуль размещения «Сборщик» (Fitter)
Модуль транслятора программатора (Assembler)
Модуль временного анализа (Timing Analyzer)
Помощник проектирования(Design Assistant)*
Редактор списка соединений (EDA Netlist Writer)
Интерфейс базы данных компилятора (Compiler Database Interface) *
Примечание: Позиции отмеченные * являются назначаемыми и не входя в первоначальные установка компилятора.
4.3 Компиляция проекта
Компилятор вовремя работы использует сделанные ранее установки. Компилятор автоматически распознает и обрабатывает все файлы, относящиеся к объекту компиляции. Это файлы с расширениями:
· *.inc - файлы включения, содержащие описание функций на языке AHDL;
· *.mif - файлы инициализации памяти;
· *.hex - файлы инициализации памяти в шестнадцатеричном формате Intel;
· *.psf, *.esf, *.and, *.csf - файлы, содержащие параметры проекта и компиляции.
Генерируемые в процессе компиляции предупреждения (Warnings) и сообщения об ошибках (Error messages) отображаются в окне процессора сообщений (Messages)
4.4 Запуск компилятора
Для запуска компилятора необходимо в меню «Обработка» (Processing) выбрать команду «Запустить компиляцию» (Start Compilation). Начинается процесс компиляции. При этом появляются окна: «Модуль» (Module) в котором отражается процесс прохождения компиляции и фиксируется затраченное на это время и «Отчет о компиляции» (Compilation Report).
Процесс компиляции выполняется в фоновом режиме. Поэтому при длительной компиляции возможна работа с другими окнами пакета Quartus II или другими запущенными под операционной системой программами.
После завершения компиляции на экране появляется соответствующая надпись, свидетельствующая о завершении процесса и количестве найденных ошибок и информационных сообщений.
4.5 Просмотр отчета о компиляции
Вся информация о проведенной компиляции проекта выводится в окне «Отчет о компиляции» (Compilation Report). Непосредственно после завершения компиляции в правой части окна появляется сводный отчет (Flow Summary), включающий информацию о дате и времени проведения компиляции и версии системы Quartus II, именах контрольного и файла верхнего уровня проекта, семействе и типе используемой ПЛИС, типе компиляции (промежуточная или окончательная), удовлетворяет ли проект заданным временным параметрам и количестве использованных логических блоков, выводов и ячеек памяти.
В левой части окна присутствует организованный по иерархическому древовидному принципу каталог сообщений отдельных блоков компилятора. Здесь можно почерпнуть полную информацию о всех этапах компиляции, включая предварительно сделанный установки и результаты работы отдельных блоков компилятора. Дополнительно предоставляется возможность распечатки выбранных частей отчета.
5. Моделирование проекта
5.1 Моделирование
Моделирование (Simulation) позволяет определить реакцию разработанного проекта на заданное входное воздействие, то есть позволяет убедиться в правильности его функционирования.
Исходными данными для моделирования являются внешние воздействия, заданные в виде некоторого входного вектора (набора кодовых слов). Подсистема моделирования (Simulator) пакета Quartus II, в соответствие с алгоритмом проекта, синтезирует выходные сигналы, соответствующие его реакции на заданное входное воздействие, которая очень близка к реакции запрограммированной ПЛИС. В типовых задачах разработчик задает наборы входных векторов и анализирует полученные в результате моделирования выходные сигналы.
В зависимости от поставленной цели подсистема моделирования позволяет выполнить:
· функциональное моделирование проекта (Functional Simulation) при котором проверяется правильность описания и логического функционирования проекта;
· моделирование с учетом временных параметров реальной ПЛИС (Timing Simulation), позволяющее проверить не только правильность логического функционирования проекта, но и его работу с учетом реальных параметров выбранной ПЛИС в самых жестких условиях эксплуатации.
5.2 Создание вектора входных воздействий
Файлы вектора входных воздействий в системе Quartus II могут задаваться в виде:
· описания в графической форме (некоторых временных диаграмм) с использованием редактора временных диаграмм (Waveform Editor) - файлы *.vwf (Vector Waveform Files);
· описание в текстовом виде при помощи векторных файлов (Vector File) - файлы *.vec.
5.3 Создание файла *.vwf
Создание файла (*.vwf), содержащего временные диаграммы, выполняется в следующей последовательности:
· в меню «Файл» (File) выбирается команда «Новый» (New);
· в открывшемся окне «Новый» (New) выбрать закладку «Другие файлы» (Other Files) в которой выделить строку «Файл вектора временных диаграмм» (Vector Waveform Files) и нажать кнопку «ОК»;
· открывается пустое окно редактора временных диаграмм с именем по умолчанию Waveform1.wvf ;
· в окне «Редактировать» (Edit) выбрать команду «Время окончания» (End Time) и в открывшемся окне указать время окончания моделирования (длительность интервала моделирования и единицу измерения времени). Нажать «ОК»;
· созданный файл необходимо сохранить, используя команду «Записать как» (Save As) меню «Файл» (File). Программа автоматически предложит сохранить файл с именем, совпадающим с именем файла верхнего уровня проекта, присвоив ему расширение .vwf;
· для завершения процесса создания файла необходимо нажать кнопку «Сохранить» (Save). При этом необходимо обратить внимание на наличие флажка около надписи «Добавить файл к текущему проекту» (Add file to current project). Если флажок поставлен, то система автоматически подстыкует созданный файл к текущему проекту;
· для удобства, на поле временных диаграмм нанесена временная сетка, предназначенная для визуальной привязки сигналов к конкретным временным интервалам. Используя команду «Шаг сетки» (Grid Size) меню «Редактировать» (Edit) можно изменить ее шаг (период) повторения (Period), начальную фазу (Phase) и относительную длительность каждого из полупериодов (Duty cycle).
5.4 Добавление входных, выходных и промежуточных сигналов
Далее в созданный файл необходимо ввести входные и выходные сигналы, присутствующие в проекте. Для этого необходимо:
· в окне «Редактировать» (Edit) выбрать строку «Вставить узел или шину» (Insert Node or Bas);
· в открывшемся окне с названием «Вставить узел или шину» (Insert Node or Bas) нажать кнопку «Система поиска узлов »(Node Finder);
· открывается окно системы поиска узлов проекта (Node Finder), позволяющее ввести в файл временных диаграмм узлы текущего проекта. В подокне «Искать в» (Lock in) должно быть указано имя верхнего файла проекта, или файла, моделирование которого Вы собираетесь выполнить. В подокне «Система поиска» (Fitter) необходимо указать какие выводы Вы собираетесь искать. Если необходимо вставить в файл временных диаграмм все узлы проекта, в этом подокне необходимо выбрать команду «Выводы все» (Pins: fll).
· для отображения оговоренных условиями поиска выводов необходимо нажать кнопку «Список» (List);
· в левой части окна под заголовком «Найденные узлы проекта» (Nodes Found) появляется список найденных узлов проекта;
· для того чтобы найденные узлы были введены в файл временных диаграмм, их необходимо переместить в правое подокно с именем «Выбранные узлы» (Selected Nodes). Этой цели служат расположенные между подокнами «Найденные узлы проекта» (Nodes Found) и «Выбранные узлы» (Selected Nodes) кнопки, выполняющие следующие функции:
> > - переместить выделенный узел из подокна «Найденные узлы проекта» (Nodes Found) в подокно «Выбранные узлы» (Selected Nodes);
> >> - переместить все узлы из подокна «Найденные узлы проекта» (Nodes Found) в подокно «Выбранные узлы» (Selected Nodes);
> <- переместить выделенный узел из подокна «Выбранные узлы» (Selected Nodes); в подокно «Найденные узлы проекта» (Nodes Found);
> << - переместить все узлы из подокна «Выбранные узлы» (Selected Nodes в подокно) «Найденные узлы проекта» (Nodes Found);
Подобные документы
Графический ввод схемы и симуляция в Quartus II. Основные логические элементы. Описание логических схем при помощи языка AHDL, его элементы. Зарезервированные ключевые слова. Моделирование цифровых схем с использованием параметрических элементов.
курсовая работа [1,7 M], добавлен 07.06.2015Разработка управляющего автомата процессора с жесткой логикой в САПР Quartus II. Построение схемы функциональной микропрограммы команды "Исключающее ИЛИ" в размеченном виде. Унитарное кодирование состояний автомата. Запись функций переходов и выходов.
курсовая работа [671,3 K], добавлен 04.11.2014Изучение среды разработки программного обеспечения "Pelles C". Создание проекта в рабочем каталоге. Исследование методов компиляции и запуска программ. Особенности их отладки посредством встроенного в среду отладчика. Отображение отладочной информации.
лабораторная работа [358,7 K], добавлен 03.10.2014Описание ключевых характеристик проекта создания хлебопекарни, фазы, задачи и необходимых для их выполнения ресурсы. Анализ и оптимизация плана проекта с использованием Microsoft Project, ввод данных в программу. Автоматическое выравнивание ресурсов.
контрольная работа [960,9 K], добавлен 02.06.2010Реализация задачи использования методики SDLC (управление жизненным циклом разработки программного обеспечения) при внедрении реальной системы информационных технологий. Описание проекта внедрения системы автоматической регистрации участников выставок.
реферат [585,1 K], добавлен 10.09.2010Описание комбинационных и последовательностных логических устройств, групповых операций, цифровых таблиц истинности с учетом архитектурных особенностей. Особенности языка AHDL. Зарезервированные ключевые слова. Реализация иерархического проекта.
реферат [2,2 M], добавлен 23.01.2014Оценка финансовой, стратегической ценности и уровня рисков проекта. Классификация проектов: "свой" заказчик, продукт под заказ, тиражируемый продукт, аутсорсинг. Организация процесса разработки программного обеспечения, методологии его проектирования.
презентация [82,8 K], добавлен 07.12.2013Суть и описание проекта (резюме бизнес-плана). Классификация программного обеспечения для управления проектами. Функции программного обеспечения для календарного планирования. Календарное планирование. Управление затратами.
курсовая работа [192,2 K], добавлен 18.06.2007Модель этапа пост-архитектуры. Предварительная оценка программного проекта на основе LOC-метрик. Расчет затрат на разработку ПО. Стоимость, длительность разработки проекта на основе модели этапа пост-архитектуры конструктивной модели стоимости СОСОМО II.
курсовая работа [89,9 K], добавлен 29.09.2009Pascal - высокоуровневый язык программирования общего назначения и интегрированная среда разработки программного обеспечения для платформ DOS и Windows. Входная информация, требуемая для решения задачи и принятые обозначения; описание алгоритма.
курсовая работа [259,6 K], добавлен 18.01.2011