При использовании механизма атрибутов теряется универсальность модулей исходного описания. Для их последующего применения в других проектах, которые могут быть реализованы на базе ПЛИС различных семейств, каждый раз потребуется вносить изменения в выражения, содержащие временные и топологические параметры. Вынесение этих параметров в отдельные файлы (например, в файл временных и топологических ограничений проекта User Constraints File, UCF) позволяет преодолеть указанный недостаток [4]. Целью данной статьи является определения синтез процесса при использовании средств XST пакета WebPack ISE и ПЛИС семейства FPGA. Результатом является размещения и трассировки проекта в кристалл.
Использование файла UCF наиболее предпочтительно, так как при этом сохраняется универсальность модулей исходного описания, которые могут применяться в других проектах. Кроме того, для внесения корректив в параметры ограничений не требуется редактирование различных модулей исходного описания, достаточно лишь скорректировать содержимое файла UCF. Файл временных и топологических ограничений проекта имеет текстовый формат, каждая строка которого представляет собой выражение, описывающее соответствующий параметр. Для внесения информации в файл UCF можно использовать любой текстовый редактор, работающий под управлением операционных систем семейства Windows (по умолчанию используется «Блокнот») или специальную программу Constraints Editor пакета WebPACK ISE, которая на основании данных, указанных разработчиком в диалоговом режиме, автоматически формирует соответствующие выражения для описания ограничений проекта.
Основной материал
В файлах временных и топологических ограничений могут присутствовать параметры как локального, так и глобального характера. Объектами локальных ограничений являются отдельные экземпляры элементов описания проекта (цепи, компоненты, контакты). Глобальные параметры относятся ко всему проекту в целом или оказывают влияние на все элементы проекта, тип которых указан в соответствующем выражении. Большинство глобальных ограничений удобнее задавать в виде параметров выполняемого этапа (процесса) с помощью диалоговых панелей Навигатора проекта. Поэтому в файлах временных и топологических ограничений целесообразно задавать значения параметров, которые носят локальный характер, и глобальные ограничения, отсутствующие в диалоговых панелях опций процессов Навигатора проекта [1].
HDL-синтез проекта при использовании средств XST пакета WebPack ISE и ПЛИС семейства FPGA. Этап синтеза представляет собой процесс трансформации исходного HDL-описания проектируемого устройства в список цепей, выполненный на низком логическом уровне. Элементы низкоуровневого описания, формируемого в процессе синтеза, должны соответствовать архитектуре семейства ПЛИС, выбранного для реализации проекта. Синтезированный список цепей должен быть максимально адаптирован к ресурсам используемого кристалла, что обеспечивает его наиболее эффективное отображение средствами размещения и трассировки на физическом уровне. Поэтому результаты синтеза одного и того же проекта отличаются при использовании ПЛИС семейств CPLD и FPGA.
Процесс синтеза начинается с анализа исходного HDL-описания проектируемого устройства, в ходе которого делаются попытки выделения блоков кода, представимых в виде соответствующих макросов. Использование макросов часто позволяет повысить производительность разрабатываемого устройства, поэтому средства синтеза пытаются идентифицировать как можно большее их количество. Выделенные макросы в процессе последующей оптимизации, выполняемой на этапе синтеза, могут сохраняться в виде отдельных блоков или оптимизироваться совместно с окружающей логикой. Выбор одного из этих способов представления с целью достижения наилучших результатов оптимизации определяется типом и размером макроса. Управление процессом идентификации макросов различного типа (например, ПЗУ, ОЗУ, мультиплексоров, дешифраторов, приоритетных шифраторов, регистров сдвига) осуществляется с помощью соответствующих ограничений или параметров синтеза HDL options, которые детально будут рассмотрены ниже. Выделенные макросы впоследствии могут быть реализованы с помощью макрогенераторов, входящих в состав средств синтеза, размещения и трассировки.
Следующим шагом в процессе синтеза является оптимизация, которая выполняется в два захода. Вначале выполняется оптимизация каждого отдельного объекта или модуля HDL-описания. Затем производится их объединение и создается полный список соединений (netlist) проекта. Завершающим шагом является оптимизация полученного списка цепей [2].
Основным результатом этапа синтеза, выполняемого средствами Xilinx Synthesis Technology (XST), является формирования файла NGC, который представляет собой описание проекта на низком логическом уровне в двоичном формате. Управление процессом синтеза осуществляется с помощью параметров. Для установки требуемых значений необходимо в окне процессов (рисунок) щелчком левой кнопки мыши выделить строку Synthesize, после чего нажать кнопку расположенную на оперативной панели Навигатора проекта, или воспользоваться командой Properties контекстно-зависимого всплывающего меню, которое выводится при щелчке правой кнопки мыши. Диалоговая панель параметров синтеза, отображаемая на экране монитора, как и в случае использования кристаллов семейств CPLD, содержит три страницы, снабженные закладками с их названиями: «Synthesis options», «HDL options» и «Xilinx Specific options» [3].
Пример 1
Пример отчета о результатах выполнения процесса синтеза (раздел исходных данных).
Release 4.1WP0.x - xst E.30
Copyright (c) 1995-2001 Xilinx, Inc. All rights reserved.
-- > Parameter TMPDIR set to.
CPU : 0.00 / 1.32 s | Elapsed : 0.00 / 1.00 s
-- > Parameter overwrite set to YES
CPU : 0.00 / 1.32 s | Elapsed : 0.00 / 1.00 s
-- > Parameter xsthdpdir set to ./xst
CPU : 0.00 / 1.32 s | Elapsed : 0.00 / 1.00 s
-- > = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
---- Source Parameters
Input Format : VHDL
Input File Name : jc2.prj
---- Target Parameters
Target Device : xc2v40-cs144-5
Output File Name : jc2
Output Format : NGC
Target Technology : virtex2
---- Source Options
Entity Name : jc2
Automatic FSM Extraction : YES
FSM Encoding Algorithm : Auto
FSM Flip-Flop Type : D
Mux Extraction : YES
Resource Sharing : YES
Complex Clock Enable Extraction : YES
Multiplier Style : auto
ROM Extraction : Yes
RAM Extraction : Yes
RAM Style : Auto
Mux Style : Auto
Decoder Extraction : YES
Priority Encoder Extraction : YES
Shift Register Extraction : YES
Logical Shifter Extraction : YES
XOR Collapsing : YES
Automatic Register Balancing : No
---- Target Options
Add IO Buffers : NO
Equivalent register Removal : YES
Add Generic Clock Buffer(BUFG) : 16
Global Maximum Fanout : 100
Register Duplication : YES
Move First FlipFlop Stage : YES
Move Last FlipFlop Stage : YES
Slice Packing : YES
Pack IO Registers into IOBs : auto
Speed Grade : 5
---- General Options
Optimization Criterion : Speed
Optimization Effort : 1
Check Attribute Syntax : YES
Keep Hierarchy : No
Global Optimization : AllClockNets
Write Timing Constraints : No
Incremental Synthesis : NO
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Отчет содержит шесть основных разделов. В первом разделе сведения об исходных данных, при которых выполнялся процесс синтеза. Здесь указывается установленные значения параметров синтеза, рассмотренных выше, и некоторых общих параметров проекта (семейство и тип ПЛИС), а также форматы входных и выходных файлов. Второй раздел представляет информацию о компиляции и анализе объектов исходных HDL-описаний, которые производятся в соответствии с иерархической структурой проекта. Во второй части этого раздела отображается последовательность синтеза этих объектов. В третьем разделе расположены данные о макросах, идентифицированных средствами синтеза. Четвертый раздел отображает основные фазы оптимизации, выполняемой в процессе логического синтеза. Вначале производится оптимизация каждого иерархического модуля, после чего формируется общее описание проекта. Далее выполняется глобальная оптимизация проекта в целом. В зависимости от полученных результатов рассматриваемая секция отчета также может содержать предупреждения (WARNING), указывающие пути повышения уровня оптимизации проекта в процессе синтеза. В пятой части отчета приведены данные о выходных параметрах процесса синтеза и статистические характеристики полученных результатов (количество примитивов каждого типа, использованных в синтезированном описании проектируемого устройства). Шестая, заключительная часть отчета содержит информацию о временных параметрах синтезированного проекта.
Рабочая область основного окна Навигатора проекта пакета WebPack ISE
Вывод
Все временные характеристики, приведенные в разделе, указанные выше, носят предварительный характер. Более достоверная информация может быть получена только после выполнения этапа размещения и трассировки проекта в кристалл. Раздел временных характеристик включает в себя три секции: Clock Information, Timing Summary, Timing Detail. В первой секции (Clock Information) перечисляются сигналы синхронизации и типы буферных элементов, использованных для их формирования. Секция Timing Summary представляет предельные значения основных временных характеристик: максимальное значение тактовой частоты, минимальное время установления входных сигналов по отношению к сигналу синхронизации, максимальная задержка выходных сигналов по отношению к сигналу синхронизации, максимальная задержка распространения сигнала от входа до выхода через комбинационную логику. В секции Timing Detail дается детальное описание временных характеристик критических путей.
Список литературы
-
Зотов В. WebPACK ISE: Интегрированная среда разработки конфигурации и программирования ПЛИС фирмы Xilinx. Создание нового проекта // Компоненты и технологии. - 2001. - № 7.
-
Зотов В. Схемотехнический редактор пакета WebPACK ISE. Создание принципиальных схем и символов // Компоненты и технологии. - 2001. - №8.
-
Зотов В. Синтез, размещение и трассировка проектов, реализуемых на базе ПЛИС CPLD фирмы Xilinx, в САПР WebPACK ISE // Компоненты и технологии. - 2002. - №1.
- Зотов В. WebPACK ISE - свободно распространяемый пакет проектирования цифровых устройств на базе ПЛИС Xilinx. Создание нового проекта // Компоненты и технологии. - 2001. - № 6.