Можно создать возрастающее ребро или часы ребра падения, сброс, или часы включают сигналы, которые применяют внутренние стимулы для модели под cosimulation. Можно добавить эти сигналы:
Создание дополнительных часов с панелью часов HDL блок Cosimulation
Реализация этих сигналов непосредственно в HDL-коде. Если ваша модель является частью намного большего проекта HDL, (или более крупный разработчик модели) можно принять решение реализовать эти сигналы в файлах VHDL® или Verilog®. Однако та реализация превышает осциллограф этой документации; смотрите ссылку HDL для получения дополнительной информации.
Добавьте возрастающее ребро или часы ребра падения, сброс, или часы включают сигналы к вашей модели Simulink® использование блоков Simulink. См. Руководство пользователя Simulink и Ссылку для получения инструкций относительно добавления блоков к модели.
В следующей выборке в качестве примера заштрихованная область показывает часы, сброс, и часы включают сигнал, как введено к модели блока HDL Cosimulation кратного. Эти сигналы создаются с помощью двух блоков преобразования типа данных Simulink и постоянного исходного блока, которые соединяются с блоком HDL Cosimulation, пометил "Manchester Receiver Subsystem".
Для ModelSim® и Incisive® Users только
Когда вы задаете часы в вашем определении блока, Simulink создает возрастающее ребро или часы ребра падения, которые управляют заданным сигналом HDL.
Simulink пытается создать часы, которые имеют 50%-й рабочий цикл и предопределенную фазу, которая инвертируется для падающего случая ребра. Если применимо Simulink ухудшает рабочий цикл, чтобы разместить нечетные шаги расчета Simulink с худшим рабочим циклом случая 66% для шага расчета T=3
.
Сконфигурировали ли вы панель Timescales для относительного режима синхронизации или абсолютного режима синхронизации, следующие ограничения применяются к периодам часов:
Если вы задаете явный период часов, необходимо ввести шаг расчета, равный или больше, чем 2 модуля разрешения (метки деления).
Если период часов (принял ли явным образом заданный или значение по умолчанию) не является ровным целым числом, Simulink не может создать 50%-й рабочий цикл, и поэтому программное обеспечение HDL Verifier™ создает падающее ребро в
(округленный в меньшую сторону до самого близкого целого числа).
Для получения дополнительной информации о вычислении относительных и абсолютных режимов синхронизации смотрите Определение Временная зависимость симулятора HDL и Simulink.
Следующий рисунок показывает схему синхронизации, которая включает возрастающие и падающие часы ребра с шагом расчета Simulink T=10
и предел разрешения симулятора HDL 1 нс. Рисунок также показывает, что, учитывая тех, которые синхронизируют параметры, рабочий цикл часов составляет 50%.
Чтобы создать часы, выполните следующие шаги:
В симуляторе HDL решите, что путь прохождения сигнала часов называет вас, планируют задать в вашем блоке. Для этого можно использовать тот же метод, объясненный в определении имен пути прохождения сигнала для портов на шаге 1 “Сигналов HDL карты Блокировать Порты”.
Выберите вкладку Clocks диалогового окна Block Parameters. Simulink отображает диалоговое окно как показано в следующей фигуре (пример, показанный для использования с Острым).
Нажмите New, чтобы добавить новый сигнал часов.
Отредактируйте имя пути прохождения сигнала часов непосредственно в таблице в соответствии со столбцом Full HDL Name путем двойного клика по имени сигнала часов по умолчанию (/top/clk
). Затем задайте свои новые часы с помощью синтаксиса пути симулятора HDL. Смотрите Задают Пути к Сигналу/Порту и Модулю HDL для Места размещения Simulink Test Cosimulation.
Симулятор HDL не поддерживает векторизованные сигналы в панели Clocks. Сигналы должны быть логическими типами с 1 и 0 значениями.
Чтобы задать, генерируют ли часы возрастающее ребро или падающий сигнал ребра, выберите Rising
или Falling
из списка Active Clock Edge.
Поле Period задает период часов. Примите значение по умолчанию (2
), или переопределение это путем ввода желаемого периода часов явным образом путем двойного клика в поле Period.
Задайте поле Period как ровное целое число с минимальным значением 2
.
Когда вы закончите редактировать сигналы часов, нажмите Apply, чтобы указать ваши изменения с Simulink.
Следующее диалоговое окно задает часы возрастающего ребра clk
для блока HDL Cosimulation, с периодом по умолчанию 2 (пример, показанный для использования с Острым).
Можно управлять часами, сбросом, и включить сигналы любым из двух способов:
Путем добавления команд силы в панель Simulation (только ModelSim и Острые пользователи)
Путем управления сигналами с одним из симулятора HDL HDL Verifier запускают команды (vsim
или nclaunch
) и команда силы
Следующее является примером ввода команд силы в панели Simulation блока HDL Cosimulation для использования с Острым:
Следующее является примером ввода команд силы в панели Simulation блока HDL Cosimulation для использования с ModelSim:
vsim
функция и команда силы (пользователи ModelSim):
vsim('tclstart', {'force /iqconv/clk 1 0, 0 5 ns -repeat 10 ns ', 'force /iqconv/clk_enable 1', 'force /iqconv/reset 1'});
nclaunch
функция и команда силы (Острые пользователи):
nclaunch('tclstart',['-input "{@force osc_top.clk_enable 1 -after 0ns}"', '-input "{@force osc_top.reset 0 -after 0ns 1 -after 40ns 0 -after 120ns}"', '-input "{@force osc_top.clk 1 -after 0ns 0 -after 40ns -repeat 80ns}"']);