Конвертирование проектов цифровых устройств, разрабатываемых на основе ПЛИС и полностью программируемых систем на кристалле фирмы Xilinx в среде ISE Design Suite, в формат САПР Vivado Design Suite. Часть 3
Установка параметров размещения и трассировки конвертированного проекта разрабатываемого устройства или встраиваемой микропроцессорной системы
Для получения доступа к параметрам размещения и трассировки импортированного проекта в кристалле нужно расположить курсор на пиктограмме Ico11.bmp, которая находится в левой части диалоговой панели Project Settings (рис. 18), и щелкнуть левой кнопкой мыши или воспользоваться командой ImplementationSettings, представленной в разделе Project Manager панели управления Flow Navigator (рис. 14). Параметры процесса реализации конвертированного проекта приведены на странице Implementation диалоговой панели Project Settings, вид которой представлен на рис. 38.
Прежде всего, на этой странице следует указать набор временных и топологических ограничений импортированного проекта, который будет использоваться по умолчанию в процессе размещения и трассировки в кристалле. Требуемый набор временных и топологических ограничений устанавливают с помощью поля выбора значения параметра Default Constraint Set. Выпадающий список этого поля выбора включает в себя названия модулей временных и топологических ограничений, предусмотренных в составе конвертированного проекта.
Далее необходимо в поле выбора значения параметра Strategy задать требуемую стратегию процесса размещения и трассировки импортированного проекта в кристалле программируемой логики или расширяемой вычислительной платформы.
Выпадающий список возможных значений этого поля выбора разбит на два раздела — User DefinedStrategies и Vivado Strategies. В разделе User Defined Strategies приведены названия стратегий процесса реализации, созданных разработчиком. Изначально в этом разделе отсутствует информация о пользовательских стратегиях, как показано на рис. 38. После формирования разработчиком собственных стратегий их названия появятся в указанном разделе выпадающего списка возможных значений параметра Strategy.
Раздел Vivado Strategies включает в себя названия стратегий процесса размещения и трассировки в кристалле, которые предусмотрены в составе САПР Vivado Design Suite. В последней версии этой системы автоматизированного проектирования список предлагаемых стратегий процесса реализации существенно расширен и включает в себя 22 варианта. Предоставляемые варианты стратегий разделены на пять категорий в соответствии с критерием оптимизации: Performance, Area, Power, Flow и Congestion. К категории Performanceотносятся стратегии процесса размещения и трассировки проекта в кристалле, нацеленные на повышение производительности разрабатываемого устройства или встраиваемой микропроцессорной системы. Категория Area включает в себя стратегии, обеспечивающие минимизацию числа таблиц преобразования LUT, которые используются для реализации конвертированного проекта. Категорию Power образуют стратегии полной оптимизации потребляемой мощности реализуемого устройства или системы. Категория Flow объединяет стратегии, позволяющие сократить время выполнения процесса размещения и трассировки проекта в кристалле за счет соответствующего управления отдельными фазами этого процесса. В состав категории Congestion входят стратегии, направленные на уменьшение перегруженности отдельных регионов ПЛИС и устранение связанных с этим проблем. Название категории используется в качестве префикса в наименовании соответствующей стратегии, что облегчает выбор требуемых значений параметров процесса размещения и трассировки импортированного проекта в кристалле.
По умолчанию в качестве стратегии процесса реализации конвертированного проекта предлагается вариант Vivado Implementation Defaults, обеспечивающий выполнение установленных временных ограничений при сравнительно небольшом времени производимых вычислений. При необходимости более глубокой оптимизации по заданному критерию целесообразно выбрать одну из следующих стратегий. Вариант Performance_Explore соответствует стратегии применения более сложных алгоритмов оптимизации, размещения и трассировки для достижения наилучших результатов этого процесса. Использование стратегии Performance_RefinePlacement позволяет достичь более высокого уровня оптимизации, выполняемой после размещения проекта в кристалле. Стратегия Performance_WLBlockPlacement предоставляет возможность игнорирования временных ограничений при размещении элементов, реализуемых на базе модулей блочной памяти Block RAM и аппаратных секций цифровой обработки сигналов. Вариант Performance_WLBlockPlacementFanoutOpt представляет собой сочетание предыдущей стратегии с принудительным сокращением разветвлений по выходу за счет дублирования соответствующих регистров и вентилей. Стратегия Performance_LateBlockPlacement заключается в использовании приближенного (аппроксимированного) расположения модулей блочной памяти Block RAM и аппаратных секций цифровой обработки сигналов до последней фазы размещения проекта в кристалле с целью получения оптимальных результатов этого процесса. Варианты Performance_NetDelay_high, Performance_NetDelay_medium и Performance_NetDelay_low позволяют скомпенсировать оптимистичные оценки задержек распространения сигналов за счет увеличения цены задержек в цепях с большой протяженностью и большим количеством разветвлений. При этом стратегия Performance_NetDelay_high соответствует наиболее высокому уровню пессимистичности оценок задержек, Performance_NetDelay_medium — среднему, а Performance_NetDelay_low — низкому. Вариант Performance_ExploreSLLs предполагает проведение исследования переназначения кристаллов SLR (Super Logic Region), которые входят в состав ПЛИС, выполненных по технологии SSI (Stacked Silicon Interconnect) [28–30], с целью поиска возможных временных резервов.
При выборе стратегии Area_Explore используются усложненные алгоритмы оптимизации, в ходе выполнения которых достигается минимально возможное число таблиц преобразования LUT, задействованных для реализации импортированного проекта. При установке стратегии Power_DefaultOpt в процессе размещения и трассировки проекта в кристалле выполняется фаза дополнительной оптимизации, цель которой — снижение уровня энергопотребления разрабатываемого устройства или встраиваемой микропроцессорной системы.
Вариант Flow_RunPhysOpt отличается от стратегии Vivado Implementation Defaults выполнением фазы оптимизации временных параметров проектируемого устройства или встраиваемой микропроцессорной системы на физическом уровне. Применение стратегии Flow_RuntimeOptimized позволяет сократить время выполнения процесса реализации конвертированного проекта за счет некоторого снижения производительности разрабатываемого устройства или встраиваемой микропроцессорной системы и исключения фазы оптимизации временных параметров на физическом уровне. Стратегия Flow_Quick запрещает проведение какой-либо оптимизации в ходе процесса размещения и трассировки проекта в кристалле с целью минимизации времени выполнения этого процесса.
Использование стратегий Congestion_SpreadLogic_high, Congestion_SpreadLogic_medium и Congestion_SpreadLogic_low приводит к перераспределению логики, задействованной для реализации проекта, по всем кристаллам SLR, что позволяет избежать образования перегруженных регионов. Перечисленные варианты стратегий отличаются степенью перераспределения логики — высокой, средней и низкой. Стратегия Congestion_SpreadLogicSLLs осуществляет назначение сверхдлинных межкристальных соединений (Super Long Line, SLL) таким образом, чтобы обеспечить возможность перераспределения логики, задействованной для реализации проекта, по всем кристаллам SLR, входящим в состав ПЛИС, выполненных по технологии SSI (рис. 39), с целью предотвращения формирования перегруженных регионов. При выборе вариантаCongestion_BalanceSLLs назначение SLL производится так, чтобы исключить несоразмерно огромное количество линий связи между двумя кристаллами SLR. Стратегия Congestion_BalanceSLRs заключается в равномерном размещении элементов разрабатываемого устройства или встраиваемой микропроцессорной системы по кристаллам SLR, которые образуют архитектуру ПЛИС, производимых по технологии SSI. Вариант Congestion_CompressSLR устанавливает стратегию размещения элементов проекта в минимально возможном количестве кристаллов SLR, чтобы сократить число требуемых SLL.
Если ни один из рассмотренных вариантов полностью не соответствует требованиям реализации проекта, то можно сформировать собственную стратегию этого процесса на основе одной из предлагаемых САПР Vivado Design Suite, установив необходимые значения отдельных параметров. Процесс реализации импортированного проекта в интегрированной среде разработки Vivado Integrated Design Environment в общем случае включает в себя следующие фазы:
- логическая оптимизация проекта (Opt Design);
- оптимизация элементов проекта с целью снижения потребляемой мощности (PowerOptDesign);
- размещение проекта в кристалле (PlaceDesign);
- оптимизация энергопотребления после размещения проекта в кристалле (PostPlacePowerOptDesign);
- оптимизация временных параметров разрабатываемого устройства или системы на физическом уровне (PhysOptDesign);
- трассировка проекта в кристалле программируемой логики или расширяемой вычислительной платформы (RouteDesign).
Перед активизацией и после завершения каждой из перечисленных фаз процесса размещения и трассировки могут автоматически выполняться файлы сценариев, содержащих последовательность директив языка Tcl, идентификаторы которых указываются с помощью соответствующей пары параметров — tcl.pre и tcl.post (рис. 38). Фазы оптимизации в процессе реализации импортированного проекта не являются обязательными и могут выполняться выборочно. Для осуществления какой-либо из фаз оптимизации необходимо установить индикатор соответствующего параметра is_enabled в положение «Включено». Если необходим более глубокий анализ результатов оптимизации, рекомендуется воспользоваться опцией командной строки —verbose. По умолчанию индикатор состояния этого параметра находится в выключенном положении, чтобы уменьшить объем сообщений, отображаемых в процессе размещения и трассировки. Для получения детальной информации о проведении оптимизации проекта следует переключить этот индикатор в состояние «Включено».
Выбор требуемого режима выполнения различных фаз в процессе реализации конвертированного проекта осуществляется с помощью соответствующих директив, которые указываются с помощью опции командной строки —directive. Для фазы логической оптимизации предусмотрены следующие варианты директив:
- Explore— устанавливает режим использования более сложных алгоритмов логической оптимизации с многократными проходами (итерациями).
- ExploreArea— задает углубленный итерационный режим логической оптимизации с акцентом на минимизацию объема используемой комбинационной логики.
- AddRemap— предписывает использовать режим логической оптимизации, установленный по умолчанию, с дополнительной возможностью перераспределения таблиц преобразования LUT.
- ExploreSequentialArea— включает углубленный итерационный режим логической оптимизации с акцентом на минимизацию количества используемых триггеров и объема сопряженной с ними комбинационной логики.
- RuntimeOptimized— задействует алгоритмы логической оптимизации с минимальным количеством итераций, позволяющие сократить время выполняемых вычислений за счет снижения производительности разрабатываемого устройства или встраиваемой микропроцессорной системы.
Для фазы размещения проекта в кристалле предлагается наиболее обширный набор возможных директив:
- Explore— устанавливает наивысший уровень эффективности выполнения процедуры размещения проекта в кристалле программируемой логики или расширяемой вычислительной платформы, предоставляющий возможность достижения наиболее высоких результатов за счет применения усовершенствованных алгоритмов (соответственно, за счет увеличения времени выполнения рассматриваемой фазы).
- WLDrivenBlockPlacement— предписывает использовать алгоритмы размещения модулей блочной памяти и аппаратных секций цифровой обработки сигналов, обеспечивающие минимальную длину линий соединений этих элементов.
- LateBlockPlacement— позволяет отложить точное размещение модулей блочной памяти и аппаратных секций цифровой обработки сигналов до финальной стадии рассматриваемой фазы процесса реализации.
- ExtraNetDelay_high, ExtraNetDelay_medium и ExtraNetDelay_low— увеличивают с различной степенью пессимизма оценочные значения задержек распространения сигналов для цепей с большой протяженностью и большим количеством разветвлений (ExtraNetDelay_high соответствует высокому уровню пессимизма, ExtraNetDelay_medium— среднему и ExtraNetDelay_low — низкому).
- SpreadLogic_high, SpreadLogic_medium и SpreadLogic_low— устанавливают различные уровни распределения логики, задействованной для реализации проекта, по всему кристаллу (SpreadLogic_highсоответствует высокой степени распределения логики по всему кристаллу, SpreadLogic_medium— средней, SpreadLogic_low — низкой).
- ExtraPostPlacementOpt— задает максимально высокий уровень оптимизации, выполняемой после размещения проекта в кристалле.
- SSI_ExtraTimingOpt— предписывает использование альтернативных алгоритмов распределения ресурсов, применяемых для реализации проектируемого устройства или встраиваемой микропроцессорной системы, по кристаллам SLR, которые обеспечивают выполнение временных ограничений в ПЛИС, производимых по технологии SSI.
- SSI_SpreadSLLs — обеспечивает выделение дополнительных областей в кристаллах SLR для регионов с большим количеством соединений в ПЛИС, выполненных по технологии SSI.
- SSI_BalanceSLLs— предоставляет возможность достижения баланса используемых кристаллов SLR и сверхдлинных межкристальных соединений SLL в ПЛИС, производимых по технологии SSI.
- SSI_BalanceSLRs— позволяет сбалансировать число используемых ячеек в различных кристаллах SLR при распределении ресурсов, используемых для реализации проектируемого устройства или встраиваемой системы в ПЛИС, выполненных по технологии SSI.
- SSI_HighUtilSLRs— предписывает при размещении проекта в наибольшей степени использовать логические ресурсы в каждом кристалле SLR, входящем в состав ПЛИС, производимых по технологии SSI.
- RuntimeOptimized— разрешает применение алгоритмов размещения проекта в кристалле с наименьшим количеством итераций для сокращения времени выполняемых вычислений за счет снижения производительности разрабатываемого устройства или встраиваемой микропроцессорной системы.
- Quick— устанавливает максимально высокую скорость выполнения фазы размещения проекта в кристалле за счет сокращения учитываемых временных ограничений до минимально требуемого уровня.
- Default— предписывает запуск процедуры размещения проекта в кристалле при значениях параметров управления, установленных по умолчанию.
Кроме перечисленных директив, для управления фазой размещения проекта в кристалле предусмотрены опции командной строки —no_timing_driven и —no_drc. Параметр —no_timing_driven определяет, будет ли при выполнении этой фазы предоставляться приоритет для критических цепей (сигналов), информация о которых представлена в виде соответствующих временных ограничений. По умолчанию индикатор состояния этого параметра находится в положении «Выключено», что разрешает учет критических цепей в процессе размещения проекта в кристалле.
Перед запуском процедуры размещения проекта в кристалле по умолчанию автоматически активизируются средства контроля Design Rule Checks (DRCs). Опция командной строки —no_drc предоставляет возможность запрета автоматического использования средств DRCs. Для этого следует установить индикатор состояния указанного параметра в положение «Выключено».
Выпадающий список возможных директив для фазы оптимизации временных параметров разрабатываемого устройства или встраиваемой микропроцессорной системы на физическом уровне содержит следующие варианты:
- Explore— запускает различные алгоритмы на многократных проходах оптимизации временных параметров на физическом уровне, включая дублирование цепей с большим количеством разветвлений.
- ExploreWithHoldFix— предоставляет возможность применения различных алгоритмов на многократных итерациях в процессе оптимизации временных параметров, включая фиксацию нарушений времени удержания и дублирование цепей с большим количеством разветвлений.
- AggressiveExplore— отличается от варианта Explore более высокой настойчивостью достижения поставленной цели в процессе оптимизации.
- AlternateReplication— позволяет использовать различные алгоритмы при дублировании критических ячеек.
- AggressiveFanoutOpt— разрешает использовать различные алгоритмы для оптимизации цепей с большим количеством разветвлений.
- AlternateDelayModeling— предписывает выполнять оптимизацию временных параметров, используя альтернативные алгоритмы для оценки значений задержек распространения сигналов по цепям.
- Default— устанавливает режим выполнения оптимизации временных параметров на физическом уровне со значениями параметров управления, предлагаемыми по умолчанию
- AddRetime— отличается от варианта Default поддержкой возможности изменения расположения триггеров относительно комбинационной логики.
В выпадающем списке возможных директив для фазы трассировки проекта в кристалле представлены следующие варианты:
- Explore— разрешает средствам трассировки проводить исследование различных критических путей после получения первоначальных результатов.
- NoTimingRelaxation— запрещает средствам трассировки снижать уровень выполнения временных ограничений для достижения полной разводки цепей проекта.
- MoreGlobalIterations— предписывает выполнение детального временного анализа на всех стадиях фазы трассировки и дополнительных итераций в процессе разводки цепей, даже если улучшение временных параметров, достигаемое при этом, незначительное.
- HigherDelayCost— разрешает в процессе трассировки изменение внутренних весовых коэффициентов, акцентируя внимание на задержках распространения сигналов, для получения компромиссного варианта между достижением лучшей производительности разрабатываемого устройства или встраиваемой микропроцессорной системы и временем производимых вычислений.
- AdvancedSkewModeling— предоставляет возможность более точного моделирования временных перекосов распространения тактовых сигналов на всех стадиях фазы трассировки для повышения производительности проектируемого устройства или встраиваемой микропроцессорной системы.
- RuntimeOptimized— разрешает использование алгоритмов трассировки проекта в кристалле с наименьшим количеством итераций для уменьшения времени выполняемых вычислений за счет снижения производительности разрабатываемого устройства или встраиваемой системы.
- Quick— позволяет добиться максимально высокой скорости трассировки проекта в кристалле за счет сокращения учитываемых временных ограничений до минимально требуемого уровня.
- Default— осуществляет выполнение фазы трассировки проекта в кристалле при значениях параметров управления, установленных по умолчанию.
С помощью параметра More Options можно указать дополнительные опции командной строки для управления каждой фазой процесса реализации конвертированного проекта.
Завершив выбор требуемых значений параметров процесса размещения и трассировки, следует сохранить их в виде новой стратегии. Для этого нужно выполнить ту же последовательность действий, что и при сохранении новой стратегии синтеза проекта. При формировании собственной стратегии размещения и трассировки импортированного проекта в кристалле с помощью диалоговой панели настройки интегрированной среды разработки Vivado Integrated Design Environment с заголовком Vivado Options нужно, прежде всего, на странице Strategies в выпадающем списке поля выбора Flow указать вариант Vivado Implementation. После этого страница управления стратегиями приобретает вид, показанный на рис. 40.
Далее в отображаемом списке существующих стратегий целесообразно выбрать вариант, который включает в себя наиболее подходящую совокупность параметров управления процессом размещения и трассировки для конвертированного проекта. После этого, используя кнопку Ico10.bmp или команду Create NewStrategy из контекстно-зависимого меню, вызываемого щелчком правой кнопки мыши, следует открыть диалоговую панель создания новой стратегии с заголовком New Strategy. В этой диалоговой панели рекомендуется сначала определить вид формируемой стратегии, указав в поле выбора значений параметра Typeвариант Implement (рис. 41).
Затем в поле редактирования Name следует с помощью клавиатуры ввести название новой стратегии процесса размещения и трассировки импортированного проекта в кристалле, а в поле редактирования значения параметра Description — краткое описание создаваемой стратегии. Кроме того, в поле выбора значения параметра Tool version нужно уточнить версию средств размещения и трассировки, для которой формируется создаваемая стратегия. Процедура создания основы новой стратегии для процесса реализации проекта завершается нажатием клавиши OK в диалоговой панели New Strategy, после чего название этой стратегии добавляется в раздел UserDefined Strategies списка стратегий, отображаемого на странице Strategies. Далее нужно выбрать требуемые значения параметров, соответствующие формируемой стратегии процесса размещения и трассировки, как показано на рис. 42. Все скорректированные значения параметров новой стратегии процесса реализации сохраняются при нажатии клавиши Apply или OK, которые расположены в нижней части страницы Strategies.
После выбора или создания требуемой стратегии процесса размещения и трассировки конвертированного проекта в кристалле программируемой логики или расширяемой вычислительной платформы следует проконтролировать и при необходимости установить соответствующие значения параметров для процесса генерации конфигурационной последовательности импортированного проекта.
Корректировка параметров генерации конфигурационной последовательности для конвертированного проекта разрабатываемого устройства или встраиваемой микропроцессорной системы
Чтобы установить требуемые значения параметров генерации конфигурационной последовательности для конвертированного проекта разрабатываемого устройства или встраиваемой микропроцессорной системы, необходимо открыть страницу Bitstream диалоговой панели Project Settings. Для этого можно воспользоваться пиктограммой Ico12.bmp, которая расположена в левой части этой диалоговой панели (рис. 18), или командой Bitstream Settings, представленной в разделе Project Manager панели управления основными процессами, выполняемыми в ходе проектирования, Flow Navigator. Вид страницы Bitstream Settings диалоговой панели параметров проекта Project Settings показан на рис. 43.
Параметры tcl.pre и tcl.post позволяют указать идентификаторы файлов сценариев, включающих в себя совокупность директив языка Tcl, которые автоматически исполняются до непосредственного запуска процесса генерации конфигурационной последовательности и после его завершения.
С помощью опции командной строки —raw_bitfile предоставляется возможность создания файла конфигурации проекта в формате RBT (rawbit). Этот файл имеет текстовый формат (ASCII), в котором конфигурационная последовательность представлена с помощью символов «0» и «1». По умолчанию индикатор состояния этого параметра находится в положении «Выключено», при котором файл RBT не создается.
Опция командной строки —mask_file разрешает или запрещает генерацию файла маскирования. Этот файл, имеющий расширение .msk, используется при верификации в процессе обратного считывания конфигурационной последовательности для сопоставления позиций соответствующих разрядов данных в конфигурационном битовом потоке. При выключенном состоянии индикатора этого параметра, установленном по умолчанию, запрещается формирование файла маски.
Опция командной строки —no_binary_bitfile используется для управления процессом создания двоичного файла последовательного битового потока. Этот файл, имеющий расширение .bit, далее можно использовать непосредственно для загрузки в кристалл программируемой логики или расширяемой вычислительной платформы или применять в качестве исходного модуля для формирования файла «прошивки» ПЗУ, предназначенного для хранения информации о конфигурации разработанного проекта. По умолчанию индикатор состояния этого параметра находится в положении «Выключено», при котором разрешается создание двоичного файла конфигурационной последовательности. При переключении индикатора параметра —no_binary_bitfile в противоположное состояние генерация двоичного файла последовательного битового потока запрещается.
Опция командной строки —bin_file определяет возможность формирования двоичного файла, содержащего конфигурационные данные. Этот файл, имеющий расширение .bin, отличается от файла последовательного битового потока (.bit) отсутствием заголовка. Установка индикатора состояния этого параметра в положение «Выключено», предлагаемое по умолчанию, запрещает создание двоичного файла конфигурационных данных (.bin).
С помощью опции командной строки —logic_location_file осуществляется управление процессом генерации файла размещения логики. Этот текстовый файл в формате ASCII, имеющий расширение .ll, позволяет идентифицировать в конфигурационном битовом потоке соответствующие ресурсы кристалла (триггеры, защелки, входы и выходы), используемые в проекте. По умолчанию индикатор состояния этого параметра находится в положении «Выключено», запрещающем создание файла размещения логики.
Параметр More Options позволяет указать дополнительные опции командной строки для средств генерации файла конфигурационной последовательности разрабатываемого устройства или встраиваемой микропроцессорной системы. Все необходимые опции командной строки указываются с помощью клавиатуры после активизации поля редактирования значения этого параметра.
Если в составе импортируемого проекта применялись ядра интеллектуальной собственности (Intellectual Property, IP), созданные разработчиком или предоставляемые третьими фирмами, то далее необходимо обеспечить доступ к ним в интегрированной среде разработки Vivado Integrated Design Environment.
Установка параметров управления IP-ядрами в конвертированном проекте разрабатываемого устройства или встраиваемой микропроцессорной системы
Характерной особенностью проектов, разрабатываемых в САПР Vivado Design Suite, является широкое применение IP-ядер различного типа. В отличие от средств проектирования ISE Design Suite инструменты управления созданием и использованием IP-ядер встроены в интегрированную среду разработки Vivado IntegratedDesign Environment. На рис. 44 представлена, как организовано формирование и применение IP-ядер в составе проектов, выполняемых в САПР Vivado Design Suite.
Центральное место в этой организации занимает депозитарий IP Catalog, который обеспечивает доступ ко всем ядрам, используемым в составе разрабатываемых и импортируемых проектов. Структура этого депозитария включает в себя три основные группы IP-ядер:
- ядра, предоставляемые фирмой Xilinx (встроенные IP-ядра САПР VivadoDesignSuite, а также модули, создаваемые средствами SystemGenerator и Vivado High-Level Synthesis);
- ядра, разработанные «третьими» фирмами (3-rd Party IP);
- ядра, создаваемые разработчиками (User IP).
Доступ к центральному депозитарию IP-ядер обеспечивает команда IP Catalog, которая представлена в разделе Project Manager панели управления основными процессами Flow Navigator (рис. 14), а также во всплывающем меню Window. При активизации этой команды в рабочей области интегрированной среды разработки Vivado Integrated Design Environment открывается окно IP Catalog, вид которого показан на рис. 45.
Здесь приведена информация обо всех IP-ядрах, которые могут использоваться в составе текущего проекта. Эта информация представлена в форме таблицы, включающей в себя четыре колонки. В колонке Nameперечислены названия доступных IP-ядер. Большинство ядер, представленных в депозитарии IP Catalog,сгруппировано в отдельные папки в соответствии с их функциональным назначением. Названия этих папок также приводятся в колонке Name. В колонке AXI4 отображаются сведения о поддержке одноименного интерфейса. Колонка Status информирует о статусе предоставляемых IP-ядер. В колонке License содержится информация о наличии лицензии на применение соответствующих ядер. При выделении в таблице строки с названием требуемого IP-ядра во встроенной панели Details отображаются краткие сведения о выбранном элементе.
Чтобы использовать в составе конвертированного проекта IP-ядра пользователя и третьих фирм, которые применялись в исходном проекте, созданном средствами проектирования ISE Design Suite, нужно добавить их в центральный депозитарий IP Catalog. Для этого следует открыть страницу параметров управления IP-ядрами диалоговой панели Project Settings, поместив курсор на пиктограмму Ico13.bmp, которая расположена в левой части диалоговой панели установки параметров проекта (рис. 18), и щелкнуть левой кнопкой мыши. Кроме того, можно воспользоваться командой IP Settings, представленной во всплывающем контекстно-зависимом меню, открываемом щелчком правой кнопкой мыши при расположении курсора в окне IP Catalog. Первоначальный вид этой страницы, имеющей заголовок IP, изображен на рис. 46.
Страница содержит две вкладки — Repository Manager и Packager. Вкладка Repository Managerпредоставляет возможность определения путей доступа к депозитариям IP-ядер, применяемых в составе конвертированного проекта. Список используемых депозитариев отображается во встроенной панели IPRepositories, которая расположена в верхней части страницы IP диалоговой панели Project Settings (рис. 46). Чтобы добавить новый депозитарий в этот список, следует воспользоваться кнопкой Add Repository, которая находится под встроенной панелью IP Repositories. При нажатии на эту кнопку на экран выводится диалоговая панель выбора депозитариев с заголовком IP Repositories, вид которой представлен на рис. 47.
С помощью этой панели необходимо выделить раздел на диске, в котором содержатся IP-ядра, применяемые в составе конвертированного проекта. После выбора требуемого каталога и нажатия кнопки Selectего название, включающее полный путь доступа, автоматически появится в списке, отображаемом во встроенной панели IP Repositories. Затем нужно выделить в этом списке строку с названием добавленного депозитария, в результате чего во встроенной панели IP in Selected Repository появится в список IP-ядер, расположенных в выбранном разделе. При нажатии клавиши Apply или OK, которые находятся в нижней части страницы IP, эти ядра будут включены в состав центрального депозитария IP Catalog.
Если в выбранный депозитарий необходимо добавить дополнительные ядра, то следует воспользоваться клавишей Add IP, которая расположена под встроенной панелью IP in Selected Repository. Нажатие этой клавиши открывает диалоговую панель с заголовком Select IP To Add To Repository, вид которой показан на рис. 48.
В этой панели нужно найти и открыть папку, содержащую требуемое ядро, и указать в ней название этого ядра. После нажатия кнопки ОК в панели Select IP To Add To Repository название выбранного IP-ядра автоматически появится в списке, отображаемом во встроенной панели IP in Selected Repository.
На вкладке Packager (рис. 49) представлены параметры управления процессом формирования пользовательских ядер. Эта вкладка содержит три раздела, в каждом из которых приведена соответствующая группа параметров.
Раздел Default Values объединяет параметры, определяющие информацию о создаваемом ядре, которая автоматически записывается при его упаковке. В поле редактирования значения параметра Vendor записываются краткие сведения о производителе или поставщике формируемого IP-ядра, например ссылка на соответствующую Web-страницу. Поле редактирования значения параметра Library позволяет определить название библиотеки, в которую входит создаваемое ядро. В поле редактирования значения параметра Taxonomy указывается название классификационной группы, к которой относится формируемое ядро.
В разделе Automatic Behavior сосредоточены параметры, предоставляющие возможность выбора автоматически выполняемых действий при использовании средств создания IP-ядер Vivado IP Packager. Индикатор состояния параметра Run—upgrade_core when opening IP Packager разрешает или запрещает автоматическое выполнение процедуры обновления ядер при активизации средств формирования IP-ядер. По умолчанию этот индикатор установлен в состояние «Включено», разрешающее обновление ядер.
С помощью параметра Close IP Packager window осуществляется управление автоматическим закрытием окна средств создания IP-ядер после завершения процесса упаковки. По умолчанию индикатор состояния этого параметра находится во включенном положении, при котором окно средств IP Packager автоматически закрывается после упаковки ядра.
Параметр Add IP root directory to current project‘s IP repository paths позволяет автоматически добавлять корневой каталог создаваемого ядра в состав депозитария текущего проекта. По умолчанию индикатор состояния этого параметра зафиксирован в положении «Включено», что разрешает добавление корневого каталога IP-ядра в список депозитариев открытого проекта.
Раздел Filtered Еxtensions содержит информацию о расширениях имен файлов, фильтруемых при добавлении разделов. Эта информация представлена в виде списка, отображаемого во встроенной панели FileЕxtensions to Filter on Add Directory. Чтобы включить в этот список требуемое расширение имени файла, следует воспользоваться кнопкой Add Еxtension, которая находится в нижней части вкладки Packager. При нажатии этой кнопки на экран выводится диалоговая панель с заголовком Enter Еxtension To Filter (рис. 50).
В поле редактирования, расположенном в открывшейся диалоговой панели, нужно с помощью клавиатуры указать требуемый тип файлов. После нажатия клавиши OK в диалоговой панели Enter Еxtension To Filterуказанное расширение имени файла автоматически добавится в список, представленный во встроенной панели File Еxtensions to Filter on Add Directory.
Для вступления в силу новых значений параметров управления использованием и созданием IP-ядер необходимо нажать клавишу Apply или OK, которые находятся в нижней части страницы IP.
Преобразование проектов, созданных в среде пакета ISE Design Suite, в формат САПР VivadoDesign Suite в ручном режиме
Чтобы воспользоваться ручным методом переноса проектов, сформированных средствами пакета ISEDesign Suite, в САПР Vivado Design Suite, необходимо активизировать «мастер» формирования нового проекта New Project Wizard интегрированной среды разработки Vivado IDE одним из рассмотренных ранее способов. Далее с помощью диалоговой панели Project Name этого «мастера», показанной на рис. 5, следует определить название создаваемого проекта и место расположения его рабочего каталога на диске. Затем в диалоговой панели Project Type, изображенной на рис. 7, в качестве типа формируемого проекта нужно выбрать вариант RTL Project, нажав одноименную кнопку.
После нажатия клавиши Next в нижней части указанной диалоговой панели на экране появляется следующая диалоговая панель «мастера» формирования нового проекта New Project Wizard, которая имеет подзаголовок Add Sources. Эта диалоговая панель, вид которой представлен на рис. 51, позволяет включить в состав создаваемого проекта модули исходного описания, входящие в состав проекта САПР ISE Design Suite, за исключением IP-ядер и файлов временных и топологических ограничений. Для добавления этих модулей предусмотрены последующие диалоговые панели «мастера» New Project Wizard.
Чтобы добавить модуль исходного описания импортируемого проекта в состав формируемого проекта, следует воспользоваться клавишей Add Files (рис. 51), после чего на экране отображается диалоговая панель выбора файлов с заголовком Add Source Files, вид которой аналогичен изображенному на рис. 48. В этой диалоговой панели нужно открыть рабочий каталог конвертируемого проекта и выделить строку с именем требуемого модуля исходного описания, подтвердив сделанный выбор нажатием клавиши OK, после чего название соответствующего файла автоматически заносится в таблицу, расположенную в диалоговой панели с подзаголовком Add Sources. Эту процедуру нужно поочередно повторить для включения всех необходимых модулей в состав создаваемого проекта. Если нужно добавить в состав формируемого проекта все файлы какого-либо каталога, то целесообразно воспользоваться клавишей Add Directories.
Таблица добавляемых модулей исходного описания содержит пять колонок. В первой колонке этой таблицы с названием Index отображается порядковый номер включаемого файла, во второй, с названием Name — его идентификатор, в третьей, с названием Library — наименование библиотеки, в которую он заносится. Четвертая колонка, имеющая название HDL Source For, содержит информацию о процессах, для которых предназначен добавляемый модуль исходного описания. Каждая ячейка таблицы в этой колонке представляет собой поле выбора, выпадающий список которого включает в себя два варианта — Synthesis & Simulation и Simulation only. Если модуль исходного описания, включаемый в состав проекта, будет использоваться в процессе синтеза и моделирования, то необходимо выбрать вариант Synthesis & Simulation. В том случае, когда модуль предназначен только для моделирования, следует указать вариант Simulation only. В пятой колонке с названием Location приводятся сведения о расположении добавляемого файла исходного описания на диске, включающие полный путь доступа к нему.
Кроме рассмотренной таблицы в диалоговой панели Add Sources представлен ряд параметров, которые предназначены для управления процессом включения модулей исходного описания в состав формируемого проекта. Параметр Scan and add RTL include files into project предоставляет возможность автоматического поиска и добавления в проект файлов, включаемых в модулях исходного описания с помощью директивы include. По умолчанию индикатор состояния этого параметра находится в выключенном положении, запрещающем автоматическое выполнение указанных операций.
С помощью параметра Copy sources into project осуществляется управление при автоматическом копировании выбранных модулей исходного описания в состав формируемого проекта. Индикатор состояния этого параметра по умолчанию установлен в положение «Включено», при котором добавляемый файл исходного проекта автоматически копируется в рабочий каталог создаваемого проекта.
Значение параметра Add sources from subdirectories разрешает или запрещает автоматическое включение в состав формируемого проекта файлов исходного описания, которые находятся в подразделах добавляемого каталога. По умолчанию индикатор состояния этого параметра установлен во включенное положение, при котором все модули, расположенные во вложенных папках включаемого каталога, автоматически добавляются в состав нового проекта.
Параметр Target Language предназначен для выбора языка описания аппаратных средств HDL, который будет использоваться в качестве основного в создаваемом проекте. Выпадающий список возможных значений этого параметра содержит два варианта — VHDL и Verilog, соответствующие одноименным языкам описания аппаратных средств.
После включения всех необходимых модулей описания исходного проекта в создаваемый проект следует, нажав клавишу Next в нижней части диалоговой панели Add Sources, перейти к следующей панели «мастера» формирования нового проекта New Project Wizard, вид которой показан на рис. 52.
Эта диалоговая панель с подзаголовком Add Existing IP позволяет добавить в состав создаваемого проекта САПР Vivado Design Suite IP-ядра, сконфигурированные в составе проекта, разработанного средствами пакета ISEDesign Suite. Процедура включения в состав нового проекта применяемых конфигурируемых IP-ядер выполняется таким же образом, как и для модулей исходного описания конвертируемого проекта. Добавив все необходимые ядра в формируемый проект, нужно с помощью клавиши Next, расположенной в нижней части диалоговой панели Add Existing IP, открыть очередную диалоговую панель «мастера» создания нового проекта New Project Wizard, вид которой приведен на рис. 53.
Открывшаяся диалоговая панель, имеющая подзаголовок Add Constraints, предназначена для включения в состав создаваемого проекта САПР Vivado Design Suite файлов временных и топологических ограничений. Следует обратить внимание на то, что эта диалоговая панель позволяет добавить в состав проекта только файлы ограничений, представленные в форматах Xilinx Design Constraint (XDC) [18] и Synopsys Design Constraint (SDC). Поэтому файлы в формате UCF (User Constraint Format), применяемые в оригинальном проекте, разработанном в среде пакета ISE Design Suite, должны быть предварительно преобразованы одним из рассмотренных ранее способов. Преобразованные файлы временных и топологических ограничений включаются в состав создаваемого проекта таким же образом, как и модули исходного описания.
Информация о добавленных файлах ограничений отображается в таблице, расположенной в диалоговой панели Add Constraints. Эта таблица содержит две колонки с названиями Constraint File и Location. В колонке Constraint File отображается идентификатор добавленного файла временных и топологических ограничений, а в колонке Location — полный путь доступа к нему. Если индикатор состояния параметра Copy constraints files intoproject находится в положении «Включено», установленном по умолчанию, то все файлы, перечисленные в этой таблице, автоматически копируются в рабочий каталог проекта.
При необходимости можно сформировать новый файл ограничений в формате XDC, воспользовавшись клавишей Create File. При нажатии этой клавиши на экране появляется диалоговая панель с заголовком CreateConstraints File (рис. 54).
В этой диалоговой панели необходимо указать тип создаваемого файла в поле выбора значения параметра File type. Выпадающий список возможных значений этого поля выбора содержит два варианта — XDC и ТСL. Для генерации файла временных и топологических ограничений нужно выбрать вариант XDC. Затем следует в поле редактирования значения параметра File name задать с помощью клавиатуры название создаваемого файла. Далее, используя поле выбора значения параметра File Location, можно уточнить его расположение на диске. По умолчанию в этом поле выбора предлагается вариант Local to Project, при котором формируемый файл записывается в соответствующий раздел рабочего каталога создаваемого проекта. Если необходимо поместить генерируемый файл временных и топологических ограничений в другое место, то в поле выбора значения параметра File Location следует указать вариант Choose Location. При этом на экран автоматически выводится одноименная диалоговая панель, позволяющая выбрать требуемый каталог. После определения значений перечисленных параметров нужно нажать клавишу OK в нижней части диалоговой панели Create ConstraintsFile, в результате чего будет сформирован соответствующий файл. Информация о нем будет автоматически занесена в таблицу, представленную в диалоговой панели Add Constraints.
Определив список файлов временных и топологических ограничений, включаемых в состав формируемого проекта, следует перейти к предпоследней диалоговой панели «мастера» New Project Wizard с подзаголовком Default Part, которая предназначена для выбора типа ПЛИС или расширяемой вычислительной платформы, используемой для реализации конвертированного проекта. Эта диалоговая панель имеет ту же структуру, что и панель Select Device, представленная на рис. 19, 20. После выбора требуемого кристалла или отладочной платы нужно открыть заключительную диалоговую панель «мастера» New Project Wizard с подзаголовком New Project Summary (рис. 55).
В этой диалоговой панели приведена информация о количестве модулей различного типа, добавленных в состав создаваемого проекта. Для запуска процесса формирования нового проекта с указанными параметрами необходимо нажать кнопку Finish, расположенную в нижней части заключительной диалоговой панели «мастера» New Project Wizard (рис. 55). После успешного завершения этого процесса следует установить требуемые значения параметров для каждого этапа проектирования, как было показано выше.
Перенос описаний встраиваемых микропроцессорных систем, разработанных с помощью средств Xilinx Platform Studio (XPS), в среду IP Integrator САПР Vivado Design Suite
Процесс переноса описаний встраиваемых микропроцессорных систем, разработанных с помощью средств Xilinx Platform Studio (XPS), в среду IP Integrator САПР Vivado Design Suite рассматривается в этом разделе на примере проектов, выполненных на базе расширяемых вычислительных платформ семейства Zynq-7000 AP SoC [3–9]. Чтобы использовать описания встраиваемых микропроцессорных систем, подготовленные с помощью средств XPS, в среде IP Integrator, нужно сформировать файл конфигурации аппаратной части микропроцессорной системы в формате XML. Для этого следует воспользоваться командой экспорта средств Xilinx Platform Studio, как показано на рис. 56.
После активизации команды появляется диалоговая панель с заголовком Export Zynq Processing System Configurations (рис. 57). В поле редактирования Export Configuration To File этой диалоговой панели необходимо определить название файла описания конфигурации аппаратной части микропроцессорной системы в формате XML с указанием места его расположения на диске.
Затем в среде разработки Vivado Integrated Design Environment следует создать новый проект с теми же параметрами, что были установлены в проекте пакета ISE Design Suite. Далее, используя средства IP Integrator, необходимо включить в состав проекта ядро микропроцессорной системы и настроить его параметры, добавив сгенерированный XML-файл в состав описания процессорной платформы. Для этого нужно в основном окне САПР Vivado Design Suite (рис. 58) открыть указанное ядро, после чего поместить курсор на условный графический образ микропроцессорной системы и дважды щелкнуть левой кнопкой мыши.
В результате выполненных действий на экране появляется окно настройки конфигурации микропроцессорной системы с заголовком Re-customize IP, в котором следует активизировать команду Presets, как показано на рис. 59.
После этого на экран выводится диалоговая панель с заголовком Presets Configuration (рис. 60), которая позволяет выбрать требуемый вариант настройки микропроцессорной системы.
Для переноса конфигурации встраиваемой микропроцессорной системы, сформированной в среде XilinxPlatform Studio, необходимо в поле редактирования User Template указать полное название сгенерированного XML-файла, включающее путь доступа к нему.
Заключение
После преобразования проекта разрабатываемого устройства или встраиваемой микропроцессорной системы, созданного в среде пакета ISE Design Suite, в формат САПР Vivado Design Suite и корректировки значений параметров можно приступать к поочередному выполнению всех необходимых этапов процесса проектирования, включая моделирование и загрузку конфигурационной последовательности в кристалл. Большинство этапов проектирования в интегрированной среде разработки Vivado Integrated Design Environmentосуществляется в автоматическом режиме в соответствии с установленными значениями параметров управления. После завершения каждого этапа кроме основных файлов проекта формируется совокупность отчетов, которые рекомендуется изучить перед переходом к следующему этапу. Более подробно выполнение различных этапов проектирования цифровых устройств и встраиваемых микропроцессорных систем в САПР Vivado Design Suite, а также содержание генерируемых отчетов будет рассмотрено в последующих публикациях.
28. Santarini M. Stacked & Loaded: Xilinx SSI, 28-Gbps I/O Yield Amazing FPGAs // Xcell Journal, 2011.
29. Santarini M. Xilinx Ships World’s Highest-Capacity FPGA Using SSI Technology // Xcell Journal, 2011.
30. Large FPGA Methodology Guide Including Stacked Silicon Interconnect (SSI) Technology. Xilinx, 2012.