Использование САПР PlanAhead
для разработки цифровых систем на базе ПЛИС ХШпх
Илья ТАРАСОВ, к т. н.
В связи с переходом к новым нормам технологических процессов и увеличением объема ПЛИС фирма ХШпх обращает внимание разработчиков на повышение актуальности проектирования на уровне модулей и 1Р-ядер. Для эффективной работы с ПЛИС большого объема предлагается использовать САПР Р!апАИеа^ которая в новой версии существенно переработана. В эту САПР добавлены возможности, облегчающие ее использование в качестве системы сквозного проектирования на базе ПЛИС ХМшх.
Введение
В настоящее время основным инструментом проектирования для ПЛИС Xilinx является САПР ISE (Integrated System Environment). Это интегрированная среда разработки, обеспечивающая сквозной маршрут проектирования: от ввода описания до программирования микросхем.
Рассматривая FPGA серии 7, можно заметить, что только Virtex-7 является прямым продолжением существующей линейки высокопроизводительных ПЛИС, а два других семейства пришли на замену серии Spartan. Эти семейства имеют обозначения Artix и Kintex, причем первое из них предназначено для приложений с высоким тиражом и отличается малым энергопотреблением и невысокой стоимостью, а Kintex представляет собой семейство с уклоном в сторону цифровой обработки сигналов. Семейство Kintex-7 удачно вписывается в нишу, где требуется большое количество параллельно работающих блоков ЦОС по умеренной цене, а для систем с большим количеством аппаратных приемопередатчиков будут предназначены более дорогие Virtex-7. Важно, что ПЛИС семейства Kintex-7 имеют производительность основных программируемых ресурсов, аналогичную Virtex-7.
Анонсированные микросхемы Агйх-7 имеют минимальную логическую емкость 100 тыс. логических ячеек, поэтому для проектов, требующих меньшего объема ресурсов, рекомендуется использовать ПЛИС Spartan-6.
В качестве ключевого свойства нового поколения FPGA отмечается унификация программируемых ресурсов новых семейств. Специалисты ХШпх предполагают, что для нового поколения FPGA станет возможной быстрая миграция между семействами Virtex/Kintex/Artix, без необходимости существенной корректировки проекта.
В таблице приведены сводные характеристики трех новых семейств.
Все FPGA серии 7 имеют в своем составе блоки XtremeDSP, то есть устройства, способные выполнять умножение с накоплением на системной тактовой частоте. Все семейства ^Лех-7, КП:ех-7 и АГлх-7) используют одни и те же модификации DSP48E1, впервые введенные в Virtex-6. Такой компонент способен умножать 25-и 18-битные числа, тогда как более ранние блоки DSP48A1 в Spartan-6 ограничивались двумя 18-разрядными операндами. Повышение разрядности одного из операндов до 25 бит не только способствует увеличению динамического диапазона
представляемых значений, но и помогает с помощью всего двух умножителей 25x18 выполнять перемножение чисел с плавающей точкой с одинарной точностью (в формате short float). Для предыдущих поколений FPGA для этого потребовалось бы четыре умножителя, так что новая архитектура блока XtremeDSP способствует эффективной реализации цифровых фильтров, использующих более точное представление коэффициентов.
Для ПЛИС семейства Virtex-7 большого объема применяется новая технология Stacked Silicon Interconnect (SSI). Это вариант «2,5-мерной» микросхемы, при котором несколько монолитных кристаллов устанавливаются на дополнительную подложку, выполняющую коммутационные функции. В настоящее время такой подход используется для следующих ПЛИС: 7V1500T, 7V2000T, 7VX1140T, 7V290HT, 7V580HT, 7V870HT. В списке присутствуют, прежде всего, кристаллы наибольших объемов, а также микросхемы семейства HT, у которых на отдельном кристалле выполнены 28-гигабитные приемопередатчики.
В целом для FPGA серии 7 можно отметить следующие тенденции, способствующие их применению в цифровых системах нового поколения:
• унификация архитектуры логических ячеек, блоков цифровой обработки сигналов и блочной памяти;
• увеличение степени интеграции за счет развития ядер высокоскоростных последовательных приемопередатчиков, контроллеров PCI-Express и блоков xADC;
• снижение потребляемой мощности, упрощающее проектирование системы питания и улучшающее целостность сигналов;
• выделение семейства Kintex, ориентированного на цифровую обработку сигналов.
Таблица. Сводные характеристики семейств FPGA 7-й серии
Максимальное значение параметра Artix-7 Kintex-7 Virtex-7
Количество логических ячеек 352 000 480 000 2 000 000
Блочная память, Мбайт 19 34 68
Секции DSP 1040 1920 3600
Пиковая производительность цифровой обработки сигналов для фильтров с симметричными коэффициентами, GMAC/c 1248 2845 5335
Приемопередатчики 16 32 96
Максимальная скорость передачи, Гбит/с 6,6 12,5 28,05
Пиковая пропускная способность приемопередатчиков, Гбит/с 211 800 2784
Интерфейсы PCI Express Gen1x4 Gen2x8 Gen3x8
Скорость обмена по интерфейсам памяти, Мбит/с 1066 1866 1866
Количество внешних выводов 450 500 1200
Проблемы проектирования с использованием ПЛИО большого логического объема
На протяжении последних лет можно было постоянно наблюдать увеличение логической емкости, появление дополнительных модулей, расширяющих функциональность FPGA, увеличение тактовой частоты и снижение стоимости. В то же время накапливающиеся количественные изменения периодически приводят к качественному скачку в методиках проектирования цифровых систем на базе FPGA. Это показано на рис. 1.
Объем
¿г • Планирование иерархии проекта
/ • Планирование топологии кристалла N.
/ • Управление тактовыми регионами \
\ / • Синхронный стиль N. /
\У проектирования ) /
\ • 1Р-ядра ) /
Нормы техпроцесса
Рис. 1. Тенденции развития методик проектирования на базе FPGA
Если рассматривать предыдущее поколение FPGA, условно относящееся к 90-нм микросхемам (таким как Virtex-4 и Spartan-3), то можно также заметить, что рекомендации ХДтх по методикам проектирования уже включали в себя целый ряд пунктов. Для процессов с нормами 90 нм размеры кристаллов и логические объемы увеличились настолько, что обязательным действием при проектировании стала правильная организация тактовых сетей. В методических материалах ХДтх регламентируется использование аппаратных формирователей тактовых сигналов и выделенных цепей для их распространения по кристаллу FPGA, без чего даже при формальной корректности электрической схемы ее стабильная работа не может быть гарантирована. Этой же цели служит ориентация на синхронный стиль проектирования. Он предусматривает работу по одному перепаду тактового сигнала, при этом запрещено формирование производных сигналов синхронизации: сформированных логическими вентилями или полученных путем деления тактовой частоты на триггерах или счетчиках.
Следование этим правилам на практике не представляет существенных сложностей, однако заставляет разработчиков отказаться от рассмотрения современных FPGA как набора цифровых элементов, обеспечивающего реализацию произвольно выбранных схем. Ситуация не является специфичной для ПЛИС, поскольку переход к синхронному проектированию наметился для всей микроэлектронной отрасли при появлении микросхем с нормами техпроцесса 130-90 нм.
Другим направлением, призванным увеличить производительность разработчика, является использование программных 1Р-ядер. Термин «программные» означает, что речь идет не об аппаратно реализованных специализированных компонентах (например, блоках памяти), а о фрагментах схем, создаваемых путем конфигурирования логических ячеек ПЛИС. Очевидным преимуществом 1Р-ядер является повторное использование кода, что сокращает время на разработку. Кроме того, производитель, как правило, сопровождает их соответствующими проектными ограничениями, в результате применения которых на кристалле ПЛИС образуется предопределенное взаимное расположение компонентов 1Р-ядра, обеспечивающее гарантированные характеристики производительности.
Применение программных 1Р-ядер не противоречит использованию аппаратно реализованных блоков, удельный вес которых
увеличивается от поколения к поколению FPGA. В конечном итоге рекомендации по проектированию систем на базе FPGA сводятся к следующим пунктам:
1. Использование аппаратных ресурсов ПЛИС и 1Р-ядер с предопределенными характеристиками.
2. Следование методологии синхронного проектирования.
3. Настройка параметров САПР ПЛИС для достижения максимального эффекта.
Одним из наиболее важных моментов здесь является следование методологии синхронного проектирования, поскольку она подразумевает активное участие разработчиков аппаратуры в выборе и реализации определенных архитектурных и схемотехнических решений.
Методология синхронного проектирования
Как уже упоминалось выше, современные ПЛИС, как правило, построены на основе методологии синхронного проектирования, которая предусматривает следующее:
• Один тактовый сигнал, один перепад (все триггеры используют только фронт или только спад тактового сигнала).
• Используются D-триггеры (не защелки).
• Регистры на выходах блоков.
• Используются сигналы «разрешение счета» вместо управления тактовым сигналом.
• Схемы синхронизации для асинхронных сигналов. Не используются:
• тактовые сигналы, полученные с помощью логических вентилей, комбинирования разрядов счетчиков или делением частоты с помощью триггеров логических ячеек;
• локальные асинхронные сигналы сброса/установки.
Редко (по необходимости) используются глобальные сигналы сброса/установки.
Как можно убедиться, приведенные требования в основном концентрируются вокруг организации синхронной работы D-триггеров, без привлечения дополнительных асинхронных сигналов, немедленно изменяющих состояние схемы (например, асинхронные сброс и установка, формируемые логическими схемами тактовые сигналы). Следует также обратить внимание на важность правильной организации формирования и распространения тактовых сигналов.
Статистика авторизованного учебного центра ХДтх при компании «КТЦ "Инлайн Груп"» показывает, что высока доля российских разработчиков, которые не уделяют должного внимания рекомендациям ХДтх по использованию аппаратных формирователей тактового сигнала — компонентов DCM, PLL, СМТ. Это связано прежде всего с тем, что настройка этих ядер для пользовательского проекта представляет чуть большую сложность по сравнению с проектированием на базе языков описания аппаратуры, поэтому инженеры могут проигнорировать необходимость установки аппаратного тактового формирователя, что, безусловно, является ошибкой. При этом, однако, автоматически синтезируются глобальные тактовые буферы и используются выделенные линии распространения тактовых сигналов по кристаллу ПЛИС. Характеристики проекта, особенно умеренного размера, оказываются удовлетворительными, а проблемы проявляются в виде нестабильной работы системы при определенном соче-
вире □—[>- сшм сшэит О-КРВШ РЫ-ШСМ рэт юскер вире —► К логике
Рис. 2. Схема включения компонента формирования тактового сигнала
тании факторов (температура, разброс параметров микросхем, особенности трассировки при различных итерациях проектирования). Имеется достаточное количество прецедентов устранения подобных проблем путем установки в проект аппаратного формирователя тактового сигнала — DCM или PLL.
Требуемая схема включения блока формирования тактовых сигналов в его простейшем варианте показана на рис. 2. Генерация и настройка такого блока легко осуществляется с помощью инструмента Core Generator, входящего в состав средств разработки Xilinx.
Альтернативным вариантом, не предусматривающим использование Core Generator, является применение в проекте аппаратного примитива блока DCM, как показано в примере для FPGA семейства Spartan-6. В тексте листинга комментариями отмечены строки, которые подверглись изменениям по сравнению с шаблоном, приведенным в справочной системе:
CLKOUT_PHASE_SHIFT => "NONE", CLK_FEEDBACK => "1X",
DESKEW_ADJUST => "SYSTEM_SYNCHRONOUS", DFS_FREQUENCY_MODE => "LOW", DLL_FREQUENCY_MODE => "LOW", DSS_MODE => "NONE", DUTY_CYCLE_CORRECTION => TRUE, FACTORYJF => X"c080", PHASE_SHIFT => 0, STARTUP_WAIT => FALSE
)
port map (
CLK0 => buf_i, -- выходной сигнал
CLK180 => open,
CLK270 => open,
CLK2X => open,
CLK2X180 => open,
CLK90 => open,
CLKDV => open,
CLKFX => open,
CLKFX180 => open,
LOCKED => open,
PSDONE => open,
STATUS => open,
CLKFB => clk_fb, -- обратная связь
CLKIN => clk_in, -- входной сигнал (с внешнего генератора)
DSSEN => '0',
PSCLK => '0',
PSEN => '0',
PSINCDEC => '0',
RST => '0'
);
BUFG_inst : BUFG port map (
0 => clk_fb,
1 => buf_i
);
clk <= clk_fb; end Behavioral;
Можно убедиться, что, несмотря на кажущуюся сложность установки в проект блока DCM, реальный объем проводимой работы невелик.
САПР PlanAhead
Увеличение логической емкости ПЛИС с точки зрения методологии проектирования ставит целый ряд дополнительных
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
library UNISIM; -- подключение библиотеки аппаратных примитивов use UNISIM.VComponents.all;
entity clk_gen is Port ( clk_in : in STD_LOGIC; clk : out STD_LOGIC); end clk_gen;
architecture Behavioral of clk_gen is signal clk_fb, buf_i : std_logic; begin
DCM_SP_inst : DCM_SP generic map (
CLKDV_DIVIDE => 2.0 -- требуется установить для CLKDV CLKFX_DIVIDE => 1, -- требуется установить для CLKFX CLKFX_MULTIPLY => 4, -- требуется установить для CLKFX CLKIN_DIVIDE_BY_2 => FALSE, CLKIN_PERIOD => 10.0,
Рис. 3. Стартовый экран приложения PlanAhead
задач. От взаимного расположения компонентов на кристалле и их связи с выводами корпуса существенно зависят задержки распространения сигналов. Возрастание тактовых частот наряду с увеличением размеров кристалла заставляет тщательнее планировать такое расположение, поскольку может оказаться, что требуемые показатели не могут быть достигнуты исходя из совершенно объективных технических ограничений. Для устранения этих проблем необходимо вводить, например, проектные ограничения, которые включают в себя регионы или точные координаты размещения тех или иных компонентов проекта на кристалле ПЛИС. Однако выбор регионов, а тем более точных координат для тысяч (а с выходом Virtex-7 — и миллионов) логических ячеек является чрезмерно трудоемкой задачей, которую практически невозможно выполнить вручную, а тем более имея только умозрительные представления о требуемом взаимном расположении модулей. Для решения такой задачи необходимы новые инструменты проектирования, способные предоставить разработчику подробный анализ параметров проекта на различных уровнях детализации, а также обеспечить установку проектных ограничений.
Для проектирования, в основу которого положен анализ размещения компонентов системы на кристалле, предназначена новая среда разработки PlanAhead, появившаяся в 2008 году в качестве инструмента планирования топологии ПЛИС. В настоящее время PlanAhead является полноценной САПР, обеспечивающей весь маршрут проектирования: от описания схемы до программирования ПЛИС. Более того, следующее поколение САПР ПЛИС фирмы Xilinx основывается на маршруте, введенном в PlanAhead, поэтому освоение этой САПР представляется актуальным в ближайшее время.
Порядок работы с САПР PlanAhead
После старта приложения появляется стартовый экран приложения, как показано на рис. 3.
На рис. 4 приведен вид диалогового окна, позволяющего настроить тип проекта в зави-
щ
□
_I — . .
Рис. 4. Настройка типа проекта
Рис. 6. Вид окна САПР PlanAhead в режиме просмотра RTL-представления проекта
симости от уже имеющихся файлов. При создании нового проекта необходимо выбрать пункт Specify RTL Sources. Другие типы соответствуют следующим вариантам:
• Specify synthesized (EDIF or NGC) netlist — выбирается в случае, когда уже имеется проект, ранее созданный в другой САПР, и для него предоставлено описание в виде списка связей в формате EDIF или NGC.
• Create an I/O Planning Project — выбирается, если необходимо только определить расположение внешних выводов для готового проекта.
• Import ISE Place & Route Results — позволяет загрузить готовый проект, созданный в САПР ISE, и проанализировать его с помощью инструментов, предоставляемых PlanAhead.
треть небольшой проект bft_core, использующий маршрут на базе RTL. После выбора проекта рабочее окно САПР примет вид, показанный на рис. 5.
Инструментальная панель, размещенная слева, — это новый элемент интерфейса, который появился в версии 13.2. На ней размещены кнопки быстрого вызова основных процессов, требуемых на всех этапах маршрута проектирования системы на базе ПЛИС. Процессы разбиты на группы:
• Project manager содержит пункты, помогающие создать общую структуру проекта, добавить файлы, провести поведенческое моделирование.
• RTL Design содержит пункты, относящиеся к синтезу схемы.
• Netlist Design аналогичен группе процессов Implement в САПР ISE, здесь сгруппированы действия, относящиеся к размещению и трассировке элементов проекта.
• Implemented Design позволяет выполнять анализ проекта после трассировки. Важным отличием PlanAhead является возможность планирования синтеза и трассировки с последовательными запусками при различных сочетаниях настроек этих процессов. На рис. 8 показано, что кроме собственно синтеза кнопка Synthesize позволяет открыть меню настройки серии процессов синтеза (Create New Synthesis Runs...). В открывшемся «мастере» можно запланировать несколько вариантов синтеза (рис. 9).
В выпадающем меню, показанном на рис. 9, видно, что PlanAhead содержит варианты стратегий синтеза с заданными группами настроек. Кроме того, возможно создание стратегий пользователя (User
Рис. 8. Организация запуска нескольких вариантов синтеза
Рис. 7. Пример окна статистики проекта
• Import ISE Project — импортировать проект, созданный ранее в САПР ISE, и продолжить работу с ним в PlanAhead. В составе САПР имеются примеры проектов, которые доступны в пункте Open Example Projects на рис. 3. Выбрав один из них, можно освоить маршрут проектирования. В качестве примера можно рассмо-
Рис. 9. Настройка вариантов синтеза
Рис. 10. Вид САПР после выполнения процесса Implement. Показано окно Device
Defined Strategies). Необходимость проверки различных сочетаний параметров связана с неоднозначностью влияния ряда настроек синтезатора на эффективность получаемой схемы. Например, использование регистров, встроенных в блоки ввода/вывода, может приводить как к улучшению параметров схемы, так и к неприемлемому снижению тактовой частоты. Это связано с тем, что регистры, размещенные синтезатором в блоках ввода/вывода, могут оказаться слишком далеко от компонентов внутри матрицы логических ячеек, с которыми они должны соединяться. Впоследствии (на этапе размещения и трассировки) переместить эти регистры ближе к связанным с ними элементам уже не удается. Возможным решением проблемы мог бы стать их перенос в один из регистров логических ячеек, для чего и нужен вариант синтеза с отключенной настройкой «Упаковка регистров в блоки ввода/вывода». Аналогичные эффекты можно наблюдать и для ряда других настроек синтеза. Такие приемы работы с проектом можно использовать и в САПР ISE, однако в этой САПР для получения различных вариантов синтеза необходимо вручную изменять настройки и повторно запускать процесс Synthesize.
После реализации проекта (выполнения процесса Implement) становится доступной информация о расположении компонентов на кристалле, которая показана на виде Device (рис. 10). В этом режиме разработчик может проанализировать характеристики проекта и выделить цепи с наибольшей задержкой, для которых и следует выполнять изменения.
В группу процессов Program and Debug сведены действия по подготовке конфигурационного файла для ПЛИС и программированию (выполняемому отдельной утили-
Рис. 11. Действия после выполнения процесса Implement
той iMPACT, общей для ISE и PlanAhead). Кроме того, из этого же списка процессов (рис. 11) можно запустить анализатор сигналов ChipScope, выполняющий захват и визуализацию внутренних сигналов ПЛИС в режиме реального времени.
Рис. 12. Выбор раскладок (layouts) окна САПР
На предыдущих рисунках было видно, что PlanAhead предлагает варианты расположения окон и инструментальных панелей в разных режимах работы. В целом эти варианты, называемые также «раскладками» (layouts), сведены в выпадающий список, размещенный на панели управления, как показано на рис. 12. В этом списке можно выбрать готовые варианты расположения окон, предлагаемые для типичных задач проектирования. Выбрав пункт Save As New Layout, можно сохранить текущий набор окон и панелей в качестве пользовательского шаблона.
Планирование иерархии проекта
Планирование иерархии проекта — один из организационных подходов к разработке сложного проекта. Наличие модуля верхнего уровня является естественным для существующих маршрутов проектирования ПЛИС, однако для удобства проект разбивают на более мелкие модули. При таком подходе становится возможной коллективная работа над проектом, разделение функций разработчиков и тестеров между сотрудниками. В итоге повышается производительность труда коллектива разработчиков, проект становится более простым для верификации и сопровождения. Однако возникает закономерный вопрос: до какого уровня детализации необходимо опуститься, добавляя вложенные модули? С одной стороны, большое количество мелких модулей усложняет анализ проекта, с другой — слишком крупные модули сложны для верификации и отладки сами по себе. Однозначный ответ на этот вопрос дать, видимо, невозможно. Ни количество
Рис. 13. Иерархическое представление проекта в САПР PlanAhead
Рис. 14. Размещение проекта на кристалле ПЛИС до и после введения проектных ограничений
Рис. 15. Выбор компонентов для P-блока
Рис. 16. Задание координат P-блока
модулей в проекте, ни их размер не являются однозначными критериями для выбора структуры проекта. Например, IP-ядро цифрового фильтра или модуля БПФ может занимать много ресурсов ПЛИС, но при этом быть достаточно простым для верификации. Корректнее было бы в процессе проектирования анализировать иерархию модулей, избегая чрезмерной несбалансированности получающегося для проекта дерева.
PlanAhead использует иерархическое представление в качестве одного из способов визуализации структуры проекта, как показано на рис. 13. Это дает возможность не только проанализировать, насколько сбалансированным является текущее разбиение, но и при необходимости переключиться на любое из доступных представлений соответствующего модуля, например топологическое.
Планирование топологии кристалла
Кроме логического разбиения проекта на модули, для больших ПЛИС часто необходимо выполнить и размещение модулей проекта на кристалле. Пример размещения модулей показан на рис. 14. В данном случае целью введения проектных ограничений является достижение компактного расположения модулей. На варианте размещения, показанном справа, можно видеть, что в левом нижнем углу кристалла имеется область, свободная от компонентов проекта. В этой области можно, например, компактно разместить еще один модуль.
Планирование топологии проекта выполняется в режиме Floorplanning. Новой функцией, введенной в PlanAhead по сравнению с инструментом Floorplanner, имевшемся в предыдущих версиях САПР ISE, является динамическое управление структурой проекта с помощью так называемых P-блоков (Pblocks). Эти блоки служат для группирования компонентов проекта и задания для них общих проектных ограничений. В случае если один из модулей оказывается слишком велик и автоматическое размещение его компонентов не устраивает разработчика, такой модуль может быть разбит на несколько P-блоков. Может оказаться так, что более эффективное взаимное расположение P-блоков человек определит интуитивно, анализируя ключевые особенности схемы. Автоматическое определение эффективного расположения модулей на верхних уровнях иерархии проекта представляет некоторую сложность в силу нелинейного роста объема вычислений.
Создание и размещение P-блоков выполняется с помощью графического интерфейса PlanAhead, как показано на рис. 15. Выбрав компоненты в списке Netlist (на рис. 15 показан список с выделенным компонентом arnd1) и нажав кнопку Draw Pblock (на рис. 15 обведена), можно с помощью мыши «нарисовать» на кристалле прямоугольник, в котором должны размещаться компоненты но-
вого P-блока. На рис. 16 показан результат помещения P-блока в определенное место кристалла.
Свойства созданного P-блока будут показаны на панели Pblock Properties. Наиболее важной информацией является сравнение количества ресурсов, требуемых блоку (после синтеза они становятся известны) и находящихся в выбранном прямоугольнике. Эти ресурсы не передаются в исключитель-
ное пользование Р-блоку, границы таких блоков могут перекрываться. Смысл устанавливаемых проектных ограничений заключается в том, что никакие компоненты Р-блока не могут располагаться за пределами заданных разработчиком координат. Это предотвращает попытки САПР устанавливать критичные к времени распространения сигналов компоненты далеко от связанных с ними элементов схемы.
рис. 17. Совместный анализ размещения внешних выводов и модулей на кристалле ПЛИС
Все проектные ограничения записываются в файл мс^ САПР PlanAhead не использует каких-либо скрытых от разработчика файлов для хранения настроек. Работа с проектом при необходимости может быть продолжена и в САПР КЕ. Таким образом, роль PlanAhead в случае установления проектных ограничений концентрируется на предоставлении графического интерфейса и средств анализа проекта.
Пример сохраняемых проектных ограничений для рис. 16:
INST "arnd1" AREA_GROUP = "pblock_arnd1"; AREA_GROUP "pblock_arnd1" RANGE=SLICE_X0Y52SLKE_X17Yn9, AREA_GROUP "pblock_arnd1" RANGE=DSP48_X0Y22:DSP48_X0Y47; AREA_GROUP "pblock_amdr RANGE=RAMB18_X0Y22RAMB18_X0Y47; AREA_GROUP "pblock_amdr RANGE=RAMB36_X0Y11:RAMB36_X0Y23;
Вопрос о том, какие именно компоненты, проекты и узлы схем должны сопровождаться установкой проектных ограничений, является предметом отдельного рассмотрения. Большой объем современных ПЛИС FPGA заставляет с большой осторожностью говорить о гарантированной возможности построения оптимальных решений по взаимному расположению компонентов. Однако эта же неопределенность позволяет говорить и о том, что квалификация разработчика, его аналитические способности и хорошее владение инструментами проектирования способны оказать существенное влияние на характеристики проекта, создаваемого на базе ПЛИС.
Управление тактовыми регионами
При работе с ПЛИС большой площади возникает дополнительная проблема организации распространения тактовых сигналов. В сложном проекте могут присутствовать несколько тактовых сигналов, и между ними не может быть установлено однозначного соотношения, которое могло бы быть использовано для надежной синхронизации. На рис. 17 показаны представления проекта в видах Device и Package. Выбор тактового региона в виде Device позволяет наблюдать соответствующие ему внешние
выводы корпуса в виде Package. Это позволяет планировать размещение компонентов, которые должны обрабатывать эти сигналы, и задавать проектные ограничения таким образом, чтобы программируемые элементы ПЛИС, непосредственно связанные с какими-либо выводами, находились в том же регионе.
Важность планирования тактовых регионов объясняется также тем, что в каждом регионе ввода/вывода имеются специальные выводы, например clock-capable. Это выводы ПЛИС, которые можно использовать для подачи тактовых сигналов на соответствующий регион (а также два соседних региона). На рис. 18 показана схема тактирования десериализаторов с локальными тактовыми буферами. Особенностью десериализаторов, встроенных в буферы ввода/вывода, является возможность ввода последовательного потока данных на высокой частоте (1,2-1,4 ГГц для Virtex). Однако для этого требуется использовать тактовые буферы, как показано на рис. 18.
Входные данные, приходящие на вход Data, поступают на вход десериализатора, который тактируется сигналом Clk, приходящим на специальный Clock Capable вход (CCIO). Поданный таким образом тактовый сигнал может быть направлен на буфер BUFIO, использующийся для тактирования десериали-затора, и BUFR (Regional Buffer), тактирующий ячейки ПЛИС. Однако для реализации такой схемы необходимо, чтобы входы дан-
рис. 18. Использование региональных тактовых буферов для построения схемы тактирования входного десериализатора
рис. 19. Пример проекта, использующего несколько тактовых сигналов
Процессор Microblaze и периферия
ных и тактового сигнала находились в одном регионе. Определить ошибку становится возможным только на этапе Implement, поэтому при разработке сложных устройств имеется определенный риск того, что печатная плата, заложенная до полной проверки возможности трассировки всех линий, помешает реализовать проект.
Пример проекта, использующего несколько тактовых сигналов, показан на рис. 19. На этом рисунке глобальный тактовый сигнал умеренной частоты нужен для тактирования софт-процессора Microblaze, осуществляющего общее управление проектом. При этом внешние интерфейсы тактируются собственными сигналами, подаваемыми на clock-capable входы. Переход между тактовыми регионами выполняется с помощью двухпортовой памяти, у которой каждый порт использует независимый тактовый сигнал.
Маршрут проектирования с использованием PlanAhead
Изменение пользовательского интерфейса является следствием нацеленности PlanAhead на анализ временных характеристик проекта и реализацию сценариев «что будет, если...». Поэтому практические рекомендации по маршруту проектирования на базе FPGA большого объема нуждаются в некоторой корректировке по сравнению с тем, что предполагается в настоящее время в САПР ISE.
На рис. 20 показан маршрут проектирования в САПР ISE. Предполагается, что этапы синтеза и реализации (Place & Route, P&R) проекта идут последовательно. Это заставляет выбирать единственное оптимальное решение после синтеза, с которым и будут проводиться работы по реализации проекта. В то же время уже сейчас в составе ISE имеются инструменты автоматизации множественных запусков процессов синтеза и реализации с перебором стратегий и сравнительным анализом получаемых результатов. Данный подход и получил развитие в PlanAhead, что показано на рис. 21.
На этом рисунке видно, что и в процессе синтеза, и в процессе реализации рассматриваются альтернативные варианты сочетаний настроек соответствующих алгоритмов САПР. Маршрут, предлагаемый PlanAhead, может повторять ISE для несложных проектов. Однако при возрастании сложности может потребоваться сравнительный анализ результатов, получаемых при различных настройках синтеза. Для этого может быть использован маршрут, показанный на рис. 21 как «экспериментальный». Проект выполняется для нескольких сочетаний параметров синтеза и реализации.
При дальнейшем увеличении сложности проекта может потребоваться переход к итеративному порядку проектирования, для чего потребуется анализ проекта с коррекцией по его результатам как настроек
rtlJ Lj^J Разработка и анализ Основной маршрут Синтез p&r j--► Анализ результатов
1 Bit
[ucfj < Этчеты ise У
рис. 20. Маршрут проектирования на базе ПЛИС с использованием САПР ^
рис. 21. Маршрут проектирования на базе ПЛИС с использованием САПР PlanAhead
синтеза или реализации, так и размещения модулей на кристалле. При необходимости может быть использовано и переназначение внешних выводов, если это положительно повлияет на задержки распространения сигналов по кристаллу. Во всех случаях PlanAhead обеспечивает совместный анализ размещения, используемых ресурсов, степени связи модулей, задержек и других параметров проекта.
Практические шаги
Ожидаемая смена основного маршрута проектирования является весомой причиной перехода к PlanAhead в качестве основного инструмента проектирования на базе ПЛИС ХДтх. Возможность импорта проектов из КЕ позволяет уже сейчас производить анализ существующих разработок в порядке освоения интерфейса САПР PlanAhead и маршрута проектирования в ней. Хорошим стартовым решением является выполнение учебных проектов, содержащихся в руководстве, встроенном в справочную систему. Кроме того, ряд руководств [1, 2] освещают отдельные вопросы работы в PlanAhead. Фирма ХШпх также предлагает курсы повышения квалификации, как начального, так
и углубленного уровня, которые можно пройти и в России в авторизованном учебном центре Xilinx — КТЦ «Инлайн Груп».
Заключение
Можно констатировать, что с выходом нового поколения ПЛИС Xilinx предполагается и переход к новому поколению САПР, основанному на маршруте проектирования, который учитывает специфику современных FPGA большого объема. В новой САПР делается существенный упор на анализ временных характеристик проекта и расположения компонентов на кристалле ПЛИС. Практической рекомендацией для разработчиков можно считать начало работы с PlanAhead в качестве основного инструмента проектирования на базе ПЛИС Xilinx. ■
Литература
1. PlanAhead user guide — http://www.xilinx.com/ support/documentation/sw_manuals/xilinx 13_4/ PlanAhead_UserGuide.pdf
2. Hierarchical design methodology guide — http:// www.xilinx.com/support/documentation/ sw_manuals/xilinx13_4/ffierarchical_Design_ Methodology_Guide.pdf