Смекни!
smekni.com

Методические указания к практическим (лабораторным) работам Екатеринбург 2003 (стр. 6 из 12)

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

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

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

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


Компилятор также автоматически создаёт файл трассировки (.fit), в котором документируются назначения ресурсов и устройств для всего проекта, а также информация о трассировке. Существует возможность дать указание модулю трассировщика сгенерировать выходные текстовые файлы проекта на языке AHDL (.tdo).

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

Экстрактор для тестирования временных параметров (Timing SNF Extractor) создаёт файл для тестирования временных параметров (,snf), который содержит данные о временных параметрах проекта.

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

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

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

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

Модуль ассемблера (Assembler). Модуль ассемблера преобразует назначения логических элементов, выводов и устройств, сделанные модулем трассировки Fitter, в программный образ для устройства в виде одного или нескольких двоичных объектных файлов для программатора (.pof), для некоторых устройств компилятор также генерирует ASCII-файлы JEDEC (.jed), содержащие информацию для программатора, конфигурационные ASCII-файлы (.ttf) и ASCII-файлы формата Intel (.hex).

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

Для верификации проекта в системе MAX+PLUS II используется три приложения: симулятор (Simulator), анализатор временных параметров (Timing Analyzer) и сигнальный редактор (Waveform Editor).

Перед тестированием проект компилируется с генерацией файла (.snf) для функционального тестирования и тестирования временных параметров.

Симулятор тестирует логические операции и внутреннюю синхронизацию проекта, позволяя пользователю моделировать проект.


Рисунок 2.11 – Симулятор MAX+PLUS II

В качестве источника входных векторов используется либо графический сигнальный файл каналов тестирования (.scf), либо текстовый ASCII-файл (.vec). Для проектов, работающих с памятью, можно задать некое исходное содержимое памяти в файлах шестнадцатеричного формата (Intel) с расширением .hex или в файлах инициализации памяти с расширением .mif. Сигнальный редактор может автоматически создавать файл SCF (Simulator Channel File) по умолчанию, который пользователь может редактировать с целью получения нужных ему тестовых входных векторов. Если вместо этого используется текстовый ASCII-файл векторов, сигнальный редактор автоматически генерирует из него файл каналов тестирования SCF. Симулятор позволяет проверить выходные значения, получаемые в ходе тестирования, по выходам, содержащимся в файле SCF.

Используя различные опции симулятора можно контролировать проект на появление сбоев (glitches), а также нарушение установочных параметров и временных задержек. После тестирования можно открыть обновлённый SCF файл в сигнальном редакторе или сохранить полученные выходные значения в табличном файле (.tbl) и просмотреть его затем в текстовом редакторе. Если компилятор сгенерирует файл SCF для функционального тестирования, то при функциональном тестировании можно смоделировать все узлы проекта. При функциональном тестировании симулятор игнорирует все задержки распространения. Поэтому в файле SCF для функционального тестирования нет задержек, выходные логические уровни изменяются одновременно со входными векторами. Файл SNF для тестирования временных временных параметров компилятор генерирует после того как проведены полный синтез и оптимизация проекта. Поэтому этот файл содержит только те узлы, которые не были уничтожены в процессе логического синтеза.

Из этого файла симулятор берёт информацию об аппаратной части, которая была собрана из файлов моделей устройств (.dmf), имеющихся в комплекте системы MAX+PLUS II.

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

При создании файла SNF для тестирования компоновки нескольких проектов компилятор комбинирует файлы SNF для функционального тестирования и/или файлы для тестирования временных параметров нескольких отдельных проектов. Отдельные “подпроекты” в компоновочном SNF файле могут быть предназначены для устройств разных семейств. Кроме того, поскольку файлы SNF для функционального тестирования
создаются до окончания полной компиляции, можно ввести подпроекты, которые представляют логику, не реализованную в устройстве фирмы Altera.

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