Проверьте Фильтр приподнятого косинуса Проекта с помощью Simulink

Обзор руководства по работе с Simulink и Cosimulation Wizard

В этом руководстве приведены основные шаги для настройки приложения HDL- Verifier™, которое использует Simulink® и Симулятор HDL для проверки HDL- проекта, используя модель Simulink в качестве испытательного стенда. В этом руководстве вы выполняете шаги, чтобы косимулировать Simulink и Симулятор HDL, чтобы проверить простой фильтр приподнятого косинуса, написанный в Verilog®.

Примечание

Для этого руководства требуются Simulink, HDL Verifier, Fixed-Point Designer™ и ModelSim® или резьбовое® Симулятор HDL. В этом руководстве предполагается, что вы прочитали Import HDL Code для HDL Cosimulation Block.

В этом руководстве вы выполняете следующие шаги:

Руководство: Настройка файлов учебников (Simulink)

Чтобы помочь другим получить доступ к копиям обучающих файлов, настройте папку для вашей собственной учебной работы, следуя этим инструкциям:

  1. Создайте папку вне возможностей MATLAB® папка установки, в которую можно скопировать файлы учебника. Папка должна быть доступной для записи. Это руководство предполагает, что вы создаете папку с именем MyTests.

  2. Скопируйте все файлы, расположенные в следующей директории, в созданную вами папку:

    matlabroot\toolbox\edalink\foundation\hdllink\demo_src\tutorial

    где matlabroot - корневая директория MATLAB в вашей системе.

  3. Теперь у вас есть все следующие файлы в рабочей директории, хотя, для этого руководства, вам понадобится только два из них:

    • filter_tb.v (не используется для этого руководства)

    • mycallback_solution.m (не используется для этого руководства)

    • rcosflt_beh.v (не используется для этого руководства)

    • rcosflt_rtl.v

    • rcosflt_rtl.vhd

    • rcosflt_tb.mdl

Руководство: Запуск Cosimulation Wizard (Simulink)

  1. Запустите MATLAB.

  2. Установите директорию, созданный вами в Tutorial: Set Up Tutorial Files (Simulink), в качестве текущей директории в MATLAB.

  3. В командной строке MATLAB введите следующее:

    >>cosimWizard

    Команда запускает Cosimulation Wizard.

Руководство: настройте HDL-блок косимуляции с помощью Cosimulation Wizard

В этом руководстве приведены следующие страницы мастера, призванные помочь вам в создании блока HDL Cosimulation.

Руководство: Задайте тип косимуляции (Simulink)

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

  1. Оставьте HDL cosimulation with опцию равной Simulink.

  2. Если вы используете ModelSim, оставьте HDL Simulator опцию следующим ModelSim.

    Если вы используете Incisive, измените HDL Simulator опции на Incisive.

  3. Оставьте опцию Use HDL simulator executables on the system path по умолчанию, если Симуляторы HDL исполняемые файлы появляются в вашем системном пути.

    Если эти исполняемые файлы не появляются в пути, задайте путь к Симулятору HDL, как описано в Cosimulation Type - Блок Simulink.

  4. Нажмите кнопку Next, чтобы перейти на страницу HDL- Файлов.

Руководство: Выбор файлов (Simulink)

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

  1. Добавьте HDL-файлы в список файлов.

    1. Нажмите Add и перейдите в директорию, созданный в Tutorial: Set Up Tutorial Files (Simulink).

    2. Для Verilog выберите rcosflt_rtl.v. Для VHDL®, выберите rcosflt_rtl.vhd.

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

  2. Нажмите кнопку Next, чтобы перейти на страницу компиляции HDL.

Руководство: Задайте команды HDL компиляции (Simulink)

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

При запуске Cosimulation Wizard с собственным кодом можно добавить или изменить команды компиляции в этом окне. Для примера можно добавить -vlog01compat переключатель.

Пользователи ModelSim: Панель HDL-компиляции будет выглядеть аналогично той, которая представлена на этом рисунке:

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

Нажмите кнопку Next, чтобы перейти к панели HDL-модулей.

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

Руководство: Выберите опции симуляции для косимуляции (Simulink)

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

  1. Укажите имя модуля/объекта HDL для косимуляции.

    В раскрывающемся списке выберите rcosflt_rtl. Этот модуль является модулем Verilog/VHDL, который вы используете для косимуляции.

    Если вы не видите rcosflt_rtl в раскрывающемся списке можно ввести имя файла вручную.

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

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

    Резкие пользователи: Ваши опции HDL-модуля выглядят аналогично следующему рисунку

  3. Щелкните Next, чтобы перейти к панели Порты Simulink.

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

Руководство типов портов»

На этом шаге Cosimulation Wizard отображает две таблицы, содержащие входные и выходные порты rcosflt_rtl, соответственно.

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

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

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

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

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

Руководство: Укажите детали выходного порта

На странице «Сведения о выходе» выполните следующие шаги:

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

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

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

    • Знак к Signed

    • Длина дроби в 29

    . Теперь ваши результаты выглядят аналогично следующему изображению.

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

Руководство: Установите часы и сбросьте детали

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

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

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

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

  3. Оставьте или установите начальное значение сброса равным 1.

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

    Теперь часы и сброс совпадают с сигналами, показанными на следующем рисунке.

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

Руководство выравнивания по времени начала»

На странице Start Time Alignment отображается график для форм сигналов синхронизации и сброса. На Cosimulation Wizard показано время HDL для начала косимуляции с красной линией. Время запуска также является временем, в которое Simulink получает первый вход выборки от Симулятора HDL.

  1. Установите или подтвердите выравнивание по времени начала

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

  2. Щелкните Next, чтобы перейти к генерации блоков.

Руководство: Сгенерируйте блок

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

  1. Оставьте Automatically determine timescale at start of simulation выбранным (по умолчанию). Позже у вас будет возможность просмотреть вычисленный временной масштаб и изменить это значение перед началом симуляции.

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

Руководство: создайте Испытательный стенд для проверки HDL- Проекта

Для этого руководства вы фактически не создаете испытательного стенда. Вместо этого можно найти готовую модель (rcosflt_tb.mdl) в директории, созданном в Tutorial: Set Up Tutorial Files (Simulink).

  1. После нажатия кнопки Finish в Cosimulation Wizard Simulink создает модель и заполняет ее следующими элементами:

    • Блок HDL Cosimulation

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

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

    Оставьте модель на данный момент и перейдите к следующему шагу.

  2. Откройте файл rcosflt_tb, находится в директории, созданном вами в Tutorial: Set Up Tutorial Files (Simulink).

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

  3. Добавьте блок HDL Cosimulation к тестовой модели следующим образом:

    1. Скопируйте блок HDL Cosimulation из только что сгенерированной модели в эту тестовую модель.

    2. Поместите блок так, чтобы блоки константы и преобразования линии так входы, чтобы блок HDL Cosimulation, и шина линий вверх, как вывод.

    3. Соедините блоки в испытательный стенд с блоком HDL Cosimulation.

  4. Скопируйте блоки скриптов в область под испытательным стендом. Ваша модель теперь выглядит так же, как и на следующем рисунке.

  5. Сохраните модель.

Руководство: Запуск косимуляции и проверка HDL- Проекта

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

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

  3. Определите шкалу времени.

    Следует напомнить, что Automatically determine timescale at start of simulation опция был выбран на последней странице Cosimulation Wizard. Поскольку вы это сделали, HDL Verifier запускает GUI Timescale Details вместо запуска симуляции.

    И Симулятор HDL, и Simulink определяют filter_in и filter_out порты на 1 секунду. Однако их шаги расчета в Симулятор HDL должны быть такими же, как и тактовый период (2 нс).

    1. Изменение шага расчета Simulink /rcosflt_rtl/filter_in на 1 (секунд) и нажмите Enter.Затем мастер обновляет таблицу. Следующий рисунок показывает новую шкалу времени: 1 секунда в Simulink соответствует 2e-008 с в симуляторе HDL.

    2. Нажмите кнопку OK, чтобы выйти из окна Timescale Details.

  4. Перезапустите симуляцию.

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

Этот шаг завершает Cosimulation Wizard для использования с руководством Simulink.