|
Школа разработки аппаратуры цифровой обработки сигналов на ПЛИC
В. Стешенко
Занятие 2. Система проектирования MAX+PLUS II ALTERA
В предыдущем занятии были рассмотрены основные архитектуры ПЛИС и дана информация о фирмах-производителях. В этом занятии мы рассмотрим работу над проектом в среде системы MAX+PLUS II фирмы ALTERA. В предыдущей статье цикла были приведены основные характеристики свободно распространяемой через Internet версии MAX+PLUS II Baseline, в дальнейшем изложении мы будем ориентироваться преимущественно на неё.
Название системы MAX+PLUS II является аббревиатурой от Multiple Array MatriX Programmable Logic User System. Система MAX+PLUS II имеет средства удобного ввода проекта, компиляции и отладки, а также непосредственного программирования устройств.
Процедуру разработки нового проекта от концепции до завершения можно упрощённо представить следующим образом:
- создание нового файла проекта или иерархиче-ской структуры нескольких файлов проекта с помощью любого сочетания редакторов в системе MAX+PLUS II, то есть графического, текстового и сигнального редакторов;
- задание имени файла — проекта верхнего уровня в качестве имени проекта;
- назначение семейства ПЛИС для проекта;
- открытие окна компилятора Compiler и выбор кнопки Start для начала компиляции проекта. По желанию пользователя можно подключить модуль извлечения временных параметров проекта Timing SNF Extractor для создания файла, используемого при временном моделировании;
- в случае успешной компиляции возможен временной анализ, для чего следует выполнить следующее:
- для проведения временного анализа задержек открыть окно Timing Analyzer, выбрать режим анализа и нажать кнопку Start;
- для проведения симуляции нужно сначала создать векторной тестовый вектор в файле канала тестирования (.scf), пользуясь сигнальным редактором, или в файле вектора (.vec), пользуясь текстовым редактором. Затем открыть окно отладчика Simulator и нажать кнопку Start;
- открытие окна программатора Programmer с по-следующим выбором одного из двух способов: использование программатора MPU (Master Programming Unit) или подключение загрузочных устройств BitBlaster, Byte-Blaster или FLEX Download Cable к устройству, программируемому в системе;
- выбор кнопки Program для программирования устройств с памятью типа EPROM или EEPROM либо выбор кнопки Configure для конфигурации устройства с памятью типа SRAM.
На рисунке представлено окно пакета MAX+PLUS II с загруженной схемой.
Рисунок. Главное окно системы MAX+PLUS II
ПО системы MAX+PLUS II содержит 11 приложений и главную управляющую программу. Различные приложения, обеспечивающие создание проекта, могут быть активизированы мгновенно, что позволяет пользователю переключаться между ними щелчком мыши или с помощью команд меню. В это же время может работать одно из фоновых приложений, например, компилятор, симулятор, анализатор синхронизации и программатор. Одни и те же команды разных приложений работают одинаково, что облегчает задачу разработки логического дизайна.
В таблице приведено описание приложений.
Таблица
Приложение |
Выполняемая функция |
Hierarchy Display |
Обзор иерархии - отображает текущую инрархичнскую структуру файлов в виде дерева с ветвями, представляющими собой подпроекты |
Graphic Editor |
Графический редактор - позволяет разрабатывать схемный логический проект в формате реального отображения на экране WYSIWYG |
Symbol Editor |
Символьный редактор - позволяет редактировать существующие символы и создавать новые |
Text Editor |
Текстовый редактор - позволяет создавать и редактировать текстовые файлы логического дизайна, написанные на языках AHDL, VHDL, Verilog HDL |
Waveform Editor |
Сигнальный редактор - выполняет двойную функцию: инструмент для рахработки дизайна и инструмент для ввода тестовых векторов и наблюдения результатов тестирования |
Floorplan Editor |
Поуровневый планировщик - позволяет графическими средствами делать назначения контактам устройства и ресурсов логических элементов |
Compiler |
Компилятор - обрабатывает графические проекты |
Simulator |
Симулятор - позволяет тестировать логические операции и внутреннюю синхронизацию проектируемой логической цепи |
Timing Analyzer |
Временной анализатор - анализирует работу проектируемой логической цепи после того, как она была синтезирована и оптимизирована компилятором |
Programmer |
Программатор - позволяет программировать, конфигурировать, проводить верификацию и тестировать ПЛИС фирмы ALTERA |
Message Processor |
Генератор сообщений - выдает на экран сообщения об ошибках, предупреждающие и информационные сообщения |
Перед тем как начать работать в системе MAX+PLUS II, следует понять разницу между файлами проекта, вспомогательными файлами и проектами.
Файл проекта — это графический, текстовый или сигнальный файл, созданный с помощью графического или сигнального редакторов системы MAX+PLUS II или в любом другом, использующем промышленные стандарты, схемном или текстовом редакторе либо при помощи программы netlist writer, имеющейся в пакетах, поддерживающих EDIF, VHDL и Verilog HDL. Этот файл содержит логику для проекта MAX+PLUS II и компилируется компилятором. Компилятор может автоматически обрабатывать следующие файлы проекта: графические файлы проекта (.gdf); текстовые файлы проекта на языке AHDL (.tdf); сигнальные файлы проекта (.wdf); файлы проекта на языке VHDL (.vhd); файлы проекта на языке Verilog (.v); схемные файлы OrCAD (.sch); входные файлы EDIF (edf); файлы формата Xilinx Netlist (.xnf); файлы проекта Altera (.adf); файлы цифрового автомата (.smf).
Вспомогательные файлы — это файлы, связанные с проектом MAX+PLUS II, но не являющиеся частью его иерархического дерева. Большинство таких файлов не содержит логики проекта. Некоторые из них создаются автоматически приложением системы MAX+PLUS II, другие — пользователем. Примерами вспомогательных файлов являются файлы назначений и конфигурации (.acf), символьные файлы (.sym), файлы отчета (.rpt) и файлы тестовых векторов (.vec).
Проект состоит из всех файлов иерархической структуры проекта, в том числе вспомогательных и выходных файлов. Именем проекта является имя файла проекта верхнего уровня без расширения. Система MAX+PLUS II выполняет компиляцию, тестирование, анализ синхронизации и программирование сразу целого проекта, хотя пользователь может в это время редактировать файлы этого проекта в рамках другого проекта. Для каждого проекта желательно создавать отдельный подкаталог в рабочем каталоге системы MAX+PLUS II.
В системе MAX+PLUS II легко доступны все инструменты для создания проекта. Разработка проекта ускоряется за счёт имеющихся стандартных функций, в том числе примитивов, мегафункций, библиотеки параметризованных модулей (LPM) и макрофункций устаревшего типа микросхем 74 серии. В системе MAX+PLUS II есть три редактора для разработки проекта: графический, текстовый и сигнальный, а также два вспомогательных редактора: поуровневый планировщик и символьный редактор.
В иерархической структуре проекта на любом уровне допускается смешанное использование файлов с расширениями “.gdf .tdf .vhd .v .edf .sch”. Однако файлы с расширением “.wdf .xnf .adf .smf ” должны быть либо на самом нижнем иерархическом уровне проекта, либо быть единственными.
Во всех приложениях MAX+PLUS II есть возможность с помощью команд из меню Assign вводить, редактировать и удалять типы назначений ресурсов, устройств и параметров, которые управляют компиляцией проекта. Пользователь может делать назначения для текущего проекта независимо от того, открыт ли какой-нибудь файл проекта или окно приложений. Доступны следующие типы назначений.
Clique assignment (Назначение клики) задаёт, какие логические функции должны оставаться вместе в одном и том же блоке логической структуры LAB, блоке ячеек памяти EAB, в одном ряду или устройстве.
Chip assignment (Назначение кристалла) задаёт, какие логические функции должны быть реализованы в одном и том же устройстве в случае разделения проекта на несколько устройств.
Pin assignment (Назначение контакта) назначает вход или выход одной логической функции конкретному контакту или нескольким контактам чипа.
Location assignment (Назначение ячейки) назначает единственную логическую функцию конкретной ячейке чипа.
Probe assignment (Назначение зонда) присваивает уникальное имя входу или выходу логической функции.
Connected pin assignment (Назначение соединенных контактов) задаёт внешнее соединение двух или более контактов на схеме пользователя.
Local routing assignment (Назначение местной разводки) присваивает коэффициент разветвления по выходу узла логическому элементу, находящемуся в том же блоке LAB, что и узел, или в соседнем LAB, прилежащем к узлу, с использованием общих местных разводок.
Device assignment (Назначение устройства) назначает тип ПЛИС, на которой реализуется проект.
Logic option assignment (Назначение логической опции) управляет логическим синтезом отдельных логических функций во время компиляции с применением стиля логического синтеза.
Timing assignment (Назначение временных параметров) управляет логическим синтезом и подгонкой отдельных логических функций для получения требуемых характеристик для времени задержки tPD (вход – неподрегистренный выход), tCO (синхросигнал – выход), tSU (синхросигнал – время установки), fMAX (частота син-хросигнала).
Можно определить глобальные опции устройства для компилятора, чтобы он использовал их для всех устройств при обработке проекта. Для резервирования дополнительных возможностей на будущее можно задать процентное соотношение контактов и логических элементов, которые должны оставаться неиспользованными во время текущей компиляции.
С использованием команды Global Project Para-meters можно задать имена и глобальные установки, которые будут использованы компилятором для параметров всех параметризованных функций в проекте.
При помощи команды Global Project Timing Require-ments можно ввести глобальные требования по синхронизации для поекта, задавая общие характеристики для времени задержки tPD (вход – нерегистрируемый выход), tCO (синхросигнал – выход), tSU (синхросигнал – время установки), fMAX (частота синхросигнала).
Команда Global Project Logic Synthesis позволяет сделать глобальные установки для компилятора в части логического синтеза проекта.
Все пять редакторов MAX PLUS II и три редактора создания дизайна (графический, текстовый и сигнальный) имеют общие функции, такие как, например, создание, сохранение и открытие файла. Кроме того, приложения редактора MAX PLUS II имеют следующие общие функции: создание файлов символов и файлов с прототипами функций (Include-файлы); поиск узлов; траверз иерархического дерева; всплывающие окна меню, зависящего от контекста; временной анализ; поиск и замена фрагментов текста; отмена последнего шага редактирования, его возвращения, вырезка, копирование, вставка и удаление выбранных фрагментов, обмен фрагментами между приложениями MAX PLUS II или приложениями Windows; печать.
Графический редактор (Graphic Editor) обеспечивает проектирование в реальном формате изображения (WYSIWIG). Графические файлы проекта (.gdf) или схемные файлы OrCAD (.sch), созданные в данном графиче-ском редакторе, могут включать любую комбинацию символов примитивов, мегафункций и макрофункций. Символы могут представлять собой любой тип файла проекта (.gdf .sch .tdf .vhd .v .wdf .edf .xnf .adf .smf).
Инструмент выбора (“стрелка”) облегчает разработку дизайна. Он позволяет двигать и копировать объекты, а также вводить новые символы. Когда вы помещаете его на контакт или конец линии, он автоматически преобразуется в инструмент рисования ортогональных линий. Если им щелкнуть на тексте, он автоматически преобразуется в инструмент редактирования текста.
Графический редактор обеспечивает ряд других возможностей. Например, можно увеличивать или уменьшать масштаб отображения на экране, выбирать гарнитуру и размер шрифта, задавать стили линий, устанавливать и отображать направляющие, получать зеркальное отображение, поворачивать выделенные фрагменты на 90, 180 или 270 градусов; задавать размер и ориентацию текущего листа схемы.
Символьный редактор (Symbol Editor) позволяет просматривать, создавать и редактировать символ. Символьный файл имеет то же имя, что и проект, и расширение “.sym”. Команда Creat Default Symbol меню File, которая есть в графическом, текстовом и сигнальном редакторах, создает символ для любого файла проекта. Символьный редактор обладает следующими характеристиками: можно переопределить символ, представляющий файл проекта, создавать и редактировать выводы и их имена, используя входные, выходные и двунаправленные выводы, а также задавать варианты ввода символа в файл графического редактора, задать значения параметров и их значения по умолчанию; сетка и направляющие помогают выполнить точное выравнивание объектов, в символе можно вводить комментарии.
Текстовый редактор (Text Editor) является инструментом для создания текстовых файлов проекта на языках описания аппаратуры: AHDL (.tdf), VHDL (.vhd), Verilog HDL (.v). В этом текстовом редакторе можно работать также с произвольным файлом формата ASCII. Все перечисленные файлы проекта можно создавать в любом текстовом редакторе, однако данный редактор имеет встроенные возможности ввода файлов проекта, их компиляции и отладки с выдачей сообщений об ошибках и их локализацией в исходном тексте или в тексте вспомогательных файлов; кроме того, существуют шаблоны языковых конструкций для AHDL, VHDL и Verilog HDL, выполнено окрашивание синтаксических конструкций. В данном редакторе можно вручную редактировать файлы назначений и конфигурации (.acf), а также делать установки конфигурации для компилятора, симулятора и временного анализатора.
Пользуясь данным текстовым редактором, можно создавать тестовые векторы (.vec), используемые для тестирования, отладки функций и при вводе сигнального проекта. Можно также создавать командные файлы (.cmd — для симулятора и .edc — для EDIF), а также макробиблиотеки (.lmf).
В текстовом редакторе MAX PLUS II обеспечивается контекстная справка.
Сигнальный редактор (Waveform Editor) служит инструментом создания описания проекта, ввода тестовых векторов и просмотра результатов тестирования. Пользователь может создавать сигнальные файлы проекта (.wdf), которые содержат временные диаграммы, описывающие логику работы проекта, а также файлы каналов тестирования (.scf), которые содержат входные вектора для тестирования и функциональной отладки. Разработка описания проекта в сигнальном редакторе является альтернативой его созданию в графическом или текстовом редакторах. Здесь можно графическим способом задавать комбинации входных логических уровней и требуемых выходов. Созданный таким образом файл WDF может содержать как логические входы, так и входы цифрового автомата, а также выходы комбинаторной логики, счётчиков и цифровых автоматов. Способ разработки дизайна в сигнальном редакторе лучше подходит для цепей с чётко определёнными последовательными входами и выходами, то есть для цифровых автоматов, счётчиков и регистров.
С помощью сигнального редактора можно легко преобразовывать временные диаграммы сигналов целиком или частично, создавая и редактируя узлы и группы. Простыми командами можно создавать файл таблицы ASCII-символов (.tbl) или импортировать файл тестовых векторов в формате ASCII (.vec) для создания файлов тестируемых каналов SCF и сигнального дизайна WDF. Можно также сохранить файл WDF как SCF для проведения тестирования или преобразовать SCF в WDF для использования его в качестве файла проекта.
Сигнальный редактор имеет следующие отличительные черты: можно создать или отредактировать узел, задав его тип; при разработке WDF можно задать тип логики узла, задать значения по умолчанию в логическом узле, а также имя состояния по умолчанию в узле типа цифрового автомата, для упрощения создания тестового вектора можно легко добавить в файл тестируемых каналов SCF несколько узлов или все из информационного файла симулятора (.snf), существующего для полностью откомпилированного проекта, можно объединять от 2 до 256 узлов для создания новой группы (шины) или разгруппировывать объединённые ранее в группу узлы. Можно также объединять группы с другими группами. Значение группы может быть отображено в двоичной, десятичной, шестнадцатеричной или восьмеричной системе счисления с преобразованием или без в код Грэя, можно копировать, вставлять, перемещать или удалять выбранную часть (“интервал”) сигнала, а также весь узел или группу. Можно также инвертировать, вставлять, переписывать, повторять, расширять или сжимать интервал сигнала любой длины с любым логическим уровнем, тактовым сигналом, последовательностью счёта или именем состояния, задать сетку для выравнивания переходов между логическими уровнями, в любом месте файла можно вводить комментарии между сигналами, менять масштаб отображения.
Для облегчения тестирования можно сделать наложение любых выходов в текущем файле или наложить второй файл сигнального редактора для сравнения сигналов его узлов и групп с соответствующими сигналами текущего файла.
Поуровневый планировщик (Floorplan Editor) предназначен для назначения ресурсов физических устройств и просмотра результатов разводки, сделанных компилятором. В окне поуровневого планировщика могут быть представлены два типа изображения:
- Device View (Вид устройства) показывает все контакты устройства и их функции;
- LAB View (Вид логического структурного блока) показывает внутреннюю часть устройства, в том числе все логические структурные блоки (LAB) и отдельные логические элементы.
После выполнения всех назначений и задания проекта приступают к его компиляции. Сначала компилятор извлекает информацию об иерархических связях между файлами проекта и проверяет проект на простые ошибки ввода описания проекта.
Компилятор применяет разнообразные способы увеличения эффективности проекта и минимизации использования ресурсов устройства. Если проект слишком большой, чтобы быть реализованным в одном устройстве, компилятор может автоматически разбить его на части для реализации в нескольких устройствах того же самого семейства, при этом число соединений между устройствами минимизируется. В файле отчёта (.rpt) затем будет отражено, как проект будет реализован в одном или нескольких устройствах.
Кроме того, компилятор создает программирующие файлы, используемые программатором для программирования одного или нескольких устройств. У разработчика также есть возможность настроить обработку проекта. Например, можно задать стиль логического синтеза проекта по умолчанию и другие параметры логического синтеза в рамках всего проекта, что позволит провести логический синтез в соответствии с вашими потребностями. Кроме того, вы можете ввести требования по синхронизации в рамках всего проекта, точно задать разбиение большого проекта на части для реализации в нескольких устройствах и выбрать варианты параметров устройств, которые будут применены для всего проекта в целом.
Загрузку готового проекта в ПЛИС или конфигурационное ПЗУ выполняют с помощью программатора (Programmer).
Конечно, в рамках одной статьи не представляется возможным дать полное описание всех функций системы. Тем не менее, автор надеется, что данная статья поможет начинающему разработчику в освоении сис-темы проектирования MAX PLUS II. В следующем занятии мы рассмотрим работу с системой проектирования ПЛИС фирмы Xilinx.
Тел. (095) 263-6736
|