МПСиС_Лабораторный практикум. Учебное пособие по курсу Микропроцессорные средства и системы Под редакцией доктора технических наук, доцента
Скачать 15.57 Mb.
|
Часть 2. Интерфейс и основные настройки САПР Quartus II САПР Quartus II имеет богатый графический пользовательский ин- терфейс, который может быть настроен в зависимости от желаний и по- требностей разработчика. При стандартных настройках главное окно САПР Quartus II (рис.2.1) включает несколько областей: 1 - заголовок окна (отображает название проекта и его рабочую папку); 2 - главное меню (предоставляет доступ ко всем функциям САПР); 3 - панель инструментов (осуществляет доступ к наиболее исполь- зуемым функциям САПР); 4 - навигатор проекта (Project Navigator) (отображает иерархию проекта, файлы проекта и команды быстрого запуска); 5 - окно состояния процедуры компиляции проекта (Tasks)(содер- жит информацию о стадиях и этапах компилирования проекта); 6 - окно сообщений (Messages) (выводит информацию о выполне- нии операций, ошибках и предупреждениях); 7 - рабочая область (Workspace) (отображает файлы, отчеты и дру- гие элементы проекта). 2.1. Навигация по проекту Под проектом в САПР Quartus II понимается набор файлов, свя- занных с конкретным проектом, которые делят на две группы: 1) логические файлы (Design Files), описывающие алгоритм функ- ционирования устройства; 2) вспомогательные файлы (Ancillary Files). 36 37 Проект может содержать один либо несколько логических файлов, образующих иерархическое описание создаваемого модуля. При иерар- хическом описании среди множества логических файлов различают: • файл верхнего уровня (Top-level Design File); • файлы нижних (одного или нескольких) уровней (Low-level Design Files). В файле верхнего уровня иерархии задается структура проекта и определяются набор входящих в его состав модулей и их взаимосвязи. Описания этих модулей содержатся в логических файлах более низкого уровня иерархии. В их состав, в свою очередь, в виде компонентов так- же могут входить модули, описания которых приведены в логических файлах еще более низкого уровня иерархии, и т.д. Имя проекта должно совпадать с именем модуля верхнего уровня, а следовательно, с именем логического файла, в котором хранится его описание. Имена модулей нижних уровней иерархии, в свою очередь, должны совпадать с именами файлов, в которых они описаны. Навигатор проекта (Project Navigator) обеспечивает прямой визу- альный доступ к ключевой информации и содержит представление иерархии проекта, файлы, связанные с текущим проектом, IP-ядра для быстрого доступа к различным командам меню и функциям, которые недоступны из других меню. Окно Project Navigator имеет несколько вкладок. Вкладка Hierarchy (рис.2.2) отражает иерархическую структуру разрабатываемого проекта в виде таблицы, в крайней левой колонке ко- торой находятся имена используемых модулей, а в остальных дополни- тельная информация о каждом из них, включающая, например, такие поля, как Logic Cells (Количество занимаемых на кристалле логических ячеек), Pins (Количество используемых портов ввода/вывода). Слева от имени модуля верхнего уровня расположен элемент управления - , по нажатию на который открывается список подключенных модулей сле- дующих уровней иерархии. Вкладка Files содержит перечень всех подключенных к проекту файлов, таких как: Verilog и VHDL-описания, файлы временных и блочных диаграмм и т.п., что упрощает навигацию по проекту. Вызов контекстного меню в пустом месте вкладки Files обеспечивает возмож- ность добавлять или удалять необходимые файлы в проект. 38 Рис .2.2. Вкладка Hierarchy окна Project Navigator Доступ к настройкам проекта можно получить с помощью комби- нации клавиш Ctrl+Shift+E, либо через меню Assignments -> Settings…, либо нажатием правой кнопки мыши на заглавном модуле и выбором пункта Settings во вкладке Hierarchy. Все настройки разбиты по категориям и представлены в иерархиче- ском виде в окне настроек слева. Прокомментируем некоторые из них. Категория Compilation process settings включает настройки процес- са компиляции. Настройка Use Smart Compilation, например, позволяет компилято- ру осуществить так называемую «разумную» компиляцию, после чего следующие компиляции могут выполняться быстрее. Во время «разум- ной» компиляции компилятор определяет, какие модули требуются для текущей обработки проекта. При этом он основывается на том, какие изменения были внесены в проект после предыдущей «разумной» ком- пиляции, и пропускает неизмененные модули. Если внести любые из- менения в логику проекта, компилятор использует все модули. По умолчанию эта опция выключена. Настройка Incremental Synthesis Only включает инкрементальный синтез, при котором заново синтезируются только заданные разделы проекта. При этом уменьшаются время синтеза и использование памяти. Эту опцию можно включить следующим образом: • открыть Project Navigator; • нажать правой кнопкой мыши на имя блока; 39 • выбратьSet as Design Partition; • в появившемся диалоге выбрать Incremental synthesis only. Категория Analysis & Synthesis settings содержит настройки, каса- ющиеся анализа и синтеза проекта, в том числе параметры моделирова- ния временных диаграмм. 2.2. Компиляция проекта Компилятор САПР Quartus II состоит из подпрограмм и утилит, выполняющих ряд функций и охватывающих несколько ступеней маршрута проектирования: • синтез; • проверка проекта на наличие ошибок (верификация); • размещение и трассировка проекта в кристалле; • генерация выходных файлов для моделирования проекта и анализ временных характеристик; • программирование ПЛИС. Компиляцию проекта, т.е. ход выполнения текущей задачи, можно наблюдать в окне Tasks. Сначала из проекта извлекается информация об иерархических связях между составляющими его файлами, описание проекта проверя- ется на наличие ошибок. Затем создается организационная карта проек- та, все файлы преобразуются в единую базу данных, с которой впослед- ствии работает система. Компиляция может выполняться с учетом заданных требований, к которым относятся: • обеспечение необходимых временных характеристик проекта; • увеличение быстродействия; • оптимизация используемых ресурсов ПЛИС. Компилятор создает файлы для программирования и конфигуриро- вания ПЛИС фирмы Altera. Промежуточные и окончательные результа- ты компиляции в системе Quartus II можно посмотреть в окне отчета о компиляции Compilation Report. При создании нового проекта система Quartus II по умолчанию уста- навливает значения всех необходимых параметров. Параметры, заданные по умолчанию, можно переопределить в соответствии с поставленными требованиями. Кроме того, есть возможность выбора различных парамет- ров настройки непосредственно при выполнении компиляции. 40 Подпрограмма анализа и синтеза (Analysis & Synthesis) проекта про- веряет файлы на ошибки и затем строит базу данных, которая интегрирует все файлы в иерархию. Кроме того, подпрограмма синтезирует и оптими- зирует проект. В конце разработка приводится в технологическое соответ- ствие устройству, в котором она должна быть запрограммирована. Подпрограмма размещения и трассировки (Fitter (Place & Route)), или так называемый «сборщик», осуществляет монтаж проекта в струк- туру выбранного кристалла программируемой логики. Другими слова- ми, полученная на этапе синтеза модель полного представления проекта в техническом базисе кристалла отображается на внутренние ресурсы ПЛИС (которыми являются конфигурируемые логические блоки, блоки встроенной памяти, встроенные умножители) и устанавливаются соот- ветствующие соединения с помощью ресурсов трассировки кристалла. Подпрограмма размещения и трассировки подбирает для каждой логи- ческой функции подходящее место на кристалле с точки зрения умень- шения времени распространения сигнала, выполняет соответствующие соединения и назначения контактов ввода/вывода. На этапе размещения и трассировки пользователь может задать свои собственные назначения, после чего подпрограмма реализует их, а затем выполнит оптимизацию оставшейся части проекта. После монтажа пользователь может просмотреть результаты раз- мещения и трассировки с помощью специального средства Chip Planner, доступного в меню Tools, и в случае необходимости изменить некото- рые назначения. Ассемблер (Assembler (Generate Programming Files)) завершает обра- ботку проекта, превращая то, что сгенерировал «сборщик», в образ для программирования устройства в форме одного или нескольких файлов. Подпрограмма временного анализа (TimeQuest Timing Analysis) анализирует, отлаживает и утверждает временную производительность всей логики в дизайне. Прежде чем осуществить временной анализ, необходимо выполнить анализ и синтез, а также запустить «сборщик». 2.3. Отчет о результатах компиляции Информация о проведенной компиляции проекта выводится в окне отчета о компиляции (Compilation Report) (рис.2.3). В правой части окна непосредственно после завершения компиля- ции появляется сводный отчет (Flow Summary), который содержит 41 42 информацию о дате и времени проведения компиляции, версии системы Quartus II, имени файла верхнего уровня проекта, семействе и типе ис- пользуемой ПЛИС, типе компиляции (промежуточная или окончатель- ная), степени удовлетворения проекта заданным временным параметрам и количестве использованных логических блоков, выводов и ячеек памяти. В левой части окна размещается организованный по иерархиче- скому принципу каталог сообщений отдельных блоков компилятора. Здесь собрана подробная информация обо всех этапах компиляции, включая предварительно сделанные установки и результаты работы конкретных блоков компилятора. Каждая отдельная утилита, входящая в состав компилятора, обновляет информацию в своей директории. Отчет Flow Summary содержит информацию о количестве исполь- зуемых логических элементов (Total logic elements), объеме используе- мой памяти (Total memory bits), количестве применяемых встроенных умножителей (Embedded multiplier 9-bit elements), количестве задей- ствованных портов ввода/вывода (Total pins) и др. В разделе Resource Section (в папке Fitter) в таблице Resource Utili- zation by Entity содержится информация об используемых ресурсах, та- ких как блоки умножения (mult) и блоки памяти (ram). В разделе Control Signals находятся данные об управляющих сиг- налах и их коэффициентах разветвления. 2.4. Сообщения Во время компиляции в окне процессора сообщений (Messages) по- являются информационные сообщения, сообщения об ошибках, преду- преждения, сделанные компилятором в ходе анализа проекта. Эти запи- си относятся к определенному месту в файле проекта или в другом исходном файле. Для того чтобы локализовать часть проекта, являющуюся источни- ком ошибки, необходимо раскрыть соответствующее сообщение, щелк- нув по значку «+», далее два раза щелкнуть по интересующему вас со- общению, после чего в окне редактора появится файл, к которому относится данное сообщение. Кроме того, цветом будет выделен непо- средственный источник сообщения. 43 2.5. Дополнительные инструменты разработки Дополнительные инструменты разработки находятся в меню Tools. Для просмотра внутреннего представления проекта использует- ся средство Netlist Viewer. С его помощью можно просматривать ре- ализацию проекта на программируемом кристалле на разных уровнях абстракции. Technology Map Viewer позволяет просматривать технологическую карту проекта, т.е. его реализацию с использованием таких ресурсов кристалла, как функциональные преобразователи (LUT) и триггеры. Для просмотра результатов компиляции модулей проекта, опи- санных в виде конечного автомата, предназначено средство State Machine Viewer. Для просмотра и анализа результатов компиляции проекта служит средство Chip Planner, для внесения изменений в результаты компиля- ции - средство Resource Property Editor. С помощью RTL Viewer (рис.2.4) можно просматривать результаты компиляции проекта на уровне регистровых передач. Утилита RTL Viewer позволяет представить логическую реализацию проекта в графи- ческом виде. Это очень полезный инструмент для анализа результатов синтеза HDL-проектов. В левой части окна RTL Viewer находится панель навигации по списку соединений (Netlist Navigator), которая отображает иерархию проекта, включающую модули, примитивы, порты ввода/вывода, конеч- ные автоматы и провода. По нажатию на экземпляр в списке иерархии он подсвечивается в схематичном изображении в правой части окна RTL Viewer. По двойному щелчку открывается его внутренняя логика, например, в качестве вкладки. Контекстное меню всех элементов схемы содержит поле свойств (Properties). Его выбор в левой части окна делает доступной вкладку Properties, которая содержит информацию о свойствах данного элемен- та: названиях портов ввода/вывода и их параметрах. 44 45 2.6. Моделирование проекта Современные ПЛИС становятся все более сложными и производи- тельными, выдвигая перед разработчиками задачу моделирования и проверки работоспособности (верификации) проектов. Моделирование позволяет проверять правильность работы всего проекта без физической отладки, требующей много времени. Программное обеспечение Quartus II содержит в своем составе си- мулятор, который может решать следующие задачи: • функциональное моделирование проекта; • временное моделирование; • отладку проекта. Функциональное моделирование проекта позволяет проверить пра- вильность работы схемы с точки зрения логики и схемотехники. Функ- циональное моделирование возможно на любой стадии работы, если проект логически завершен и не содержит ошибок. Входными файлами моделирования являются рабочие файлы проекта (Verilog- либо VHDL- описания или графические схемы) и файлы тестовых воздействий (input stimulus). Тестовые воздействия содержат входные сигналы, которые, будучи поданными на разрабатываемое устройство, порождают ожидаемую од- нозначную реакцию со стороны схемы. Сравнение записанной реакции с теоретическими расчетами позволяет делать выводы о работоспособ- ности схемы и локализовывать возможные ошибки. Для запуска функционального моделирования необходимо создать файл тестовых воздействий и привязать его к проекту. Для привязки файла надо войти в настройки проекта (пункт меню File → Settings). Далее в списке категорий выбрать Simulator Settings. Затем в списке ре- жимов (Simulation mode) выбрать режим функционального моделирова- ния (Functional). В поле Simulation Input выбрать файл тестовых воздей- ствий. После чего нажать кнопку OK и запустить моделирование (меню Processing → Start Simulation). Временное моделирование отличается от функционального тем, что учитывает задержки в распространении сигналов при работе реаль- ной ПЛИС. Оно позволяет выявить наиболее проблемные места схемы с точки зрения быстродействия и показывает, на какую частоту работы можно рассчитывать при физическом запуске схемы в ПЛИС. Для про- ведения временного моделирования проект должен быть скомпилиро- ван (пройдены этапы синтеза и размещения и трассировки). 46 Временное моделирование запускается так же, как и функциональ- ное, за исключением того, что в настройках проекта необходимо вы- брать режим временного моделирования (Timing). Встроенный режим отладки позволяет устанавливать точки оста- нова (breakpoints), тем самым приостанавливая моделирование в нужное время или при наступлении требуемого условия на сигнале или шине. Для создания точек останова необходимо выбрать пункт меню Pro- cessing → Simulation Debug → Breakpoints. В появившемся диалоговом окне следует ввести логическое условие (Equation → Condition) и дей- ствие (Action), предпринимаемое симулятором при наступлении этого условия. Среди возможных условий есть остановка (Stop), предупре- ждение (Warning Message), сообщение об ошибке (Error Message) и ин- формационное сообщение (Information Message). 2.7. Редактор тестовых воздействий Для создания файла тестовых воздействий в виде временной диа- граммы необходимо выбрать пункт меню File → New. Далее в появив- шемся списке выбрать Vector Waveform File (.vwf-файл). При этом от- кроется окно редактора тестовых воздействий (рис.2.5). Основными элементами этого окна являются: 1) панель инструментов; 2) шкала времени; 3) маркеры времени (основной и дополнительный); 4) поле названий сигналов; 5) графики сигналов. В пустую временную диаграмму необходимо вставить сигналы и шины. Для этого следует выбрать пункт меню Edit → Insert и нажать In- sert Node or Bus. Откроется окно Insert Node or Bus. Можно задать имя и тип вставляемого сигнала вручную (поля Name и Type) либо воспользо- ваться автоматизированным поиском (кнопка Node Finder). Окно Node Finder (рис.2.6) позволяет найти сигнал или шину в проекте с помощью трех фильтров поиска: • Named (имя сигнала; символ * обозначает любую комбинацию символов); • Filter (задание типа цепи: входы/выходы блока (Pins), внутренние регистры блока (Registers), любые цепи, имеющиеся в проекте); • Look in (поиск цепи в конкретном модуле проекта). 47 48 49 После ввода ключевых слов фильтра необходимо нажать на кнопку List для вывода результатов поиска. Затем следует выбрать интересую- щие цепи в поле Nodes Found и нажатием кнопки «>» перенести их в правую часть окна. Кнопка «>>» переносит все найденные цепи в пра- вую часть. После нажатия кнопки OK все цепи, перенесенные в правую часть окна, будут добавлены на временную диаграмму. Добавленные цепи отобразятся в левой части окна редактирования. Для удобства они могут быть сгруппированы в шины. Для этого надо выделить нужные цепи и выбрать пункт меню Edit → Grouping → Group. Возможен и обратный процесс – разгруппировка, для этого необходимо выбрать пункт Edit → Grouping → Ungroup. Следующим этапом является редактирование временных диаграмм входных сигналов. Для редактирования сигнала следует выделить его часть (или весь сигнал целиком) курсором и установить для нее одно из значений, выбрав соответствующий пункт меню Edit → Value. Основные пункты этого меню продублированы на панели инстру- ментов редактора и горячими клавишами: • Forcing Low (Ctrl + Alt + 0) - выставляет логический нуль на вы- деленном участке сигнала; • Forcing High (Ctrl + Alt + 1) - выставляет логическую единицу на выделенном участке сигнала; • Count Value (Ctrl + Alt + V) - создает счетчик на выделенном участке шины, значение которого увеличивается на заданную величину через равные промежутки времени. В настройках счетчика есть воз- можность задавать стартовое значение и значение, после которого счет должен прекратиться; • Overwrite Clock (Ctrl + Alt + K) - задает периодический прямо- угольный сигнал (меандр) на выделенном участке. В настройках меанд- ра можно указать период сигнала и его скважность; • Arbitrary Value (Ctrl + Alt + B) - выставляет постоянное значение на выделенном участке сигнала. В настройках можно выбрать желае- мую систему счисления для ввода и отображения данных (Binary, Octal, Decimal, Hexadecimal); • Random Data (Ctrl + Alt + R) - заполняет выделенный участок сиг- нала случайными данными. В настройках есть возможность указать пе- риод изменения данных с привязкой или без привязки к текущей вре- менной сетке. Для изменения масштаба временной диаграммы на панели инстру- ментов присутствует кнопка масштабирования (Zoom Tool). При выборе 50 этой кнопки левый щелчок мышью по полю сигналов увеличивает мас- штаб, а правый - уменьшает. Кнопка вставки текста (Text Tool) позволяет вставлять текстовые комментарии в поле сигналов с привязкой ко времени. Такие коммента- рии могут быть полезными при анализе временных диаграмм и обсуж- дении результатов моделирования с другими разработчиками. В верхней части окна редактирования отображена шкала времени моделирования. Значения Start и Stop - это начальное и конечное время моделирования соответственно. Для изменения конечного времени необходимо выбрать пункт меню Edit → End Time и ввести желаемое время. Поле Pointer показывает время от старта до курсора. Поле Interval показывает время от основного маркера до курсора. Для удобства работы сигналы и измерения привязываются к вре- менной сетке. Для того чтобы ее изменить, необходимо выбрать пункт меню Edit → Grid Size, где выбрать желаемый период сетки. Для измерения временных интервалов на диаграмме доступны несколько временных маркеров (Time Bar). Дополнительные маркеры можно создавать с помощью пункта меню Edit → Time Bar → Insert Time Bar. 2.8. Отчет о результатах моделирования Результаты моделирования проекта выводятся в окне отчета моде- лирования (рис.2.7). Информация в отчете моделирования позволяет проверить отсутствие ошибок и временные параметры проекта. Отчет моделирования состоит из отчетов о покрытии моделирова- ния и результирующей временной диаграммы. Результирующая временная диаграмма включает созданные поль- зователем тестовые воздействия и реакции схемы на них. При попытке редактирования диаграммы появится окно, в котором будет предложено перейти к редактированию файла тестовых воздействий. Встроенный симулятор Quartus II имеет возможность сравнения текущего результата моделирования с предыдущим результатом. Для сравнения двух диаграмм необходимо включить параметр Check outputs в настройках моделирования (Simulator Settings). Если эта опция вклю- чена, то на экране будут одновременно отображены две диаграммы: оригинальная (черным цветом) и сравниваемая (красным цветом). 51 52 2.9. Редактор назначения выводов Редактор назначения выводов (Assigments Editor) - это табличный интерфейс, позволяющий создавать и редактировать соответствия вход- ных/выходных сигналов проекта физическим выводам ПЛИС. Существует два метода назначения выводов. Первый метод - выбор вывода микросхемы из списка всех возможных выводов для конкретной ПЛИС и назначение ему сигнала проекта. Второй метод - обратный: вы- бор сигнала проекта из списка и назначение ему вывода микросхемы. Редактор поддерживает оба метода и частично автоматизирует работу с помощью автозаполнения названий выводов и автоматической нумера- ции сигналов шин. Для запуска редактора необходимо выбрать пункт меню Assigments → Assigment Editor, в результате откроется окно, представ- ленное на рис.2.8. Основными элементами этого окна являются: 1) панель меню; 2) панель инструментов; 3) панель выбора и редактирования; 4) таблица выводов и назначений. Для начала работы следует выбрать вариант Pin из списка Category. В зависимости от используемого метода назначения выводов надо включить отображение всех неназначенных выводов (выбрать пункт меню View → Show All Assignebal Pin Numbers) или всех сигналов про- екта (Show All Known Pin Names). В таблице выводов и назначений в колонке To отображаются названия сигналов проекта, а в колонке Location - выводы ПЛИС. Остальные колонки таблицы отвечают за до- полнительные настройки выводов, такие как стандарт сигнала (ТТЛ, КМОП и т.п.) и функция вывода (дифференциальная или одиночная ли- ния и т.п.). Каждому входному и выходному сигналу проекта необходимо по- ставить в соответствие вывод микросхемы (вида PIN_AA3) в таблице назначений. При вводе редактор назначений будет автоматически пред- лагать правильные варианты ввода. Другими словами, достаточно вве- сти AA3, и редактор сам дополнит это название до правильного PIN_AA3 в соответствии с типом корпуса ПЛИС. Точно такое же авто- дополнение действует и при вводе сигналов проекта. 53 54 55 После заполнения таблицы выводов и назначений и закрытия ре- дактора в проект будет добавлен файл назначений (.qsf), содержащий все записи о выводах ПЛИС. Этот файл будет использоваться в даль- нейшем при анализе и компиляции проекта. 2.10. Программирование ПЛИС В результате успешной компиляции проекта Quartus II создает двоичный файл (.sof) для программирования ПЛИС. Для конфигуриро- вания ПЛИС с помощью этого файла используется встроенный про- грамматор (меню Tools → Programmer), окно которого имеет вид, пред- ставленный на рис.2.9. В верхней части окна располагаются настройки аппаратуры про- грамматора. Quartus II поддерживает программирование с помощью па- раллельного порта (ByteBlaster), USB (UsbBlaster) и сети Ethernet (Ether- netBlaster). Выбор нужного варианта производится в настройках при нажатии кнопки Hardware Setup. В левой части окна находятся кнопки запуска программирования (Start), остановки (Stop) и управления файлами прошивки: удалить про- шивку (Delete), добавить (Add File…), заменить файл (Change File…). В центральной части окна показана таблица подключенных устройств для программирования с файлами прошивок. Для запуска программирования необходимо добавить в эту таблицу нужную про- шивку (файл .sof) и нажать кнопку Start. |