Импорт HDL-кода для блока косимуляции HDL

Тип косимуляции - блок Simulink

Откройте модель, а на вкладке Приложения нажмите HDL Verifier. Затем в Mode разделе выберите HDL Cosimulation и нажатие кнопки Import HDL Files, чтобы открыть Cosimulation Wizard.

  1. Выберите ModelSim или Incisive для HDL Simulator.

  2. Выберите 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 исполняемым файлам.

  3. Нажмите Next.

HDL- Файлов - блок Simulink

На панели HDL Files укажите файлы, которые будут использоваться при создании функции или блока.

  • Cosimulation Wizard пытается определить тип файлов каждого файла и отобразить тип в File List рядом с именем файла. Если Cosimulation Wizard не может определить тип или отображает неправильный тип, можно изменить тип непосредственно в File Type столбце.

  • По возможности Cosimulation Wizard автоматически определит порядок компиляции с помощью Симулятора HDL функциональности. Это означает, что вы можете добавить файлы в любом порядке.

  • Если вы используете ModelSim®, вы увидите скрипты компиляции, перечисленные как файлы .do (макро-файл ModelSim). Если вы используете Incisive®, вы увидите скрипты компиляции, перечисленные как системные скрипты.

  1. Щелкните Add, чтобы выбрать одно или несколько имен файлов.

  2. Удалите файлы, сначала выделив имя файла в File List, а затем нажав Remove Selected File.

  3. Нажмите Next.

Компиляция HDL - блок Simulink

На панели HDL Compilation можно просмотреть сгенерированные команды компиляции. При необходимости можно переопределить и/или настроить эти команды. Если вы включили скрипты компиляции вместо HDL- файлов, на этой панели будет показана команда запуска этих скриптов.

  1. Все изменения команд вводятся в поле Compilation Commands.

    Примечание

    Не включать команды системного интерпретатора; для примера:

    set file = a.vhd vcom $file

    Когда управление возвращается в Cosimulation Wizard от выполнения команды, переменная больше не содержит заданное значение. Если вы пытаетесь включить этот тип команды, вы увидите ошибку на панели Status.

  2. Щелкните Restore default commands, чтобы вернуться к сгенерированным командам компиляции. Вы должны подтвердить, что хотите отменить любые изменения.

  3. Для продолжения нажмите кнопку Next.

Опции симуляции - блок Simulink

На панели Simulation Options укажите имя HDL-модуля, который будет использоваться в косимуляции.

  1. Введите имя модуля в Name of HDL module to cosimulate with.

  2. Задайте дополнительные опции симуляции в Simulation options. Для примера на предыдущем изображении показаны следующие опции:

    • Разрешение симулятора HDL

    • Отключите оптимизацию, которая удаляет сигналы из вида симуляции

    Нажмите кнопку Restore Defaults, чтобы изменить опции на значения по умолчанию.

  3. Для Connection method выберите Shared Memory если политика межсетевого экрана не разрешает обмен данными между сокетами TCP/IP.

  4. Нажмите кнопку Next, чтобы перейти к следующему шагу. В это время в процессе приложение выполняет следующие действия в командном окне:

    • Запускает симулятор HDL.

    • Загрузка модуля HDL в симулятор HDL.

    • Запускает HDL-сервер и ожидает получения уведомления о запуске сервера.

    • Соединяется с HDL-сервером для получения информации о порте.

    • Отключение и отключение HDL-сервера.

Входные/выходные порты - блок Simulink

  1. На панели Simulink Ports задайте тип каждого входного и выходного порта.

    • Cosimulation Wizard пытается определить для вас типы портов, но можно переопределить любой параметр.

    • Для входных портов выберите Input, Clock, Reset, или Unused.

    • Для выходных портов выберите Output или Unused.

    • Simulink® выдает сигналы синхронизации и сброса в симуляторе HDL через команды Tcl. Вы можете задать часы и сбросить синхронизацию сигнала на более позднем шаге (см. Clock/Reset Details - Блок Simulink ).

    • Чтобы привести в действие HDL-часы и сбросить сигналы с Сигналов Simulink, отметьте их как Input.

  2. Щелкните Next, чтобы перейти к разделу Детали выходного порта - Блок Simulink.

Выходы портов - Блок Simulink

  1. На панели Output Port Details установите шаг расчета и тип данных для всех выходных портов.

    • Шаг расчета по умолчанию является 1тип данных по умолчанию Inherit и Signed. Эти значения по умолчанию соответствуют тому, как маска HDL Cosimulation блока (Ports вкладка) устанавливает настройки по умолчанию для выходных портов.

    • Если вы выбираете Set all sample times and data types to 'Inherit', порты наследуют время через обратное распространение (шаги расчета установлены на -1). Однако при некоторых обстоятельствах распространение спины может оказаться неудачным; см. Backpropagation in Шаги расчета (Simulink).

  2. Нажмите Next.

Часы/сброс деталей - Блок Simulink

  1. На панели Clock/Reset Details установите часы и параметры сброса.

    • Указанный здесь период времени относится к времени в симуляторе HDL.

    • Настройками по умолчанию для часов являются восходящее активное ребро и период 10 нс.

    • Настройки по умолчанию сброса являются начальным значением 0 и длительностью 15 нс.

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

  2. Нажмите Next.

Выравнивание по времени начала - блок Simulink

  1. На панели Start Time Alignment проверьте текущие настройки часов и сбросов. Целью этого диалога является двоякое:

    • Чтобы убедиться, что поднимающийся или падающее ребро установлено как ожидалось (с предыдущего шага)

      • Исследуйте время начала. Если она совпадает с активным ребром часов, необходимо настроить Симулятор HDL время запуска.

      • Исследуйте сигнал сброса. Если он синхронен с активным ребром синхроимпульса, у вас может быть возможное условие гонки.

        Чтобы избежать условия гонки, убедитесь, что время запуска не совпадает с активным ребром каких-либо часов. Это можно сделать путем перемещения времени запуска или путем изменения активных ребер синхроимпульса на предыдущем шаге.

    • Чтобы убедиться, что время запуска находится там, где вы хотите.

    Время запуска Симулятора HDL вычисляется из времени и значений сброса на предыдущей панели. Если вы хотите, можно изменить Симулятор HDL время начала путем ввода нового значения, где вы видите HDL time to start cosimulation (ns). Щелкните Update plot, чтобы увидеть применение изменения.

  2. Нажмите Next.

Сгенерируйте блок

  1. Укажите, хотите ли вы, чтобы HDL- Verifier™ определял шкалу времени при запуске симуляции, выбрав Automatically determine timescale at start of simulation. Если вы предпочитаете самостоятельно определять шкалу времени, оставьте это поле без изменений и введите значение шкалы времени в текстовые поля ниже. Значением по умолчанию является автоматическое определение шкалы времени.

    Для получения дополнительной информации о временных шкалах смотрите Simulation Timescales.

  2. Нажмите Back, чтобы просмотреть или изменить настройки.

  3. Щелкните Finish, чтобы сгенерировать HDL-блок косимуляции.

Полная модель Simulink

Инструмент Cosimulation Wizard вставляет в модель следующие элементы:

  • Блок HDL Cosimulation

  • A служебной функции для компиляции HDL- проекта

  • A служебной функции для запуска Симулятора HDL

  1. Поместите блок так, чтобы входы и выходы HDL Cosimulation блока совпали.

  2. Соедините блоки в целевой модели с блоком HDL Cosimulation.

Примечание

Если вы открыли Cosimulation Wizard из командной строки, а не с панели инструментов Simulink, HDL Cosimulation и служебные функции откроются в новой модели. Сначала вы должны скопировать их в свою модель.

Когда вы завершили модель, смотрите Выполнение косимуляции для следующих шагов в HDL-косимуляции.