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

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

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

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

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

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

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

Примечание

Для ModelSim® и резьбовое® Только пользователи

Когда вы задаете часы в определении блока, Simulink создает часы с приподнимающим или падающим фронтом, которые управляют указанным HDL-сигналом.

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

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

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

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

    clockperiod/2

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

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

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

Чтобы создать часы, выполните следующие шаги:

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

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

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

  4. Отредактируйте имя пути синхросигнала непосредственно в таблице под столбцом Full HDL Name, дважды кликнув имя синхросигнала по умолчанию (/top/clk). Затем укажите свои новые часы, используя синтаксис Симулятора HDL пути. Смотрите Specify HDL Signal/Port and Module Path для Simulink Test Bench Cosimulation.

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

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

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

    Задайте Period поле как четное целое число с минимальным значением 2.

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

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

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

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

  • Путем добавления команд силы к панели Simulation (только для пользователей ModelSim и Incisive)

  • По управляемым сигналам с одной из команд запуска HDL-симулятора HDL Verifier (vsim или nclaunch) и команду force

Примеры: force Command, введенная в HDL Cosimulation Block Панель

Следующий пример является примером ввода команд силы в панели Simulation блока HDL Cosimulation для использования с Incisive:

Следующий пример является примером ввода команд силы в панели Simulation блока HDL Cosimulation для использования с ModelSim:

Примеры: Force Command используется с HDL Verifier HDL Simulator Launch Command

vsim function and force command (пользователи 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 command (Incisive users):

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}"']);
Для просмотра документации необходимо авторизоваться на сайте