Импортируйте HDL-код для HDL блок Cosimulation

Тип Cosimulation — блок Simulink

Откройте свою модель, и на вкладке Apps, нажмите 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 делает поле path симуляции 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. Можно заменить и/или настроить те команды, если вы желаете. Если вы включали скрипты компиляции вместо файлов HDL, эта панель покажет вам команду, чтобы запустить те скрипты.

  1. Введите любые изменения в командах в поле Compilation Commands.

    Примечание

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

    set file = a.vhd vcom $file

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

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

  3. Нажмите Next, чтобы продолжить.

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

В панели Simulation Options обеспечьте имя модуля HDL, который будет использоваться в cosimulation.

  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часысброс, или Unused.

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

    • Simulink® обеспечивает часы и сигналы сброса в симуляторе HDL посредством команд Tcl. Можно задать часы и сбросить синхронизацию сигнала на более позднем шаге (см. Детали Часов/Сброса — блок 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). Однако обратное распространение может перестать работать при некоторых обстоятельствах; смотрите Обратную связь в Шагах расчета (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. Если вы предпочитаете определять масштаб времени сами, оставлять это поле неконтролируемым и вводить значение масштаба времени в текстовые поля ниже. Значение по умолчанию должно автоматически определить масштаб времени.

    Для больше о масштабах времени, смотрите Масштабы времени Симуляции.

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

  3. Нажмите Finish, чтобы сгенерировать HDL cosimulation блок.

Завершите модель Simulink

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

  • Блок HDL Cosimulation

  • Служебная функция, чтобы скомпилировать проект HDL

  • Служебная функция, чтобы запустить симулятор HDL

  1. Поместите блок так, чтобы вводы и выводы с блоком HDL Cosimulation выстроились в линию.

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

Примечание

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

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