.
Фактическая поддержка генерации кода зависит от реализации блока.
HDL Coder™ предоставляет дополнительные опции строения, которые влияют на реализацию HDL и синтезированную логику.
Лучшие практикиПри использовании включенных подсистем в моделях, предназначенных для генерации HDL-кода, рекомендуется учитывать следующее:
Для результатов синтеза, чтобы соответствовать Simulink® результаты порт Enable должен управляться зарегистрированной логикой (с синхронным синхроимпульсом) на FPGA.
Поместите задержки модуля на выходные сигналы Enabled Subsystem. Это препятствует вставке генератором кода дополнительных регистров обхода в HDL-код.
Активированные подсистемы могут влиять на результаты синтеза следующими способами:
В некоторых случаях скорость системных часов может снизиться на небольшой процент.
Сгенерированный код использует больше ресурсов, масштабируя с количеством включенных подсистем образцами и количеством выхода портов на подсистему.
Архитектура HDLАрхитектура | Описание |
---|
Module (по умолчанию) | Сгенерируйте код для подсистемы и блоков в подсистеме. |
BlackBox | Сгенерируйте интерфейс черного ящика. Сгенерированный HDL-код включает только определения входного/выходного порта для подсистемы. Поэтому можно использовать подсистему в модели, чтобы сгенерировать интерфейс к существующему, вручную написанному HDL-коду. Генерация интерфейса черного ящика для подсистем подобна генерации интерфейса блока Model без синхроимпульсов. |
No HDL
| Удалите подсистему из сгенерированного кода. Можно использовать подсистему в симуляции, однако относиться к ней как к «no-op» в HDL-коде. |
Свойства блоковОбщая информация |
---|
AdaptivePipelining | Автоматическая вставка конвейера на основе инструмента синтеза, целевой частоты и длин размеров слова умножителей. Значение по умолчанию является inherit . См. также AdaptivePipelining (HDL Coder).
|
BalanceDelays | Обнаруживает введение новых задержек вдоль одного пути и вставляет соответствующие задержки на другие пути. Значение по умолчанию является inherit . См. также BalanceDelays (HDL Coder).
|
ClockRatePipelining | Вставьте регистры конвейера с более высокой тактовой частотой вместо более медленной скорости передачи данных. Значение по умолчанию является inherit . См. также ClockRatePipelining (HDL Coder).
|
ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках вашего проекта. Распределённая конвейеризация не перераспределяет эти регистры. Значение по умолчанию является 0 . Для получения дополнительной информации смотрите ConstrainedOutputPipeline (HDL Coder).
|
DistributedPipelining | Распределение регистров трубопроводов или синхронизация регистров. Значение по умолчанию является off . См. также DistributedPipelining (HDL Coder).
|
DSPStyle | Атрибуты синтеза для отображения множителей. Значение по умолчанию является none . См. также DSPStyle (HDL Coder).
|
FlattenHierarchy | Удалите иерархию подсистем из сгенерированного HDL-кода. Значение по умолчанию является inherit . См. также FlattenHierarchy (HDL Coder).
|
InputPipeline | Количество входных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является 0 . Для получения дополнительной информации смотрите InputPipeline (HDL Coder).
|
OutputPipeline | Количество выходных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является 0 . Для получения дополнительной информации смотрите OutputPipeline (HDL Coder).
|
SharingFactor | Количество функционально эквивалентных ресурсов для сопоставления с одним общим ресурсом. Значение по умолчанию 0. См. также раздел «Совместное использование ресурсов» (HDL Coder).
|
StreamingFactor | Количество параллельных путей данных, или векторов, которые мультиплексированы во времени для преобразования в последовательные, скалярные пути данных. Значение по умолчанию 0, которое реализует полностью параллельные пути данных. См. также раздел Потоковая передача (HDL Coder).
|
Целевые спецификации
Этот блок не может быть DUT, поэтому настройки свойств блоков на вкладке Target Specification игнорируются.
ОграниченияHDL Coder поддерживает генерацию HDL-кода для подсистем с поддержкой, которые отвечают следующим условиям:
Включенная подсистема не является DUT.
Подсистема не инициируется и не активируется.
Разрешающий сигнал является скаляром.
Выходы включенной подсистемы имеют начальное значение 0.
Все входы и выходы включенной подсистемы (включая сигнал включения) выполняются с одной скоростью.
Параметр Show output port блока Enable установлен в Off
.
Параметр States when enabling блока Enable установлен в held
(т.е. блок Enable не сбрасывает состояния при включении).
Параметр Output when disabled для выходных портов включенной подсистемы установлен в held
(т.е. включенная подсистема не сбрасывает выходные значения при отключении).
Если DUT содержит следующие блоки, RAMArchitecture
установлено в WithClockEnable
:
Dual Port RAM
Simple Dual Port RAM
Single Port RAM
Включенная подсистема не содержит следующих блоков:
ПримерВ примере Automatic Gain Controller показано, как можно использовать включенные подсистемы при генерации HDL-кода. Чтобы открыть пример, введите:
.
Фактическая поддержка типа данных зависит от реализации блоков.