exponenta event banner

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

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

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

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

Для проверки функциональности этого фильтра с увеличенным косинусом предусмотрены средства тестирования Simulink. В этом испытании генерируются входные данные для тестируемого проекта ЛПВП (DUT) и отображаются формы сигналов как входного, так и выходного сигнала.

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

Требования и предпосылки

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

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

Запустить мастер косимуляции

Чтобы запустить мастер косимуляции из модели, перейдите на вкладку «Приложения» на панели инструментов Simulink и щелкните «Верификатор HDL». Это действие добавляет вкладку «Верификатор HDL» на панель инструментов Simulink. Затем в разделе Mode выберите HDL Cosimulation. Щелкните Импорт файлов HDL (Import HDL Files) в разделе Генерировать блок Cosim (Generate Cosim Block).

Настройка блока косимуляции HDL с помощью мастера косимуляции

На странице Тип косимуляции (Cosimulation Type) выполните следующие шаги.

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

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

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

На странице HDL Files выполните следующие действия.

  1. Нажмите кнопку Добавить и выберите любой из них rcostflt_rtl.v для Verilog или rcosflt_rtl.vhd для VHDL.

  2. Просмотрите файл в списке файлов, указав ожидаемый тип файла.

Щелкните Далее (Next), чтобы перейти на страницу Компиляция HDL (HDL Compilation).

На странице Компиляция HDL (HDL Compilation) Мастер косимуляции (Cosimulation Wizard) перечисляет команды по умолчанию в окне Команды компиляции (Compilation Commands). Изменять эти команды для данного учебного пособия не требуется.

При запуске мастера косимуляции с собственным кодом можно добавлять или изменять команды компиляции в этом окне.

Нажмите кнопку Далее (Next), чтобы перейти к панели Модули HDL (HDL Modules). Это, в свою очередь, вызовет компиляцию. На консоли MATLAB отображается журнал компиляции. Если во время компиляции возникает ошибка, она появляется в области Состояние.

На панели Опции моделирования (Simulation Options) выполните следующие действия.

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

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

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

На шаге «Указать типы портов» мастер косимуляции отображает две таблицы, содержащие входные и выходные порты rcostflt_rtlсоответственно.

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

  1. Для портов ввода можно выбрать из Clock, Reset, Input, или Unused. HDL Verifier подключает только отмеченные входные порты Inputs к Simulink во время косимуляции.

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

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

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

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

  1. Установка времени выборки filter_out кому -1 для наследования через обратное распространение.

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

  • Тип данных для Fixedpoint

  • Подписаться на Signed

  • Длина фракции до 29

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

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

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

  1. Установка единицы времени HDL в ns.

  2. Установите тактовый период равным 20.

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

  4. Оставьте или установите исходное значение 1.

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

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

На странице «Start Time Alignment» отображается график для сигналов синхронизации и сброса. Мастер косимуляции показывает время HDL для начала косимуляции красной линией. Время начала также является временем, в которое Simulink получает первую входную выборку из имитатора ЛПВП.

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

Нажмите кнопку «» Далее «», чтобы перейти к разделу «» Создание блока «».

Перед созданием блока косимуляции HDL можно определить временную шкалу до завершения работы мастера косимуляции. Кроме того, можно дать команду программе проверки HDL вычислить шкалу времени позже. Расчет шкалы времени с помощью программы проверки выполняется после подключения всех портов ввода/вывода сгенерированного блока косимуляции HDL и запуска моделирования.

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

Нажмите кнопку Готово (Finish), чтобы завершить сеанс мастера косимуляции.

Создание испытательного стенда для проверки конструкции ЛПВП

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

  • Блок косимуляции ЛПВП

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

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

Расположите блок косимуляции ЛПВП таким образом, чтобы блоки константы и преобразования выстраивались как входы в блок косимуляции ЛПВП, а шина выстраивалась как выход. Подключите блоки. Модель теперь выглядит так же, как на следующем рисунке.

Выполнение косимуляции и проверка конструкции ЛПВП

  1. Запустите имитатор ЛПВП, дважды щелкнув на блоке Launch HDL Simulator.

  2. Когда имитатор ЛПВП будет готов, вернитесь в Simulink и запустите моделирование.

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

Нажмите кнопку «ОК», чтобы закрыть диалоговое окно «Сведения о шкале времени». Перезапустите моделирование Simulink и проверьте результаты из области в модели испытательного стенда.

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