Блок Triggered Subsystem является блоком Subsystem, который выполняет каждый раз, когда сигнал управления имеет значение триггера. Дополнительные сведения о блоке см. в разделе Triggered Subsystem.
При использовании триггируемых подсистем в моделях, нацеленных на генерацию HDL-кода, примите к сведению следующее:
Для результатов синтеза, чтобы соответствовать Simulink® результаты управляйте портом триггера с зарегистрированной логикой (с синхронным синхроимпульсом) на FPGA.
Это обеспечивает задержку модуля на выходных сигналах триггируемой подсистемы. Это препятствует вставке генератором кода дополнительных регистров обхода в HDL-код.
Использование триггируемых подсистем может повлиять на результаты синтеза следующими способами:
В некоторых случаях скорость системных часов может снизиться на небольшой процент.
Сгенерированный код использует больше ресурсов, масштабируя с количеством триггируемой подсистемы образцов и количеством выхода портов на подсистему.
Когда вы соединяете выходы от блока Signal Builder к триггируемой подсистеме, вам может потребоваться использовать блок Rate Transition. Чтобы запустить все порты триггируемой подсистемы с той же скоростью:
Если источник триггера является блоком Signal Builder, но другие входы триггируемой подсистемы поступают из других источников, вставьте блок Rate Transition в путь сигнала перед входным сигналом триггера.
Если все входы (включая триггер) поступают из блока Signal Builder, они имеют одинаковую скорость, поэтому специальных действий не требуется.
Использование триггера в качестве синхроимпульса в триггируемых подсистемах позволяет вам разбить ваш проект на различные тактовые области в сгенерированном коде. Убедитесь, что значение Clock edge в диалоговом окне Параметров конфигурации соответствует Trigger type блока Trigger в триггируемую подсистему.
Для примера можно смоделировать:
Проект с часами, которые работают с той же скоростью, но вне фазы.
Области синхроимпульса, управляемые внешним или внутренним делителем синхроимпульса.
Тактовые области, управляемые часами, скорости которых не являются целочисленными кратными друг другу.
Внутренне сгенерированные часы.
Синхроимпульс для маломощного проекта.
Примечание
Использование триггера в качестве синхроимпульса для триггируемых подсистем может привести к несоответствиям синхронизации одного цикла во время симуляции тестирования.
Когда вы используете триггер как часы в триггируемые подсистемы, каждую триггируемую подсистему входа или выходных данных сигнал должен иметь задержки непосредственно снаружи и непосредственно внутри подсистемы. Эти задержки выступают в качестве интерфейса синхронизации между областями, работающими с различными скоростями.
На вкладке HDL Code Generation > Global Settings > Optimization выберите Use trigger signal as clock.
Установите TriggerAsClock
использование свойства makehdl
или hdlset_param
. Для примера, чтобы сгенерировать HDL-код, который использует триггерный сигнал в качестве синхроимпульса для триггируемых подсистем в подсистеме DUT, myDUT
, в модели, myModel
, введите:
makehdl ('myModel/myDUT','TriggerAsClock','on')
HDL Coder™ поддерживает генерацию HDL-кода для триггируемых подсистем, которые отвечают следующим условиям:
Триггируемая подсистема не является DUT.
Подсистема не инициируется и не активируется.
Триггерный сигнал является скаляром.
Выходы триггируемой подсистемы имеют начальное значение 0.
Все входы и выходы триггируемой подсистемы (включая триггерный сигнал) выполняются с одинаковой скоростью.
Параметр Show output port блока Trigger установлен в Off
.
Флажок Latch input by delaying outside signal не установлен на блоке Inport внутри Triggered Subsystem.
Если DUT содержит следующие блоки, RAMArchitecture
установлено в WithClockEnable
:
Двухпортовая ОЗУ
Простая двухпортовая оперативная память
Однопортовая ОЗУ
Триггируемая подсистема не содержит следующих блоков:
Discrete-Time Integrator
CIC Decimation
CIC Interpolation
FIR Decimation
FIR Interpolation
Downsample
Upsample
HDL Cosimulation блоки для HDL- Verifier™
Rate Transition
Pixel Stream FIFO (Vision HDL Toolbox™)
PN Sequence Generator, если выбрана опция Use trigger signal as clock.