Популярные услуги

Лекция 16. Процесс компиляции в системе MAX-PLUS II

2021-03-09СтудИзба

Лекция 16. Процесс компиляции в системе MAX PLUS II

Общие положения. Сначала компилятор извлекает информацию об иерархических связях между файлами проекта и проверяет проект на простые ошибки ввода дизайнов. Он создаёт организационную карту проекта и затем, комбинируя все файлы проекта, превращает их в базу данных без иерархии, которую может эффективно обрабатывать.

Компилятор применяет разнообразные способы увеличения эффективности проекта и минимизации использования ресурсов устройства. Если проект слишком большой, чтобы быть реализованным в одной ПЛИС, компилятор может автоматически разбить его на части для реализации в нескольких устройствах того же самого семейства ПЛИС, при этом минимизируется число соединений между устройствами. В файле отчёта (.rpt) будет отражено, как проект будет реализован в одном или нескольких устройствах.

Компилятор создаёт файлы программирования или загрузки, которые программатор системы MAX PLUS II или другой будет использовать для программирования одной или нескольких ПЛИС фирмы Altera.

Несмотря на то, что компилятор может автоматически компилировать проект, существует возможность задать обработку проекта в соответствии с точными указаниями разработчика. Например, возможно задать стиль логического синтеза проекта по умолчанию и другие параметры логического синтеза в рамках всего проекта. Кроме того, удобно задать временные требования в рамках всего проекта, точно указать разбиение большого проекта на части для реализации в нескольких устройствах и выбрать варианты параметров устройств, которые будут применены для всего проекта в целом. Можете также выбрать, сколько выводов и логических элементов должно быть оставлено неиспользованными во время текущей компиляции, чтобы зарезервировать их для последующих модификаций проекта.

Компиляцию можно запустить из любого приложения MAX PLUS II или из окна компилятора. Компилятор автоматически обрабатывает все входные файлы текущего проекта. Процесс компиляции можно наблюдать в окне компилятора в следующем виде (см. рисунок 16.1):

· опустошаются и переворачиваются песочные часы, что указывает на активность компилятора;

· высвечиваются прямоугольники модулей компилятора по очереди, по мере того как компилятор завершает каждый этап обработки;

· под прямоугольником модуля компилятора появляется пиктограмма выходного файла, сгенерированного данным модулем. Для открытия соответствующего файла следует дважды щёлкнуть левой кнопкой «мыши» на пиктограмме;

Рекомендуемые материалы

· процент завершения компиляции постепенно увеличивается (до 100%), что отражается также растущим прямоугольником «градусник»;

· во время разбиения и монтажа кнопка компилятора Stop (Стоп) превращается в кнопку Stop/Show Status (Стоп/Показать состояние), которую можно выбрать для открытия диалогового окна, в котором отражается текущее состояние разбиения и монтажа проекта;

· при обнаружении в процессе компиляции каких-либо ошибок или возможных проблем автоматически открывается окно обработчика сообщений, в котором отображается список сообщений об ошибке, предупреждающих и информационных сообщений, а также сразу даётся справка по исправлению ошибки. Кроме того, можно определить источники сообщений в файлах проекта или в его поуровневом плане назначений.

Модули и утилиты компилятора. Компилятор системы MAX PLUS II обрабатывает проект, используя следующие модули и утилиты (см. рисунок 16.1):

Рисунок 16.1 – Процесс компиляции

· экстрактор списка цепей (Compiler Netlist Extractor), включающий встроенные программы чтения форматов EDIF, VHDL, Verilog и XNP;

· построитель базы данных (Database Builder);

· логический синтезатор (Logic Synthesizer);

· разделитель (Partitioner);

· трассировщик (Fitter);

· экстрактор для функционального тестирования (Functional SNF Extractor);

· экстрактор для тестирования временных параметров (Timing SNF Extractor);

· модуль ассемблера (Assembler);

· утилита диагностики проекта (Design Doctor Utility).

Модуль экстрактора форматов (Compiler Netlist Extractor) преобразует каждый файл проекта в один или несколько двоичных файлов с расширением .cnf (compliler netlist file). Поскольку компилятор представляет значения всех параметров, используемых в параметризованных функциях, содержимое файла CNF может меняться при последовательной компиляции, если значения параметров меняются. Данный модуль создаёт также файл иерархических взаимосвязей (.hif) (hierarchy interconnect file), в котором документируются иерархические связи между файлами проекта, а также содержится информация, необходимая для показа иерархического дерева проекта в окне Hierarchy Display. Кроме того, данный модуль создаёт файл базы данных узлов (.ndb) (node database), в котором содержатся имена узлов проекта для базы данных назначений ресурсов. Встроенные программы чтения форматов EDIF, VHDL, Verilog и XNF автоматически транслируют информацию проекта в файлы соответствующих форматов .edf, .vhd, .v, .xnf в формат, совместимый с системой MAX PLUS II. Программа чтения формата EDIF обрабатывает входные файлы EDIF с помощью библиотечных файлов .imf, (library mapping file) которые устанавливают соответствие между логическими функциями, разработанными в других САПР, и функциями, системы MAX PLUS II. Программа чтения формата XNF может создавать файл для экспорта текстового дизайна (.tdx) (text design export file), который содержит информацию на языке AHDL, которая эквивалентна той, что содержится в файле формата XNF (.xnf); это делается для того, чтобы редактировать проект на языке AHDL.

Модуль построителя базы данных (Database Builder) использует файл иерархических связей HIF для компоновки созданных компилятором файлов CNF, в которых содержится описание проекта. На основании данных об иерархической структуре проекта данный модуль копирует каждый файл CNF в одну базу данных без иерархической структуры. Таким образом, эта база данных сохраняет электрическую связность проекта.

При создании базы данных модуль исследует логическую полноту и согласованность проекта, а также проверяет пограничную связность и наличие синтаксических ошибок (например, узел без источника или места назначения). На этой стадии компиляции обнаруживается большинство ошибок, которые могут быть тут же легко исправлены. Каждый модуль компилятора последовательно обрабатывает и обновляет эту базу данных.

Первый раз, когда компилятор обрабатывает проект, все файлы проекта компилируются. Можно использовать возможность «быстрой повторной компиляции» (smart recompile) для создания расширенной базы данных проекта, которая помогает ускорить последующие компиляции. Эта база данных позволяет изменить назначения ресурсов физического устройства, такие, как назначения выводов и логических элементов, а также повторно компилировать проект без повторного построения базы данных и повторного синтеза логики проекта. Используя возможность «полной повторной компиляции» (total recompile), возможно сделать выбор между повторной компиляцией только тех файлов, которые редактировались после последней компиляции, и полной повторной компиляцией всего проекта.

Модуль логического синтезатора (Logic Synthesizer) применяет ряд алгоритмов, которые уменьшают использование ресурсов и убирают дублированную логику, обеспечивая тем самым максимально эффективное использование структуры логического элемента для архитектуры целевого семейства устройств. Данный модуль компилятора применяет такие способы логического синтеза для требований пользователя по временным параметрам и др. Кроме того, логический синтезатор ищет логику для несоединённых узлов. Если он находит не присоединенный узел, он убирает примитивы, относящиеся к этому узлу.

Для управления логическим синтезом имеются три заранее описанных стиля и большое число логических опций. В любом приложении MAX PLUS II можно ввести значения временных параметров проекта и выбрать логические опции, а также определить стили логического синтеза. Можно задать глобальный логический синтез по умолчанию и временные параметры проекта для всего проекта в целом, а также все дополнительные назначения логических опций и временных параметров проекта и для отдельных логических функций.

Модуль разделителя. Если проект не помещается при монтаже в одно устройство, модуль разделитель (Partitioner) разделяет базу данных на несколько ПЛИС одного и того же семейства, стараясь при этом разделить проект на минимально возможное число устройств. Разбиение проекта происходит по границам логических элементов, а число выводов, используемое для сообщения между устройствами, минимизируется. Разбиение может быть проведено полностью автоматически либо под частичным или полным управлением со стороны пользователя. Назначения устройств и установки для автоматического выбора устройств позволяют применить тот уровень управления, который наиболее подходит для конкретного проекта.

Когда работают модули Partitioner и Fitter, можно приостановить компиляцию. Компилятор отобразит информацию о текущем состоянии процессов разбиения и трассировки кристалла, в том числе сравнение требуемых и имеющихся ресурсов. Это нужно для того, чтобы принять решение, продолжать ли компиляцию, или вносить кардинальные изменения в проект.

Модуль трассировки. Используя базу данных, обновлённую модулем разбиения, модуль трассировки (Fitter) приводит в соответствие требования проекта с известными ресурсами одного или нескольких устройств. Он назначает каждой логической функции расположение реализующего её логического элемента и выбирает соответствующие пути взаимных соединений и назначения выводов. Данный модуль пытается согласовать назначения ресурсов, т.е. выводов, логических элементов, элементов ввода/вывода, ячеек памяти, чипов, клик, устройств, местной трассировки, временных параметров и назначения соединённых выводов из файла назначений и конфигурации (.acf) (Assignment & Configuration file), с имеющимися ресурсами. Модуль имеет параметры, позволяющие определить способы трассировки, Например, автоматическое введение логических элементов или ограничение коэффициента объединения по входу. Если трассировка не может быть выполнена, модуль выдаёт сообщение и предлагает вам выбор: проигнорировать некоторые или все назначения либо прекратить компиляцию.

Независимо от того, завершена ли полная трассировка проекта, данный модуль генерирует файл отчёта (.rpt) (report file), в котором документируется информация о разбиении проекта, именах входных и выходных контактов, временных параметрах проекта и неиспользованных ресурсах для каждого устройства в проекте. Можно включить в файл отчёта разделы, показывающие назначения пользователя, файловую иерархию, взаимные соединения логических элементов и управления, реализованные в ЛЭ.

Компилятор также автоматически создаёт файл трассировки (.fit), в котором документируются назначения ресурсов и устройств для всего проекта, а также информация о трассировке. Независимо от того, успешно ли прошла трассировка, пользователь может просмотреть информацию о согласовании, разбиении и трассировки из файла согласования в окне поуровневого планировщика. Возможно, также переписать назначения из файла согласования в файл назначений и конфигурации ACF для последующего редактирования.

Экстрактор функционального тестирования (Functional SNF Extractor) создаёт файл для функционального тестирования (.snf). Компилятор генерирует этот файл перед синтезом проекта, поэтому он содержит все узлы, присутствующие в первоначальных файлах проекта. Этот функциональный файл SNF не содержит информации о временных параметрах. Его генерация возможна только в случае, если компиляция проекта прошла без ошибок.

Экстрактор для тестирования временных параметров (Timing SNF Extractor) создаёт (если компиляция проекта прошла без ошибок) файл для тестирования временных параметров (.snf), который содержит данные о временных параметрах проекта. Кроме того, эти файлы SNF используют также модули компилятора, содержащие программы записи в форматы EDIF, Verilog и VHDL, генерирующие выходные файлы формата стандартных задержек (.sdo) (standart delay format output file).

Модуль ассемблера (Assembler). Модуль ассемблера преобразует назначения логических элементов, выводов и устройств, сделанные модулем трассировки Fitter, в программный образ для устройства (устройств) в виде одного или нескольких двоичных объектных файлов для программатора (.pof) или объектных файлов SPAM (.sof).

После завершения компиляции компилятор и программатор системы MAX PLUS II позволяют сгенерировать дополнительные файлы для программирования устройства, которые можно использовать в других условиях программирования. Например, можно создать файлы с последовательным потоком битов (.bbs) и необработанные двоичные файлы (.rbt) для конфигурирования устройств FLEX6000, FLEX8000 и FLEX10K. Можно создать последовательные файлы тестовых векторов (.svf) или файлы на языке JAM (.jam) для программирования устройств автоматизированной испытательной аппаратуры типа ATE.

Рисунок 16.2 – Окно команды Design Doctor Settings

Утилита диагностики проекта (Design Doctor Utility). Необязательная утилита диагностики проекта проверяет логику каждого файла проекта для выявления элементов, которые могут вызвать проблемы надёжности на системном уровне. Эти проблемы обычно обнаруживаются только после запуска устройства «в железе». Существует возможность выбора одного из трёх предварительно определённых наборов правил разработки проекта с разными уровнями. Кроме того, можно разработать свой собственный свод правил разработки дизайна.

Правила разработки дизайна основываются на  принципах   надёжности,  которые  охватывают

логику, содержащую асинхронные входы, залповые тактовые сигналы (Clock), многоуровневую логику на конфигурациях с сигналами Clock, Preset и Clear, а также в условиях состязаний. Установка правил проверки производится с помощью команды Design Doctor Settings (см. рисунок 16.2).

Вопросы для проверки усвоения материала

1. Модуль трассировки компилятора системы MAX PLUS II.

2. Экстракторы тестирования компилятора системы MAX PLUS II.

3. Модуль ассемблера компилятора системы MAX PLUS II.

4. Утилита диагностики проекта системы MAX PLUS II.

5. Функции компилятора системы MAX PLUS II.

6. Система отображения работы компилятора системы MAX PLUS II.

7. Модули, используемые при обработке проекта компилятором системы MAX PLUS II.

Вам также может быть полезна лекция "5 - Вакуолярная система клетки".

8. Модуль экстрактора форматов компилятора системы MAX PLUS II.

9. Модуль построителя базы данных компилятора системы MAX PLUS II.

10. Модуль логического синтезатора компилятора системы MAX PLUS II.

11. Модуль разделителя компилятора системы MAX PLUS II

Литература

1. Стешенко Б.В. ПЛИС фирмы АLTERA: проектирование устройств обработки сигналов. –М.: ДОДЭКА, 2000. –128 с. (57-60 с.)

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
438
Средний доход
с одного платного файла
Обучение Подробнее