Представляйте подсистему, выполнение которой включено внешним входом (HDL Coder)
Активированная подсистема является подсистемой, которая получает управляющий сигнал через блок Enable. Активированная подсистема выполняется на каждом шаге симуляции, где управляющий сигнал имеет положительное значение.
Для получения дальнейшей информации о том, как создать и сконфигурировать включенный подсистемы, смотрите Используя Enabled Подсистемы (Simulink).
При использовании активированных подсистем в моделях, предназначенных для генерации HDL-кода, это - хорошая практика, чтобы рассмотреть следующее:
Для результатов синтеза совпадать с результатами Simulink®, порт Enable должен управляться зарегистрированной логикой (с синхронными часами) на FPGA.
Поместите единичные задержки на Enabled выходные сигналы Подсистемы. Выполнение так препятствует тому, чтобы генератор кода вставил дополнительные обходные регистры в HDL-код.
Enabled подсистемы могут влиять на результаты синтеза следующими способами:
В некоторых случаях скорость системных часов может понизиться небольшим процентом.
Сгенерированный код использует больше ресурсов, масштабирующихся с количеством активированных экземпляров подсистемы и количеством выходных портов на подсистему.
Архитектура | Описание |
---|---|
Module (значение по умолчанию) | Сгенерируйте код для подсистемы и блоков в подсистеме. |
BlackBox | Сгенерируйте интерфейс черного квадрата. Сгенерированный HDL-код включает только определения порта ввода/вывода для подсистемы. Поэтому можно использовать подсистему в модели, чтобы сгенерировать интерфейс к существующему, вручную записанному HDL-коду. Генерация интерфейса черного ящика для подсистем подобна генерации интерфейса блока Model без сигналов часов. |
| Удалите подсистему из сгенерированного кода. Можно использовать подсистему в симуляции, однако, обработать его как "нет" в HDL-коде. |
Автоматическая конвейерная вставка на основе инструмента синтеза, предназначайтесь для частоты и размеров слова множителя. Значением по умолчанию является inherit
. См. также AdaptivePipelining.
Обнаруживает введение новых задержек вдоль одного пути и вставляет соответствие с задержками на других путях. Значением по умолчанию является inherit
. См. также BalanceDelays.
Вставьте конвейерные регистры на более быстрой тактовой частоте вместо более медленной скорости передачи данных. Значением по умолчанию является inherit
. См. также ClockRatePipelining.
Количество регистров, чтобы поместить при выходных параметрах путем перемещения существующих задержек в рамках проекта. Распределенная конвейеризация не перераспределяет эти регистры. Значение по умолчанию 0. См. также ConstrainedOutputPipeline.
Конвейерно обработайте распределение регистра или повторную синхронизацию регистра. Значением по умолчанию является off
. См. также DistributedPipelining.
Синтез приписывает для отображения множителя. Значением по умолчанию является none
. См. также DSPStyle.
Удалите иерархию подсистемы из сгенерированного HDL-кода. Значением по умолчанию является inherit
. См. также FlattenHierarchy.
Количество входных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. Значение по умолчанию 0. См. также InputPipeline.
Количество выходных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. Значение по умолчанию 0. См. также OutputPipeline.
Количество функционально эквивалентных ресурсов, чтобы сопоставить с одним совместно используемым ресурсом. Значение по умолчанию 0. См. также Разделение ресурсов.
Количество параллельных информационных каналов или векторы, которые являются временем, мультиплексированным, чтобы преобразовать в последовательные, скалярные информационные каналы. Значение по умолчанию 0, который реализует полностью параллельные информационные каналы. См. также Потоковую передачу.
Этот блок не может быть DUT, таким образом, настройки свойства блока во вкладке Target Specification проигнорированы.
HDL Coder™ поддерживает генерацию HDL-кода для активированных подсистем, которые отвечают следующим условиям:
Активированная подсистема не является DUT.
Подсистема и не инициирована и включена.
Разрешать сигнал является скаляром.
Типом данных разрешать сигнала является или boolean
или ufix1
.
Выходные параметры активированной подсистемы имеют начальное значение 0.
Все вводы и выводы активированной подсистемы (включая разрешать сигнал) запускаются на том же уровне.
Параметр Show output port блока Enable устанавливается на Off
.
Параметр States when enabling блока Enable устанавливается на held
(т.е. блок Enable не сбрасывает состояния, когда включено).
Параметр Output when disabled для активированных выходных портов подсистемы устанавливается на held
(т.е. активированная подсистема не сбрасывает выходные значения, когда отключено).
Если DUT содержит следующие блоки, RAMArchitecture
установлен в WithClockEnable
:
Двухпортовый RAM
Простой двухпортовый RAM
Один порт RAM
Активированная подсистема не содержит следующие блоки:
Десятикратное уменьшение CIC
Интерполяция CIC
КИХ-десятикратное уменьшение
КИХ-интерполяция
Субдискретизировать
Сверхдискретизировать
HDL Cosimulation блокируется для HDL Verifier™
Переход уровня
Автоматический пример Контроллера Усиления показывает, как можно использовать включенные подсистемы в генерации HDL-кода. Открыть пример, введите:
hdlcoder_agc