exponenta event banner

Синхросигналы, сброс и включение сигналов

Управление часами, сброс и включение

Можно создавать восходящие или падающие тактовые сигналы, сброс или включение тактовых сигналов, которые применяют внутренние стимулы к модели при косимуляции. Добавить эти сигналы можно следующим образом:

Добавление сигналов с помощью блоков Simulink

Добавьте в модель Simulink ® с помощью блоков Simulink тактовые импульсы, сброс или включение тактового сигнала. Инструкции по добавлению блоков в модель см. в руководстве пользователя и справочнике Simulink.

На следующем примере в затененной области показаны тактовый сигнал, сигнал сброса и сигнал включения тактового сигнала в качестве входных данных для модели блока косимуляции с несколькими ЛПВП. Эти сигналы создаются с использованием двух блоков преобразования типа данных Simulink и блока постоянного источника, которые соединяются с блоком Cosimulation HDL с меткой «Manchester Receiver Subsystem».

Создание дополнительных часов с помощью панели часов блока косимуляции HDL

Примечание

Только для пользователей ModelSim ® и Incisive ®

При указании тактового сигнала в определении блока Simulink создает тактовый сигнал переднего или заднего фронта, который управляет указанным сигналом HDL.

Simulink пытается создать часы, которые имеют 50% рабочий цикл и предопределенную фазу, инвертированную для случая с задним фронтом. Если применимо, Simulink ухудшает рабочий цикл, чтобы учесть нечетное время выборки Simulink, с наихудшим рабочим циклом 66% для времени выборки T=3.

Независимо от того, сконфигурирована ли панель Timescales для относительного или абсолютного режима синхронизации, для тактовых периодов применяются следующие ограничения:

  • При указании явного периода времени необходимо ввести время выборки, равное или большее 2 единиц разрешения (засечек).

  • Если период синхронизации (явно указанный или установленный по умолчанию) не является четным целым числом, Simulink не может создать 50% -ный рабочий цикл, и поэтому программное обеспечение HDL Verifier™ создает противоположный фронт на

    часовой период/2

    (округлено до ближайшего целого числа).

Дополнительные сведения о расчете относительного и абсолютного режимов синхронизации см. в разделе Определение отношения синхронизации симулятора и симулятора HDL.

На следующем рисунке показана временная диаграмма, которая включает в себя часы подъема и снижения фронта с временем выборки Simulink, равным T=10 и предел разрешения имитатора ЛПВП, равный 1 нс. Рисунок также показывает, что, учитывая эти параметры синхронизации, тактовый цикл составляет 50%.

Чтобы создать часы, выполните следующие действия.

  1. В имитаторе HDL определите имена трактов тактовых сигналов, которые планируется определить в блоке. Для этого можно использовать тот же метод, что и для определения имен трактов сигналов для портов на шаге 1 «Map HDL Signals to Block Ports».

  2. Выберите вкладку «Часы» в диалоговом окне «Параметры блока». Simulink отображает диалоговое окно, как показано на следующем рисунке (пример показан для использования с Incisive).

  3. Нажмите кнопку New, чтобы добавить новый тактовый сигнал.

  4. Отредактируйте имя тракта синхросигнала непосредственно в таблице в столбце Full HDL Name, дважды щелкнув имя синхросигнала по умолчанию (/top/clk). Затем укажите новые часы, используя синтаксис пути имитатора HDL. См. раздел Определение трактов сигналов/портов HDL и модулей для симулятора испытательного стенда.

    Имитатор HDL не поддерживает векторизированные сигналы на панели «Часы». Сигналы должны быть логическими типами со значениями 1 и 0.

  5. Чтобы указать, генерирует ли синхросигнал сигнал переднего или заднего фронта, выберите Rising или Falling из списка Active Clock Edge.

  6. В поле Period указывается период времени. Принять значение по умолчанию (2) или переопределить его путем явного ввода требуемого периода времени путем двойного щелчка в поле Период.

    Укажите поле Период как четное целое число с минимальным значением 2.

  7. По завершении редактирования синхросигналов нажмите кнопку Применить, чтобы зарегистрировать изменения в Simulink.

Следующее диалоговое окно определяет восходящие синхросигналы clk для блока Cosimulation HDL с периодом по умолчанию 2 (пример показан для использования с Incisive).

Управление сигналами путем добавления команд силы

Управление часами, сброс и включение сигналов можно осуществлять двумя способами:

  • Добавление команд силы на панель моделирования (только для пользователей ModelSim и Insisive)

  • Путем возбуждения сигналов одной из команд запуска имитатора ЛПВП Верификатор ЛПВП (vsim или nclaunch) и команды силы

Примеры: Команда force, введенная на панели моделирования блока Cosimulation HDL

Ниже приведен пример ввода команд силы на панели моделирования блока косимуляции HDL для использования с Incisive:

Ниже приведен пример ввода команд силы на панели Моделирование (Simulation) блока косимуляции HDL для использования с ModelSim.

Примеры: Команда force используется с командой запуска HDL Verifier HDL Simulator

vsim команда function and force (пользователи ModelSim):

vsim('tclstart', {'force /iqconv/clk 1 0, 0 5 ns -repeat 10 ns ', 
     'force /iqconv/clk_enable 1', 'force /iqconv/reset 1'});

nclaunch команда function and force (Надрезанные пользователи):

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}"']);