Начало работы с HDL Simulink Cosimulation

Этот пример проводит вас по основным шагам для подготовки приложения HDL Verifier™ с помощью Cosimulation Wizard в среде Simulink®.

Cosimulation Wizard является графическим интерфейсом пользователя (GUI), который проводит вас по процессу подготовки cosimulation между MATLAB® или Simulink® и средством моделирования Языка описания аппаратных средств (HDL).

В этом примере вы используете Simulink и ModelSim®, чтобы проверить проект фильтра приподнятого косинуса, написанного в Verilog. Фильтр приподнятого косинуса обычно используется в качестве импульсного формирующий фильтра в системах цифровой связи. Это не производит интерференции межсимвола (ISI) для входа модулируемых импульсов.

Чтобы проверить функциональность этого фильтра приподнятого косинуса, испытательный стенд Simulink обеспечивается. Этот испытательный стенд генерирует вход к проекту под тестом (DUT) HDL и строит формы волны обоих вводов и выводов.

Cosimulation Wizard берет обеспеченный файл Verilog этого фильтра приподнятого косинуса как его вход. Это также собирает ввод данных пользователем, требуемый для подготовки cosimulation на каждом шаге. В конце примера Cosimulation Wizard генерирует блок Simulink, который представляет проект HDL в модели Simulink, скрипте MATLAB, который компилирует проект HDL и скрипт MATLAB, который запускает симулятор HDL для cosimulation. В процессе моделирования можно смотреть, что формы волны ввода и вывода этого HDL просачиваются Simulink.

Требования и необходимые условия

Эти продукты требуются для этого примера.

  • Один из этих поддерживаемых симуляторов HDL: Наставник Graphics® ModelSim®/QuestaSim® или Cadence® Incisive®/Xcelium®

Запустите Cosimulation Wizard

Чтобы запустить Cosimulation Wizard из модели, выберите вкладку Apps в панели инструментов Simulink и нажмите HDL Verifier. Это действие добавляет вкладку HDL Verifier в Панель инструментов Simulink. Затем в Mode раздел выбирают HDL Cosimulation. Нажмите Import HDL Files в Том, чтобы генерировать Блок-участок Cosim.

Сконфигурируйте HDL блок Cosimulation с Cosimulation Wizard

В Полосе набора Cosimulation выполните следующие шаги:

  1. Если вы используете ModelSim или Questa, оставляете опцию симулятора HDL как ModelSim. Если вы используете Incisive или Xcelium, изменяете опцию симулятора HDL в Inicisve.

  2. Оставьте исполняемые файлы симулятора HDL опции по умолчанию Use на системной опции пути, если исполняемые файлы симулятора HDL появляются на вашем системном пути. Если они, исполняемый файл не появляется на пути, нажимают на Кнопку обзора, чтобы задать местоположение этих исполняемых файлов.

Нажмите Далее, чтобы перейти к странице HDL Files.

На странице HDL Files выполните следующие шаги:

  1. Нажмите Add и выберите rcostflt_rtl.v для Verilog или rcosflt_rtl.vhd для VHDL.

  2. Рассмотрите файл в списке файлов с типом файла, идентифицированным, как вы ожидали.

Нажмите Далее, чтобы перейти к странице HDL Compilation.

На странице HDL Compilation Cosimulation Wizard перечисляет команды по умолчанию в окне Compilation Commands. Вы не должны изменять эти команды для этого примера.

Когда вы запускаете Cosimulation Wizard со своим собственным кодом, можно добавить или изменить команды компиляции в этом окне.

Нажмите Далее, чтобы перейти к панели Модулей HDL. Это в свою очередь инициирует компиляцию. Консоль MATLAB отображает журнал компиляции. Если ошибка происходит во время компиляции, та ошибка появляется в области Status.

В панели Options Симуляции выполните следующие шаги:

  1. Задайте имя модуля/сущности HDL для cosimulation. Из выпадающего списка выберите rcosflt_rtl. Этот модуль является модулем Verilog/VHDL, который вы используете для cosimulation. Если вы не видите rcosflt_rtl в выпадающем списке можно ввести имя файла вручную.

  2. Для метода Связи выберите Shared Memory если ваша политика брандмауэра не позволяет коммуникацию сокета TCP/IP.

Нажмите Далее, чтобы перейти к панели Портов Simulink. Cosimulation Wizard запускает симулятор HDL в фоновом режиме консоль с помощью заданного модуля HDL и опций симуляции. После того, как мастер запускает симулятор HDL, мастер заполняет порты ввода и вывода на модуле Verilog/VHDL rcosflt_rtl и отображает их на следующем шаге.

На Задавать шаге Типов порта Cosimulation Wizard отображает две таблицы, содержащие порты ввода и вывода rcostflt_rtl, соответственно.

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

  1. Для входных портов можно выбрать из Clockсбросвходной параметр, или Unused. HDL Verifier соединяется, только входные порты отметили Inputs к Simulink во время cosimulation.

  2. HDL Verifier соединяется, выходные порты отметили Output с Simulink во время cosimulation. Мастер и Simulink игнорируют те выходные порты, отмеченные Unused во время cosimulation.

  3. Можно изменить параметры для сигналов, идентифицированных как Clock и Reset на более позднем шаге.

Примите типы порта по умолчанию и нажмите Далее, чтобы перейти к странице Output Port Details.

На странице Output Port Details выполните следующие шаги:

  1. Установите шаг расчета filter_out к -1 наследоваться через обратное распространение.

  2. Вы видите из кода Verilog, что Cosimulation Wizard представляет выход в sfix34_En29 формат. Измените следующие поля:

  • Тип данных к Fixedpoint

  • Подайте знак Signed

  • Дробная длина к 29

Нажмите Далее, чтобы перейти к странице Clock/Reset Details.

В данном примере установите Период часов (не уточнено) на 20. Из кода Verilog вы знаете, что сброс синхронен, и активное значение равняется 1. Можно сбросить целый проект HDL во время 1 нс, инициированный фронтом. Используйте длительность 15 нс для сигнала сброса.

На странице Clock/Reset выполните следующие шаги:

  1. Установите единицу измерения времени HDL на ns.

  2. Установите период часов на 20.

  3. Оставьте или установите активное ребро на Rising.

  4. Оставьте или установите начальное значение сброса к 1.

  5. Установите длительность сигнала сброса на 15.

Нажмите Далее, чтобы перейти к странице Start Time Alignment.

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

На странице Start Time Alignment, набор выравнивание. Активное ребро наших часов является возрастающим ребром. Таким образом, во время 20 нс в симуляторе HDL, зарегистрированный выход фильтра приподнятого косинуса устойчив. Никакое состояние состязания не существует, и время HDL по умолчанию, чтобы запустить cosimulation (20 нс) - то, что мы хотим для этой симуляции. Вы не должны вносить изменения во время начала.

Нажмите Далее, чтобы продолжить Блокировать Генерацию.

Прежде чем вы сгенерируете блок HDL Cosimulation, у вас есть опция, чтобы определить масштаб времени, прежде чем вы закончите Cosimulation Wizard. Альтернативно, можно дать HDL Verifier команду вычислить масштаб времени позже. Вычисление масштаба времени программным обеспечением верификации происходит после того, как вы соедините все порты ввода/вывода сгенерированного блока HDL Cosimulation и запустите симуляцию.

На странице Block Generation отпуск Автоматически определяет масштаб времени в начале симуляции, выбранной (значение по умолчанию). Позже, у вас будет возможность просмотреть расчетный масштаб времени и изменение что значение перед вами являющийся симуляцией.

Нажмите Finish, чтобы завершить сеанс Cosimulation Wizard.

Создайте испытательный стенд, чтобы проверить проект HDL

В этом примере, тестовая модель Simulink rcosflt_tb был обеспечен. После того, как вы нажмете Finish в Cosimulation Wizard, Simulink вставляет следующие элементы в центре холста модели:

  • Блок HDL Cosimulation

  • Блок, чтобы перекомпилировать проект HDL (содержит ссылку на скрипт, который запускается путем двойного клика по блоку),

  • Блок, чтобы запустить симулятор HDL (содержит ссылку на скрипт, который запускается путем двойного клика по блоку),

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

Запустите Cosimulation и проверьте проект HDL

  1. Запуститесь симулятор HDL путем двойного клика по блоку пометил Launch HDL Simulator.

  2. Когда симулятор HDL будет готов, возвратитесь к Simulink и запустите симуляцию.

  3. Определите масштаб времени. Вспомните, что вы выбрали Automatically, определяют масштаб времени в начале опции симуляции на последней странице Cosimulation Wizard. При выполнении так, HDL Verifier запускает графический интерфейс Деталей Масштаба времени вместо того, чтобы запустить симуляцию. И симулятор HDL и Simulink производят filter_in и filter_out порты в 1 секунду. Однако их шаг расчета в симуляторе HDL должен совпасть с периодом часов (20 нс). Измените шаг расчета Simulink /rcosflt_rtl/clk к 1 (секунды), и нажимают Enter. Мастер затем обновляет таблицу. Следующий рисунок показывает новый масштаб времени: 1 секунда в Simulink соответствует 2e-008 s в симуляторе HDL.

Нажмите ОК, чтобы закрыть диалоговое окно Деталей Масштаба времени. Перезапустите симуляцию Simulink и проверьте результаты осциллографа в тестовой модели.

Осциллограф отображает и задержанную версию входа к фильтру приподнятого косинуса и что выход фильтра. Если вы производите выход этого фильтра, выход непосредственно, нет "предают интерференцию символа земле", происходит.