Если вы еще не сделали так, вызовите 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 делает поле path симуляции 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. Можно заменить и/или настроить те команды, если вы желаете. Если вы включали скрипты компиляции вместо файлов HDL, эта панель покажет вам команду, чтобы запустить те скрипты.
Введите любые изменения в командах в поле Compilation Commands.
Не включайте системные команды интерпретатора; например:
set file = a.vhd vcom $file
Когда управление возвращается к Cosimulation Wizard от выполнения команды, переменная больше не содержит значение, которое было установлено. Если вы действительно попытаетесь включать этот тип команды, вы будете видеть ошибку в панели Status.
Нажмите Restore default commands, чтобы вернуться к сгенерированным командам компиляции HDL. Вас просят подтвердить, что вы хотите отменить любые изменения.
Нажмите Next, чтобы продолжить.
В панели HDL Module обеспечьте имя модуля HDL, который будет использоваться в cosimulation.
Введите имя модуля в 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. Можно задать часы и сбросить синхронизацию сигнала на более позднем шаге (см. Детали Часов/Сброса — Системный объект MATLAB).
Нажмите Next.
В панели Output Port Details, набор шаг расчета и тип данных для всех выходных портов.
Значением по умолчанию шага расчета является 1
, значением по умолчанию типа данных является Inherit
и Signed
. Эти значения по умолчанию сопоставимы со способом, которым маска блока HDL Cosimulation (вкладка Ports) устанавливает настройки по умолчанию для выходных портов (рабочий процесс Simulink®).
Если вы выбираете Set all sample times and data types to 'Inherit', порты наследовали времена через обратное распространение (шаги расчета установлены в-1). Однако обратное распространение может перестать работать при некоторых обстоятельствах; смотрите Обратную связь в Шагах расчета (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 в текущем каталоге:
— Скрипт для перекомпиляции проекта HDLcompile_hdl_design_design_name.m
— Скрипт для перезапуска сервера Системного объекта MATLAB и запуска симулятора HDLlaunch_hdl_simulator_design_name.m
— Скрипт для создания Системного объекта hdlcosim_design_name.m
HDLCosimulation
Запишите испытательный стенд для использования с недавно сгенерированным HDL cosimulation Системный объект. Испытательный стенд, который вы пишете, может выглядеть подобным примеру, показанному затем.
Для файлов, используемых в этом примере, смотрите Cosimulation Wizard для Системного объекта MATLAB.
Запустите симулятор HDL путем выполнения скрипта запуска, созданного мастером (
)launch_hdl_simulator_design_name.m
Когда симулятор HDL будет готов, возвратитесь к MATLAB и запустите симуляцию путем выполнения испытательного стенда.
Проверьте результаты.