HDL Coder™ поддерживает генерацию HDL-кода для синхроимпульсов с одним и несколькими многоскоростных моделей. Ваша модель может включать блоки, работающие с несколькими скоростями дискретизации:
В пределах тестируемого устройства (DUT).
На испытательном стенде приводят в действие ДУТ. В этом случае DUT наследует несколько частот дискретизации от его входов или выходов.
Как в испытательный стенд, так и в DUT.
В целом, генерация HDL-кода для многоскоростной модели не сильно отличается от генерации HDL-кода для односкоростной модели. Однако существует несколько требований и ограничений на строение модели и использование специализированных блоков (таких как Rate Transitions), которые применяются к многоскоростным моделям. Для получения дополнительной информации смотрите Многоскоростную модель требования к генерации HDL-кода.
Следующая блок-схема показывает внутреннее пространство подсистемы, содержащей блоки, которые явно сконфигурированы с различными шагами расчета. Верхний и нижний блоки Counter Free-Running имеют шаги расчета 10 с и 20 с соответственно. Выходные сигналы счетчика маршрутизируются к выходным портам ST10
и ST20
, которые наследуют их шаги расчета. Путь сигнала, заканчивающийся на ST10
запускается с базовой скоростью модели; путь сигнала, заканчивающийся на ST20
является сигналом субрейта, вращающимся на половине базовой скорости модели.
Как показано на следующем рисунке, выходах многоразового привода DUT To Рабочей области блоков в испытательный стенд. Эти блоки наследуют шаги расчета выходов DUT.
В следующем списке показан VHDL® объявление сущности, сгенерированное для DUT.
ENTITY DUT IS PORT( clk : IN std_logic; reset : IN std_logic; clk_enable : IN std_logic; ce_out_0 : OUT std_logic; ce_out_1 : OUT std_logic; ST10 : OUT std_logic_vector(7 DOWNTO 0); -- uint8 ST20 : OUT std_logic_vector(5 DOWNTO 0) -- ufix6 ); END DUT;
У сущность есть стандартные входы синхронизации, сброса и включения синхроимпульса и данных выходов для ST10
и ST20
сигналы. В сложение сущности имеет два выходов включения синхроимпульса (ce_out_0
и ce_out_1
). Эти выходы включения синхроимпульса реплицируют внутренние сигналы включения синхроимпульса, поддерживаемые сущностью контроллера синхронизации.
Следующий рисунок, показывающий фрагмент графики ментора® ModelSim® симуляция сгенерированного кода VHDL, позволяет вам наблюдать временную зависимость синхроимпульса базовой скорости (clk
), активизирует часы и вычисленные выходы модели.
После утверждения clk_enable
(реплицируется ce_out_0
), новое значение вычисляется и выход в ST10
для каждого цикла синхроимпульса базовой скорости.
Новое значение вычисляется и выводится для сигнала субрейта ST20
для каждого другого цикла синхроимпульса базовой скорости. Внутренний сигнал, enb_1_2_1
(реплицируется ce_out_1
) определяет сроки выполнения этих расчетов.