Чтобы начать и контролировать выполнение симуляции в 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) или в пакетном режиме.
Эти шаги описывают типовую последовательность для выполнения симуляции в интерактивном режиме из главного окна Симулятора HDL:
Установите точки останова в коде HDL и MATLAB, чтобы проверить и проанализировать прогресс симуляции.
Как вы устанавливаете точки останова в симуляторе HDL будет варьироваться в зависимости от того, какое приложение симулятора вы используете.
В MATLAB существует несколько способов задать точки останова; например, при помощи кнопки Set/Clear Breakpoint на панели инструментов.
Проблема matlabtb
команда в строке Симулятора HDL.
Когда вы начинаете определенный испытательный стенд или сеанс компонента, вы задаете параметры, которые идентифицируют следующую информацию:
Режим и, если применимо, данные TCP/IP для подключения к серверу MATLAB (см. matlabtb
ссылка)
Функция MATLAB, которая связана с HDL- образца и выполняется от его имени. Смотрите Bind HDL Module Component, чтобы MATLAB Испытательного стенда Function.
Спецификации синхронизации и другие управляющие данные, которые определяют, когда должна быть вызвана функция MATLAB модуля. Смотрите Расписание Опций для Испытательного стенда сессии.
Для примера:
hdlsim> matlabtb osc_top -sensitivity /osc_top/sine_out -socket 4448 -mfunc hosctb
Запустите симуляцию, введя Симулятор HDL run
команда.
The run
команда предлагает различные опции для применения контроля над выполнением симуляции (для получения дополнительной информации см. документацию по Симулятору HDL). Например, можно задать, что симуляция выполняется для нескольких временных шагов.
Следующая команда предписывает Симулятор HDL запустить загруженную симуляцию для 50000 временных шагов:
run 50000
Пройдите симуляцию и исследуйте значения.
Как вы проходите симуляцию в симуляторе HDL будет варьироваться в зависимости от того, какое приложение симулятора вы используете.
В MATLAB существует несколько способов пройти по коду; например, нажав кнопку на Step панели инструментов.
Когда вы блокируете выполнение функции MATLAB, симулятор HDL также блокирует и остается заблокированным, пока вы не очистите все точки останова в коде функции.
Возобновите симуляцию по желанию.
Как вы возобновите симуляцию в симуляторе HDL, будет меняться в зависимости от того, какое приложение симулятора вы используете.
В MATLAB существует несколько способов возобновить симуляцию; например, нажав кнопку на Continue панели инструментов.
Следующий Симулятор HDL команда возобновляет моделирование:
run -continue
Для получения дополнительной информации о функциях отладки Симулятора HDL и MATLAB, смотрите документацию по Симулятору HDL и онлайн-справку MATLAB или документацию.
Выполнение сеанса косимуляции с помощью интерфейса командной строки позволяет вам взаимодействовать со Симулятором HDL во время косимуляции, что может быть полезно для отладки.
Чтобы использовать CLI, задайте «CLI» как значение свойства для параметра run mode команды launch HDL Verifier™ HDL simulator.
Команда Tcl, которую вы создаете, чтобы передать в команду Симулятора HDL launch, должна содержать команду run, либо не будет выполнена косимуляция.
Внимание
Закройте окно терминала путем ввода quit -f
в командной строке. Не закрывайте окно терминала, нажав «X» в правом верхнем углу. Это приводит к ошибке типа памяти из системы. Это не ошибка с HDL Verifier, а только то, как Симулятор HDL ведет себя в этом контексте.
Можно ввести CTRL + C, чтобы прервать и завершить симуляцию в HDL-симуляторе, но это действие также приводит к отображению ошибки типа памяти.
Выполнение сеанса косимуляции в пакетном режиме позволяет вам сохранить процесс в фоновом режиме, уменьшая потребность в памяти путем отключения графический интерфейс пользователя.
Чтобы использовать пакетный режим, задайте «Batch» как значение свойства для параметра run mode команды run HDL Verifier Simulator. После того, как вы выпустите HDL Verifier команду запуска HDL-симулятора с заданным пакетным режимом, запустите симуляцию в Simulink®. Чтобы остановить Симулятор HDL до завершения симуляции, выпустите breakHdlSim
команда.
После установления связи между Симулятором 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
является решением с более низкой эффективностью в текущей версии Cadence Incisive® тренажеры.
Ниже приводятся способы введения периодической силы:
Через панель «Часы» в блоке HDL Cosimulation
Через команды pree/post Tcl в блоке HDL Cosimulation
Через скрипт Tcl, вводимый пользователем, чтобы ncsim
Все три подхода могут привести к снижению эффективности.
Поскольку Симулятор HDL выдает запросы на обслуживание во время сеанса косимуляции MATLAB, необходимо перезапустить сеанс из Симулятора HDL. Чтобы перезапустить сеанс, выполните следующие шаги:
Сделайте Симулятор HDL своим активным окном, если ваш вход особым вниманием еще не установлен на это приложение.
Перезагрузите элементы проекта HDL и сбросьте время симуляции в нуль.
Переиздайте matlabtb
или matlabcp
команда.
Примечание
Чтобы перезапустить симуляцию, которая выполняется, выполните команду break и завершите текущий сеанс симуляции перед перезапуском нового сеанса.
Когда вы готовы остановить сеанс испытательного стенда или компонента, лучше всего сделать это упорядоченным способом, чтобы избежать возможного повреждения файлов и увидеть, что все задачи приложения завершаются чисто. Остановите сеанс следующим образом:
Сделайте Симулятор HDL своим активным окном, если ваш вход особым вниманием еще не установлен на это приложение.
Остановите симуляцию. Вы должны выйти из симуляции на Симулятор HDL стороне, или MATLAB может зависнуть, пока симулятор не закроется.
Закройте свой проект.
Выход из симулятора HDL, если вы закончите с приложением.
Выход из MATLAB, если приложение закончено. Если вы хотите завершить работу сервера вручную, остановите сервер, вызвав hdldaemon
с 'kill'
опция:
hdldaemon('kill')
Для получения дополнительной информации о закрытии Симулятора HDL сеансов см. документацию по Симулятору HDL.