Лешуков В.В., Скакунов В.Н. (сост.) Проектирование микропроцессорных систем. Лешуков В.В., Скакунов В.Н. (сост.) Проектирование микропроцессо. Методические указания к лабораторной работе по курсу "Проектирование микропроцессорных систем" Часть v волгоград 2000
Скачать 0.51 Mb.
|
Partitioner) - модуль Компилятора, распределяющий полученную базу данных проекта непосредственно по корпусам микросхем. Распределение происходит, если в файлах проекта было задано несколько корпусов, либо автоматически, если проект не удается разместить на одном чипе выбранного типа ПЛИС. Распределение может быть автоматическим либо полностью или частично определяться пользователем посредством Редактора уровней (или Редактора подложки - Floorpian Editor, см. далее), а также пункта меню 'Assign\Pin\Location\Chip...'. Одним из результатов работы модуля является текстовый .fit файл ASCII-формата, содержащий информацию об используемом типе. ПЛИС, задействованных в проекте выводах и логических ячейках. Сборщик (Fitter) непосредственно размещает логические функции по ячейкам одной или нескольких микросхем, выбирает оптимальные пути взаимосвязей и назначения выводов корпусов, базируясь на данных предыдущих этапов. В процессе работы Сборщик пытается удовлетворять всем назначениям и настройкам для устройства, сделанным разработчиком в пункте Главного меню 'Assign'. В случае невозможности выполнения каких-либо условий он предлагает отменить некоторые назначения и настройки или завершить трансляцию. Одним из результатов работы модуля является дополненный .fit файл. Временной Экстрактор (Timing SNF Extractor) - модуль Компилятора, синтезирующий двоичный временной .snf файл (timing Simulator Netlist File), необходимый для Временного Моделирования, Предсказания Задержек и Временного Анализа. Временной .snf файл описывает полностью оптимизированную схему, полученную после процессов Логического Синтеза и Сборки. Включение/исключение Временного Экстрактора в/из процесс компиляции производится выбором пункта 'Processing\Timing SNF Extractor' Главного меню (по умолчанию включен). Заметим, что полученный временной .snf файл описывает весь проект целиком, независимо от разбиения на отдельные кристаллы, поэтому полноценная временная проверка работоспособности возможна только для проекта, размещенного на одной ПЛИС. Ассемблер (Assembler). На этом этапе заканчивается обработка проекта, генерируется прообраз будущего кристалла и создается один или более файлов для программирования и конфигурации ПЛИС для текущего проекта. Типы файлов программирования, поддерживаемые MAX+PLUS II будут рассмотрены далее в разделе 'Программатор'. Файлы программирования не создаются, если в процессе компиляции в проекте были обнаружены ошибки. Все вышеперечисленные этапы входят в процесс компиляции по умолчанию. Рассмотрим этапы, которые могут быть включены в компиляцию проекта дополнительно проектировщиком. Доктор Проекта (Design Doctor) - утилита, выполняемая во время этапа Логического Синтеза, если напротив пункта меню 'Processing\Design Doctor' поставить галочку. Предназначена для проверки проекта на предмет надежного функционирования готовых микросхем. Проверка осуществляется в соответствии с набором правил, которые задаются в пункте меню 'Processing\Design Doctor Settings...'. Проектировщик может выбрать стандартный набор правил для используемого типа устройств, либо задать свой собственный набор правил. Под правилами подразумевается проверка потенциально ненадежных условий по нагрузочной способности элементов, цепей задержки, эффектов гонок и других нежелательных эффектов. Результатом работы Доктора Проекта являются сообщения о найденных отклонениях, которые фиксируются в окне сообщений компилятора и в файле отчета (.rpt файл). Также их можно получить, дважды щелкнув по значку Доктора рядом с блоком Логического Синтеза. Функциональный Экстрактор (Functional SNF Extractor) - модуль Компилятора, синтезирующий двоичный функциональный .snf файл (functional Simulator Netlist File) для процесса Функционального Моделирования. Включить/исключить Функциональный Экстрактор в/из процесс компиляции можно командой 'Functional SNF Extractor' пункта 'Processing' Главного меню. При этом процесс компиляции будет состоять только из трех этапов: Экстрактора Списка Связей, Построителя Базы Данных и Функционального Экстрактора и потребует меньшего времени, чем полная компиляция. Особенностью процесса является то, что .snf файл создается на основе файлов проекта до их логической обработки и оптимизации, что дает возможность провести Функциональное Моделирование исходного варианта логической схемы (после этапов Логического синтеза, Распределения и Сборки некоторые узлы и элементы схемы могут исчезнуть или трансформироваться). Оптимизация Временного Моделирования (Optimize Timing SNF) дополнительная возможность Временного Экстрактора, заменяющая некоторые блоки комбинаторной логики в .snf файле Временного Моделирования на 'Динамические модели'. Использование 'Динамических позволяет ускорить процесс моделирования, однако, в этом случае требуется дополнительное время для их создания в процессе компиляции. Подключение этой возможности имеет смысл для проектов, содержащих большие секции комбинаторной логики и сокращает время моделирования. Включение/исключение Оптимизации Временного Моделирования в/из процесс компиляции производится выбором пункта 'Processing\Optimize Timing SNF' Главного меню. Объединяющий Экстрактор (Linked SNF Extractor). Подключение этой опции имеет смысл, если в основе иерархии проекта лежит суперпроект, состоящий из отдельных подпроектов, для которых уже были получены свои .snf файлы. В свою очередь, скомпилированный суперпроект может впоследствии быть включен в суперпроект более высокого уровня. Следует заметить, что если подпроекты, лежащие в основе, построены на разных типах ПЛИС, то это не вызовет ошибки при компиляции суперпроекта. Однако необходимым условием является успешная компиляция всех проектов низшего уровня. Процесс компиляции будет состоять только из трех этапов: Экстрактора Списка Связей, Построителя Базы Данных и Объединяющего Экстрактора и потребует меньшего времени, чем полная компиляция. Результаты всех промежуточных этапов компиляции отражаются в файле отчета с расширением .rpt. Сообщения об ошибках и предупреждения, если они есть, отражаются в окне сообщений 'Messages - Compiler'. Запустим процесс компиляции для проекта 'ехаmpl'. Если Вы правильно ввели схему в Графическом редакторе, то ошибок и предупреждений быть не должно. Закроем окно Компилятора и вернемся в Иерархический дисплей. Под именем проекта и значком графического файла появились три новых значка текстовых файлов с расширениями .rpt, .fit и .acf. При двойном щелчке мышью на любом из значков запускается соответствующий редактор (Графический для .gdf и Текстовый - для остальных трех). Это одна из интересных особенностей Иерархического дисплея -открывать выбранный файл в соответствующем редакторе. Как уже отмечалось .rpt файл - файл отчета о результатах компиляции, .fit файл содержит информацию о спроектированном устройстве, назначениях выводов, использованных и не использованных логических ячейках и т. д. В .acf файле (Assignment & Configuration File) содержатся сведения о всех настройках и конфигурации общих для проекта и для отдельных выводов, логических ячеек, чипов. 2.6. Редактор подложки Редактор подложки (пункт Главного меню 'MAX+PLUS II\Floorplan Editor') дает возможность разработчику вести проектирование непосредственно на уровне модели кристалла ПЛИС, изменяя свойства и местоположение отдельных выводов, логических ячеек и блоков. Также он наглядно представляет результаты работы Компилятора и другую полезную информацию о структуре и размещении ресурсов на чипе. Редактор подложки состоит из двух сменяющих друг друга рабочих окон 'Device View' и 'LAB View' (подробнее будут рассмотрены ниже), а также общей для них верхней части, содержащей следующую информацию: Chip Name - название и тип кристалла ПЛИС. В ниспадающем меню можно выбрать один из кристаллов текущего проекта. Для рассматриваемого примера это единственный чип 'ехаmpl' типа 'EP610ILC-10'; Color Legend - цветовая легенда. В этом разделе содержится перечень цветов, используемых для обозначения отдельных элементов модели представления кристалла (выводов, логических ячеек, связей), и смысловая нагрузка, передаваемая каждым цветом. Unassigned (Белый цвет) - 'неназначенный' узел, т.е. узел, который в настоящий момент не занят, не имеет функциональной нагрузки. Unrouted (Красный цвет) - 'неразведенный' узел, т.е. узел, размещенный на кристалле без учета некоторых связей, которые Компилятору не удалось провести. Проектировщик может попытаться самостоятельно распределить выводы и ячейки по чипу для устранения этой ситуации Nonassignable (Черный цвет) - 'неназначаемый' или фиксированный для данного чипа узел. К таким относятся выводы питания, 'земли' и другие зарезервированные выводы. Device-Wide Fun-Out (Голубой цвет) - разветвление в рамках всего кристалла, т.е. узел, являющийся источником для одного и более других узлов, находящихся в любой точке чипа. Row & Column FastTrack/Dedicated Input (тоже Голубой цвет) - узел, являющийся источником для одного и более узлов, расположенных как вдоль 'межстрочных', так и вдоль 'межстолбцовых' магистралей ('FastTrack'). Также этим цветом выделяется специализированный ('Dedicated') узел, автоматически являющийся источником для узлов, расположенных и вдоль строк и вдоль столбцов. Row FastTrack (Фиолетовый цвет) - узел, являющийся источником для одного и более узлов, расположенных вдоль 'межстрочнных' магистралей. Column FastTrack (Зеленый цвет) - узел, являющийся источником для одного и более узлов, расположенных вдоль, 'межстолбцовых' магистралей. Local LAB Fun-Out Only (Желтый цвет) - локальное разветвление, т.е. узел, являющийся источником для одного и более других узлов, находящихся в том же блоке логического массива. Unassigned Nodes & Pins - список 'неназначенных' узлов и выводов, т.е. таких узлов, которые либо вообще не удалось разместить на кристалле, либо не удалось провести все необходимые связи этих узлов. С помощью мыши можно 'перетащить' неразмещенный узел или вывод на любое из соответствующих свободных мест на схеме чипа. Возможна и обратная процедура. Удаляемые с кристалла узлы и выводы (подпункты 'Delete' и 'Cut' пункта 'Edit' Главного меню) также помещаются в список 'неназначенных'. . Selected Node(s) & Pin(s) - строка, содержащая имя или имена узлов и выводов, относящихся к выделенному в текущий момент выводу, логической ячейке, ячейке ввода-вывода, встроенной ячейке, строке, столбцу, блоку логического массива, встроенному блоку или чипу. В случае множественного выделения перечисленных объектов в строке появляется надпись 'Multiple Items', а список отдельных выводов и узлов представлен в ниспадающем меню. Расширить текущее рабочее окно и убрать верхнюю информационную часть (или произвести обратное действие) можно, поставив (или, соответственно, убрав) галочку напротив пункта Главного меню 'Layout\Full Screen'. Переключение между окнами осуществляется выбором соответствующего подпункта ('Device View' или 'LAB View') в пункте 'Layout' Главного меню. Помимо общей верхней части, оба рабочих окна имеют общую панель инструментов вдоль левого края, в состав которой входят стандартные кнопки увеличения, уменьшения масштаба и приведения размера изображения к размеру окна, а также специфические для Редактора подложки кнопки. Current Assignments Floorplan Command Shortcuts - команда выводит на дисплей схему подложки со всеми сделанными изменениями и корректировками, и включает режим редактирования. Last Compilation Floorplan Command Shortcuts - команда позволяет вернуться к схеме подложки, полученной в результате последней компиляции, и отключает режим редактирования. Эти две кнопки взаимодополняют и взаимоотменяют друг друга. Им соответствуют одноименные команды в пункте 'Layout' Главного меню. Заметим, что прежде чем получить возможность редактировать вновь откомпилированный проект, необходимо сохранить исходный вариант (команда Главного меню 'Assign\Back-Annotate Project'). Show Node Fan-In Command Shortcuts - команда показывает фиолетовыми линиями связи выбранного узла (узлов) с узлами, являющимися для него источниками сигналов. Show Node Fan-Out Command Shortcuts - команда показывает голубыми линиями связи выбранного узла (узлов) с узлами, являющимися для него приемниками сигналов. Show Path Command Shortcuts - команда показывает синими линиями все соединения между выделенными узлами. Рассмотрим рабочие окна Редактора подложки. Device View (Общий вид кристалла) - на этом виде представлено схематичное изображение чипа устройства и всех его выводов. Каждый вывод имеет свое имя (если он занят под какой-либо сигнал), номер ножки и цвет, характеризующий его согласно цветовой легенде. Имя и номер дублируются всплывающим текстом при наведении указателя мыши на соответствующий вывод. (Это свойство полезно при больших масштабах, когда текст на схеме становится плохо различимым). Двойной щелчок мышью по выводу вызывает появление справочного окна 'Routing Statistics' с подробной информацией об этом выводе. Это действие дублируется пунктом Главного меню 'Options\Routing Statistics...'. Также это окно, вызванное из рабочего окна 'LAB View', может предоставлять информацию о выделенной логической ячейке, ячейке ввода-вывода, встроенной ячейке или корзине назначения (см. далее) в данном чипе. Если включен режим редактирования (команда 'Current Assignments Floor-plan'), то можно 'перетаскивать' мышью выделенный сигнал с одного вывода на другой, а также в список 'неназначенных' выводов и обратно на чип. Различные настройки для одного или нескольких выделенных выводов можно сделать с помощью подпунктов 'Assign\...' Главного меню или всплывающего меню (при щелчке правой клавишей мыши). Переключение в рабочее окно 'LAB View' может осуществляться двойным щелчком мыши по свободной поверхности изображения кристалла (этот способ равносилен переключению через меню). LAB View (Визуализация блоков логических массивов) - это рабочее окно предоставляет более детальную информацию, отображая не только внешние выводы кристалла, но и его внутреннюю структуру, включая все логические ячейки, ячейки ввода-вывода, встроенные ячейки, блоки логических массивов и встроенные блоки массивов. Все эти объекты схематично разбиты по колонкам и столбцам (как правило, на пересечении колонки и столбца находится один блок логического массива). В небольших кристаллах блоки логических массивов отсутствуют и представлены только отдельные выводы и ячейки. Рабочее окно визуализации блоков логических массивов позволяет вводить и редактировать свойства и настройки отдельных выводов, ячеек, блоков, а также групп этих объектов. Для этой цели используются так называемые корзины (на схеме изображаются в виде параллелепипедов), в которые могут помещаться (методом 'перетаскивания') все или несколько объектов определенного типа. Соответственно этому, корзины также подразделяются на несколько типов: LAB (EAB) Assignment Bin - корзина настроек блока логического (встроенного) массива. На схеме находится в верхней или нижней части блока. Настройки, сделанные для этой корзины, могут относиться к одной или нескольким логическим (встроенным) ячейкам внутри соответствующего блока. Row (Column) Assignment Bin - корзина настроек строки (столбца). Находится ниже каждого символа строки (номера столбца). Узлы, помещаемые в корзину, могут представлять одну или несколько логических ячеек, ячеек ввода-вывода, встроенных ячеек из соответствующей строки (столбца). Также любой вывод из соответствующей строки (столбца) может быть помещен в корзину. "Any Row (Column)" Assignment Bin - корзина настроек для всех строк (столбцов). Находится в левой верхней части рабочего окна. Узлы, помещаемые в корзину, могут представлять одну или несколько логических ячеек, ячеек ввода-вывода, встроенных ячеек из любой строки (столбца). Также любой вывод из любой строки (столбца) может быть помещен в корзину. Device Assignment Bin - корзина, называемая AoD (Anywhere on Device), может включать любую ячейку или вывод из любого места кристалла. Расположена в левой верхней части рабочего окна. Если включен режим редактирования (команда 'Current Assignments Floor-plan'), то проектировщик может 'перетаскивать' мышью выделенный объект с одного посадочного места на другое, а также в список 'неназначенных' выводов и узлов или обратно на чип. Также методом 'перетаскивания' можно вывести (убрать) сигнал, формируемый ячейкой на (с) соответствующий этой ячейке внешний вывод. Различные настройки для одного или нескольких выделенных объектов или корзин можно сделать с помощью подпунктов 'AssignV..' Главного меню или всплывающего меню (при щелчке правой клавишей мыши по объекту). Переключение в рабочее окно 'Device View' может осуществляться двойным щелчком мыши по свободной поверхности изображения (этот способ равносилен переключению через меню). |