Разработка светодиодных систем отображения информации

Системы передачи по волоконно-оптическим линиям связи

 

Светодиодные экраны

Бегущие строки

НПП “Цифровые решения”

Контрактная разработка радиоэлектронных устройств

Цифровая обработка сигналов и изображений

Поставка высокотехнологичных изделий

 

ПЛИС фирмы Altera: проектирование устройств обработки сигналов.

Стешенко В.Б.

 

Глава 2. Система проектирования MAX+PLUS II

2.4. Процесс компиляции.

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

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

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

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

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

Рис. 2.26. Процесс компиляции.

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

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

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

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

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

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

Компилятор может работать в фоновом режиме. Вы можете уменьшить до минимума окно компилятора, пока он обрабатывает проект, и продолжить работу над другими файлами проекта. Растущий прямоугольник «градусник» под пиктограммой уменьшенного окна компилятора позволяет вам наблюдать за продвижением процесса компиляции в то время, как вы можете сосредоточить свое снимание на другой задаче. Однако следует помнить, что такая роскошь, как многозадачная работа, возможна только на приличной машине. Если существует дефицит оперативной памяти, то лцчше во время процесса компиляции спокойно пить чай.

Компилятор системы 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 Netlist Writer (программа записи выходного файла в формат EDIF);

  • Verilog Netlist Writer (программа записи выходного файла в формат Verilog);

  • VHDL Netlist Writer VHDL (программа записи выходного файла в формат VHDL);

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

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

Модуль Compiler Netlist Extractor (экстрактор форматов) преобразует каждый файл проекта в один или несколько двоичных файлов с расширением .cnf (compiler 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 с помощью библиотечных файлов .lmf (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 для последующего редактирования.

Существует возможность дать указание модулю трассировщика (Fitter) сгенерировать выходные текстовые файлы проекта на языке AHDL (.tdo). Поскольку в проекте с несколькими устройствами для одного устройства генерируется один файл, следует разбить проект на несколько проектов, каждый для одного устройства, если требуется зафиксировать логику в некоторых устройствах, затем сохранить файл TDO для этого устройства как файл текстового дизайна (.tdf) и перекомпилировать логику для этого устройства, при этом сохраняя результаты логического синтеза, полученные в ходе предыдущей компиляции.

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

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

Можно задатькомпилятору сгенерировать оптимизированный файл SNF с помощью команды Processing /Timing SNF Extractor. Оптимизация файла SNF увеличивает время компиляции, но помогает сэкономить ваше время при тестировании и анализе временных параметров.

Linked SNF Extractor (экстрактор для тестирования компоновки) создает файл (.snf) для тестирования компоновки при тестировании нескольких проектов (на уровне платы). Такой файл SNF комбинирует информацию из файлов SNF двух типов: для тестирования временных параметров и функционального тестирования, которые были сгенерированы для этих нескольких проектов по отдельности. Скомпонованные проекты могут использовать устройства, принадлежащие разным семействам. Если файл для тестирования компоновки содержит только информацию о временных параметрах, его можно также использовать при прогоне анализа временных параметров.

EDIF Netlist Writer (программа записи в формат EDIF). Компилятор MAX PLUS II может взаимодействовать с большинством стандартных программных средств САПР, которые могут читать файлы стандартного формата EDIF 200 или 300. Данный (необязательный) модуль компилятора, содержащий программу записи в формат EDIF, создает один или несколько выходных файлов в формате EDIF (.edo), содержащих информацию о функциях и (необязательно) временных параметров, полученную после проведения синтеза. Информация о временных параметрах может быть также записана в отдельные выходные файлы формата стандартной задержки (.sdo).

Verilog Netlist Writer (программа записи в формат Verilog). Необязательный модуль программы записи в формат Verilog генерирует выходные файлы с расширением .vo, содержащие информацию о функциях и временных параметрах, полученную после проведения синтеза. Информация о временных параметров может быть также записана в отдельные выходные файлы формата стандартной задержки (.sdo).

VHDL Netlist Writer VHDL (программа записи в формат VHDL). Необязательный модуль компилятора с программой записи в формат VHDL генерирует один или несколько выходных файлов (.vho) на языке VHDL с синтаксисом 1987 или 1993, содержащих информацию о функциях и (необязательно) временных параметров, полученную после проведения синтеза. Информация о временных параметров может быть также записана в отдельные выходные файлы формата стандартной задержки (.sdo).

Выходные файлы на языках описания аппаратуры можно использовать при верификации проекта с использованием внешнего симулятора. Эти файлы генерируются только в случае успешной компиляции проекта.

Assembler (модуль ассемблера). Модуль ассемблера преобразует назначения логических элементов, выводов и устройства, сделанные модулем трассировки Fitter, в программный образ для устройства (устройств) в виде одного или нескольких двоичных объектных файлов для программатора (.pof) или объектных файлов SRAM (.sof); для некоторых устройств компилятор также генерирует ASCII-файлы JEDEC (.jed), содержащие информацию для программатора, конфигурационные ASCII-файлы (.ttf) и ASCII-файлы формата Intel (.hex). Объектные файлы POF и SOF, а также конфигурационные файлы JEDEC затем обрабатываются программатором системы MAX PLUS II и программирующей аппаратурой фирмы Altera (или другим программатором). Файлы HEX и TTF могут быть использованы для конфигурирования устройств FLEX 6000, FLEX 8000 и FLEX 10K с помощью других средств. Модуль ассемблера создает файлы для программатора только в случае успешной компиляции проекта.

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

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

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

Рис. 2.27. Окно команды Design Doctor Settings.

 

- Наверх -

 

Координаты:

   г. Москва, пр. Мира, 102

Для писем:

   105066, Россия, г. Москва, а/я 18

Тел.: (495) 778-97-04

e-mail: mail@dsol.ru, info@dsol.ru

 

© НПП “Цифровые решения” 2003 — 2006

Разработка светодиодных экранов | Разработка бегущих строк | Проектирование ПЛИС и СБИС | Разработка законченных устройств и модулей | Синтез алгоритмов |

Rambler's Top100 Rambler's Top100