Запуск косимуляции MATLAB-HDL

Процесс для выполнения косимуляции MATLAB

Чтобы начать и контролировать выполнение симуляции в MATLAB® выполните следующие шаги:

Проверяйте состояние ссылки сервера косимуляции MATLAB

Первым шагом к запуску сеанса Симулятора HDL и MATLAB испытательного стенда или функции компонента является проверка состояния ссылки сервера MATLAB. Работает ли сервер? Если сервер работает, какой режим связи и, если применимо, какой порт сокета TCP/IP используется сервером для его ссылок? Вы можете получить эту информацию с помощью функции MATLAB hdldaemon с 'status' опция. Для примера:

hdldaemon('status')

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

HDLDaemon socket server is running on port 4449 with 0 connections

Если сервер не работает, сообщение считывается

HDLDaemon is NOT running

Смотрите раздел Options: Inputs в hdldaemon справочную документацию по информации об определении режима связи и используемого сокета TCP/IP.

Выполняйте косимуляцию

Можно запустить сеанс косимуляции с помощью MATLAB и Симулятора HDL графических интерфейсов пользователя (типичный) или, чтобы уменьшить потребность в памяти, можно запустить косимуляцию с помощью интерфейса командной строки (CLI) или в пакетном режиме.

Косимуляция с MATLAB Использование Симулятора HDL графического интерфейса пользователя

Эти шаги описывают типовую последовательность для выполнения симуляции в интерактивном режиме из главного окна Симулятора HDL:

  1. Установите точки останова в коде HDL и MATLAB, чтобы проверить и проанализировать прогресс симуляции.

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

    В MATLAB существует несколько способов задать точки останова; например, при помощи кнопки Set/Clear Breakpoint на панели инструментов.

  2. Проблема matlabtb команда в строке Симулятора HDL.

    Когда вы начинаете определенный испытательный стенд или сеанс компонента, вы задаете параметры, которые идентифицируют следующую информацию:

    Для примера:

    hdlsim> matlabtb osc_top -sensitivity /osc_top/sine_out
          -socket 4448 -mfunc hosctb
  3. Запустите симуляцию, введя Симулятор HDL run команда.

    The run команда предлагает различные опции для применения контроля над выполнением симуляции (для получения дополнительной информации см. документацию по Симулятору HDL). Например, можно задать, что симуляция выполняется для нескольких временных шагов.

    Следующая команда предписывает Симулятор HDL запустить загруженную симуляцию для 50000 временных шагов:

    run 50000
    
  4. Пройдите симуляцию и исследуйте значения.

    Как вы проходите симуляцию в симуляторе HDL будет варьироваться в зависимости от того, какое приложение симулятора вы используете.

    В MATLAB существует несколько способов пройти по коду; например, нажав кнопку на Step панели инструментов.

  5. Когда вы блокируете выполнение функции MATLAB, симулятор HDL также блокирует и остается заблокированным, пока вы не очистите все точки останова в коде функции.

  6. Возобновите симуляцию по желанию.

    Как вы возобновите симуляцию в симуляторе HDL, будет меняться в зависимости от того, какое приложение симулятора вы используете.

    В MATLAB существует несколько способов возобновить симуляцию; например, нажав кнопку на Continue панели инструментов.

    Следующий Симулятор HDL команда возобновляет моделирование:

    run -continue
    

Для получения дополнительной информации о функциях отладки Симулятора HDL и MATLAB, смотрите документацию по Симулятору HDL и онлайн-справку MATLAB или документацию.

Косимуляция с MATLAB с использованием интерфейса командной строки (CLI)

Выполнение сеанса косимуляции с помощью интерфейса командной строки позволяет вам взаимодействовать со Симулятором HDL во время косимуляции, что может быть полезно для отладки.

Чтобы использовать CLI, задайте «CLI» как значение свойства для параметра run mode команды launch HDL Verifier™ HDL simulator.

Команда Tcl, которую вы создаете, чтобы передать в команду Симулятора HDL launch, должна содержать команду run, либо не будет выполнена косимуляция.

Внимание

Закройте окно терминала путем ввода quit -f в командной строке. Не закрывайте окно терминала, нажав «X» в правом верхнем углу. Это приводит к ошибке типа памяти из системы. Это не ошибка с HDL Verifier, а только то, как Симулятор HDL ведет себя в этом контексте.

Можно ввести CTRL + C, чтобы прервать и завершить симуляцию в HDL-симуляторе, но это действие также приводит к отображению ошибки типа памяти.

 Задайте режим CLI с nclaunch (Cadence Incisive)

 Задайте режим CLI с vsim ( Mentor Graphics ModelSim)

Косимуляция с MATLAB с использованием пакетного режима

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

Чтобы использовать пакетный режим, задайте «Batch» как значение свойства для параметра run mode команды run HDL Verifier Simulator. После того, как вы выпустите HDL Verifier команду запуска HDL-симулятора с заданным пакетным режимом, запустите симуляцию в Simulink®. Чтобы остановить Симулятор HDL до завершения симуляции, выпустите breakHdlSim команда.

 Задайте пакетный режим с nclaunch (Cadence Incisive)

 Задайте пакетный режим с vsim ( Mentor Graphics ModelSim)

Применить Стимулы к сеансу косимуляции с командой force

После установления связи между Симулятором HDL и MATLAB можно затем применить стимулы к испытательному стенду окружения или компоненту косимуляции. Один из способов применения стимулов - через iport параметр связанной функции MATLAB. Этот параметр усиливает значения сигналов по отложению.

Другие способы применения стимулов включают выдачу force команды в главном окне симулятора HDL (для ModelSim можно также использовать опцию Edit > Clock в ModelSim Signals окне).

Для примера рассмотрим следующую последовательность force команды:

  • Острый®

    force osc_top.clk_enable 1 -after 0ns
    force osc_top.reset 0 -after 0ns 1 -after 40ns 0 -after 120ns
    force osc_top.clk 1 -after 0ns 0 -after 40ns -repeat 80ns
    
  • ModelSim

    VSIM n> force clk 0 0 ns, 1 5 ns -repeat 10 ns
    VSIM n> force clk_en 1 0
    VSIM n> force reset 0 0
    

Эти команды управляют следующими сигналами:

  • The clk сигнал к 0 в 0 наносекундах после текущего времени симуляции и к 1 в 5 наносекундам после текущего времени симуляции HDL. Этот цикл повторяется с 10 наносекунд после текущего времени симуляции, вызывая переходы с 1 до 0 и с 0 до 1 каждые 5 наносекунд, как показывает следующая схема.

    Для примера,

    force /foobar/clk   0 0, 1 5 -repeat 10
  • The clk_en сигнал к 1 в 0 наносекундах после текущего времени симуляции.

  • The reset сигнал 0 в 0 наносекундах после текущего времени симуляции.

Резкие пользователи: Использование HDL для кодовых тактовых сигналов вместо команды force

Вы должны рассмотреть использование HDL для кодирования тактовых сигналов как force является решением с более низкой эффективностью в текущей версии Cadence Incisive® тренажеры.

Ниже приводятся способы введения периодической силы:

  • Через панель «Часы» в блоке HDL Cosimulation

  • Через команды pree/post Tcl в блоке HDL Cosimulation

  • Через скрипт Tcl, вводимый пользователем, чтобы ncsim

Все три подхода могут привести к снижению эффективности.

Симуляция перезапуска

Поскольку Симулятор HDL выдает запросы на обслуживание во время сеанса косимуляции MATLAB, необходимо перезапустить сеанс из Симулятора HDL. Чтобы перезапустить сеанс, выполните следующие шаги:

  1. Сделайте Симулятор HDL своим активным окном, если ваш вход особым вниманием еще не установлен на это приложение.

  2. Перезагрузите элементы проекта HDL и сбросьте время симуляции в нуль.

  3. Переиздайте matlabtb или matlabcp команда.

Примечание

Чтобы перезапустить симуляцию, которая выполняется, выполните команду break и завершите текущий сеанс симуляции перед перезапуском нового сеанса.

Остановите симуляцию

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

  1. Сделайте Симулятор HDL своим активным окном, если ваш вход особым вниманием еще не установлен на это приложение.

  2. Остановите симуляцию. Вы должны выйти из симуляции на Симулятор HDL стороне, или MATLAB может зависнуть, пока симулятор не закроется.

  3. Закройте свой проект.

  4. Выход из симулятора HDL, если вы закончите с приложением.

  5. Выход из MATLAB, если приложение закончено. Если вы хотите завершить работу сервера вручную, остановите сервер, вызвав hdldaemon с 'kill' опция:

    hdldaemon('kill')

Для получения дополнительной информации о закрытии Симулятора HDL сеансов см. документацию по Симулятору HDL.