Запустите HDL MATLAB Cosimulation

Процесс для рабочего MATLAB Cosimulation

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

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

Первый шаг к запуску симулятора 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 в использовании.

Запустите Cosimulation

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

Cosimulation с 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.

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

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

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

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

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

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

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

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

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

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

    run -continue
    

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

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

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

Чтобы использовать CLI, задайте "CLI" как значение свойства для параметра режима выполнения команды запуска симулятора HDL HDL Verifier™.

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

Внимание

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

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

 Задайте режим CLI с nclaunch (Острый Тактовый сигнал)

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

Cosimulation с MATLAB Используя пакетный режим

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

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

 Задайте Пакетный режим с nclaunch (Острый Тактовый сигнал)

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

Примените Стимулы для Сеанса Cosimulation с Командой силы

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

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

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

  • Incisive®

    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 наносекунд после текущего времени симуляции HDL. Эти повторения цикла, запускающиеся в 10 наносекунд после текущего времени симуляции, вызывая переходы от 1 до 0 и от 0 до 1 каждые 5 наносекунд, когда следующая схема показывает.

    Например,

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

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

Острые Пользователи: Используя HDL, чтобы Закодировать Сигналы Часов Вместо Команды силы

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

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

  • Через Часы разделяют на области в блоке HDL Cosimulation

  • Через пред/сообщение команды Tcl в блоке HDL Cosimulation

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

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

Перезапустите симуляцию

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

    hdldaemon('kill')

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