exponenta event banner

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

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

Для запуска и управления выполнением моделирования в среде MATLAB ® выполните следующие шаги:

Проверка состояния канала сервера Cosimulation 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

См. раздел «Параметры: Входные данные» в разделе hdldaemon справочная документация для информации по определению режима связи и используемого сокета TCP/IP.

Запустить косимуляцию

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

Cosimulation with MATLAB с использованием графического интерфейса имитатора HDL

Эти шаги описывают типичную последовательность выполнения моделирования в интерактивном режиме из главного окна имитатора ЛПВП:

  1. Установите точки останова в кодах HDL и MATLAB для проверки и анализа хода моделирования.

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

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

  2. Проблема matlabtb в приглашении имитатора ЛПВП.

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

    Например:

    hdlsim> matlabtb osc_top -sensitivity /osc_top/sine_out
          -socket 4448 -mfunc hosctb
  3. Запустите моделирование с помощью имитатора ЛПВП run команда.

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

    Следующая команда предписывает имитатору ЛПВП выполнять моделирование с загрузкой в течение 50000 временных шагов:

    run 50000
    
  4. Перейдите к моделированию и проверьте значения.

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

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

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

  6. При необходимости возобновите моделирование.

    Способ возобновления моделирования в имитаторе HDL зависит от используемого приложения.

    В MATLAB существует несколько способов возобновления моделирования: например, нажав кнопку «Продолжить» на панели инструментов.

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

    run -continue
    

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

Cosimulation with MATLAB с использованием интерфейса командной строки (CLI)

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

Для использования интерфейса командной строки укажите «CLI» в качестве значения свойства параметра режима выполнения команды запуска имитатора HDL Verifier™ HDL.

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

Внимание

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

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

 Укажите режим CLI с помощью nclaunch (Cadence Incisive)

 Укажите режим CLI с помощью vsim ( Mentor Graphics ModelSim)

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

Запуск сеанса косимуляции в пакетном режиме позволяет поддерживать процесс в фоновом режиме, снижая нагрузку на память за счет отключения графического интерфейса пользователя.

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

 Укажите пакетный режим с помощью nclaunch (Cadence Incisive)

 Укажите пакетный режим с помощью vsim ( Mentor Graphics ModelSim)

Применить стимулы к сеансу косимуляции с помощью команды Force

После установления соединения между имитатором ЛПВП и 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
    

Эти команды возбуждают следующие сигналы:

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

    Например,

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

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

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

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

Существуют следующие способы введения периодической силы:

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

  • С помощью команд предварительного/последующего управления в блоке косимуляции ЛПВП

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

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

Перезапустить моделирование

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

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

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

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

Примечание

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

Остановить моделирование

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

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

  2. Остановите моделирование. Вы должны выйти из моделирования на стороне имитатора ЛПВП, или MATLAB может зависнуть до тех пор, пока симулятор не выйдет.

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

  4. По завершении работы с приложением выйдите из имитатора ЛПВП.

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

    hdldaemon('kill')

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