Если вы еще не сделали этого, активируйте Cosimulation Wizard.
cosimWizard
На панели Cosimulation Type выберите MATLAB System object
в полевых HDL cosimulation with.
Выберите ModelSim
или Incisive
для HDL Simulator.
Выберите Use HDL simulator executables on the system path, где находятся файлы. По умолчанию Cosimulation Wizard принимает, что они находятся в системном пути.
Если Симулятора HDL исполняемых файлов нет в системном пути, выберите Use the following HDL simulator executables at the following location и укажите расположение папки в текстовом поле ниже.
При нажатии кнопки Next, а Cosimulation Wizard не находит исполняемые файлы, происходит следующее:
Вы вернетесь в это диалоговое окно, и в Cosimulation Wizard отобразится ошибка на панели состояния.
Этот Cosimulation Wizard переключает опцию на Use the following HDL simulator executables at the following location.
Этот Cosimulation Wizard делает поле пути симуляции HDL редактируемым.
Перед продолжением необходимо ввести допустимый путь к Симулятору HDL исполняемым файлам.
Нажмите Next.
На панели HDL Files укажите файлы, которые будут использоваться при создании функции или блока.
Cosimulation Wizard пытается определить тип файлов каждого файла и отобразить тип в File List рядом с именем файла. Если Cosimulation Wizard не может определить тип или отображает неправильный тип, можно изменить тип непосредственно в File Type столбце.
По возможности Cosimulation Wizard автоматически определит порядок компиляции с помощью Симулятора HDL функциональности. Если ваш симулятор не включает эту функциональность, добавьте файлы в том порядке, в котором они должны быть скомпилированы.
Если вы используете ModelSim®, вы увидите скрипты компиляции, перечисленные как файлы .do (макро-файл ModelSim). Если вы используете Incisive®, вы увидите скрипты компиляции, перечисленные как системные скрипты.
Щелкните Add, чтобы выбрать одно или несколько имен файлов.
Удалите файлы, сначала выделив имя файла в File List, а затем нажав Remove Selected File.
Нажмите Next.
На панели HDL Compilation можно просмотреть сгенерированные команды компиляции. При необходимости можно переопределить и/или настроить эти команды. Если вы включили скрипты компиляции вместо HDL- файлов, на этой панели будет показана команда запуска этих скриптов.
Все изменения команд вводятся в поле Compilation Commands.
Примечание
Не включать команды системного интерпретатора; для примера:
set file = a.vhd vcom $file
Когда управление возвращается в Cosimulation Wizard от выполнения команды, переменная больше не содержит заданное значение. Если вы пытаетесь включить этот тип команды, вы увидите ошибку на панели Status.
Щелкните Restore default commands, чтобы вернуться к сгенерированным командам компиляции. Вы должны подтвердить, что хотите отменить любые изменения.
Для продолжения нажмите кнопку Next.
На панели HDL Module укажите имя HDL-модуля, который будет использоваться в косимуляции.
Введите имя модуля в Name of HDL module to cosimulate with.
Задайте дополнительные опции симуляции в Simulation options. Для примера на предыдущем изображении показаны следующие опции:
Разрешение симулятора HDL
Отключите оптимизацию, которая удаляет сигналы из вида симуляции
Нажмите кнопку Restore Defaults, чтобы изменить опции на значения по умолчанию.
Для Connection method выберите Shared Memory
если политика межсетевого экрана не разрешает обмен данными между сокетами TCP/IP.
Нажмите кнопку Next, чтобы перейти к следующему шагу. В это время в процессе приложение выполняет следующие действия в командном окне:
Запускает симулятор HDL.
Загрузка модуля HDL в симулятор HDL.
Запускает HDL-сервер и ожидает получения уведомления о запуске сервера.
Соединяется с HDL-сервером для получения информации о порте.
Отключение и отключение HDL-сервера.
На панели Input/Output Ports задайте тип каждого входного и выходного порта (Input
, Clock
, Reset
, или Unused
).
Cosimulation Wizard пытается определить для вас типы портов, но можно переопределить любой параметр.
MATLAB® выдает сигналы синхронизации и сброса в симуляторе HDL через команды Tcl. Вы можете задать часы и сбросить синхронизацию сигнала на более позднем шаге (см. Clock/Reset Details - MATLAB System Object ).
Нажмите Next.
На панели Output Port Details установите шаг расчета и тип данных для всех выходных портов.
Шаг расчета по умолчанию является 1
тип данных по умолчанию Inherit
и Signed
. Эти значения по умолчанию согласуются с тем, как маска HDL Cosimulation блока (Ports вкладка) устанавливает настройки по умолчанию для выходных портов (Simulink® рабочий процесс).
Если вы выбираете Set all sample times and data types to 'Inherit', порты наследуют время через обратное распространение (шаги расчета установлены на -1). Однако при некоторых обстоятельствах распространение спины может оказаться неудачным; см. Backpropagation in Шаги расчета (Simulink).
Нажмите Next.
В Clock/Reset Details pane установите часы и параметры сброса.
Указанный здесь период времени относится к времени в симуляторе HDL.
Настройками по умолчанию для часов являются восходящее активное ребро и период 10 нс.
Настройки по умолчанию сброса являются начальным значением 0 и длительностью 15 нс.
Следующий экран обеспечивает визуальное отображение времени начала симуляции, где можно просмотреть, как часы и сбросы строятся.
Нажмите Next.
На панели Start Time Alignment проверьте текущие настройки часов и сбросов. Целью этого диалога является двоякое:
Чтобы убедиться, что поднимающийся или падающее ребро установлено как ожидалось (с предыдущего шага)
Исследуйте время начала. Если она совпадает с активным ребром часов, необходимо настроить Симулятор HDL время запуска.
Исследуйте сигнал сброса. Если он синхронен с активным ребром синхроимпульса, у вас может быть возможное условие гонки.
Чтобы избежать условия гонки, убедитесь, что время запуска не совпадает с активным ребром каких-либо часов. Это можно сделать путем перемещения времени запуска или путем изменения активных ребер синхроимпульса на предыдущем шаге.
Чтобы убедиться, что время запуска находится там, где вы хотите.
Время запуска Симулятора HDL вычисляется из времени и значений сброса на предыдущей панели. Если вы хотите, можно изменить Симулятор HDL время начала путем ввода нового значения, где вы видите HDL time to start cosimulation (ns). Щелкните Update plot, чтобы увидеть применение изменения.
Нажмите Next.
Можно изменить период дискретизации Симулятора HDL перед созданием системной object™. Введите новое значение в поле, помеченное HDL Simulator sampling period (ns).
Период дискретизации определяет истекшее время в Симулятор HDL, разделяющем каждый вызов на шаг в MATLAB. Большую часть времени период дискретизации равен периоду синхроимпульса.
Если ваши входы и выходы основаны системой координат (вместо выборочных), выберите Frame based processing.
Нажмите Finish.
После нажатия кнопки Finish мастер генерирует следующие HDL- файлов в текущей директории:
- Скрипт для перекомпиляции HDL-дизайнаcompile_hdl_design_<reservedrangesplaceholder0 >
.m
- Скрипт для перезапуска сервера объектов MATLAB System и запуска HDL-симулятораlaunch_hdl_simulator_<reservedrangesplaceholder0 >
.m
- Скрипт для создания hdlcosim_<reservedrangesplaceholder0 >
.mHDLCosimulation
Системный объект
Напишите испытательный стенд для использования с недавно сгенерированными Системными объектами косимуляции HDL. Испытательный стенд, который вы пишете, может выглядеть аналогично следующему примеру.
Для файлов, используемых в этом примере, см. Cosimulation Wizard для системного объекта MATLAB.
Запустите HDL-симулятор, выполнив скрипт запуска, созданный мастером (
)launch_hdl_simulator_<reservedrangesplaceholder0 >
.m
Когда симулятор HDL будет готов, вернитесь к MATLAB и запустите симуляцию, выполнив испытательный стенд.
Проверьте результаты.