Государственное образовательное учреждение высшего профессионального образования «МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЛЕСА» Н.В. Ефремов Введение в систему автоматизированного проектирования Quartus II Рекомендовано к изданию Редакционно-издательским советом университета в качестве учебного пособия для студентов специальности 230100 факультета электроники и системотехники Учебное пособие Москва Издательство Московского государственного университета леса 2011 УДК 004.896(075) Е92 Разработано в соответствии с Федеральным государственным образовательным стандартом ВПО 2009 г. по направлению подготовки 230100 «Информатика и вычислительная техника» на основе программы дисциплины «Организация ЭВМ и систем» Рецензент: доцент кафедры управляющих интеллектуальных систем МИФИ Е.Ф. Березкин Работа подготовлена на кафедре вычислительной техники Ефремов Н.В. Е92 Введение в систему автоматизированного проектирования Quartus II: учебное пособие. – М.: ГОУ ВПО МГУЛ, 2011. -147 с. Изложены основные сведения по системе автоматизированного проектирования Quartus II, достаточные для выполнения лабораторных работ и курсовых проектов по дисциплинам «Теория автоматов», «Схемотехника ЭВМ», «Организация ЭВМ и систем». Предназначено для студентов, обучающихся по специальности «Вычислительные машины, комплексы, системы и сети» и студентов смежных специальностей. УДК 004.896(075) ©Н.В. Ефремов, 2011 ©ГОУ ВПО МГУЛ, 2011 3 Цель пособия – изложить основные сведения по системе автоматизированного проектирования Quartus II, достаточные для выполнения лабораторных работ и курсовых проектов по дисциплинам «Теория автоматов», «Схемотехника ЭВМ», «Организация ЭВМ и систем». Элементной базой лабораторного практикума являются стенды, содержащие программируемые логические интегральные схемы (ПЛИС) компании Altera. В пособии раскрыты основные возможности модулей Quartus II, обеспечивающие полный цикл проектирования устройств на программируемых кристаллах компании Altera. Представленное описание ориентировано на использование версии 9.1 пакета Quartus II. Последовательно рассмотрено выполнение всех этапов проектирования от ввода проекта до программирования кристалла. Изложение материала сопровождается большим количеством примеров, включая примеры с использованием языка VHDL. Настоящее пособие позволит студентам быстро освоить пакет Quartus II и получить навыки практической работы в современной проектной среде. Предназначено для студентов, обучающихся по специальности «Вычислительные машины, комплексы, системы и сети» и студентов смежных специальностей. 4 Оглавление Часть 1 Обзор САПР Quartus II 6 1.1. Назначение и возможности Quartus II 6 1.2. Понятие проекта в Quartus II 7 1.3. Процедура проектирования в Quartus II 10 1.4. Запуск Quartus II и открытие проекта 14 1.5. Графический пользовательский интерфейс Quartus II 16 1.5.1. Окна менеджера проекта Quartus II 16 1.5.2. Навигатор проекта 18 1.6. Создание нового проекта 19 Часть 2 Ввод описания проекта в Quartus II 25 2.1. Ввод и редактирование схем в графическом редакторе 25 2.1.1. Назначение и возможности графического редактора Quartus II 25 2.1.2. Создание нового схемного модуля 26 2.1.3. Окно графического редактора схем 29 2.1.4. Ввод элементов в схему 31 2.1.5. Соединение элементов в схеме 34 2.1.5.1. Рисование одиночных соединений 34 2.1.5.2. Рисование шин 37 2.1.6. Элементы текстового и графического оформления схемы 38 2.1.7. Редактирование схемы 43 2.1.8. Создание графического обозначения схемного модуля 45 2.1.9. Создание текстового описания на языке HDL для схемного модуля 48 2.2. Ввод и редактирование текстового описания проекта 50 2.2.1. Назначение и возможности текстового редактора 50 2.2.2. Создание нового файла с текстовым описанием 52 2.2.3. Окно текстового редактора 55 2.2.4. Использование шаблонов в текстовом описании 57 2.2.5. Редактирование текстового описания 63 2.2.6. Преобразование файлов с текстовыми описаниями в другие виды файлов 64 2.3. Просмотр и редактирование условных графических обозначений элементов 65 2.4 Ввод и редактирование содержимого модулей памяти 68 2.4.1. Назначение и возможности редактора содержимого модулей памяти 68 2.4.2. Создание нового файла инициализации памяти 68 5 2.4.3. Редактирование содержимого памяти 70 2.5. Использование Mega Wizard Plug-In Manager для создания и редактирования мегафункций 73 2.6. Создание и редактирование назначений контактов ввода-вывода проекта 82 2.6.1 Окно графического редактора назначений выводов проекта 82 2.6.2. Использование окна Package View для назначения и редактирования выводов проекта 87 2.6.3. Назначение контактов ввода-вывода в окне All Pins list 90 Часть 3 Моделирование проекта 92 3.1. Последовательность моделирования 92 3.2. Окно утилиты моделирования 94 3.3. Задание параметров моделирования 96 3.4. Создание файла с временными диаграммами 98 3.5. Окно редактора временных диаграмм 102 3.6. Создание и редактирование временных диаграмм 103 3.6.1. Задание длительности временных диаграмм 103 3.6.2. Задание контрольных точек схемы 105 3.6.3. Использование временной сетки 108 3.6.3.1. Задание размера временной сетки 108 3.6.3.2. Привязка временных диаграмм к временной сетке 109 3.6.4. Задание входных воздействий 110 3.6.4.1. Выделение временного интервала 111 3.6.4.2. Задание синхросигнала 112 3.6.4.3. Задание состояний счетчика на шине 112 3.6.4.4. Задание постоянного значения сигнала или шины 114 3.6.4.5. Задание случайного значения сигнала или шины 114 3.6.5. Редактирование временных диаграмм 115 3.6.6. Использование временных меток для анализа временных диаграмм. 117 3.7. Запуск моделирования 122 3.8. Наблюдение отчета о моделировании 123 3.9. Сравнение временных диаграмм 126 Часть 4 Компиляция проекта 134 4.1. Настройка параметров и запуск компиляции проекта 134 4.2. Отображение результатов компиляции проекта 139 Часть 5 Программирование кристалла ПЛИС 143 Библиографический список 147 6 Часть 1 Обзор САПР Quartus II 1.1. Назначение и возможности Quartus II Пакет Quartus II представляет собой автоматизированную систему сквозного проектирования цифровых устройств на кристаллах ПЛИС фирмы Altera [1]. Он предоставляет пользователю широкие возможности по вводу описаний проекта, логическому синтезу, компиляции проекта, программированию ПЛИС, функциональному и временному моделированию, временному анализу и анализу потребляемой мощности проекта, реализации внутрисистемной отладки. В Quartus II используется удобный графический интерфейс и простая в применении справочная система, содержащая всю необходимую для выполнения проектирования информацию. Также пакет позволяет использовать командную строку для выполнения каждого этапа проектирования. Причем, в зависимости от предпочтений пользователя, графический интерфейс или командная строка могут использоваться как для выполнения отдельных этапов, так и для всего проекта в целом. Пакет Quartus II интегрирует в себе большое количество программных модулей, предназначенных для выполнения различных этапов проектирования. Задание параметров и выполнение типовых команд выполняется в отдельных модулях одинаково, что значительно облегчает работу пользователя. Редакторы исходных файлов проекта (графический, текстовый, редактор символов, содержимого модулей памяти, временных диаграмм, конечных автоматов) используют одинаковые подходы и приёмы, а также похожие оконные формы, применяемые при создании и редактировании исходных файлов с описанием модулей проектируемого устройства. В одном иерархическом проекте можно сочетать использование различных типов описания исходных файлов модулей проекта, подбирая наиболее подходящий тип, для каждого модуля. В состав стандартной библиотеки Quartus II входит большое количество базовых элементов, включая мегафункции и макрофункции. Составной частью мегафункций являются операционные устройства, созданные по стандарту библиотеки параметризируемых модулей ( LPM – library of parameterized modules). Значительная часть мегафункций разработана фирмой Altera. Они описаны на языке низкого уровня и оптимизированы для применения в ПЛИС компании Altera. Остальная часть разработана компаниями партнерами. Применение мегафункций в проектах пользователя значительно расширит возможности проектирования и ускорит выполнение проекта. 7 Пакет Quartus II содержит средство SOPC (System on programmable chip) Builder, предназначенное для проектирования реализуемых на кристалле процессорных систем [4]. С помощью этого средства можно легко создавать конфигурируемые процессорные ядра, реализовывать на кристалле различные контроллеры, а также значительную часть периферийного оборудования. 1.2. Понятие проекта в Quartus II Под термином «проект» в Quartus II понимается набор файлов, связанных с проектируемым устройством, и набор соответствующих библиотек [4]. Файлы могут быть двух типов – логические и вспомогательные. Логические файлы описывают поведение или структуру отдельных модулей проектируемого устройства. К ним относятся файлы с текстовым описанием на языках описания аппаратуры (HDL, Hardware Description Language), файлы с графическим представлением схем, файлы с представлением отдельных модулей в виде конечных автоматов. Вспомогательные файлы содержат дополнительную информацию о проектируемом устройстве. Большинство вспомогательных файлов не содержит описания логики проекта. Некоторые из них автоматически создаются приложением Quartus II, некоторые вводятся пользователем. Примерами вспомогательных файлов являются файлы установок и назначений (.qsf), символьные файлы (.bsf), файлы отчетов (.rpt). Как правило, проект содержит несколько логических файлов, образующих иерархическое описание создаваемого устройства. Один из файлов представляет описание устройства на верхнем уровне иерархии. Он является модулем верхнего уровня. Если описание устройства содержит единственный логический файл, то по умолчанию он является модулем верхнего уровня описания. Каждый проект размещается в отдельной папке и имеет своё собственное имя, которое назначается пользователем при создании нового проекта. Автоматически при создании нового проекта создаются файлы с расширением .qpf (quartus project file) и .qsf (quartus settings file). Первый из этих файлов содержит номер версии Quartus II, используемой для создания проекта, дату создания и название активной версии проекта. Пример файла с расширением .qpf приведен на рис.1.2.1. 8 Рис. 1.2.1. Содержимое файла new_project.qpf Второй файл содержит установки и назначения. Пример файла с расширением .qsf приведен на рис.1.2.2. Рис. 1.2.2. Содержимое файла new_project.qsf Он представляет собой текстовый файл, использующий синтаксис языка tcl. Поэтому файл .qsf можно редактировать в любом текстовом редакторе. При создании проекта пользователь может воспользоваться существующими в пакете Quartus II установками и назначениями, либо использовать их из ранее созданного проекта, либо выполнить свои собственные. В процессе работы над проектом, пользователь может изменить установки и назначения. В этом случае Quartus II позволяет создавать разные версии проекта. Каждой версии назначается собственное имя. 9 Пользователь может выполнить компиляцию проекта для разных его версий и на основе сравнительного анализа результатов компиляции разных версий проекта, выбрать ту версию, которая ему более подходит. При создании версии проекта, автоматически создается файл <revision_name>_assignment_defaults.qdf и размещается в рабочей папке проекта, где revision_name – имя версии. Он содержит установки и назначения, которые будут использоваться по умолчанию. Для работы с проектом в менеджере проекта Quartus II используется команда Project, выпадающее меню которой приведено на рис. 1.2.3. Рис. 1.2.3. Меню команды Project менеджера проекта С помощью команд из этого меню к проекту можно добавлять либо удалять отдельные файлы, создавать новую версию проекта, создавать копии проекта, архивировать проект, восстанавливать проект из архива, импортировать или экспортировать базу данных и так далее. 10 1.3. Процедура проектирования в Quartus II Процедура проектирования устройств на ПЛИС включает в себя следующие этапы [1]. 1. Ввод проекта. На этом этапе разработчик вводит описание проекта и его частей. Проект или его части могут быть описаны традиционным способом в виде схемы, содержащей отдельные элементы, соединенные между собой цепями связи. Для создания и последующего редактирования таких описаний в пакете Quartus II используется графический редактор. Объектом его работы являются файлы с расширением .bdf. Графическое представление проекта в пакете Quartus II может создаваться, как в базисе библиотечных элементов, так и в базисе графических символов проектировщика. В качестве компонентов проекта Quartus II позволяет использовать IP (Intellectual Properties) ядра, представляющие собой единицы интеллектуальной собственности. Эти блоки являются полностью синтезируемыми, перемещаемыми и могут по желанию проектировщика располагаться в разных частях кристалла. Примерами IP ядер являются процессорные ядра NIOS II и большой набор различных контроллеров периферийных устройств. Главным достоинством графического способа ввода проекта является его традиционность и наглядность, связанная с привычностью разработчиков к восприятию изображений схем [1]. В настоящее время все большую популярность приобретают языки описания аппаратуры (HDL) [2,3]. Они допускают описание проектируемого устройства с точки зрения, как его поведения, так и структуры. Такие возможности позволяют представлять проект в форме текстового описания алгоритмов функционирования его модулей в сочетании с текстовым описанием межмодульных соединений для сложных проектов. Для создания и последующего редактирования текстовых описаний частей проекта в Quartus II используется текстовый редактор. Допустимыми являются языки VHDL, Verilog, AHDL (Altera HDL), System Verilog [5-7]. Соответствующие текстовые файлы имеют расширения .vhd, .v, .tdf, .sv. Достоинствами текстового описания проекта являются его компактность и относительная простота автоматизации любых преобразований, включая процесс создания описания, однозначность понимания и возможность переноса проектов в другие САПР. Quartus II допускает использование в проектах отдельных компонентов, созданных в системах автоматизации проектирования сторонних производителей. Такими компонентами могут быть и IP ядра. В этом случае, файл описания, как правило, представляет собой таблицу соединений конфигурируемых логических блоков и таблиц соответствия, 11 выполненную до этапа размещения и разводки элементов. Соответствующие файлы имеют расширение .edf. 2. Компиляция проекта. Компиляция представляет собой процесс преобразования описания проекта в его структурную реализацию на выбранном кристалле ПЛИС. Компиляции может подвергаться как весь проект, так и отдельные его фрагменты. В Quartus II компиляция всегда выполняется для модуля верхнего уровня (top level). Поэтому для компиляции отдельного компонента схемы необходимо предварительно объявить его модулем верхнего уровня. Компиляция включает выполнение нескольких этапов. 2.1. Анализ и синтез. Составной частью процесса компиляции проекта является этап анализа и синтеза. Соответствующий модуль компилятора Quartus II строит базу данных проекта, которая объединяет все файлы описания проекта в единое целое с учетом иерархического представления проекта. Созданная база данных проекта в дальнейшем будет обновляться другими модулями компилятора до тех пор, пока не будет получен полностью оптимизированный проект. После своего создания база данных содержит только таблицу соединений проекта (netlist). После завершения полной компиляции – полностью оптимизированный, смонтированный проект, который используется для создания файлов, применяемых для временного моделирования, временного анализа, анализа потребляемой мощности и программирования кристалла. Модуль анализа и синтеза Quartus II выявляет синтаксические ошибки в проекте. Он проверяет логическую завершенность проекта, то есть возможность объединения файлов описания проекта в единое целое, и возможность реализации проекта на выбранном кристалле ПЛИС. Он также преобразует конструкции используемого языка HDL в их аппаратную реализацию на ресурсах кристалла таких, как функциональные преобразователи (lut), триггеры, защелки, логические элементы, блоки встроенной памяти, встроенные умножители. Рис. 1.3.1. демонстрирует реализацию этапа анализа и синтеза. Исходными файлами для выполнения этапа являются файлы с описанием модулей проекта на языках HDL (.vhd, .v, .tdf) и файлы со схемным представлением .bdf. На выходе получаются файлы отчета (.rpt, .htm) и созданная база данных (.rdb) [4]. 12 Рис. 1.3.1. Этап анализа и синтеза проекта в Quartus II Пакет Quartus II допускает использование средств синтеза сторонних производителей САПР. В этом случае, созданные проектировщиком файлы описания проекта на языке VHDL или Verilog, должны быть преобразованы средствами синтеза в файл соединений в формате EDIF (.edf) или файл Verilog Quartus Mapping File (.vqm), которые затем могут быть использованы в пакете Quartus II (см. рис. 1.3.1.). 3. Функциональное моделирование проекта. После завершения этапа синтеза проекта может быть выполнена верификация описания проекта. В основе верификации описания проекта лежит моделирование его работы при имитации различных внешних воздействий. Если при моделировании не учитываются задержки распространения сигналов, то такое моделирование называется функциональным. Существует два подхода к генерации внешних, относительно проекта, воздействий. Первый подход заключается в формировании воздействий путем задания последовательности входных сигналов в редакторе временных диаграмм. Второй подход состоит в написании специальной тестирующей программы с помощью одного из языков HDL. При использовании второго подхода тестируемый объект представляется как структурный компонент, соединенный с одной стороны с генератором тестовых воздействий, с другой стороны с анализатором реакций. Пакет Quartus II поддерживает реализацию обоих подходов. Верификация может быть выполнена как для отдельных частей проекта, так и для проекта в целом. Для выполнения 13 этапа верификации также могут привлекаться средства моделирования, разработанные сторонними производителями САПР. 2.2. Размещение и трассировка. Модуль компилятора Quartus II , реализующий этот этап проектирования, называется Fitter. Он использует базу данных, созданную на предыдущем этапе модулем анализа и синтеза компилятора. Модуль Fitter осуществляет монтаж проекта в структуру выбранного кристалла программируемой логики. То есть, полученная на этапе синтеза модель полного представления проекта в техническом базисе кристалла отображается на внутренние ресурсы ПЛИС, которыми являются конфигурируемые логические блоки, блоки встроенной памяти, встроенные умножители и устанавливаются соответствующие соединения с помощью ресурсов трассировки кристалла. Модуль размещения и трассировки подбирает для каждой логической функции подходящее место на кристалле, с точки зрения уменьшения времени распространения сигнала, выполняет соответствующие соединения и назначения контактов ввода-вывода. Рис. 1.3.2. демонстрирует реализацию этапа размещения и трассировки. Исходными файлами для выполнения этапа являются файлы с расширением .cdb, созданные после выполнения синтеза компилятором и файлы с установками, имеющие расширение .qsf. На выходе получаются файлы отчета о компиляции (.rpt, .htm) и обновленная база данных [4]. Рис. 1.3.2. Этап размещения и трассировки проекта в Quartus II При выполнении этапа размещения и трассировки пользователь может задать свои собственные назначения. Модуль размещения и трассировки реализует их, а затем выполняет оптимизацию оставшейся части проекта. После выполнения монтажа, пользователь может просмотреть результаты размещения и трассировки с помощью 14 специального средства Chip Planner и, в случае необходимости, изменить некоторые назначения. Результатом компиляции проекта в пакете Quartus II является загрузочный файл, т.е. конфигурационная информация для выбранной микросхемы ПЛИС или для загрузочного ПЗУ этой интегральной схемы. Также создается файл отчета, содержащий информацию, как о процессе компиляции, так и о его результатах. В пакете Quartus II имеется специальное средство Resource Property Editor, называемое редактором топологии, с помощью которого можно вручную вмешаться в процесс компиляции и изменить структуру проекта на кристалле, например, с целью повышения производительности проектируемого устройства. 2.3. Временной анализ. Проверка соответствия реализованного проекта требованиям быстродействия. 2.4. Анализ потребляемой мощности. Проверка соответствия реализованного проекта требованиям по потребляемой мощности. 4. Временное моделирование на вентильном уровне. Осуществляется проверка правильности функционирования проекта после выполнения этапов синтеза, размещения и трассировки. 5. Программирование ПЛИС. Выполняется загрузка конфигурационной информации в программируемый кристалл, посредством чего реализуется пользовательский проект. 6. Тестирование и отладка проекта в составе системы. Проводятся комплексные испытания реализованного проекта, в результате чего принимается решение о соответствии проекта техническому заданию и завершении проектирования. В противном случае принимается решение о доработке проекта. 1.4. Запуск Quartus II и открытие проекта Чтобы запустить пакет Quartus II выполните двойной щелчок мышью по пиктограмме на рабочем столе Windows. Появится главное окно менеджера проекта Quartus II, на фоне которого будет помещена панель, с предложением либо пройти курс обучения, используя предложенное интерактивное руководство, либо открыть существующий проект, либо создать новый проект. Чтобы отказаться от предлагаемых действий закройте окно стандартным образом, используя значок в правом верхнем углу окна. Чтобы пройти курс обучения щелкните по соответствующей кнопке, чтобы открыть существующий проект нажмите кнопку Open Existing Project. Чтобы создать новый проект, нажмите соответствующую кнопку, после чего будет запущен New Project Wizard. 15 В нижней части, представленной на рис. 1.4.1. панели, содержатся кнопки, используя которые можно установить связь с сайтом компании Altera. Причем кнопка Literature предназначена для получения информации по пакету Quartus II, включая подробное руководство по использованию пакета Quartus II. Также можно получить информацию обо всех типах ПЛИС, выпускаемых фирмой Altera. Кнопка Training предназначена для выполнения, размещенных на сайте аудио-видео сеансов обучения в режиме он-лайн. Кнопка Online Demos позволяет наблюдать в режиме он-лайн демонстрацию применения пакета Quartus II. Кнопка Support позволяет получать техническую поддержку. Чтобы открыть существующий проект, необходимо выполнить двойной щелчок мышью по файлу с именем проекта и расширением .qpf, либо использовать команду Open Project из меню File менеджера проекта. В этом же меню содержится команда Recent Project, с помощью которой можно выбрать один проект из списка последних открывавшихся пользователем проектов. Чтобы запретить вывод на экран этого окна при повторном запуске пакета, следует щелкнуть мышью в поле Don’t show this screen again. Рис. 1.4.1. Вводное окно пакета Quartus II 16 1.5. Графический пользовательский интерфейс Quartus II 1.5.1. Окна менеджера проекта Quartus II Внешний вид графического пользовательского интерфейса пакета Quartus II показан на рис. 1.5.1.1. Иногда его называют оконным интерфейсом менеджера проекта. В верхней части графического интерфейса содержится название проекта с указанием директории, где он размещен, динамическое меню и рабочая панель инструментов менеджера проекта. Содержимое панели инструментов динамически меняется в зависимости от текущего выполняемого этапа проектирования. Ниже слева расположено окно навигатора проекта (Project Navigator), отражающее на отдельных своих страницах иерархическую структуру проекта (Hierarchy), используемые файлы (Files) и входящие в проект модули (Design Units). Под окном навигатора проекта расположено окно задач (Tasks), содержащее список выполняемых процессов для выбранного этапа проектирования. Большое окно в правой части графического интерфейса является главным окном менеджера проекта Quartus II. В нём выводятся отчеты о результатах компиляции и моделирования проекта, а также вводятся и редактируются проектные файлы, причем как в текстовом, так и в графическом виде. Полезной особенностью этого окна является возможность отображения в нем множества разных страниц, с использованием механизма закладок. В нижней части графического интерфейса Quartus II содержится окно сообщений (Messages), в котором выводится информация о выполненных шагах этапа проектирования, предупреждения и сообщения об ошибках. Описанные выше окна графического интерфейса Quartus II могут быть перемещены, изменены их размеры, или закрыты стандартным образом. Окна могут быть снова открыты, выполнением команды View > Utility Windows из динамического меню на панели инструментов менеджера проекта. Следует отметить, что с помощью этого же меню могут быть добавлены новые окна: Node Finder, для поиска некоторого узла; Tcl Console, для ввода командных строк; окно Change Manager, для управления изменениями и окно Status, отражающее процесс выполнения отдельных этапов проектирования. Более подробно эти окна будут представлены в последующих разделах настоящего описания. 17 18 1.5.2. Навигатор проекта Окно навигатора проекта содержит страницы со следующими закладками: Hierarchy, Files, Design Units. Страница Hierarchy включает название целевого кристалла FPGA фирмы Altera, на котором будет реализован проект, а так же отображает иерархическую структуру проекта. В ней отражен корневой модуль проекта (модуль верхнего уровня) и входящие в его состав модули. Навигатор может быть использован для выполнения установок для всего проекта и индивидуальных установок для каждого из модулей проекта. Для вызова меню настройки необходимо выбрать модуль проекта, щелкнув по его имени левой кнопкой мыши, а затем нажать правую кнопку мыши. На рис. 1.5.2.1. приведен пример иерархической структуры некоторого проекта. Рис. 1.5.2.1. Окно навигатора проекта Страница Files навигатора проекта отображает логические файлы проекта, файлы с программами и выполняемые файлы проекта. Для выделения нужного файла используется левая клавиша мыши. Для вызова контекстно-зависимого меню используется правая кнопка мыши. Дважды щелкнув левой клавишей мыши по имени файла, можно открыть его в главном окне менеджера проекта Quartus II. Контекстно-зависимое меню изображено на рис 1.5.2.2. Используя его можно открыть файл в главном окне Quartus II, удалить файл из проекта, объявить выделенный файл модулем верхнего уровня, а также выполнить ряд других действий, включая просмотр свойств выделенного файла. 19 Рис. 1.5.2.2. Страница Files навигатора проекта с контекстно-зависимым меню Страница Design Units навигатора отображает все компоненты проекта, использованный способ описания проекта, язык описания и файл с описанием компонента (см. рис. 1.5.2.3). Рис. 1.5.2.3. Страница Design Units навигатора проекта Для управления окном навигатора проекта используется пиктограмма на панели инструментов менеджера проекта. Осуществляя щелчок мышью по этой пиктограмме, можно удалить или возвратить окно навигатора на экран дисплея. 1.6. Создание нового проекта Для создания нового проекта используется утилита New Project Wizard (NPW). Чтобы её вызвать, выполните следующие шаги. Щелкните левой клавишей мыши по кнопке File на панели инструментов Quartus II. Затем в появившемся окне щелкните по строке New Project Wizard. Далее появится окно, представленное на рис. 1.6.1. 20 В этом вводном окне перечислены шаги, которые необходимо выполнить для создания нового проекта. Для перехода к следующему окну NPW нажмите кнопку Next левой клавишей мыши. Рис. 1.6.1. Вводное окно NPW В следующем окне [page1] NPW , представленном на рис. 1.6.2, выберите рабочую папку для размещения проекта, задайте имя проекта и определите модуль верхнего уровня. Кнопка позволит воспользоваться браузером для задания вышеперечисленных параметров. Этап компиляции проекта всегда выполняется для модуля верхнего уровня. Поэтому, в случае необходимости, в последующем этот модуль может быть переопределен. На первой странице окна NPW имеется кнопка Use Existing Project Settings. С помощью этой кнопки пользователь может задать установки, которые будут использоваться по умолчанию в его новом проекте. Причем можно использовать установки либо из последнего открытого в Quartus II проекта, либо из указанного пользователем проекта. 21 Рис. 1.6.2. Окно указания рабочей папки, имени проекта и модуля верхнего уровня Рис. 1.6.3. Окно NPW включения в проект файлов и библиотек 22 В следующем окне [page2] NPW, показанном на рис 1.6.3, добавьте к проекту необходимые файлы. Также как и в предыдущем окне, можно использовать кнопку браузера. Имена выбираемых файлов, с указанием пути доступа к ним, появляются в основном окне второй страницы NPW . С помощью кнопок Add, Add All, Remove, Properties, Up, Down пользователь может добавить к своему проекту либо выделяемые им файлы по отдельности, либо сразу все файлы. Также он может удалить файлы, посмотреть их свойства, либо переставить местами. Порядок файлов имеет значение при компиляции проекта. В рассматриваемом окне NPW с помощью кнопки User Libraries пользователь может добавить к проекту пользовательские библиотеки, содержащие файлы проекта на языках VHDL, Verilog, AHDL, файлы с определениями макрофункций, мегафункций и другие файлы проекта. Для перехода к следующему окну [page3] NPW нажмите кнопку Next. Вид открывшегося окна изображен на рис. 1.6.4. Рис. 1.6.4. Окно NPW задания целевого кристалла ПЛИС 23 В этом окне пользователь выбирает ПЛИС, на которой будет реализован проект. Причем кристалл может быть выбран пользователем из предлагаемого списка, либо автоматически назначен компоновщиком. В случае выбора кристалла пользователем, следует вначале выбрать его семейство в окне Family, затем определить тип корпуса интегральной схемы в окне Package, в окне Pin Count указать количество выводов кристалла и в окне Speed grade указать градацию быстродействия кристалла. Затем остается выбрать подходящий кристалл из списка в окне Available Devices, и с помощью кнопки Next перейти к следующему окну [page 4] NPW, показанному на рис. 1.6.5. На рис. 1.6.4. приведен пример задания типа кристалла ПЛИС Cyclone EP2C70F896C6, который используется в учебном стенде DE 2-70 [8]. Рис. 1.6.5. Окно NPW декларации об использовании средств автоматизации сторонних производителей В следующем окне [page 4] NPW пользователь может определить средства автоматизации проектирования сторонних производителей, которые он планирует использовать для ввода проекта, синтеза, 24 моделирования или временного анализа. В последующем эти средства будут вызываться непосредственно из пакета Quartus II. Пример окна на рис. 1.6.5. соответствует случаю, когда дополнительные средства автоматизации проектирования использовать не планируется. С помощью кнопки Next перейдите к завершающему окну [page5] NPW, которое показано на рис. 1.6.6. Рис. 1.6.6. Окно NPW с выполненными установками для создаваемого проекта В этом окне приведена итоговая информация по сделанному пользователем выбору на предыдущих шагах NPW, а также информация по условиям работы выбранного кристалла. Нажатие на кнопку Finish завершит работу NPW. Если теперь открыть окно навигатора проекта, то на странице Hierarchy появится тип выбранного кристалла ПЛИС и имя модуля верхнего уровня, а на странице Files - добавленные к проекту файлы. Утилита NPW позволяет на каждом шаге своего выполнения вернуться к предыдущим шагам, и в случае необходимости, скорректировать выполненные действия. 25 Часть 2 Ввод описания проекта в Quartus II 2.1. Ввод и редактирование схем в графическом редакторе 2.1.1. Назначение и возможности графического редактора Quartus II Графический редактор Quartus II предоставляет разработчикам привычную для них традиционную среду схемотехнического проектирования. Он позволяет легко и быстро осуществлять ввод сложных иерархических проектов, в которых используются базовые элементы, мегафункции, макрофункции, IP ядра из стандартной библиотеки Quartus II, а также модули из собственной библиотеки пользователя. Возможность создания условных графических обозначений (символов) структурных компонентов проекта позволяет создавать собственные библиотеки пользователя. Символы могут представлять любой тип проектного файла, включая другие схемные файлы, текстовые файлы описаний на языках HDL, файлы описаний конечных автоматов. Основным инструментом графического редактора является мышь. С помощью мыши активируются кнопки на инструментальной панели графического редактора, выбираются элементы из библиотеки, затем размещаются на схеме, выполняются соединения элементов между собой. Имена объектов схемы и текстовые комментарии вводятся с помощью клавиатуры. Для редактирования схем используется стандартный приём. Вначале редактируемый объект выделяется на схеме. Затем с ним выполняются необходимые действия по его редактированию. При перемещении элементов на схеме можно использовать функцию неразрывности цепей (rubber banging). При её включении сигнальные связи сохраняются. Полезным при редактировании является использование контекстнозависимого меню, вызываемого стандартным образом. Выполнение команды Properties из этого меню позволяет посмотреть свойства выделенного объекта, и при необходимости внести в них изменения. Другой важной особенностью графического редактора Quartus II является необязательность рисования всех соединений в схеме. Достаточно присвоить одно и то же имя разным фрагментам соединений, чтобы эти фрагменты считались соединенными. 26 Графический редактор Quartus II предоставляет множество других возможностей. Так, в схеме можно использовать элементы графического оформления: прямоугольники, овалы, отрезки, линии, а также строки текстовых комментариев. Причем эти вспомогательные элементы создаются и редактируются стандартным образом. Можно выбрать различную толщину линий и их цвет, различные шрифты и их размер, а также разные цвета для отображения текста. Средства зеркального отображения расположения выделенных объектов относительно горизонтали или вертикали, а также поворачивания их на схеме на 90 градусов, позволят произвольно ориентировать объекты в схеме. Окно графического редактора может быть отсоединено от главного окна менеджера проекта и стандартным образом увеличено до полноэкранного размера. Стандартным приёмом оно может быть возвращено на место. С другой стороны, на инструментальной панели графического редактора имеется стандартная кнопка увеличения, уменьшения масштаба, использование которой позволит сделать комфортным представление схемы на экране для любого пользователя. Также используются стандартные механизмы горизонтальной и вертикальной прокрутки экрана. Графический редактор позволяет одновременно редактировать несколько проектных файлов. Для этого используется стандартный прием использования закладок, когда в одном окне отображается одна из множества допустимых страниц. Чтобы перейти к другой странице достаточно щелкнуть мышью по её закладке. 2.1.2. Создание нового схемного модуля Для создания нового схемного модуля и последующего включения его в проект выполните следующие шаги. 1. На панели инструментов Quartus II щелкните левой кнопкой мыши по кнопке File, а затем в выпадающем меню, показанном на рис. 2.1.2.1, щелкните по строке New, после чего на экране монитора появится окно, представленное на рис. 2.1.2.2. В этом окне приведены возможные варианты типов исходных файлов, которые могут быть использованы в реализуемом проекте. 27 Рис. 2.1.2.1. Выпадающее меню команды File менеджера проекта Рис. 2.1.2.2. Окно выбора типа создаваемого файла 28 2. Для создания схемы выберите в окне New тип файла Block Diagram/Schematic File и нажмите кнопку OK. 3. Затем в главном окне менеджера проекта Quartus II появится изображение пустого схемного файла с названием block1.bdf, как показано на рисунке 2.1.2.3. Рис. 2.1.2.3. Пример создания нового схемного файла 4. Присвойте новому файлу собственное имя. Для этого вновь щелкните мышью по кнопке File на главной панели Quartus II, а в выпадающем меню, выполните команду Save As. Появится окно, показанное на рис. 2.1.2.4. 5. В поле «Имя файла» напечатайте назначаемое имя. Установите галочку в поле Add file to current project и нажмите кнопку Сохранить, что приведет к добавлению вновь созданного файла к проекту. В примере на рис 2.1.2.4 новому файлу назначается имя «struct_avt». Чтобы убедиться в этом, откройте окно Files навигатора проекта. Далее можно выполнять ввод схемы. 29 Рис. 2.1.2.4. Пример назначения имени схемному файлу 2.1.3. Окно графического редактора схем После успешного создания нового схемного модуля и присвоения ему имени в главном окне менеджера проекта Quartus II, появится окно графического редактора, показанное на рис. 2.1.3.1. Рис. 2.1.3.1. Окно графического редактора схемного файла struct_avt.bdf 30 В верхней строке окна редактора содержится имя редактируемого модуля. Вдоль левого края окна размещается панель инструментов. Оставшаяся часть окна представляет поле для рисования схемы. Назначение кнопок инструментальной панели следующее. - кнопка позволяет вынести схемный модуль в отдельное окно монитора, которое затем может быть стандартным образом расширено до формата полного экрана монитора. Повторное нажатие этой кнопки возвращает окно схемного редактора на прежнее место. - кнопка используется для выделения объекта в рабочем поле схемного редактора. Выделенным объектом может являться элемент схемы, фрагмент соединения, линия связи, контакт ввода-вывода и т.д. - кнопка используется для ввода поясняющих текстовых строк в схему. - нажатие этой кнопки приводит к вызову библиотеки символов, из которой могут быть извлечены необходимые элементы и помещены в схему. Причем помимо стандартной библиотеки пакета Quartus II могут быть использованы и другие библиотеки, подключаемые при работе с New Project Wizard (см. раздел 1.6), либо созданные в процессе работы над текущим проектом. - кнопка рисование блока - кнопка рисование цепи - кнопка рисование шины - кнопка рисование канала связи - кнопка использования неразрывного соединения - кнопка разрешения выделения части цепи - кнопка изменения масштаба - кнопка увеличения изображения до полного размера экрана - кнопка поиска - кнопка зеркального отражения относительно вертикальной оси - кнопка зеркального отражения относительно горизонтальной оси - кнопка поворота на 90 градусов против часовой стрелки - кнопка рисования прямоугольника - кнопка рисования овала - кнопка рисования отрезка - кнопка рисования линии 31 2.1.4. Ввод элементов в схему Традиционное описание проектируемого модуля в виде схемы представляет собой набор условных графических обозначений применяемых элементов, соединенных между собой цепями связи. В качестве элементов схемы в Quartus II могут использоваться. 1. Примитивы, входящие в одноименную папку стандартной библиотеки Quartus II. К ним относятся простейшие логические схемы (папка logic) , триггеры (папка storage), буферные элементы (папка buffer), элементы ввода-вывода (папка pin) и другие (папка other). 2. Макрофункции, примером которых являются аналоги интегральных схем 74 серии. 3. Мегафункции. Они представляют собой параметризируемые модули, созданные фирмой Altera и другими сторонними производителями. Для их использования применяется специальное средство Mega Wizard Plug-in Manager, представленное в разделе 2.5. настоящего описания. 4. Ядра интеллектуальной собственности (IP ядра). Примерами IP ядер являются процессорные ядра, контроллеры периферийных устройств и т.д. 5. Компоненты, созданные ранее пользователем в текущем или других проектах, в том числе и на языках HDL. Во всех случаях используемые при создании схемы графические обозначения (символы) элементов должны присутствовать либо в стандартной библиотеке Quartus II, либо в рабочей библиотеке проекта, либо в библиотеках, подключаемых к проекту при его создании в New Project Wizard (см. раздел 1.6.). Чтобы просмотреть содержимое библиотеки, необходимо щелкнуть левой клавишей мыши по кнопке на панели инструментов графического редактора, либо дважды щелкнуть левой кнопкой мыши в свободном месте рабочего поля графического редактора. Далее появится окно Symbol, представленное на рисунке 2.1.4.1. В этом окне в поле Libraries присутствует одна единственная папка, в которой содержится стандартная библиотека Quartus II, что соответствует случаю, когда рабочая библиотека проекта еще не создана. В качестве примера создадим схему структурного автомата, в состав которого входит несколько триггеров и простых логических элементов «И», «ИЛИ», «НЕ». Для этого открываем папку с библиотекой. Затем открываем вложенную папку primitives. Далее во вложенной папке storage выбираем элемент dff, представляющий собой D триггер. В основном окне панели Symbol появится условное графическое изображение (символ) выбранного элемента, как показано на рис. 2.1.4.2. 32 Рис. 2.1.4.1. Окно выбора элементов из библиотеки Рис. 2.1.4.2. Пример выбора из стандартной библиотеки D – триггера (элемент dff) Поиск элемента в библиотеке также можно осуществить по имени, набирая его в поле Name на панели Symbol. 33 Для того чтобы вставить в схему несколько экземпляров выбранного элемента, необходимо установить галочку в поле Repeat-insert mode. После нажатия кнопки OK на панели Symbol, символ выбранного элемента появится в поле графического редактора, прикрепленный к курсору мыши. Далее с помощью мыши перемещаем его в нужное место создаваемой схемы, и нажимаем левую клавишу мыши. После этого, символ выбранного элемента установится в создаваемую схему. Аналогичным образом вставляются в схему остальные экземпляры выбранного элемента. Чтобы отцепить символ от курсора, необходимо воспользоваться контекстно-зависимым меню, вызываемым нажатием правой кнопки мыши, и выполнить в нем команду Cancel, либо нажать клавишу ESC на клавиатуре. Таким же образом вставляются в схему и другие элементы, включая элементы ввода-вывода. Логические элементы извлекаются из папки logic, элементы ввода-вывода из папки pin. Для задания константных значений сигналов, необходимо воспользоваться папкой other, входящей в папку primitives. Её содержимое показано на рис. 2.1.4.3 Рис. 2.1.4.3. Содержимое папки other стандартной библиотеки Quartus II Для задания нулевого уровня сигнала, вставьте в схему символ «земля» и соедините с ним соответствующую цепь. Для задания единичного сигнала, вставьте в схему символ «питания» Первый символ находится в библиотеке под именем gnd, второй- под именем vcc. Для задания постоянного значения многоразрядного входа или шины, воспользуйтесь символом с именем «constant» из библиотеки. Потом с помощью контекстно-зависимого меню задайте имя константы и значение, причем значение может быть задано в разных форматах. На рис. 2.1.4.4. приведен пример использования константного значения а2 шестнадцатеричного типа для шины Bus_a[7..0]. Рис. 2.1.4.4. Пример задания константы 34 В процессе включения элементов в схему им можно сразу присваивать имена, хотя это можно сделать и позднее в процессе редактирования схемы. Чтобы присвоить имя элементу схемы выполните следующее. 1. Выполните двойной щелчок мышью по выбранному элементу на схеме. После этого он выделится на схеме рамкой синего цвета, и на экране появится окно Symbol Properties, показанное на рис. 2.1.4.5. Рис. 2.1.4.5. Пример назначения имени элементу схемы 2. Наберите в поле Instance name назначаемое элементу имя и нажмите кнопку OK для завершения операции. С помощью закладки Ports этого окна можно просмотреть входы и выходы элемента, а с помощью закладки Format можно изменить цвета изображений линий контура элемента и текста имени элемента, установленные по умолчанию. 2.1.5. Соединение элементов в схеме 2.1.5.1. Рисование одиночных соединений Элементы, доступные в библиотеках, могут иметь контакты двух типов: одиночные и шинные. Каждый шинный контакт представляет собой упорядоченную совокупность одиночных контактов. Для соединения 35 одиночных контактов используются одиночные цепи. Для соединения шинных контактов используются шины. Создание соединений в схеме осуществляется путем рисования фрагментов цепи, соединяющей два объекта. Объектом может быть входной или выходной контакт элемента, включая элемент ввода-вывода, либо цепь. Чтобы изобразить соединение на схеме выполните следующие шаги. 1. Нажмите левой клавишей мыши кнопку на панели инструментов графического редактора. После этого курсор мыши, помещенный в рабочее поле графического редактора примет вид перекрестия с прикрепленным изображением нажатой кнопки. То же самое произойдет, если подвести курсор мыши к контакту элемента, либо к граничной точке фрагмента цепи, не нажимая кнопки 2. Поместите курсор мыши на первый объект или желаемую точку на свободном поле (начало фрагмента цепи). Затем, удерживая нажатой левую кнопку мыши, переместите курсор во вторую желаемую точку и отпустите кнопку. На схеме прорисуется линия синего цвета. 3. Повторите действия из п.2 для рисования всей цепи. Последний, прорисованный на схеме фрагмент цепи, выделится синим цветом. Графический редактор Quartus II не требует прорисовывать все соединения в схеме. Достаточно присвоить имя цепи и такое же имя указать на другом фрагменте цепи, чтобы графический редактор считал эти цепи соединенными. Чтобы выполнить действия с цепью, необходимо вначале ее выделить на схеме, а затем с помощью контекстно-зависимого меню, вызываемого щелчком правой клавиши мыши, выполнить желаемое действие с выделенной цепью, включая присвоение ей имени. Чтобы выделить фрагмент цепи, выполните следующее. 1. Нажмите кнопку выделения объекта на панели инструментов графического редактора. Нажатая кнопка изображается более светлым цветом. 2. Подведите курсор к желаемой цепи. При этом в точке соединения курсора с цепью появится значок перекрестия . 3. Нажмите левую кнопку мыши. После этого фрагмент цепи на схеме выделится синим цветом. Контекстно-зависимое меню, вызываемое правой кнопкой мыши, приведено на рисунке 2.1.5.1.1. 36 Рис. 2.1.5.1.1. Вид контекстно-зависимого меню, вызываемого после выделения цепи на схеме Чтобы присвоить имя цепи, выберите из этого меню строку Properties, подведя курсор мыши к соответствующей строке. Далее нажмите левую клавишу мыши. Появится окно Node Properties, показанное на рис. 2.1.5.1.2. Рис. 2.1.5.1.2. Пример задания имени цепи 37 Наберите имя цепи в поле Name и нажмите кнопку OK . Набранное имя изобразится на схеме, окруженное синим прямоугольником, как показано на рисунке 2.1.5.1.3 Рис. 2.1.5.1.3. Пример изображения имени цепи на схеме С помощью левой клавиши мыши имя можно перетащить и поставить в желаемую позицию на схеме. Также в окне Node Properties с помощью закладок Font и Format можно изменить шрифт и цвета линий и текста. 2.1.5.2. Рисование шин Шина – совокупность проводников, изображаемая на рисунке одной утолщенной линией. Также как и одиночной цепи, шине может быть присвоено имя. Имя шины состоит из идентификатора и индексных пределов, заключенных в квадратные скобки: bus_name [x..y], где x и y – целые числа, большие или равные 0. Возможно как x>y, так и x<y. Каждый проводник, входящий в шину, получает имя шины и индекс: bus_name[i], где i – индексное значение, заключенное между x и y. Причем проводники шины приобретают индексы, начиная с левого индекса x. При выполнении операций с шиной её крайний левый бит (индекс) всегда считается старшим, т.е. имеет больший вес. Чтобы переставить местами проводники в шине, достаточно в имени шины переставить местами индексы. Например, в шине bus_b[7..0] левый разряд (старший) имеет индекс 7, а правый (младший) - индекс 0. В шине bus_b[0..7] все проводники переставлены в противоположенном порядке. В шине, 38 именованной bus_b[3..0], bus_b[7..4], переставлены местами старшая и младшая тетрады. Если шина соединяется с элементом ввода-вывода, то такой элемент ввода-вывода трактуется как многоразрядный. На рис. 2.1.5.2.1 приведен пример, представляющий входы и выходы структурного автомата в виде шин x[2..0] и y[2..0], соответственно. Рис. 2.1.5.2.1. Пример представления входов и выходов структурного автомата в виде шин Отдельные шины могут объединяться в шину с большей разрядностью. В этом случае имя составной шины будет формироваться путем перечисления имен шин и отдельных проводников, входящих в её состав. На рис 2.1.5.2.2 приведен пример, в котором состояния структурного автомата представлены в виде шины, состоящей из трех одиночных цепей, соединенных с выходами элементов памяти автомата. Чтобы в последующем, при моделировании схемы можно было наблюдать состояния автомата, шина состояния соединена с выходным контактом схемы state[2..0]. Рис. 2.1.5.2.2. Пример составной шины, соединенной с выходным контактом 2.1.6. Элементы текстового и графического оформления схемы Для лучшего понимания схемотехнического проекта Quartus II допускает использование в схеме поясняющих надписей. Чтобы их сделать выполните следующие шаги. 1. Нажмите кнопку на панели инструментов графического редактора, после чего курсор мыши в поле графического редактора примет вид . 2. Поместите курсор в начальную позицию на схеме, куда планируете вставить текст. 39 3. Нажмите левую кнопку мыши. После этого начальная позицию набираемого текста в поле графического редактора будет отмечена вертикальной мигающей чертой. 4. Наберите на клавиатуре подходящий текстовый комментарий. Печатаемый текст будет выделяться серым фоном. 5. Для ввода следующей текстовой строки повторите выполнение пунктов 2-4. Каждый раз, после завершения ввода очередной строки комментария, серый фон, выделяющий набираемую строку, исчезает, а сама строка окрашивается зеленым цветом. Этот цвет установлен по умолчанию и может быть изменён с помощью опции настройки графического редактора. Эти опции доступны с использованием команды Tools > Options… > Block/Symbol Editor. Поясняющие надписи на схеме можно редактировать обычным способом, также как и любые другие объекты на схеме (см. раздел 2.1.7). Один из возможных путей – это вызов щелчком правой кнопки мыши контекстно-зависимого меню, используя которое, можно выполнить типовые действия редактирования текста, включая копирование, перемещение, удаление, вставку, поворот и т.д. Если воспользоваться командой Properties из контекстно-зависимого меню, то на экране монитора появится окно, изображенное на рис. 2.1.6.1. Рис. 2.1.6.1. Окно редактирования текстовых комментариев 40 С помощью этого окна можно изменить не только сам текст комментария, но и изменить используемый шрифт, цвет текста, размер, а также вставить текст в рамку. Система сквозного проектирования Quartus II позволяет автоматизировать процесс создания необходимой технической документации. Для этой цели в состав стандартной библиотеки включены два варианта угловых штампов, названных title и title2. Они находятся в папке other, входящей в состав папки primitives, как показано на рис. 2.1.6.2. Рис. 2.1.6.2. Пример выбора из библиотеки углового штампа Выбор этих элементов из библиотеки и размещение их на схеме осуществляется так же, как и выбор любых других элементов из библиотеки (см. раздел 2.1.4.) В штампах содержится информация о названии проекта, названии проектной организации, фамилии разработчика, номере версии, дате создания. Чтобы заполнить штамп необходимо его выделить на схеме стандартным образом (см. раздел 2.1.4.), а затем в контекстно-зависимом меню выбрать строку Properties, либо осуществить двойной щелчок мышью по нему. В появившемся окне, показанном на рис. 2.1.6.3., следует заполнить название и содержимое полей штампа. 41 Рис. 2.1.6.3. Окно заполнения углового штампа Пример заполненного штампа приведен на рис. 2.1.6.4. Рис. 2.1.6.4. Пример заполнения углового штампа На рис. 2.1.6.5. в качестве примера приведен проект некоторого структурного автомата. В качестве элементов его памяти используются триггеры: D, JK и Т типа, соответственно. Им присвоены имена trigger_1, trigger_2, trigger_3, соответственно, изображенные внутри графического обозначения каждого триггера. В левой части схемы представлены функции возбуждения элементов памяти автомата, а в правой – функции выходов. Входы и выходы автомата изображены в виде шин, причем состояние автомата также представлено в виде шины, которая соединена с шинным выходным контактом state[2..0]. 42 43 2.1.7. Редактирование схемы Объектами редактирования в схеме могут быть отдельные элементы схемы, фрагменты соединений, элементы ввода-вывода, имена, а также поясняющие надписи и элементы графического оформления. Для редактирования объектов вначале необходимо их выделить, а затем произвести с ними требуемые действия. Для выделения объекта в схеме выполните следующие шаги. 1. Нажмите кнопку выделения объекта на панели инструментов графического редактора. После этого курсор мыши в поле графического редактора примет вид стрелки, изображенной на кнопке. 2. Курсором мыши укажите выделяемый объект. При попадании курсора мыши на какой либо объект, к острию стрелки курсора прикрепится знак перекрестия . 3. Нажмите левую клавишу мыши. После этого, объект выделится на схеме синим цветом, если это фрагмент соединения, либо внешней рамкой синего цвета, в противном случае. На рис. 2.1.7.1. показан пример выделения элемента trigger_1 в схеме и фрагмента цепи. Рис. 2.1.7.1. Пример выделения на схеме фрагмента цепи и элемента dff Чтобы выделить соединение целиком, необходимо выполнить двойной щелчок левой кнопкой мыши по этому соединению. Выделить можно не только отдельные объекты на схеме, но и фрагменты схемы, и всю схему целиком. 44 Для выделения фрагмента схемы выполните следующее. 1. Курсор мыши установите в один из углов воображаемого прямоугольника, содержащего выделяемый фрагмент. 2. Нажмите левую кнопку мыши. 3. Затем, не отпуская левой кнопки, переместите курсор в противоположный угол воображаемого прямоугольника. При этом сам прямоугольник прорисуется на экране пунктирной линией. 4. Отпустите левую кнопку мыши, после чего объекты, попавшие внутрь прямоугольника, выделятся на схеме синим цветом. Чтобы отменить выделение объекта, достаточно щелкнуть правой кнопкой мыши на свободном месте поля графического редактора. С выделенным объектом можно выполнить следующие, обычно выполняемые при редактировании, действия: копировать, удалить, переместить, вырезать, а в последующем вставить в другое место схемы, или даже в другой схемный файл. Чтобы переместить объект, необходимо после его выделения, поместить на него курсор мыши, нажать левую кнопку мыши, и не отпуская её, «перетащить» объект в другое место схемы. Чтобы выполнить с выделенным объектом другие действия, можно воспользоваться контекстно-зависимым меню, вызвав его щелчком правой кнопки мыши. Вид меню с поясняющими надписями, вызываемого для редактирования выделенного элемента схемы, изображен на рис. 2.1.7. 2. Рис. 2.1.7.2. Вид контекстно-зависимого меню, вызываемого после выделения объекта на схеме 45 В этом же меню содержится изображение кнопок на панели инструментов и комбинации управляющих клавиш клавиатуры, нажатие которых будет приводить к выполнению соответствующих действий с выделенным объектом. Если объектом является элемент или фрагмент схемы, то при его перемещении можно сохранить его соединения с другими объектами. Для этого на панели инструментов графического редактора необходимо предварительно нажать кнопку использования неразрывных соединений . 2.1.8. Создание графического обозначения схемного модуля При выполнении иерархического проекта созданный схемный модуль может быть использован как отдельный элемент на более высоком уровне иерархии. В этом случае, необходимо создать условное графическое обозначение схемного модуля (символ) и поместить его в рабочую библиотеку проекта. Чтобы это сделать, выполните следующие шаги. 1. Откройте схемный модуль в главном окне менеджера проекта. Для этого выполните двойной щелчок левой кнопкой мыши по имени схемного модуля на странице Files навигатора проекта. 2. Щелкните мышью по кнопке File на панели инструментов менеджера проекта. Появится меню, изображенное на рис 2.1.8.1 Рис. 2.1.8.1. Выпадающее меню команды File менеджера проекта 46 3. Подведите курсор мыши к строке Create/Update, после чего на экране монитора появится выпадающее меню, показанное на рис. 2.1.8.2. Рис. 2.1.8.2. Выпадающее меню команды Create/Update из меню File менеджера проекта 4. Щелкните левой кнопкой мыши по строке Create Symbol Files for Current File, после чего появится окно Create Symbol File, изображенное на рис 2.1.8.3. В поле «Папка» будет указано имя рабочей папки проекта, а в поле «Имя файла» - имя открытого в главном окне менеджера проекта схемного модуля. Рис. 2.1.8.3. Пример создания символа для схемного модуля struct_avt 47 В случае необходимости содержимое этих полей можно изменить, т.е. задать другую папку и назначить новое имя. 5. Нажмите кнопку Сохранить. После этого на экране появится сообщение о создании нового символьного файла с заданным именем, с расширением .bsf. На рис 2.1.8.4, показан вид окна с сообщением о создании файла struct_avt.bsf. Рис. 2.1.8.4. Пример окна с сообщением о создании символа 6. Нажмите кнопку ОК в этом окне. После этого, созданный символ будет включен в рабочую библиотеку проекта, которая содержится в папке Project. Чтобы его посмотреть, с помощью кнопки на панели инструментов графического редактора откройте рабочую библиотеку и укажите имя вновь созданного символа. Пример окна с созданным графическим обозначением структурного автомата, приведен на рис. 2.1.8.5 Рис. 2.1.8.5. Пример графического обозначения (символа) структурного автомата 48 2.1.9. Создание текстового описания на языке HDL для схемного модуля Пакет Quartus II позволяет преобразовать схемотехническое представление модуля в его текстовое описание на одном из языков описания аппаратуры. Для этого надо выполнить следующие действия. Повторите выполнение первых трех пунктов из предыдущего раздела. Щелкните левой кнопкой мыши по строке Create HDL Design File for Current File, после чего появится окно, представленное на рис. 2.1.9.1. На этом рисунке показан пример окна для создания VHDL файла описания структурного автомата. В этом же окне содержится назначаемое создаваемому файлу имя. Оно будет иметь расширение .vhd. Рис. 2.1.9.1. Пример создания файла описания структурного автомата на языке VHDL Если потребуется создать описание схемы на языке Verilog, то в этом случае следует щелкнуть мышью в окне, рядом с названием языка. Это приведет к изменению типа формируемого файла. Как и в предыдущем случае, он будет иметь такое же имя что и схемный модуль, только расширение его будет .v. Quartus II позволяет для существующего модуля, описанного в виде схемы, создать конструкцию языка VHDL, в которой исходный схемный модуль будет декларирован как отдельный компонент. Такая декларация в последующем может быть включена в текстовое описание на языке VHDL архитектурного тела модуля более высокого уровня иерархии, в котором исходный схемный модуль будет использован как структурный компонент. 2.1.10. Создание файла декларации компонента на языке HDL для схемного модуля Чтобы создать файл декларации компонента на языке VHDL для текущего файла, необходимо повторить выполнение первых трех пунктов из предыдущего раздела. Затем щелкнуть левой кнопкой мыши по строке Create VHDL Component Declaration Files for Current Files. Появится окно, изображенное 49 на рис 2.1.10.1. В поле «Папка» будет указана рабочая папка проекта, в поле «Имя файла» – имя, совпадающее с именем исходного файла, а в поле «Тип файла» будет указан тип VHDL Component Declaration File, имеющий расширение .cmp. Содержимое первых двух полей может быть изменено по желанию пользователя. На рис. 2.1.10.1. приведен вид окна, для случая, когда в качестве исходного файла использован схемный модуль структурного автомата, создание и редактирование которого рассматривалось выше. Рис 2.1.10.1. Пример окна создания файла декларации компонента на языке VHDL для структурного автомата На рис 2.1.10.2. показан фрагмент созданного файла декларации компонента для структурного автомата. 50 Рис 2.1.10.2. Фрагмент файла декларации структурного автомата в виде компонента. Следует отметить, что аналогичным образом могут быть созданы конструкции на языках AHDL и Verilog, которые затем могут использоваться в проектах более высокого уровня иерархии на соответствующих языках описания аппаратных средств. Также, в ряде случаев может быть полезным преобразование файла схемного представления модуля в пакете Quartus II в стандартные форматы JPEG File Interchange Format (с расширением .jpg) и Bitmap File (с расширением .bmp). Чтобы это сделать, следует воспользоваться командой Export… из меню File подобно тому, как было описано в текущем и предыдущем разделах. 2.2. Ввод и редактирование текстового описания проекта 2.2.1. Назначение и возможности текстового редактора Пакет Quartus II поддерживает ввод описаний отдельных модулей, созданных с использованием языков описания аппаратуры (HDL). Допустимыми языками в пакете Quartus II являются языки VHDL, Verilog, Altera HDL и System Verilog [5-7]. Файлы, содержащие описания на соответствующих языках, имеют расширение .vhd, .v, .tdf и .sv соответственно. В Quartus II эти типы файлов можно комбинировать с другими типами файлов описаний при создании иерархических проектов. Для создания и редактирования файлов с текстовым описанием проектируемых модулей предназначен текстовый редактор пакета Quartus II. Он также может быть использован для ввода и редактирования любых других текстовых файлов, включая файлы, созданные в пакете Quartus II. Примером являются командные файлы, созданные на языке Tcl. Такие файлы имеют расширение .tcl. Командные файлы могут быть взяты из существующих проектов, и после редактирования использованы в создаваемом проекте. Дополнительно в текстовом редакторе можно создавать и редактировать файлы с исходным текстом программ на языке ассемблера 51 (имеют расширение .a, .asm), на языке Си (.c), Си++ (.cpp), файлы включения (си/си++ include files (.h)) и любые другие ASCII файлы. В Quartus II допускается использование и других текстовых редакторов для создания и редактирования текстовых файлов. Однако текстовый редактор Quartus II предоставляет ряд дополнительных полезных возможностей. -Нумерация строк в текстовом файле. Наличие номеров позволит облегчить поиск ошибок при проверке синтаксической правильности созданного текста. -Использование заготовок языковых конструкций (шаблонов). Эта возможность позволит вставлять в текстовые файлы как любые, поддерживаемые Quartus II конструкции используемого языка HDL, так и реализованные фирмой Altera логические функции, включая примитивы и мегафункции, в виде отдельных компонентов. Аналогичным образом можно включать и определенные пользователем логические функции. -Возможность интегрирования созданных текстовых файлов в иерархическую структуру проекта, содержащего разнотипные описания отдельных компонентов. Так, например, для текстового описания модуля с помощью команды Create/Update из меню File можно создать условное графическое обозначение (файл с расширением .bsf), которое будет помещено в рабочую библиотеку проекта и в последующем может быть использовано, как элемент на более высоком уровне иерархии при схемотехническом проектировании. Аналогичным образом, с помощью такой же команды, может быть создан на языке VHDL файл декларации описанного модуля в виде компонента, который затем может быть использован в VHDL проекте более высокого уровня иерархии. -Окрашивание языковых конструкций в тексте, что значительно повысит наглядность представления исходных программ. -Комментирование отдельных фрагментов в тексте. -Поиск и замена фрагментов текста. -Поиск и выделение цветом парных скобок. -Создание и управление закладками. Такая возможность позволит упростить процесс последующей отладки созданного текстового описания модуля. -Свертывание и развертывание фрагментов текста, что позволит структурировать текстовое описание создаваемого модуля. -Возможность отсоединения - присоединения окна текстового редактора от главного окна менеджера проекта. - Наличие средств проверки синтаксической корректности создаваемого текстового описания. Причем в этом случае, для вывода сообщений о найденных ошибках используется отдельное окно сообщений менеджера проекта. В окне же текстового редактора в это время можно 52 наблюдать выделяемые цветом строки, содержащие ошибки, что позволит их легко локализовать. - Возможность получения оперативной справки, как по командам текстового редактора, так и по ключевым словам, операторам, конструкциям используемого языка HDL, так и по примитивам и мегафункциям, используемым фирмой Altera. После внесения изменений в текстовый файл к его имени в окне текстового редактора добавляется символ *. Когда же пользователь выполнит сохранение редактируемого файла, Quartus II сохранит предыдущую версию файла в той же директории, с тем же именем, но с расширением .bak. Такая возможность позволит, в случае необходимости, вернуться к предыдущей версии текстового файла. Вызов текстового редактора в пакете Quartus II осуществляется путем открытия текстового файла с помощью пиктограммы , или команды Open из меню File, на панели инструментов менеджера проекта, либо с помощью контекстно-зависимого меню, открываемого в окне с закладкой Files навигатора проекта. 2.2.2. Создание нового файла с текстовым описанием Для создания нового текстового файла выполните следующие шаги. 1. Щелкните левой клавишей мыши по кнопке File на панели инструментов менеджера проекта. 2. В появившемся меню выберите команду New, выполнив щелчок мышью по соответствующей строке (см. рис. 2.2.2.1.). Рис. 2.2.2.1. Фрагмент выпадающего меню команды File менеджера проекта 53 3. Появится окно New, изображенное на рис. 2.2.2.2. 4. Укажите тип вновь создаваемого файла. Как уже упоминалось в предыдущем разделе, в Quartus II можно создавать текстовые файлы на языках AHDL, System Verilog, Tcl, Verilog, VHDL. 5. На рис. 2.2.2.2. приведен пример выбора строки VHDL File. После этого нажмите кнопку OK в нижней части панели. Появится окно текстового редактора, изображенное на рис. 2.2.2.3. Рис. 2.2.2.2. Окно выбора типа создаваемого файла Вновь созданному файлу автоматически присваивается имя с соответствующим расширением. В рассматриваемом примере это имя VHDL1.vhd (см. рис. 2.2.2.3.). 6. Чтобы назначить создаваемому файлу собственное имя, выполните команду Save As из меню File менеджера проекта, после чего на экране появится окно, показанное на рис. 2.2.2.4. 7. В поле «Имя файла» введите назначаемое имя и нажмите кнопку Сохранить. 54 Рис. 2.2.2.3. Окно текстового редактора вновь созданного файла Рис. 2.2.2.4. Окно сохранения файла 55 В примере на рис. 2.2.2.5. файлу задаём имя avt_mili. Сразу после этого произойдет смена назначенного по умолчанию имени на закладке окна текстового редактора вновь созданного модуля на заданное имя. Рис. 2.2.2.5. Пример задания имени avt_mili VHDL файлу 2.2.3. Окно текстового редактора Вид окна текстового редактора Quartus II, вновь созданного файла, приведен на рис. 2.2.3.1. Рис. 2.2.3.1. Окно текстового редактора вновь созданного файла avt_mili.vhd 56 В верхней части, на закладке окна, содержится имя редактируемого файла. Вдоль левой стороны окна расположена панель инструментов текстового редактора. Справа от неё расположено поле номеров строк. Для разрешения или запрещения использования этого поля предназначена соответствующая кнопка инструментальной панели редактора. Рядом с полем номеров строк расположено поле, в котором используются значки (разворачивания) и (сворачивания) структурных блоков текстового описания. Их использование в текстовом редакторе позволит значительно повысить наглядность текстового файла. Назначение кнопок инструментальной панели текстового редактора следующее. - кнопка отсоединения - присоединения окна. С помощью этой кнопки можно отсоединить окно текстового редактора. То есть представить редактируемый файл в отдельном окне, которое стандартным образом может быть увеличено до полного экрана монитора. Повторный щелчок по этой кнопке вернёт окно на прежнее место, в главное окно менеджера проекта. - кнопка поиска. С помощью этой кнопки можно осуществлять поиск отдельных фрагментов в тексте. - кнопка замены. - кнопка перехода к парной скобке. Если установить курсор мыши на открывающейся скобке и нажать эту кнопку, то курсор мыши переместиться к парной закрывающейся скобке. При этом сами скобки будут выделены зеленым цветом. - кнопка вставки отступления. - кнопка уменьшения отступления. Можно выделить фрагмент текста и с помощью этих кнопок выполнить табуляцию текста либо убрать её. - кнопка установки закладки. С помощью этой кнопки можно разместить в тексте закладки. Закладка представляет собой кружок голубого цвета, расположенный в поле номеров строк. - кнопка перехода к следующей закладке. - кнопка перехода к предыдущей закладке. - кнопка удаления всех закладок. - кнопка вставки файла. - кнопка вставки шаблона языковой конструкции. Указания по использованию этой кнопки содержатся в следующем разделе описания. 57 - кнопка запуска синтаксического анализа текущего текстового файла. - кнопка использования номеров строк в текстовом файле. С помощью этой кнопки можно включить / выключить нумерацию строк в текстовом файле. - кнопка включения / выключения инструмента горизонтальной прокрутки в окне текстового редактора. - кнопка включения / выключения показа линий табуляции текста. - кнопка включения отображения подряд идущих пробелов горизонтальными стрелками. - кнопка комментирования выделенного фрагмента текста. - кнопка отказа от комментирования выделенного фрагмента текста. 2.2.4. Использование шаблонов в текстовом описании Заготовки языковых конструкций помогают значительно облегчить ввод исходного текста описания на одном из возможных языков. Заготовки представляют собой шаблоны с готовыми фрагментами кода. Причем части кода, которые должны быть определены пользователем, выделены черным цветом и заключены в остроугольные скобки (< >). Чтобы вызвать окно с шаблонами, необходимо нажать кнопку на панели инструментов текстового редактора, либо выполнить команду Insert Template из меню Edit менеджера проекта. Вид появившегося окна представлен на рис 2.2.4.1. Рис. 2.2.4.1. Окно вставки шаблона 58 Окно состоит из двух частей. В левой части содержатся шаблоны, представленные в виде иерархической структуры. В правой части представляется фрагмент кода, соответствующий выбранному шаблону. Причем в этом окне можно не только просматривать шаблон, но и редактировать его. На верхнем уровне шаблоны разбиты по категориям в зависимости от используемого языка описания. Имеются также группы TimeQuest и Megafunctions. В категории Megafunctions содержатся шаблоны декларации компонентов проекта. Чтобы раскрыть содержимое каждой категории необходимо щелкнуть левой кнопкой мыши по значку рядом с названием категории. На рис 2.2.4.2. приведен вид окна Insert Template с раскрытой категорией VHDL. Рис. 2.2.4.2. Окно вставки шаблона с раскрытой категорией VHDL Как видно из рис. 2.2.4.2., внутри категории используется еще несколько уровней иерархии классификации шаблонов. Имеются следующие группы. 59 1. Шаблоны полных проектов (Full Designs) функциональных узлов, таких как блоки памяти, сдвиговые регистры, конечные автоматы, арифметические устройства. 2. Шаблоны базовых конструкций языка описания аппаратуры, таких как элементы проекта, раздел деклараций, параллельные и последовательные операторы языка, выражения. 3. Шаблоны описаний логических элементов, включая регистры, защелки, элементы с тремя состояниями. 4. Шаблоны синтезируемых атрибутов. 5. Шаблоны с фрагментами кода, демонстрирующие использование в текстовом описании примитивов из стандартной библиотеки пакета Quartus II. Чтобы вставить шаблон в создаваемый текстовый файл, выполните следующие шаги. 1. Выделите щелчком левой кнопки мыши один шаблон из предлагаемого в левом окне панели Insert Template списка. После этого его текст отобразится в правом окне панели. На рис. 2.2.4.3. приведен пример шаблона описания автомата МИЛИ с четырьмя состояниями. Рис.2.2.4.3. Пример шаблона описания автомата Мили 60 2. Нажмите кнопку Insert, после чего выбранный шаблон будет вставлен в редактируемый текстовый файл, начиная с позиции курсора. Причем в файле он будет выделен синим цветом. 3. Нажмите кнопку Close в нижней правой части окна, чтобы закрыть окно Insert Template. Чтобы убрать выделение текста, щелкните левой кнопкой мыши в свободном поле окна текстового редактора. На рис 2.2.4.4. приведен пример вставки шаблона описания автомата МИЛИ во вновь созданный файл с именем avt_mili. Рис. 2.2.4.4. Пример вставки шаблона в окно текстового редактора Если нужно вставить на весь шаблон целиком, а только некоторую его часть, то вначале выделите эту часть в правом окне Insert Template с помощью левой кнопки мыши. Затем вызовите нажатием правой кнопки мыши контекстнозависимое меню, показанное на рис 2.2.4.5., и выполните команду копирования, указав в этом меню команду Copy. После чего фрагмент будет скопирован в буфер обмена. 61 Рис. 2.2.4.5. Пример выделения фрагмента в шаблоне и вид контекстно-зависимого меню Далее, установите курсор в то место редактируемого файла, куда следует вставить фрагмент. После этого еще раз вызовите контекстно-зависимое меню в окне текстового редактора, и выполните команду вставки (Paste) в меню аналогичным образом. Фрагмент шаблона будет добавлен к редактируемому файлу. Пользователь должен приспособить вставленный фрагмент кода для его собственной цели, возможно путем последующего редактирования в созданном файле. Чтобы сохранить отредактированный файл нажмите пиктограмму на панели инструментов менеджера проекта. Чтобы проверить синтаксическую корректность созданного текстового файла, нажмите кнопку на панели инструментов текстового редактора. При отсутствии ошибок будет выведено сообщение об успешном завершении этапа анализа текущего файла, как показано на рис 2.2.4.6, и в главном окне менеджера проекта появится отчет о выполнении анализа. 62 Рис. 2.2.4.6. Окно сообщения об успешном завершении анализа текущего файла При обнаружении в процессе анализа текущего файла синтаксических ошибок на экран будет выведено соответствующее сообщение с указанием количества обнаруженных ошибок (см. рис. 2.2.4.7.). Рис. 2.2.4.7. Окно сообщения об обнаружении ошибок в процессе анализа текущего файла Причем в окне сообщений менеджера проекта, будет выведена красным цветом информация о выявленных ошибках с указанием их типа и номеров содержащих их строк в текстовом файле. Если двойным щелчком мыши щелкнуть по сообщению об ошибке, то в окне редактируемого файла строка, содержащая ошибку, выделится синим цветом, что позволит быстро локализовать и устранить ошибку. В исходном шаблоне в операторе process (строка 34) умышленно удалена закрывающаяся скобка, в результате чего при выполнении анализа текущего файла были выявлены ошибки. На рис. 2.2.4.8. приведен пример вывода сообщений об обнаруженных ошибках. Как видно из этого рисунка, выведенное сообщение указывает именно на эту ошибку (см. рис. 2.2.4.8.). 63 Рис. 2.2.4.8. Пример вывода сообщений об обнаруженных ошибках 2.2.5. Редактирование текстового описания Редактирование текстовых файлов в пакете Quartus II осуществляется стандартным образом. Вначале с помощью курсора мыши выделяется фрагмент текста, а затем с помощью команды Edit на панели инструментов менеджера проекта, или контекстно-зависимого меню, вызываемого нажатием правой кнопки мыши, выделенный фрагмент редактируется. Его можно удалить, переместить, скопировать, вырезать, а в последующем вставить в любое место редактируемого файла или даже в другой файл. Для удобства разработчика в текстовом редакторе реализована возможность использования закладок. Соответствующие кнопки на его панели инструментов позволяют установить закладки, выполнить переход к следующей закладке, вернуться к предыдущей, удалить закладки. В главном окне менеджера проекта допускается одновременное представление и редактирование двух фрагментов текстового файла с помощью горизонтального разделителя окна. Пример, демонстрирующий эту возможность, приведен на рис. 2.2.5.1. 64 Рис. 2.2.5.1. Пример представления двух фрагментов текстового файла в окне редактора 2.2.6. Преобразование файлов с текстовыми описаниями в другие виды файлов Чтобы интегрировать описанный на одном из языков HDL модуль в схемотехнический проект, необходимо создать его условное графическое обозначение, то есть символ. Создание символа для текстового описания модуля осуществляется так же, как и для схемотехнического описания модуля (см. раздел 2.1.8). Чтобы создать символ для описанного с помощью языка HDL модуля проекта необходимо сделать следующее. 1. Откройте файл в главном окне менеджера проекта. 2. В меню File, подведите курсор мыши к строке Create/Update. 3. В выпадающем меню выполните команду Create Symbol Files for Current File. Успешное завершение процедуры сопровождается выводом соответствующего сообщения. Условное графическое обозначение будет включено в рабочую библиотеку проекта, размещенную в папке Project. Выбор символа из рабочей библиотеки После создания символа элемента, его выбор из рабочей библиотеки осуществляется стандартным образом, также как и любого другого элемента из стандартной библиотеки Quartus II (см. раздел 2.1.4). 65 Создание файла декларации компонента Также как для схемного описания модуля, для текстового описания модуля в пакете Quartus II может быть создана конструкция языка VHDL, в которой исходный модуль будет декларирован как отдельный компонент. Этот компонент затем может использоваться на более высоком уровне иерархии проекта. Создание файла декларации компонента выполняется также как и для схемного модуля (см. раздел 2.1.10.). После успешного создания этот файл автоматически попадает в библиотеку шаблонов в категорию Megafunctions в папку VHDL Components. Пример шаблона с декларацией компонента автомата МИЛИ приведен на рис. 2.2.6.1. Рис. 2.2.6.1. Фрагмент шаблона с декларацией компонента В дальнейшем этот шаблон может быть включен в текстовое описание на языке VHDL архитектурного тела модуля более высокого уровня иерархии, в который входит исходный модуль как структурный компонент. 2.3. Просмотр и обозначений элементов редактирование условных графических Как было сказано в разделе 2.1.4, при схемотехническом проектировании, в качестве элементов схемы, могут использоваться примитивы, макрофункции, мегафункции, IP ядра, а также компоненты, созданные пользователем в текущем или в других проектах. Во всех случаях, в качестве элементов графического представления схемы должны использоваться соответствующие условные графические обозначения (символы). В состав стандартной библиотеки Quartus II входит большое количество разных элементов, каждый из которых имеет свой собственный символ. При создании нового компонента, описанного как в виде схемы, так и в виде текста, можно создать его символ, который будет использован в схемном представлении модуля верхнего уровня иерархии. Для этого используется команда Create/Update из меню File, как было описано в 66 разделах 2.1.8. и 2.2.6. Созданный символ автоматически добавляется в рабочую библиотеку проекта, размещенную в папке Project. Для просмотра и редактирования символов структурных компонентов проекта в пакет Quartus II интегрирован редактор символов. Причем редактор символов можно использовать как для редактирования символов из стандартной библиотеки Quartus II, так и для редактирования символов компонентов, созданных пользователем. Для хранения одного символа используется отдельный файл, имя которого совпадает с именем структурного компонента, а расширение у файла .bsf. Чтобы осуществить редактирование символа некоторого элемента проекта, выполните следующее. 1. Щелкните правой клавишей мыши по графическому изображению элемента в окне графического редактора схем. Появится окно с контекстно-зависимым меню, показанное на рис.2.3.1. Рис. 2.3.1. Выбор команды редактирования выделенного символа 2. Выполните команду Edit Selected Symbol из предложенного меню. Откроется окно графического редактора, в рабочем поле которого будет представлено условное графическое обозначение выбранного элемента. На рис. 2.3.2 приведен вид окна графического редактора символа структурного автомата, созданного в разделе 2.1 настоящего описания. 67 Рис. 2.3.2. Окно редактора символа структурного автомата 3. С помощью кнопок инструментальной панели графического редактора символов выполните редактирование условного графического обозначения выбранного элемента стандартным образом. В примере, приведенном на рис. 2.3.3. показан вид символа структурного автомата после редактирования. В условном графическом обозначении структурного автомата вывод состояния автомата перенесен в нижнюю часть символа, также введены дополнительные поля для входов и выходов автомата, вход clr_n переименован в reset. Рис. 2.3.3. Вид отредактированного символа структурного автомата 4. Для сохранения отредактированного символа элемента, нажмите пиктограмму на панели инструментов менеджера проекта. 68 2.4 Ввод и редактирование содержимого модулей памяти 2.4.1. Назначение и возможности редактора содержимого модулей памяти В ряде случаев при использовании в проекте модулей памяти (RAM, ROM) бывает необходимо после включении питания ПЛИС инициализировать их содержимое. Примером является устройство управления с хранимой в памяти микропрограммой. Для создания и редактирования файлов инициализации памяти в состав пакета Quartus II включен редактор памяти. Редактор памяти также может быть использован для задания содержимого памяти при выполнении моделирования проекта. Редактор памяти обладает следующими возможностями. - Представление содержимого памяти в двоичном, восьмеричном, шестнадцатеричном формате, как десятичное число со знаком или без знака. - Представление адресов памяти в двоичном, восьмеричном, десятичном и шестнадцатеричном формате. - Отображение в одной строке редактора памяти заданного пользователем количества ячеек памяти. - Заполнение памяти нулями, единицами, убывающим или возрастающим диапазоном значений, повторяющейся последовательностью заданных пользователем значений. В состав редактора памяти входит средство Memory Size Wizard, с помощью которого можно задать логику редактирования памяти в случае необходимости изменения размера памяти, то есть разрядности и количества хранимых слов. 2.4.2. Создание нового файла инициализации памяти Создание нового файла инициализации памяти выполните стандартным образом. 1. В меню File выполните команду New. 2. В открывшемся окне New выберите тип вновь создаваемого файла. Это может быть файл Hex (Hexadecimal) или MIF (Memory Initialization File) формата. 3. В появившемся окне задайте размер памяти: число хранимых слов, размер слова и нажмите кнопку ОК. На рис. 2.4.2.1. показано окно задания размера редактируемой памяти. 69 Рис. 2.4.2.1. Окно задания размера редактируемой памяти После этого на главной панели менеджера проекта появится окно редактирования содержимого памяти. Чтобы присвоить файлу собственное имя воспользуйтесь командой Save As из меню File, и в поле имени файла вновь появившегося окна задайте новое имя. На рис. 2.4.2.2. показано окно редактирования некоторого файла инициализации памяти mem.mif. Для изменения формы представления содержимого памяти воспользуйтесь командой View на панели инструментов менеджера проекта (см. рис. 2.4.2.3.). С помощью опции Cells Per Row из меню View можно изменить количество отображаемых на одной строке ячеек памяти. Рис. 2.4.2.2. Фрагмент окна редактирования файла инициализации памяти mem.mif 70 Рис. 2.4.2.3. Выпадающее меню команды View менеджера проекта С помощью опции Address Radix и Memory Radix можно изменить формат представления адресов и содержимого памяти, соответственно. Адреса памяти можно представить в двоичном, шестнадцатеричном, восьмеричном и десятичном формате. Содержимое памяти можно представить еще и как десятичное число со знаком. Выбранная в меню View опция Show Delimiter Spaces приведет к использованию при отображении содержимого памяти в двоичном формате пробела в качестве межтетрадного разделителя. Выбранная опция Show ASCII Equivalents в меню View приведет к выводу в дополнительном поле ASCII окна редактора памяти символов ASCII, соответствующих кодам содержимого памяти. Это может быть полезным, когда в редактируемой памяти хранятся выводимые на устройства индикации текстовые сообщения. 2.4.3. Редактирование содержимого памяти Редактирование содержимого памяти осуществляется следующим образом. С помощью левой клавиши мыши выделите редактируемую ячейку или ячейки из диапазона адресов памяти. Выбранная ячейка будет выделена рамкой, а диапазон ячеек – инверсным цветом фона и отображаемых символов. Редактируйте содержимое выделенной ячейки. После завершения нажмите клавишу Enter. Теперь редактируемой ячейкой будет следующая ячейка. И так далее. Если выделен диапазон адресов, то вызовите с помощью правой кнопки мыши контекстно-зависимое меню. Его вид приведен на рис 2.4.3.1. С помощью команд из этого меню можно выполнить не только 71 стандартные действия редактирования, такие как вырезание, копирование, удаление, вставка, но и некоторые дополнительные действия. Рис. 2.4.3.1. Фрагмент контекстно-зависимого меню, вызываемого для редактирования содержимого памяти Так, выполнение команды Fill Cells with 0’s приведет к заполнению выделенного диапазона памяти нулями. Выполнение команды Fill Cells with 1’s приведет к заполнению выделенного диапазона памяти единицами. Выполнение команды Reverse Address Contents приведет к реверсивному отображению содержимого выделенного диапазона памяти относительно младшего и старшего разрядов. Выполнение команды Custom Fill Cells приведет к появлению одноименного окна, показанного на рис 2.4.3.2. С помощью этого окна можно задать два варианта заполнения выделенного диапазона. 1) Можно заполнить его повторяющейся последовательностью заданных значений, разделенных запятыми или пробелами. 2) Можно заполнить возрастающим или убывающим диапазоном значений. Причем с помощью специальных полей можно задать начальное значение и шаг изменения формируемых значений. Для того, чтобы созданный файл инициализации памяти можно было использовать в проекте, необходимо при задании параметров конфигурации модуля памяти в менеджере мегафункций указать необходимость его инициализации и указать имя соответствующего файла содержимого памяти. Пример окна с выполненным указанием приведен на рис 2.4.3.3. 72 Рис. 2.4.3.2. Окно специализированного заполнения диапазона адресов памяти Рис. 2.4.3.3. Окно задания необходимости инициализации и имени файла инициализации памяти 73 2.5. Использование Mega Wizard Plug-In Manager для создания и редактирования мегафункций В состав стандартной библиотеки Quartus II входит большое количество разнообразных модулей, которые представляют собой мегафункции и IP ядра [4]. Эти модули являются легко конфигурируемыми, гибкими в использовании. Они оптимизированы для реализации в кристаллах фирмы Altera. Их применение в проекте пользователя позволит уменьшить трудоёмкость и ускорить выполнение проекта. Мегафункции описаны на языке низкого уровня AHDL (Altera HDL), что позволит напрямую компилировать их описания в ресурсы кристалла ПЛИС. Вместе с ними поставляются HDL описания, используемые для моделирования. Мегафункции из стандартной библиотеки Quartus II разделяются на два типа. К первому типу относятся мегафункции, разработанные фирмой Altera. Их название в библиотеке начинается с “Alt” . Второй тип составляют мегафункции, созданные сторонними производителями по стандарту библиотеки параметризируемых модулей. Их название начинается с “LPM” (Library of parameterized modules). Для конфигурирования мегафункций в состав пакета Quartus II входит специальное средство – менеджер мегафункций (Mega Wizard Plugin Manager), вызов которого осуществляется из меню Tools, на инструментальной панели менеджера проекта (см. рис. 2.5.1.). Рис. 2.5.1. Меню команды Tools менеджера проекта 74 Альтернативный вариант вызова – нажатие одноименной кнопки в окне Symbol, которое появляется при выборе элементов из библиотеки (см. рис. 2.5.2). Рис. 2.5.2. Окно выбора элементов из библиотеки После вызова менеджера мегафункций появится окно, приведенное на рис. 2.5.3. Рис. 2.5.3. Окно [page1] менеджера мегафункций 75 В этом окне менеджер мегафункций предлагает либо создать новую конфигурацию, либо редактировать существующую конфигурацию, либо копировать существующую конфигурацию мегафункции в проект. Для указания своих намерений, пользователь должен выбрать одно из действий путем щелчка мыши в одном из трех окон, соответствующих возможным действиям. В качестве примера, создадим конфигурацию восьмиразрядного регистра сдвига, с возможностью параллельной загрузки кода, синхронной очисткой и с дополнительным последовательным входом данных. Для этого укажите на первой станице менеджера мегафункций действие «создание новой конфигурации» и нажмите кнопку Next. Появится следующее окно [page2a] менеджера мегафункций, показанное на рис.2.5.4. Рис. 2.5.4. Окно [page2a] менеджера мегафункций В левой части этого окна, представлен в виде древовидной структуры список мегафункций, из которого пользователь должен выбрать 76 нужную ему мегафункцию. Для реализации рассматриваемого примера, раскройте папку Storage, щелкнув по значку , рядом с названием кнопки. Затем щелкните по строке LPM_SHIFTREG. В окне, в верхней правой части страницы [page2a], необходимо выбрать семейство ПЛИС, на котором будет реализован проект. Выбираем семейство Cyclone II. Далее следует указать тип выходного файла описания мегафункции. В примере из возможных языков AHDL, VHDL, Verilog создания описания выбираем VHDL. В следующем поле необходимо задать имя создаваемого выходного файла описания с указанием папки, где он будет размещен. Кнопка браузера позволяет подобрать подходящую директорию в файловой системе инструментального компьютера. Задаем для создаваемой в примере мегафункции имя SHIFT_REG. Если после завершения конфигурирования текущей мегафункции потребуется создание других мегафункций, поставьте галочку в следующем окне. Это приведет к возврату на текущую страницу менеджера мегафункций после завершения создания мегафункции. В следующем окне указывается местоположение рабочей библиотеки проекта. Она создаётся в той же директории, где размещается текущий проект. Имя директории указывается при создании нового проекта в New Project Wizard. Заполненная страница [page2a] для рассматриваемого примера приведена на рис. 2.5.5. Рис. 2.5.5. Пример заполнения окна [page2a] менеджера мегафункций 77 Для перехода к следующей странице менеджера мегафункций нажмите кнопку Next. Вид появившегося окна [page3] менеджера показан на рис. 2.5.6. Рис. 2.5.6. Окно [page3] менеджера мегафункций В этом окне необходимо задать параметры создаваемой мегафункции, а именно: -разрядность выходной шины (в примере задаем 8); -направление сдвига (в примере задаем влево); -используемые выходы (в примере задаем оба выхода, и параллельный выход данных, и выход выдвигаемого разряда); -дополнительные входы (в примере задаем вход разрешения тактирования, последовательный вход данных, для записи в освобождающийся при сдвиге разряд, параллельный вход данных для выполнения загрузки); По мере задания параметров создаваемой конфигурации мегафункции в её графическое изображение (символ), представленное в 78 окне менеджера мегафункции, будут вноситься изменения. В нижнем левом углу страницы [page3] указываются ресурсы кристалла, необходимые для реализации мегафункции. В правой верхней части страницы имеется кнопка Documentation, нажав на которую, можно получить документацию по создаваемой мегафункции в разделе Help Quartus II или на сайте фирмы Altera. На рис. 2.5.7. приведен пример заполненной страницы [page3] менеджера для конфигурирования мегафункции регистра сдвига из рассматриваемого примера. Рис. 2.5.7. Пример заполнения окна [page3] менеджера мегафункций Для перехода к следующей странице менеджера нажмите кнопку Next. В следующем окне [page4], приведенном на рис. 2.5.8., предлагается продолжить настройку параметров создаваемой конфигурации мегафункции, а именно, конфигурировать дополнительные входы. Можно задать как входы очистки регистра сдвига, так и его установки, причем установки либо в состояние «все единицы», либо заданное состояние. 79 Назначаемые дополнительные входы сброса/установки могут быть как синхронными, так и асинхронными. Рис. 2.5.8. Окно [page4] менеджера мегафункций Так же как и при конфигурировании мегафункции, назначенные дополнительные входы сброса/установки, будут добавлены в символ мегафункции. Причем, синхронные входы - с левой стороны, асинхронные - с нижней и верхней сторон. На рис. 2.5.9. приведен пример задания входа синхронной очистки регистра сдвига. Для перехода к следующей странице нажмите кнопку Next. На следующей странице [page 5], предлагается выполнить второй этап конфигурирования мегафункции, связанный с использованием средств автоматизации проектирования сторонних производителей (см. рис. 2.5.10.) 80 Рис.2.5.9. Пример заполнения окна [page4] менеджера мегафункций Рис. 2.5.10. Окно [page5] менеджера мегафункций 81 В этом случае, для корректного моделирования созданной конфигурации мегафункции создаётся файл и помещается в соответствующую библиотеку для моделирования. Если установить галочку в окне Generate netlist, то будет формироваться таблица соединений, которая позволит выполнить раннюю оценку временных параметров и аппаратных ресурсов конфигурируемой мегафункции. В рассматриваемом примере на этой странице действий не выполняем, и сразу переходим к следующей странице, нажав кнопку Next. На последней странице менеджера мегафункций представлены итоги его работы (см. рис. 2.5.11.). Рис. 2.5.11. Окно [page6] менеджера мегафункций 82 В окне на этой странице приведены создаваемые менеджером файлы. Над окном указана директория, в которую они будут добавлены после создания. Пользователю предлагается указать необязательные файлы из списка, которые следует дополнительно сформировать для последующего использования. Серой галочкой помечены файлы создаваемые автоматически. В рассматриваемом примере это файлы SHIFT_REG.vhd, с текстовым описанием, и SHIFT_REG.bsf, с графическим обозначением. Дополнительно можно создать файл декларации созданной конфигурации мегафункции в виде структурного компонента и файл с шаблоном вставки компонента на языке VHDL, которые могут быть использованы при создании модуля верхнего уровня с описанием его на языке VHDL. В рассматриваемом примере на последней странице менеджера мегафункций никаких действий не выполняем (см. рис.2.5.11.). Для завершения работы менеджера нажмите кнопку Finish. После этого созданные менеджером мегафункций файлы будут добавлены к проекту. Чтобы убедиться в этом, откройте рабочую библиотеку проекта, как это описано в разделе 2.1.4. Если менеджер мегафункций используется для конфигурирования мегафункций из подмножества памяти (папка Memory Compiler) или арифметического подмножества (папка Arithmetic), то дополнительно он создает HTML файлы. В них содержится описание функционирования мегафункции, сопровождаемое временными диаграммами. При конфигурировании мегафункций подмножества памяти, можно задать имя файла инициализации памяти. Процедура формирования файла инициализации памяти приведена в разделе 2.4. настоящего описания. 2.6. Создание и редактирование назначений контактов вводавывода проекта 2.6.1 Окно графического редактора назначений выводов проекта Для осуществления связи реализованного на кристалле ПЛИС проекта с окружающей средой, необходимо выполнить назначения входных и выходных сигналов проекта выводам корпуса кристалла ПЛИС. Причем назначения должны быть сделаны перед выполнением окончательной компиляции проекта. В пакете Quartus II для выполнения этой задачи можно использовать следующие средства. 1. Интерактивный графический редактор назначений контактов ввода-вывода Pin Planner. 2. Редактор назначений Assignment Editor. 3. Файл с установками проекта, имеющий расширение .qsf. 83 Далее в настоящем пособии содержится описание графического редактора назначений выводов проекта Pin Planner. Чтобы вызвать редактор Pin Planner выполните одноименную команду из меню Assignments или щелкните мышью по пиктограмме на инструментальной панели менеджера проекта. После этого на экране монитора появится окно графического редактора Pin Planner, приведенное на рис.2.6.1.1. Это окно может быть стандартным образом отсоединено и присоединено к главному окну менеджера проекта с помощью соответствующей кнопки на панели инструментов графического редактора. Также как и в графическом редакторе схем, и в текстовом редакторе, в верхней части окна редактора Pin Planner, содержится имя проекта, вдоль левой стороны окна – панель инструментов, назначение кнопок которой приведено ниже. - отсоединение - присоединение окна к панели менеджера проекта - выделение объекта - обновление изображения - увеличение, уменьшение масштаба - представление изображения во весь экран - центрирование изображения в окне - назначение для следующего сигнала из группы, контакта снизу от курсора мыши - назначение для следующего сигнала из группы, контакта сверху от курсора мыши - назначение для следующего сигнала из группы, контакта справа от курсора мыши - назначение для следующего сигнала из группы, контакта слева от курсора мыши - индивидуальное назначение контактов для сигналов группы - отображение в окне Package View банков ввода/вывода - отображение в окне Package View VREF групп - отображение в окне Package View граничных контактов - отображение в окне Package View назначений, выполненных компоновщиком - отображение в окне Package View дифференциальных пар выводов - создание / импортирование мегафункции - выполнение установок для модуля верхнего уровня - создание файла описания модуля верхнего уровня 84 85 - открытие окна с разводкой платы - вызов окна с условными обозначениями выводов корпуса ПЛИС - поиск контакта - поиск переназначаемых контактов - выполнение оперативной проверки правильности назначений - запуск анализа назначений Графический редактор содержит три основных окна. На одном из них представлено графическое изображение выводов корпуса кристалла ПЛИС (Package View). Второе окно (All Pins list) в нижней части панели, содержит таблицу со списком всех внешних сигналов проекта и выполненных назначениях их соответствия контактам кристалла ПЛИС. Третье окно (Groups list) в левой части панели, содержит таблицу, аналогичную предыдущей, только в ней содержатся групповые сигналы или шины. Назначения можно осуществить, используя любое из этих окон. Следует отметить, что в первом окне можно изменить вид отображения выводов корпуса кристалла ПЛИС с помощью контекстнозависимого меню, вызываемого щелчком правой кнопки мыши. Вид меню приведен на рис. 2.6.1.2. Установка опции Package Top в этом меню приведет к представлению выводов микросхемы при виде на неё сверху. Установка опции Package Bottom приведет к представлению выводов микросхемы при виде на неё снизу. Рис. 2.6.1.2. Вид контекстно-зависимого меню, вызываемого в окне Package View 86 Щелчок мыши по строке Pad View приведет к появлению на экране дополнительного окна с таким же именем, в котором содержится графическое представление площади программируемого кристалла с отображением его ресурсов ввода-вывода (см. рис.2.6.1.3.). Следует отметить, что ресурсы ввода-вывода расположены вдоль граничных сторон кристалла по его периметру. Окно Pad View поможет разработчику установить соответствие координат областей ввода-вывода программируемого кристалла и выводов корпуса микросхемы, его содержащего. Рис.2.6.1.3. Окно Pad View На панели инструментов этого окна содержатся кнопки, с помощью которых можно не только изменить направление взгляда на микросхему (сверху или снизу), но и повернуть корпус кристалла ПЛИС, как по часовой стрелке, так и против. Графическое представление выводов корпуса ПЛИС в окне Package View использует разные условные графические обозначения и разные цвета для отображения выводов разного назначения. Чтобы посмотреть соответствие используемых символов и представляемых типов выводов, можно воспользоваться командой Pin Legend Window из контекстнозависимого меню (см. рис. 2.6.1.2.). Вызываемое этой командой окно приведено на рис. 2.6.1.4. Как видно из рисунка, выводы корпуса ПЛИС, назначенные пользователем, отображаются красным цветом, назначенные компоновщиком – зеленым. Резервные выводы отображаются синим цветом, неназначенные – серым. Для изображения, например, контактов 87 «земля» (gnd) используется символ символ . , для контактов «питание» (vcc) - Рис. 2.6.1.4. Окно Pin Legend Window Окно Pin Legend также можно вызвать, используя кнопку панели инструментов графического редактора выводов микросхемы. на 2.6.2. Использование окна Package View для назначения и редактирования выводов проекта При выполнении назначений допустимо использование приема «перетаскивания и отпускания» (drag & drop). В соответствии с ним выполните следующие шаги. 1. Выделите с помощью щелчка мыши имя сигнала или шины в списке имен. 2. Затем нажмите левую кнопку мыши и, не отпуская её, переместите курсор мыши на графическое обозначение назначаемого контакта. При 88 этом к острию стрелки курсора прикрепится надпись с именем выбранного сигнала, а внизу справа от курсора появится окно с указанием координаты контакта и возможности его назначения (см. рис. 2.6.2.1.). Рис. 2.6.2.1. Пример назначения контакта для сигнала clk 3. Отпустите левую кнопку мыши. После этого автоматически произойдет заполнение полей Location, I/O Bank, VREF Groups в таблицах со списком имен проекта. Причем строка таблицы закрасится цветом, соответствующим цвету используемого банка ввода-вывода. Аналогичным образом можно выполнить назначение групп контактов. Причем, для того чтобы выполнить индивидуальные назначения для каждого сигнала из группы, следует предварительно нажать кнопку на панели инструментов редактора выводов ПЛИС. Первый сигнал из группы назначается также как и одиночный сигнал. Для назначения последующих сигналов, следует переместить курсор мыши на назначаемый контакт корпуса микросхемы и нажать левую кнопку мыши. Чтобы выполнить групповое назначение, нужно предварительно нажать одну из кнопок на панели инструментов редактора выводов микросхемы. Каждая из этих кнопок показывает направление назначения последующих контактов относительно контакта, на который указывает курсор мыши. При назначении групповых контактов, одновременно заполняются таблицы с общим списком сигналов и со списком групп сигналов. Назначение сигнала или группы сигналов может быть выполнено путем «перетаскивания» их имени на графическое обозначение банка ввода-вывода. Предварительно, чтобы отобразить банки в окне Package 89 View следует воспользоваться командой Show I/O Banks из контекстнозависимого меню или кнопкой на панели инструментов графического редактора контактов ПЛИС. Окно Package View также может быть использовано и для редактирования назначений выводов. Чтобы это сделать, выполните двойной щелчок мышью по изображению редактируемого вывода на корпусе микросхемы. Чтобы быстрее найти нужный вывод корпуса микросхемы выделите имя сигнала в другом окне. Одновременно, соответствующий вывод микросхемы выделится синим цветом в окне Package View. После двойного щелчка мышью по изображению вывода на экране появится окно Pin Properties, которое показано на рис.2.6.2.2. Используя это окно можно просмотреть свойства выбранного контакта ввода/вывода микросхемы и, в случае необходимости, выполнить редактирование его назначения. Рис. 2.6.2.2. Окно редактирования свойств вывода Можно изменить имя сигнала, используемый стандарт ввода/вывода, зарезервировать контакт вывода микросхемы для последующего применения. В последнем случае можно указать назначение зарезервированного вывода, выбрав подходящий вариант из предложенного списка. В окне Package View можно выполнить редактирование не только отдельных выводов микросхемы, но и банков ввода/вывода. Для этого надо установить опцию их отображения в контекстно-зависимом меню, а затем выполнить двойной щелчок мышью по графическому изображению банка ввода/вывода. Появится окно I/O Bank Properties, используя которое можно просмотреть свойства банка и, в случае необходимости, выполнить редактирование. 90 2.6.3. Назначение контактов ввода-вывода в окне All Pins list Назначение контактов ввода/вывода в окне All Pins list графического редактора, выполните следующим образом. 1.Запустите компиляцию проекта. Это необходимо сделать для того, чтобы в окнах графического редактора выводов ПЛИС появились списки внешних сигналов проекта с указанием направления передачи информации. 2. Выполните двойной щелчок мышью в графе Location, напротив имени назначаемого сигнала. Появится выпадающий список, показанный на рис. 2.6.3.1. В этом списке перечислены стороны кристалла микросхемы, содержащие ресурсы ввода/вывода, банки ввода/вывода, закрашенные разными цветами, и непосредственно координаты контактов корпуса микросхемы с указанием, к какому банку ввода/вывода они относятся, какие трассировочные ресурсы используют (строк или столбцов), какой стандарт ввода/вывода реализуют. Причем, соответствие контактов банкам ввода-вывода дополнительно отображается отдельным цветом, таким же, как и в окне Package View. Если в списке указать только номер банка ввода/вывода, или сторону кристалла ПЛИС, то редактор сам выполнит назначение подходящего контакта. В противном случае, следует указать конкретный вывод микросхемы. Выбор из списка выполняется стандартным образом, путем двойного щелчка мышью по соответствующей строке. При выделении имени сигнала в списке, соответствующий вывод будет выделен цветом и в окне с изображением выводов корпуса ПЛИС, и в окне Pad View с отображением граничных областей кристалла. Чтобы зарезервировать вывод, для возможного последующего использования выполните следующее. 1. Выделите строку << new node>> в списке имен, щелкнув по ней мышью. 2. Введите имя сигнала, для которого планируете зарезервировать вывод микросхемы ПЛИС. 3. Назначьте для него вывод микросхемы, как было описано выше. 4. В графе Reserved выберите тип сигнала для зарезервированного вывода из выпадающего списка. Чтобы появился список, щелкните дважды мышью в соответствующей графе таблицы. Аналогичным образом выполните резервирование других выводов. Полезной особенностью окна All Pins list является возможность фильтрации отображаемых в окне выводов. Для этой цели в состав окна включено поле Filter, в котором можно выбрать критерий, из выпадающего списка, приведенного на рис 2.6.3.2. 91 92 Рис. 2.6.3.2. Варианты заполнения поля Filter Чтобы осуществить проверку допустимости созданных назначений, выполните команду Processing> Start> Start I/O Assignment Analysis из меню менеджера проекта или воспользуйтесь кнопкой на панели инструментов графического редактора выводов. Результат выполненной проверки будет отражен в выводимом сообщении. Для получения более подробного отчета о результатах проверки назначений выводов выполните полную компиляцию проекта, и в папке Fitter отчета о компиляции получите всю необходимую информацию. Часть 3 Моделирование проекта 3.1. Последовательность моделирования В состав пакета Quartus II входит модуль Simulator, предназначенный для моделирования проекта. Чтобы выполнить функциональное, а затем и временное моделирование некоторого устройства, необходимо создать файл с тестовыми сигналами. Во время моделирования эти сигналы будут подаваться на созданную в процессе проектирования модель устройства с целью получения его реакций на поданные воздействия. Наблюдая результаты моделирования, разработчик определяет соответствие поведения проектируемого устройства требованиям технического задания. Вначале проверяется правильность функционирования устройства. При этом временные задержки распространения сигналов в схеме не учитываются. Такое моделирование называется функциональным. Для его выполнения достаточно создать модель устройства в виде списка соединений узлов схемы (netlist for simulation). Это можно сделать сразу после ввода описания проекта, выполнив в выпадающем меню Processing 93 менеджера проекта команду Generate Functional Simulation Netlist, как показано на рис. 3.1.1. Рис. 3.1.1. Команда создания списка соединений для моделирования проекта из меню Processing Также как и компиляция, моделирование всегда выполняется для модуля верхнего уровня в проекте. Поэтому, если требуется промоделировать модуль нижележащего уровня, необходимо объявить его модулем верхнего уровня, после чего сгенерировать список соединений и выполнить моделирование. После устранения, выявленных в процессе функционального моделирования ошибок, может быть выполнено моделирование временное. В этом случае учитываются задержки распространения сигналов, вызванные не только логическими элементами, но и цепями соединений. Поэтому временное моделирование выполняется после полной компиляции проекта и получения модели устройства, учитывающей размещение элементов схемы на площади выбранного кристалла ПЛИС и реализацию соединений. Целью временного моделирования, является получение временных характеристик разрабатываемого устройства, приближенных к реальным. На основе анализа результатов временного моделирования выявляется соответствие полученных временных характеристик техническому 94 заданию и принимается решение о завершении проектирования или внесении очередных изменений в проект. Таким образом, при выполнении моделирования проекта необходимо выполнить следующую последовательность действий. 1. Создание исходного файла с тестовыми воздействиями. 2. Выполнение соответствующих установок для моделирования. В них необходимо указать какое моделирование будет выполнено, функциональное или временное, какой файл с тестовыми воздействиями использовать, задать временной интервал моделирования. 3. Генерация списка соединений для моделирования (functional simulation netlist), если моделирование функциональное, либо выполнение полной компиляции проекта, если моделирование временное. 4. Запуск моделирования. Для этого нужно щелкнуть мышью по пиктограмме на панели инструментов, или выполнить команду Start Simulation в выпадающем меню Processing менеджера проекта. 5. Анализ отчёта о результатах моделирования. 3.2. Окно утилиты моделирования Для настройки инструментальных средств и управления процессом моделирования в пакете Quartus II имеется соответствующая утилита. Чтобы её вызвать, надо нажать кнопку Processing на панели инструментов менеджера проекта, а в выпадающем меню выполнить команду Simulator Tool, как показано на рис. 3.2.1. После этого появится окно Simulator Tool, приведенное на рис. 3.2.2. Рис. 3.2.1. Команда вызова утилиты моделирования из меню Processing 95 С помощью этого окна можно выполнить следующие действия. 1. Указать режим моделирования, функциональное или временное. 2. Запустить процесс формирования списка соединений узлов для выполнения функционального моделирования, нажав на кнопку Generate Functional Simulation Netlist. 3. Указать файл с тестовыми воздействиями. Причем с помощью кнопки браузера можно выбрать подходящий файл в файловой системе инструментального компьютера. Кнопка Add Multiple Files позволит создать составной тест из нескольких файлов. 4. Указать временной интервал моделирования. Можно завершить моделирование в указанное время, либо выполнить моделирование до того момента, пока не будут поданы все тестовые воздействия, содержащиеся в исходном файле. 5. Задать следующие опции для моделирования: - Автоматически добавлять выходные контакты в окно редактора временных диаграмм; - Проверять выходные реакции при выполнении моделирования. С помощью кнопки Waveform Comparison Settings… можно выполнить задание установок для анализа выходных реакций; - Определять нарушение времен установки и удержания сигналов. (Используется только при временном моделировании); Рис. 3.2.2. Окно утилиты моделирования 96 - Определять состязания. Задается временной интервал, в течение которого, выполняется анализ возможных состязаний в схеме. (Используется только при временном моделировании); - Перезаписывать получаемые в процессе моделирования временные диаграммы с выходных контактов в файл с исходными тестовыми сигналами. В противном случае результаты моделирования будут представляться в отдельном файле; - Формировать файл активности сигналов с расширением .saf; - Формировать файл .vcd. Файлы с расширением .saf и .vcd используются пакетом Quartus II для анализа потребляемой мощности. В окне утилиты моделирования содержатся кнопки запуска и останова моделирования, открытия файла с временными диаграммами, открытия файла с отчетом о результатах моделирования. Имеется окно визуализации процесса моделирования с указанием процента выполнения и времени моделирования. 3.3. Задание параметров моделирования Для задания установок, необходимых для выполнения моделирования, выполните следующие шаги. 1. На панели инструментов менеджера проекта Quartus II щелкните мышью по кнопке назначения (Assignments). 2. В открывшемся меню, выберите строку установки (Settings…), как показано на рис. 3.3.1, и щелкните левой кнопкой мыши. Рис. 3.3.1. Выбор команды установки из меню назначений 97 3. Появится окно, изображенное на рис. 3.3.2. В левой части этого окна щелкните мышью по строке Simulator Settings, после чего на экране появится окно, показанное на рис. 3.3.3. Рис. 3.3.2. Окно задания установок проекта Рис. 3.3.3. Окно задания параметров для моделирования 98 В этом окне в поле режим моделирования задайте нужный режим – функциональное моделирование или временное. В поле Simulation input задайте имя файла с тестовыми воздействиями, затем задайте длительность интервала моделирования. Для этого в поле End simulation at: задайте время завершения моделирования. Задаваемое значение не должно превышать длительности тестовых воздействий, содержащихся в исходном файле. Для изменения длительности тестовой последовательности надо использовать команду End Time из меню Edit. Описание соответствующих действий пользователя содержится в разделе 3.6.1. Другой вариант задания продолжительности моделирования заключается в использовании опции Run simulation until all vector stimuli are used, что приведет к выполнению моделирования до того момента, пока не будут поданы все тесты из указанного файла с временными диаграммами. Для настройки параметров моделирования также можно воспользоваться окном утилиты моделирования, которое было описано в разделе 3.2. Полную информацию о выполненных настройках для моделирования можно посмотреть в разделе Simulator Settings отчета о моделировании. Соответствующая страница отчета для рассмотренного примера приведена в разделе 3.8. на рис. 3.8.2. 3.4. Создание файла с временными диаграммами В пакете Quartus II, тестовые воздействия могут быть сформированы либо в форме временных диаграмм с использованием соответствующего редактора, либо путем описания на языке VHDL или Verilog структурного компонента, играющего роль генератора тестов. Реализация второго варианта в пакете Quartus II выполняется таким же образом, как и создание любых других компонентов проекта. Для создания файла с временными диаграммами выполните следующее. 1. На панели инструментов менеджера проекта щелкните мышью по кнопке File. 2. В открывшемся окне (см. рис 3.4.1.) выполните команду New. После этого появится окно задания типа вновь создаваемого файла, приведенное на рис. 3.4.2. Открыть это окно также можно, выполнив щелчок мышью по пиктограмме на панели инструментов менеджера проекта. 99 Рис. 3.4.1. Выпадающее меню команды File менеджера проекта 3. В открывшемся окне выберите тип создаваемого файла Vector Waveform File, как показано на рис 3.4.2. и нажмите кнопку ОК. 4. В главном окне менеджера проекта появится пустая панель редактора временных диаграмм, как показано на рис 3.4.3. Вновь созданному файлу автоматически назначается имя Waveform1.vwf, которое будет указано на закладке страницы. 100 Рис. 3.4.2. Окно задания типа вновь создаваемого файла Рис. 3.4.3. Вид пустого окна редактора временных диаграмм Для присвоения файлу собственного имени снова нажмите кнопку File на панели инструментов менеджера проекта, выберите строку Save As, как показано на рис 3.4.4., в открывшемся окне Save As введите в 101 соответствующее поле новое имя файла и нажмите кнопку Сохранить (см. рис. 3.4.5.). Сразу же после этого, новое назначенное имя появится на закладке страницы в главном окне менеджера проекта и на странице Files навигатора проекта. Рис. 3.4.4. Выбор команды сохранения с новым именем из меню File Рис. 3.4.5. Окно сохранения файла с временными диаграммами 102 3.5. Окно редактора временных диаграмм Окно редактора временных диаграмм открывается после выбора файла с расширением .vwf на странице Files навигатора проекта. Вид окна приведен на рис 3.4.3. Оно содержит два основных поля: поле имен и поле временных диаграмм. По желанию пользователя, с помощью мыши, граница между полями может быть перемещена влево или вправо стандартным образом. В поле имен содержатся имена контрольных точек моделируемой схемы и соответствующие значения сигналов. В поле временных диаграмм отображаются входные тестовые сигналы и получаемые в процессе моделирования ответные реакции, наблюдаемые в контрольных точках схемы. На закладке окна указывается имя соответствующего файла. В верхней строке редактора расположены окна с указанием временных координат главной временной метки, курсора мыши, смещения курсора относительно главной метки, а также времен начала и окончания моделирования. Вдоль левой стороны размещается панель инструментов. Назначение кнопок инструментальной панели приведено ниже. - кнопка отсоединения - присоединения окна редактора временных диаграмм к главному окну менеджера проекта. - кнопка выделения объекта в окне редактора временных диаграмм. Выделенным объектом может являться фрагмент временной диаграммы, включая весь интервал целиком, временная метка, поясняющая надпись. - кнопка ввода текстовых комментариев в поле временных диаграмм. - кнопка редактирования временных диаграмм. - кнопка изменения маштаба. - кнопка полноэкранного представления окна. - кнопка поиска. - кнопка замены. - кнопка задания состояния «не инициализировано» (U). Символ используется только при моделировании для выявления ошибок инициализации, так как рельный сигнал будет находиться в каком либо определенном состоянии, или в состоянии X (неопределенность). - кнопка задания активного неопределенного состояния (X). 103 - кнопка задания активного нуля (0). - кнопка задания активной единицы (1). - кнопка задания высокоимпедантного состояния (Z). - кнопка задания слабого неопределенного состояния (W). - кнопка задания слабого нуля (L). - кнопка задания слабой единицы (H). - кнопка задания состояния не важно (Don’t care). Выбор конкретного значения предоставляется компилятору с целью оптимизации реализации. Вышеперечисленные девять кнопок позволяют задать значения из девятизначного алфавита, используемого для моделирования. Разница между активными и слабыми состояниями состоит в том, что слабый сигнал формируется от источников, имеющих повышенное выходное сопротивление по сравнению с активными источниками. В этом случае источник, генерирующий активный сигнал, подавляет слабый, если не отключен. - кнопка инвертирования сигнала. - кнопка задания состояний счетчика на шине. - кнопка задания синхросигнала. - кнопка задания определенного сигнала. - кнопка задания случайного сигнала. - кнопка привязки к сетке. - кнопка упорядочивания имен сигналов в алфавитном порядке в списке имен редактора временных диаграмм. 3.6. Создание и редактирование временных диаграмм 3.6.1. Задание длительности временных диаграмм Чтобы изменить длительность временного интервала, отображаемого в окне редактора временных диграмм, выполните следующее. 1. Откройте файл с временными диаграммами в главном окне менеджера проекта Quartus II. 2. Щелкните мышью по кнопке Edit на панели инструментов менеджера проекта. 3. В появившемся меню, показанном на рис 3.6.1.1., выполните команду End Time… 4. Затем на экране монитора появится окно End Time, приведенное на рис 3.6.1.2. 5. Измените используемую по умолчанию длительность тестовой последовательности, задав её в соответствующем поле Time окна. 104 Чтобы изменить сами настройки, используемые по умолчанию редактором, воспользуйтесь командой Options for Waveform Editor… из динамического меню Tools менеджера проекта. Рис. 3.6.1.1. Команда задания длительности временных диаграмм из меню Edit Рис. 3.6.1.2. Окно задания длительности временных диаграмм 105 3.6.2. Задание контрольных точек схемы Чтобы ввести имена контрольных точек моделируемой схемы в соответствущее поле редактора временных диаграмм, выполните следующие действия. 1.Нажмите кнопку редактирования (Edit) на панели инструментов менеджера проекта. 2.В открывшемся окне меню выберите строку вставки (Insert). 3.В подчиненном меню выберите строку вставки узла или шины (Insert Node or Bus) (рис. 3.6.2.1). Рис. 3.6.2.1. Меню команды Edit с подчиненным меню вставки После этого на экране монитора появится панель Insert Node or Bus, как показано на рис. 3.6.2.2. Рис. 3.6.2.2. Окно вставки узла или шины 106 Такой же результат можно получить, если выполнить двойной щелчок левой кнопкой мыши на свободном месте поля имен в окне редактора временных диаграмм. На появившейся панели в поле Name напечатайте полное имя интересующего Вас узла. Более простой способ - нажатие кнопки поиска узла (Node Finder) , что приведет к открытию окна утилиты поиска узла, представленного на рис. 3.6.2.3. В левой части окна отображаются имена найденных узлов, а в правой – имена выбранных пользователем узлов. Рис. 3.6.2.3. Окно поиска узла Утилита Node Finder содержит встроенный фильтр для указания типа искомого узла. Так как нас интересуют входные и выходные контакты, установите в поле Filter критерий поиска Pins:all, что соответствует заданию всех внешних выводов проекта. Поэтому, если есть необходимость включения в окно редактора временных диаграмм внутренних точек схемы, необходимо предварительно подсоединить к ним выходные контакты. Для нахождения искомых сигналов нажмите кнопку List, после чего в левом окне Node Finder появится список имен, удовлетворяющих заданному критерию поиска. На рис.3.6.2.4. приведен пример окна Node Finder для задания контрольных точек структурного автомата, описание которого было приведено в разделе 2.1. 107 Рис. 3.6.2.4. Пример окна поиска узлов для структурного автомата Далее выделите искомые имена в списке найденных имен с помощью мыши стандартным образом. После чего нажмите кнопку . Произойдет копирование выделенных имен в список выбранных узлов (Selected Nodes), расположенный справа. Кнопка позволяет копировать весь список. Кнопки и предназначены для удаления выделенных имен из списка выбранных узлов и удаления всего списка, соответственно. С помощью указанных кнопок можно упорядочить имена в списке выбранных узлов. Чтобы закрыть окно Node Finder, нажмите кнопку OK. На экране вновь появится уже заполненное окно вставки узла или шины. Закройте окно таким же образом, нажав кнопку OK. После этого выбранные имена появятся в поле имен редактора временных диаграмм, в том самом порядке, в каком они были сформированы в списке выбранных узлов. Чтобы переупорядочить имена в списке имен редактора временных диаграмм выполните следующее. 1. Щелкните левой кнопкой мыши по выбранному имени. Соответствующая строка редактора временных диаграмм выделится синим цветом, а курсор мыши примет вид . 2. Нажмите левую кнопку мыши и, не отпуская её, «перетащите» выделенную строку в желаемую позицию в списке имен. 108 Чтобы удалить имя из списка имен в окне редактора временных диаграмм, выделите его описанным выше способом, а затем нажмите клавишу Delete на клавиатуре, либо правой кнопкой мыши вызовите контекстно-зависимое меню и выполните в нем команду удаления. Чтобы изменить форму представления сигнала, выделите его имя описанным выше способом, а затем в контекстно-зависимом меню щелкните мышью по строке Properties. Появится окно свойств узла, показанное на рис.3.6.2.5. Рис. 3.6.2.5. Окно свойств узла В этом окне в строке Radix можно указать вид представляемых данных. Особенно это полезно при использовании шин. Так, данные на шине можно трактовать как двоичное, восьмеричное, шестнадцатеричное, десятичное число со знаком или без. В некоторых случаях удобным является символьное представление данных в коде ASCII. 3.6.3. Использование временной сетки 3.6.3.1. Задание размера временной сетки Особенностью редактора временных диаграмм является наличие в поле временных диаграмм вертикальных прерывистых линий серого цвета, следующих с определенным периодом. Это, так называемая, временная сетка (time grid). Для задания размера сетки следует вначале открыть файл с временными диаграммами, а затем воспользоваться меню Edit, в котором необходимо выбрать строку Grid Size, как показано на рис. 3.6.3.1. Далее в появившемся окне Grid Size необходимо задать нужную величину и нажать кнопку OK (см. рис. 3.6.3.2.). 109 Рис. 3.6.3.1. Выбор команды изменения размера сетки из меню Edit Рис. 3.6.3.2. Окно задания размера сетки 3.6.3.2. Привязка временных диаграмм к временной сетке На панели инструментов редактора временных диаграмм имеется кнопка привязки к временной сетке. После её нажатия границы выделяемого интервала будут привязываться к сетке. Границы интервалов также можно привязать к моментам времени, в которых осуществляются переходы, на имеющихся уже в поле временных 110 диаграмм сигналах. Для этого надо воспользоватся меню View на панели инструментов менеджера проекта, и в открывшемся меню выполнить команду Snap to Transition (см. рис. 3.6.3.2.1.). Рис. 3.6.3.2.1. Команда привязки к переходам из меню View 3.6.4. Задание входных воздействий Для задания входных воздействий или ожидаемых реакций в редакторе временных диаграмм выполните следующие действия. 1. В поле временных диаграмм выделите временной интервал задаваемого сигнала, с помощью мыши. Возможно выделение всего временного интервала целиком. 2. Используя кнопки инструментальной панели редактора временных диаграмм, задайте требуемую форму изменения сигнала. Альтернативный путь состоит в использовании опции Value из контекстно – зависимого меню, вид которого приведен на рис. 3.6.4.1. 111 Рис. 3.6.4.1. Меню задания формы сигнала в редакторе временных диаграмм 3.6.4.1. Выделение временного интервала Выделение временного интервала выполните следующим образом. 1.Нажмите кнопку выделения на панели инструментов редактора временных диаграмм. 2. Подведите курсор мыши к границе интервала, напротив имени формируемого сигнала. 3. Нажмите левую кнопку мыши и, не отпуская её, переместите курсор мыши к другой границе временного интервала. При этом на временной диаграмме прорисуется прерывистой линией прямоугольник серого цвета. 4.Отпустите левую кнопку мыши. Выделенный интервал закрасится голубым цветом. Чтобы выделить весь интервал моделирования целиком, щелкните мышью по имени сигнала или шины в поле имен редактора временных диаграмм. Временной интервал можно выделить сразу для нескольких сигналов, включая шины. В этом случае курсор мыши надо 112 перемещать также и в вертикальном направлении, чтобы в прорисованный прямоугольник попадали нужные сигналы и шины. 3.6.4.2. Задание синхросигнала 1. После выделения имени сигнала, нажмите кнопку на панели инструментов редактора временных диаграмм (см. рис. 3.4.3.). Появится окно Clock, показанное на рис. 3.6.4.2.1. Рис. 3.6.4.2.1. Окно задания параметров синхросигнала 2. Задайте в этом окне границы временного интервала, период следования, смещение и скважность формируемых синхросигналов. 3.6.4.3. Задание состояний счетчика на шине При моделировании схемы иногда бывает удобно задавать последовательное изменение состояний шины. Для этого выполните следующие шаги. 1. После выделения имени шины, нажмите кнопку на панели инструментов редактора временных диаграмм. Появится окно Count Value, изображенное на рис. 3.6.4.3.1. 113 Рис. 3.6.4.3.1. Окно задания шаблона счетчика на шине Задайте в этом окне на закладке Counting параметры счета, а именно: систему счисления, в которой будут представляться формируемые значения на шине, начальное значение, величину приращения и тип счета (двоичный или код Грея). На закладке Timing можно задать временные параметры изменяемого сигнала (см. рис. 3.6.4.3.2.). Рис. 3.6.4.3.2. Окно задания параметров счета при формировании шаблона счетчика 114 3.6.4.4. Задание постоянного значения сигнала или шины Чтобы задать определенную величину сигнала или шины выполните следующие шаги. 1. Выделите имя сигнала или шины в списке имен редактора временных диаграмм. 2. Нажмите кнопку на инструментальной панели. Появится окно Arbitrary Value, показанное на рис. 3.6.4.4.1. Рис. 3.6.4.4.1. Окно задания определенного значения шины 3. В этом окне задайте границы временного интервала, систему счисления для представления задаваемой величины и само её значение. 3.6.4.5. Задание случайного значения сигнала или шины Чтобы задать случайную величину одиночного сигнала или шины, выполните следующие действия. 1. Выделите имя сигнала или шины в списке имен редактора временных диаграмм. 2. Нажмите кнопку на панели инструментов редактора временных диаграмм. Появится окно Random Values, показанное на рис. 3.6.4.5.1. Рис. 3.6.4.5.1. Окно задания случайной величины 115 2. В этом окне задайте интервал изменения случайной величины. Он может совпадать с размером сетки, составлять половину размера сетки, может быть случайной величиной, а может быть величиной фиксированной. В этом случае длительность интервала задайте в окне Interval period. Задание величин значений сигналов или шин таких, как слабый ноль, слабая единица, не инициализировано, не важно, высокоимпедансного состояния и других, осуществляется аналогичным образом. 3.6.5. Редактирование временных диаграмм Редактирование временных диаграмм в пакете Quartus II осуществляется стандартным образом. Вначале с помощью курсора мыши выделяется фрагмент временных диаграмм, как это было описано выше. Затем с помощью команды Edit из динамического меню менеджера проекта, или контекстно-зависимого меню, вызываемого нажатием правой кнопки мыши, с выделенным фрагментом осуществляются типовые операции редактирования. А именно, выделенный фрагмент можно удалить, переместить, скопировать, вырезать, а в последующем вставить в любое место редактируемого файла, или даже в другой файл. Вид контекстно-зависимого меню с поясняющими надписями приведён на рис. 3.6.5.1. Рис. 3.6.5.1. Вид контекстного меню, используемого для редактирования временных диаграмм 116 Использование диаграммах поясняющих Чтобы разместить текстовый диаграммах выполните следующее. надписей комментарий на на временных временных 1. Щелкните мышью по кнопке на панели инструментов редактора временных диаграмм. После этого курсор мыши в поле временных диаграмм примет вид перекрестия , с прикрепленным изображением символа А. 2. Подведите курсор мыши к точке на временной диаграмме, для которой планируете создать комментарий. 3. Нажмите левую кнопку мыши, и не отпуская её, переместите курсор в то место на временной диаграмме, где будет размещен поясняющий текст. Появится сноска с предложением щелкнуть мышью и ввести в рамке текст комментария, как показано на рис. 3.6.5.2. Рис. 3.6.5.2. Пример с предложением ввести текст комментария диаграмме на временной 4. Щёлкните мышью и напечатайте текст комментария. В случае необходимости, местоположение текста комментария можно изменить и позднее. Чтобы это сделать, выделите его с помощью кнопки выделения . Текстовая строка выделится рамкой синего цвета. Щелкните левой кнопкой мыши по выделенному тексту, и не отпуская кнопки «перетащите» текст в более подходящее место. При этом комментируемая позиция на временной диаграмме останется неизменной. Чтобы переместить саму комментируемую позицию на временной 117 диаграмме, необходимо поступить аналогичным образом, а именно, вначале выделить её, а затем «перетащить». Пример подготовленных временных диаграмм для моделирования структурного автомата, рассмотренного ранее, приведен на рис. 3.6.5.3. Рис. 3.6.5.3. Пример временных диаграмм, подготовленных для моделирования структурного автомата 3.6.6. Использование временных диаграмм. временных меток для анализа Для удобства анализа временных диаграмм в соответствующем поле окна редактора временных диаграмм используются временные метки. Метки представляют собой вертикальные пунктирные линии синего цвета, ограниченные сверху значком квадрата. Над этим значком указывается временная координата метки. Одна из временных меток является главной (master). Она изображается сплошной линией синего цвета (рис. 3.6.6.1). Координата главной временной метки отображается в окне Master Time Bar в верхней части панели редактора временных диаграмм. В поле имен, рядом с именем сигнала или шины указывается соответствующее значение сигнала или шины, принимаемое в отмеченный главной временной меткой момент времени. С помощью кнопок , расположенных рядом с окном Master Time Bar, можно перемещать главную временную метку влево и вправо, соответственно. Эта особенность редактора особенно полезна при выполнении анализа результатов моделирования схемы, когда исследуется её поведение в последовательные моменты времени. 118 Рис. 3.6.6.1. Пример изображения временных меток на временной диаграмме С другой стороны, для перемещения любых временных меток можно использовать следующий прием. 1. Наведите курсор мыши на значок квадрата, ограничивающий линию временной метки сверху. При этом в нижней правой части стрелки курсора мыши кратковременно мелькнет текущая координата метки. 2. Нажмите левую кнопку мыши и, не отпуская ее, «перетащите» временную метку в нужную позицию на экране. 3. Отпустите левую кнопку мыши. Над каждой временной меткой указывается ее координата. Причем координата главной метки указывается в абсолютных величинах, то есть представляет собой смещение на временной оси относительно начала координат. Координаты же остальных временных меток, могут указываться как в абсолютных, так и в относительных величинах. Относительная величина представляет смещение текущей метки относительно главной временной метки. Чтобы настроить соответствующее отображение временной координаты, воспользуйтесь командой View из динамического меню менеджера проекта (см. рис. 3.6.6.2.). Выберите строку Show Absolute Times из выпадающего меню команды View, для использования координаты абсолютного времени, либо строку Show Time Relative to Master Time Bar для использования относительного смещения. 119 Рис. 3.6.6.2. Опция использования абсолютного времени для отображения координат временных меток в редакторе временных диаграмм Для отображения текущей координаты курсора мыши предназначено окно Pointer в верхней части панели редактора временных диаграмм. Для указания смещения курсора мыши относительно главной временной метки используется окно Interval, расположенное справа от окна Pointer (см. рис. 3.6.6.1.). Удобным инструментом более гибкого управления временными метками является окно органайзера временных меток, которое приведено на рис 3.6.6.3. Рис. 3.6.6.3. Окно органайзера временных меток 120 Это окно можно вызвать из меню Edit, выбрав в нем строку Time Bar, а затем в выпадающем меню выбрать Time Bar Organizer, как показано на рис 3.6.6.4. Рис. 3.6.6.4. Команда вызова органайзера временных меток из меню Edit Для добавления новых временных меток выполните следующие шаги. 1. Наберите в поле Time задаваемый временной интервал. Причем интервал будет трактоваться как смещение относительно главной временной метки, при установленной опции Relative to master time bar, и как абсолютная величина, при установленной опции Absolute time в соответствующем окне органайзера. 2. Нажмите кнопку Add. Соответствующая запись добавится к имеющимся записям в окне существующих меток (см. рис. 3.6.6.5). 3. Для добавления остальных меток повторите выполнение пунктов 1 и 2. 4. Для завершения этого процесса нажмите кнопку OK. Чтобы удалить временную метку, необходимо выделить левой кнопкой мыши соответствующую запись в окне существующих меток и нажать кнопку Delete. 121 Рис. 3.6.6.5. Пример добавления новой временной метки Чтобы сделать временную метку главной, необходимо выделить левой кнопкой мыши в окне существующих меток соответствующую запись и нажать кнопку Set as Master. После этого, главная метка в поле временных диаграмм прорисуется сплошной линией синего цвета, а соответствующая запись в окне временных меток органайзера отметится красной буквой М. Создать новую временную метку можно также непосредственно в поле временных диаграмм. Для этого надо выполнить следующее. 1. Подвести курсор мыши к соответствующей позиции в поле временных диаграмм на экране монитора. Текущая координата курсора отображается в окне Pointer в верхней части панели редактора временных диаграмм. 2. Вызвать нажатием правой кнопки мыши контекстно-зависимое меню. 3. Указать курсором мыши строку временная метка (Time Bar), после чего в выпадающем меню выполнить команду вставки временной метки (Insert Time Bar…), как показано на рис. 3.6.6.6. Рис. 3.6.6.6. Команда установки временной метки из контекстно – зависимого меню 122 4. Нажать левую кнопку мыши, после чего появится окно вставки временной метки, изображенное на рис. 3.6.6.7. Рис. 3.6.6.7. Окно вставки временной метки В этом окне в поле Time отображается указанная мышью в пункте 1 временная координата. Поэтому, в случае необходимости, эту величину можно установить более точно. Щелчок левой кнопкой мыши в окне Make master time bar приведет к установке галочки в этом окне. Это будет означать, что вставляемая временная метка будет главной. 5. Нажать кнопку OK. 3.7. Запуск моделирования Для запуска процесса моделирования проекта щелкните по пиктограмме на панели инструментов менеджера проекта, либо в меню Processing выполните команду Start Simulation, как показано на рис 3.7.1. Также можно воспользоваться окном утилиты моделирования, в котором необходимо нажать кнопку Start, как было описано в разделе 3.2. Рис 3.7.1. Команда запуска моделирования в меню Processing 123 3.8. Наблюдение отчета о моделировании После успешного завершения процесса моделирования на рабочей панели менеджера проекта появится отчет о моделировании, который будет доступен после нажатия кнопки OK в окне с сообщением об успешном завершении моделирования, показанном на рис 3.8.1. Рис. 3.8.1. Сообщение об успешном завершении моделирования Внешний вид окна с отчетом и результатами моделирования структурного автомата, рассмотренного в разделе 2, приведен на рис 3.8.2. В левой части окна содержится иерархическая структура отчета, в правой части - временные диаграммы, полученные в результате моделирования. В разделе Legal Notice содержится информация о лицензионном соглашении. В разделе Flow Summary содержится текущий статус процесса моделирования, дата и время начала моделирования, имя файла с установками для моделирования и имя моделируемого модуля. Содержимое окна Flow Summary для рассматриваемого примера приведено на рис. 3.8.3. Рис. 3.8.3. Раздел Flow Summary отчета о моделировании структурного автомата В разделе Flow Setting содержится информация о текущих установках процесса моделирования. Окно Flow Settings для рассматриваемого примера приведено на рис 3.8.4. Рис. 3.8.4. Раздел Flow Settings отчета о моделировании структурного автомата 124 125 В подразделе Summary раздела Simulator, содержимое которого для нашего примера приведено на рис 3.8.5., содержится следующая информация: - временные границы интервала моделирования; - количество узлов, входящих в список соединений для моделирования; - процент охвата покрытия узлов схемы при моделировании; - общее число переключений; - количество контрольных точек (breakpoint); - семейство ПЛИС. Рис. 3.8.5. Раздел Simulator Summary отчета о моделировании структурного автомата В подразделе Settings раздела Simulator, содержимое которого для нашего примера приведено на рис 3.8.6., содержатся выполненные для моделирования установки, и значения этих установок, применяемые по умолчанию. Более подробно выполнение установок для моделирования приводится в разделе 3.3. В подразделе Simulation Waveforms приводятся временные диаграммы с результатами моделирования. С помощью инструментальных средств time bars, описанных в разделе 3.6.6., можно провести анализ временных диаграмм и определить интересуемые временные характеристики для моделируемой схемы. Редактировать их нельзя, так как они представляют полученные результаты. В подразделе Coverage Summary содержится информация об охвате узлов схемы при выполнении моделирования. Она включает процент охвата, общее число проверенных узлов, общее число проверенных элементов ввода-вывода, число выходных портов, на которых наблюдается переключения сигналов, причем как из 0 в 1, так и из 1 в 0, число выходных портов, на которых переключений не обнаружено. В подразделе «missing 1-value coverage» содержатся имена узлов, которые не проверялись на отсутствие переключения в состояние 1. В подразделе «missing 0-value coverage» содержатся имена узлов, которые не проверялись на отсутствие переключения в состояние 0. 126 Рис. 3.8.6. Раздел Simulator Settings отчета о моделировании структурного автомата В подразделе Message содержатся сообщения, которые выводились в процессе выполнения моделирования в соответствующем окне менеджера проекта Quartus II. 3.9. Сравнение временных диаграмм Сравнение временных диаграмм можно выполнить либо в окне редактора временных диаграмм, либо в окне отчета с полученными в процессе моделирования временными диаграммами. Причем второй вариант возможен, если при моделировании была использована опция проверки выходных сигналов. Чтобы реализовать первый из упомянутых вариантов выполните следующее. 1. Откройте исходный файл с временными диаграммами в окне редактора временных диаграмм. 2. Нажмите кнопку View из динамического меню менеджера проекта. Появится окно, изображенное на рис 3.9.1. 127 Рис. 3.9.1. Выбор команды сравнения временных диаграмм из меню View 3. Курсором мыши выделите строку Compare to Waveforms in File и нажмите левую кнопку мыши. Появится окно, приведенное на рис 3.9.2. 4. Двойным щелчком мыши выберите в предложенном списке имен имя второго файла, с содержимым которого будут сравниваться временные диаграммы из исходного файла. 5. Вид временных диаграмм, отображаемых в окне редактора временных диаграмм, будет зависеть от установленных в команде View опций. 6. Если установлена опция Show Original Waveforms Only, то будут выводиться временные диаграммы из исходного файла. Причем они будут изображаться черным цветом. 7. На рис 3.9.3. приведено окно с временными диаграммами из файла test_struct_avt_mod. Этот файл является исходным файлом для нашего примера. Он представляет собой модификацию файла test_struct_avt, который был сформирован в примере раздела 3.5. для моделирования структурного автомата. Модификация заключается в изменении значения Н0 входной шины Х в пятом такте на значение Н7. 128 Рис. 3.9.2. Окно выбора второго файла для сравнения Если установлена опция Show Compared File Waveforms Only, то будут выводиться временные диаграммы из указанного в пункте 4 файла. Они будут изображены красным цветом. В примере, приведенном на рис 3.9.4., таким файлом является файл test_struct_avt. Если установлена опция Show Both Sets of Waveforms, то будут выводиться временные диаграммы из обоих файлов. Причем черным цветом будут изображены совпадающие участки временных диаграмм, а двумя цветами – отличающие. Для нашего примера результат сравнения заданных временных диаграмм приведен на рис 3.9.5. Отличие обнаружено на входной шине Х, причем в пятом такте, что соответствует внесенным в файл test_struct_avt_mod изменениям. 129 130 131 132 Чтобы переключиться от одного вида представления временных диаграмм к другим возможным видам, также можно воспользоваться комбинацией клавиш на клавиатуре. Нажатие Ctrl+1 приведет к отображению исходных временных диаграмм. Нажатие Ctrl+2 приведет к отображению временных диаграмм, с которыми выполняется сравнение. Нажатие Ctrl+3 приведет к отображению обоих вариантов. Для завершения показа сравниваемых временных диаграмм выберите в меню View строку End File Comparison (см. рис. 3.9.1.) и нажмите левую кнопку мыши. Как уже было упомянуто в разделе 3.3., при выполнении моделирования можно выполнять сравнение получаемых результатов с заранее подготовленными эталонными значениями. В этом случае, необходимо установить опцию сравнения выходов (check outputs) при выполнении настроек параметров моделирования. Подробное описание соответствующих шагов приведено в разделе 3.3. настоящего описания. На рис 3.9.6., приведен пример окна с результатами моделирования при использовании в качестве исходного теста модифицированного файла test_struct_avt_mod. Так как эталонные значения выходных сигналов структурного автомата остались неизмененными, после моделирования на экран выводится сообщение о неуспешном завершении моделирования. Как следует из рис 3.9.6., в результате моделирования обнаружено несовпадение состояний и выходных сигналов автомата, начиная с пятого такта моделирования. С помощью клавиш Ctrl+2 можно посмотреть в окне редактора временные диаграммы, полученные в процессе моделирования. Они изображаются красным цветом. С помощью клавиш Ctrl+1 выводятся в окне ожидаемые эталонные значения с использованием черного цвета. И, наконец, с помощью клавиш Ctrl+3 выводится в окне результат сравнения обоих вариантов для последующего анализа разработчиком. 133 134 Часть 4 Компиляция проекта 4.1. Настройка параметров и запуск компиляции проекта Как было сказано в разделе 1.3. настоящего описания, процедура полной компиляции проекта в Quartus II включает последовательное выполнение следующих этапов: синтаксический анализ и синтез, размещение и трассировка, формирование конфигурационного файла, временной анализ. Все эти этапы представлены в окне задач менеджера проекта, приведенном на рис 4.1.1. Рис. 4.1.1. Составные этапы компиляции проекта В свою очередь, отдельные этапы процесса компиляции проекта могут содержать ряд вложенных самостоятельных процедур. Чтобы их увидеть, щелкните мышью по значку рядом с названием этапа. На рис. 4.1.2. приведено окно задач, в котором представлены все процедуры, входящие в этап анализа и синтеза проекта. Как видно из рисунка, этот этап включает процедуру анализа назначений контактов ввода - вывода, процедуру выполнения назначений помощником проекта (Design Assistant), процедуру ранней оценки временных характеристик проекта и другие. 135 Рис. 4.1.2. Процедуры, запускаемые при выполнении анализа и синтеза проекта Те процедуры, которые содержат рядом с названием значок , могут быть выполнены путем двойного щелчка мышью по их названию. Однако, в ряде случаев, их выполнение потребует выполнения предыдущих процедур процесса компиляции. В окне задач содержатся строки Edit Settings (см. рис.4.1.2.), двойной щелчок мышью по которым, приведет к появлению на главной панели менеджера проекта окна с установками для соответствующих процедур. Пользователь может выполнить редактирование установок, используя эти окна. На рис. 4.1.3. приведен пример окна с установками для этапа анализа и синтеза проекта. Как видно из рис. 4.1.3., в качестве критерия оптимизации проекта выбрано быстродействие проекта. Двойной щелчок мышью по строке View Report приведет к появлению на главной панели менеджера проекта окна с отчетом о выполнении соответствующей части процесса компиляции. На рис. 4.1.4. приведено окно с отчетом о выполнении анализа и синтеза проекта struct_avt, рассмотренного в разделе 2. 136 Рис. 4.1.3. Окно установок для этапа анализа и синтеза проекта Рис. 4.1.4. Окно с отчетом о выполнении этапа анализа и синтеза проекта 137 Для настройки параметров каждого этапа компиляции проекта также может быть использована пиктограмма на инструментальной панели или команда Settings… из меню Assignments менеджера проекта. Выполнить можно как полную компиляцию всего проекта, так и отдельных составляющих этапов. Для запуска процесса полной компиляции проекта используется пиктограмма на панели инструментов или команда Start Compilation из меню Processing менеджера проекта. Для запуска процесса выполнения отдельных этапов или шагов компиляции используется команда Start из выпадающего меню Processing менеджера проекта. При наведении курсора мыши на эту строку появляется еще одно выпадающее меню, приведенное на рис. 4.1.5., в котором следует указать выполняемый этап компиляции. Рис. 4.1.5. Фрагмент меню Processing менеджера проекта и выпадающее меню команды Start 138 Для индикации процесса выполнения компиляции или отдельных его этапов может быть использовано окно состояния (Status) менеджера проекта. Чтобы его активировать выполните команду View>Utility Windows>Status. Вид окна Status приведен на рис. 4.1.6. В поле Progress% динамически отображается ход выполнения отдельных этапов компиляции с указанием процента выполненной работы. Это же поле одновременно отображается в окне задач, слева от названия выполняемого этапа компиляции, а справа от названия в поле Time указывается время выполнения этапа компиляции, которое также одновременно отражается в одноименном поле в окне Status. Рис. 4.1.6. Окно состояния менеджера проекта После успешного завершения этапа компиляции на экран выводится соответствующее сообщение (см. рис. 4.1.7.), а в окне задач выполненный этап изображается зеленым цветом, и слева от его названия устанавливается зеленая галочка. Рис. 4.1.7. Окно с сообщением об успешном завершении компиляции проекта В окне сообщений менеджера проекта отображается информация о ходе выполнения компиляции, включая предупреждения и сообщения об ошибках. При этом используется следующее соглашение. Сообщения об успешном выполнении шагов компиляции выводятся зеленым цветом и начинаются со слова Info, предупреждения выводятся синим цветом и начинаются со слова Warning, ошибки выводятся красным цветом и начинаются со слова Error. 139 Рис. 4.1.8. Окно сообщений менеджера проекта На рис. 4.1.8. приведен пример окна сообщений менеджера проекта. В этом окне используется прием закладок, позволяющий путем щелчка мыши по закладке, открыть соответствующую страницу. С помощью закладки Flag можно пометить отдельные сообщения флагом (см. рис. 4.1.8.). С помощью закладки Suppressed можно скрыть появление некоторых сообщений. Использование этой возможности может пригодиться в тех случаях, когда сообщение проанализировано, и вывод его больше не требуется. Закладки Error, Critical Warning, Warning позволяют открыть страницы с сообщениями об ошибках, критических предупреждениях и предупреждениях, соответственно. Объектом компиляции всегда является модуль верхнего уровня. Поэтому для выполнения компиляции модуля нижележащего уровня, необходимо объявить его модулем верхнего уровня. Сделать это можно с помощью закладок Hierarchy и Files в окне навигатора проекта, с использованием контекстно-зависимого меню, в котором следует выполнить команду Set as Top Level Entity (см. раздел 1.5.). 4.2. Отображение результатов компиляции проекта В состав пакета Quartus II входят средства, позволяющие наглядно представить отчет о результатах компиляции проекта, выполнить анализ представленного отчета и внести некоторые изменения в результат компиляции проекта. Отчет о результатах компиляции появляется сразу после завершения компиляции проекта. Он размещается в главном окне менеджера проекта и состоит из двух частей, как показано на рис. 4.2.1. В левой части приводится иерархическая структура отчета, где информация по выполнению отдельных этапов компиляции находится в соответствующих папках, а в правой части – сам отчет. По умолчанию, в правой части выводится обобщенная информация о результатах компиляции проекта. Чтобы просмотреть другие разделы отчета, нужно в левой части, с 140 помощью щелчка мыши, выбрать интересующий раздел отчета, который отобразится в правой части окна. Рис. 4.2.1. Окно отчета о компиляции (раздел Flow Summary) Окно с отчетом может быть свернуто, развернуто, закрыто стандартным образом. Оно может быть вновь открыто в любое время либо выполнением команды Processing>Compilation Report, либо щелчком мыши по пиктограмме на панели инструментов менеджера проекта. Информация из отчета также доступна в текстовом виде в рабочей папке проекта в файлах <project_name>.fit.rpt и <project_name>.map.rpt. Ниже приводится описание разделов отчета, которые, являются наиболее информативными для разработчика. Окно с разделом отчета об используемых ресурсах кристалла для некоторого проекта приведено на рис 4.2.2. Чтобы его просмотреть, раскройте папку Analysis & Synthesis в левой части окна отчета с помощью щелчка мыши по значку , рядом с именем папки. Затем щелкните мышью по строке Resource Usage Summary, после чего появится окно, изображенное на рис. 4.2.2. 141 Рис. 4.2.2. Окно отчета об используемых ресурсах кристалла На рис. 4.2.3. изображен пример раздела отчета для того же проекта, отражающий использованные в процессе компиляции исходные файлы проекта. Чтобы открыть это окно, необходимо щелкнуть мышью по строке Source Files Read в разделе отчета из папки Analysis & Synthesis. Рис. 4.2.3. Окно отчета с исходными файлами проекта 142 В этом окне отчета приводится список всех логических файлов, как пользовательских, так и библиотечных, использованных в процессе компиляции проекта. Причем указаны типы файлов и папки, в которых они хранятся. На рис. 4.2.4. изображен пример раздела отчета для того же проекта, содержащий информацию о результатах временного анализа проекта. Чтобы открыть этот раздел, следует щелкнуть мышью по значку , рядом с именем папки Timing Analyzer. Последовательно открывая вложенные разделы отчета, разработчик может получить исчерпывающую информацию о результатах временного анализа проекта. Так, из отчета он определит максимальную частоту, на которой может работать проект, с указанием критического пути, времена предустановки и времена удержания сигналов, используемых в проекте. Рис. 4.2.4. Окно отчета с результатами временного анализа проекта Для просмотра внутреннего представления проекта используется средство Quartus II, называемое Netlist Viewers. С помощью этого средства можно просматривать реализацию проекта на программируемом кристалле на разных уровнях абстракции. Так, RTL Viewer позволяет просматривать результаты компиляции проекта на уровне регистровых передач. Technology Map Viewer позволяет просматривать технологическую карту проекта, то есть его реализацию с использованием таких ресурсов кристалла, как функциональные преобразователи (LUT), так и триггеры. Для просмотра результатов компиляции модулей проекта, описанных в виде конечного автомата, предназначено средство State Machine Viewer. Для просмотра и анализа результатов компиляции проекта предназначено средство Chip Planner, для выполнения анализа и внесения изменений в результаты компиляции – средство Resource Property Editor. 143 Часть 5 Программирование кристалла ПЛИС Успешное завершение компиляции проекта сопровождается созданием конфигурационной информации для выбранной микросхемы ПЛИС. Причем Quartus II создает два конфигурационных файла. Один файл с названием проекта и расширением .sof предназначен для программирования кристалла ПЛИС. Другой файл с расширением .pof предназначен для загрузки конфигурационного ПЗУ, которое в свою очередь, будет конфигурировать кристалл ПЛИС после подачи на него питания. Для выполнения программирования кристаллов СБИС в состав пакета Quartus II входит соответствующая утилита. Чтобы её вызвать щелкните мышью по пиктограмме на панели инструментов менеджера проекта, либо выполните команду Programmer из меню Tools как показано на рис. 5.1. Рис. 5.1. Выпадающее меню команды Tools менеджера проекта 144 Появится окно утилиты программирования, приведенное на рис 5.2. Основное окно на панели (см. рис.5.2.) предназначено для отображения файлов с конфигурационной информацией. Рис. 5.2. Окно утилиты программирования кристалла Вдоль левой стороны окна расположены инструментальные кнопки. Их назначение следующее. - установка аппаратных средств программирования запуск программирования кристалла - останов программирования кристалла - обнаружение микросхемы ПЛИС в JTAG цепи - удаление файла из списка - добавление файла в список 145 - изменение файла - сохранение файла - добавление ПЛИС в JTAG цепь - выделение файла в списке, соседнего сверху - выделение файла в списке, соседнего снизу Нажатие первой кнопки из приведенного списка вызовет появление на экране монитора окна Hardware Setup, приведенного на рис. 5.3. Первая страница этого окна с закладкой Hardware Setting позволит выбрать подходящий программатор из представленного в большом окне списка. В лабораторных стендах DE0, DE2-70, Minidilab, Dilab используется программатор USB Blaster. Причем, в первых трех стендах он является встроенным, а в четвертом – установлен в коммуникационном соединителе. Поэтому при заполнении окна следует указать именно его. Рис. 5.3. Окно настройки программатора 146 Вторая страница, с закладкой JTAG Settings позволит выделить JTAG серверы, которые следует добавить или удалить из представленного списка. Чтобы выполнить программирование кристалла ПЛИС выполните следующие действия. 1. Добавьте конфигурационный файл из файловой системы инструментального компьютера в основное поле окна программатора, используя кнопку Add File. 2. Установите опцию Program/Configure, щелкнув мышью в соответствующем окне в одноименном столбце. 3. Нажмите кнопку Start. После этого в окне Progress будет визуально отображаться процесс выполнения программирования кристалла. После успешного завершения этого процесса в окне Progress установится значение 100%. 4. Закройте окно программатора обычным образом. 147 Библиографический список 1. Грушвицкий Р.И., Мурсаев А.X. Угрюмов Е.П. Проектирование систем на микросхемах с программируемой структурой. 2-е изд., перераб. и доп. СПб.: БХВ-Петербург, 2006. - 736с. 2. Бибило П. Н. Основы языка VHDL. Изд. 3-е, доп.- М.: Издательство ЛКИ, 2007. -328с. 3. Поляков А. К. Языки VHDL и VERILOG в проектировании цифровой аппаратуры. М.: СОЛОН-Пресс, 2003. -320с. 4. Quartus II Handbook Version 10.1. Интернет ресурс. http://www.altera.com/literature/hb/qts/quartusii_handbook.pdf 5. IEEE Standard VHDL Language Reference Manual, IEEE Std 1076 – 1987. 6. IEEE Standard VHDL Language Reference Manual, IEEE Std 1076 – 1993. 7. Verilog HDL Reference Manual. – IEEE Std 1364 – 1997. 8. DE2-70 Development and Education Board. Интернет ресурс. http://www.altera.com/education/univ/materials/boards/de2-70/unv-de2-70board.html?GSA_pos=1&WT.oss_r=1&WT.oss=de-270 148 Учебное издание Н.В. Ефремов Введение в систему автоматизированного проектирования Quartus II Редактор Компьютерный набор и верстка М.С. Солодовников, А.С. Митькин По тематическому плану внутривузовских изданий учебной литературы на 2011 г. (доп). Подписано в печать Издательство Московского государственного университета леса 141005, Мытищи-5, Московская обл., 1-я Институтская, 1, МГУЛ. E-mail: izdat@mgul.ac.ru