Можно создать возрастающее ребро или часы ребра падения, сброс, или часы включают сигналы, которые применяют внутренние стимулы для модели под 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}"']);