Рисунок 2.7 – Окно текстового редактора
В текстовом редакторе MAX PLUS II обеспечивается контекстная справка.
Сигнальный редактор (Waveform Editor) служит инструментом создания описания проекта, ввода тестовых векторов и просмотра результатов тестирования. Пользователь может создавать сигнальные файлы проекта (.wdf), которые содержат временные диаграммы, описывающие логику работы проекта, а также файлы каналов тестирования (.scf), которые содержат входные вектора для тестирования и функциональной отладки. Разработка описания проекта в сигнальном редакторе является альтернативой его созданию в графическом или текстовом редакторах. Здесь можно графическим способом задавать комбинации входных логических уровней и требуемых выходов. Созданный таким образом файл WDF может содержать как логические входы, так и входы цифрового автомата, а также выходы комбинаторной логики, счётчиков и цифровых автоматов. Способ разработки дизайна в сигнальном редакторе лучше подходит для цепей с чётко определёнными последовательными входами и выходами, то есть для цифровых автоматов, счётчиков и регистров.
С помощью сигнального редактора можно легко преобразовывать временные диаграммы сигналов целиком или частично, создавая и редактируя узлы и группы. Простыми командами можно создавать файл таблицы ASCII-символов (.tbl) или импортировать файл тестовых векторов в формате ASCII (.vec) для создания файлов тестируемых каналов SCF и сигнального дизайна WDF. Можно также сохранить файл WDF как SCF для проведения
тестирования или преобразовать SCF в WDF для использования его в качестве файла проекта.
Рисунок 2.8 – Окно сигнального редактора
Сигнальный редактор имеет следующие отличительные черты:
─ можно создать или отредактировать узел для получения типа I/O (вход/выход), который представляет собой входной или выходной контакт или “замурованную” логику;
─ при разработке WDF можно задать тип логики, которая делает каждый узел контактом, причём входным, регистровым, комбинаторным или цифровым автоматом;
─ задать значения по умолчанию в логическом узле для активного логического уровня: высокий (1), неопределённый (X) или с высоким импедансом (Z), а также имя состояния по умолчанию в узле типа цифрового автомата;
─ для упрощения создания тестового вектора можно легко добавить в файл тестируемых каналов SCF несколько узлов или все из информационного файла симулятора (.snf), существующего для полностью откомпилированного и оптимизированного проекта;
─ можно объединять от 2 до 256 узлов для создания новой группы (шины) или разгруппировывать объединённые ранее в группу узлы. Можно также объединять группы с другими группами. Значение группы может быть отображено в двоичной, десятичной, шестнадцатеричной или восьмеричной системе счисления с преобразованием (или без) в код Грэя;
─ можно копировать, вставлять, перемещать или удалять выбранную часть (“интервал”) сигнала, а также весь узел или группу (то есть имя узла или группы плюс форму сигнала). Одной операцией можно отредактировать несколько интервалов, целые формы сигналов, а также целые узлы и группы. Копии целых узлов и групп связаны, так что редакционные правки одной копии отражаются во всех копиях. Можно также инвертировать, вставлять, переписывать, повторять, расширять или сжимать интервал формы сигнала любой длины с любым логическим уровнем, тактовым сигналом, последовательностью счёта или именем состояния;
─ задать и, по желанию, отображать на экране сетку для выравнивания переходов между логическими уровнями либо до их создания, либо после;
─ в любом месте файла можно вводить комментарии между формами сигнала;
─ менять масштаб отображения;
─ для облегчения тестирования можно сделать наложение любых выходов в текущем файле или наложить второй файл сигнального редактора для сравнения сигналов его узлов и групп с соответствующими сигналами текущего файла.
Поуровневый планировщик (Floorplan Editor) предназначен для назначения ресурсов физических устройств и просмотра результатов разводки, сделанных компилятором. В окне поуровневого планировщика могут быть представлены два типа изображения:
─ Device View (Вид устройства) показывает все контакты устройства и их функции;
─ LAB View (Вид логического структурного блока) показывает внутреннюю часть устройства, в том числе все логические структурные блоки (LAB) и отдельные логические элементы.
После выполнения всех назначений и задания проекта приступают к его компиляции. Сначала компилятор извлекает информацию об иерархических связях между файлами проекта и проверяет проект на простые ошибки ввода описания проекта. Он создаёт организационную карту проекта и затем, комбинируя все файлы проекта, превращает их в базу данных без иерархии, которую может эффективно обрабатывать.
Рисунок 2.9 – Окно поуровневого планировщика (LAB View)
Компилятор применяет разнообразные способы увеличения эффективности проекта и минимизации использования ресурсов устройства. Если проект слишком большой, чтобы быть реализованным в одном устройстве, компилятор может автоматически разбить его на части для реализации в нескольких устройствах того же самого семейства ПЛИС, при этом число соединений между устройствами минимизируется. В файле отчёта (.rpt) затем будет отражено, как проект будет реализован в одном или нескольких устройствах.
Кроме того, компилятор создает файлы программирования или загрузки, используемые программатором системы MAX+PLUS II или другим, для программирования одного или нескольких устройств.
Несмотря на то, что компилятор может автоматически компилировать проект, существует возможность задать обработку проекта в соответствии с точными указаниями разработчика. Например, можно задать стиль логического синтеза проекта по умолчанию и другие параметры логического синтеза в рамках всего проекта, что позволит провести логический синтез в соответствии с частными потребностями. Кроме того, можно ввести требования по синхронизации в рамках всего проекта, точно задать разбиение большого проекта на части для реализации в нескольких устройствах и выбрать варианты параметров устройств, которые будут применены для всего проекта в целом. Можно также выбрать, сколько выводов и логических элементов должно быть оставлено
неиспользованными во время текущей компиляции, чтобы зарезервировать их для последующих модификаций проекта.
Рисунок 2.10 – Окно компилятора с редактором сообщений
Компилятор автоматически обрабатывает все входные файлы текущего проекта. Процесс компиляции можно наблюдать в окне компилятора в следующем виде:
─ опустошаются и переворачиваются песочные часы, что указывает на активность компилятора;
─ высвечиваются прямоугольники модулей компилятора по очереди, по мере того как компилятор завершает каждый этап обработки;
─ под прямоугольником модуля компилятора появляется пиктограмма выходного файла, сгенерированного данным модулем. Для открытия соответствующего файла следует дважды щёлкнуть левой кнопкой мыши по пиктограмме;
─ процент завершения компиляции постепенно увеличивается (до 100%), что отражается также растущим прямоугольником “градусник”;
─ во время разбиения и монтажа кнопка компилятора Stop превращается в кнопку Stop/Show Status (Стоп/Показать состояние), которую можно выбрать для открытия диалогового окна, в котором отражается текущее состояние разбиения и монтажа проекта;
─ при обнаружении в процессе компиляции каких-либо ошибок или возможных проблем автоматически открывается окно обработчика сообщений (Message
Processor), в котором отображается список сообщений об ошибке, предупреждающих и информационных сообщений, а также сразу даётся справка по исправлению ошибки. Кроме того, возможно определить источники сообщений в файлах проекта или в его поуровневом плане назначений.
─ Компилятор системы MAX+PLUS II обрабатывает проект, используя следующие модули и утилиты:
─ экстрактор списка цепей (Compiler Netlist Extractor), включающий встроенные программы чтения форматов EDIF, VHDL, Verilog и XNF;
─ построитель базы данных (Database Builder);
─ логический синтезатор (Logic Synthesizer);
─ разделитель (Partitioner);
─ трассировщик (Fitter);
─ экстрактор для функционального тестирования (Functional SNF Extractor);
─ экстрактор для тестирования временных параметров (Timing SNF Extractor);
─ экстрактор для тестирования компоновки (Linked SNF Extractor);
─ программа записи выходного файла в формат EDIF (EDIF Netlist Writer);
─ программа записи выходного файла в формат Verilog (Verilog Netlist Writer);
─ программа записи выходного файла в формат VHDL (VHDL Netlist Writer);
─ модуль ассемблера (Assembler);
─ утилита диагностики проекта (Design Doctor Utility).
Модуль экстрактора форматов (Compiler Netlist Extractor) преобразует каждый файл проекта в один или несколько двоичных файлов с расширением .cnf (compiler netlist file). Поскольку компилятор подставляет значения всех параметров, используемых в параметризованных функциях, содержимое файла CNF может меняться последовательной компиляции, если значения параметров меняются. Данный модуль создаёт также файл иерархических взаимосвязей (.hif) (hierarchy interconnect file), в котором документируются иерархические связи между файлами проекта, а также содержится информация, необходимая для показа иерархического дерева проекта в окне “Hierarchy Display”. Кроме того, данный модуль создаёт файл базы данных узлов (.ndb) (node database), в котором содержатся имена узлов проекта для базы данных назначений ресурсов.