exponenta event banner

Проверка конструкции косинусного фильтра с помощью MATLAB

Руководство по MATLAB и мастеру косимуляции

В этом учебном пособии описаны основные шаги по настройке косимуляции HDL Verifier™ с использованием MATLAB ® и имитатора HDL. Эта косимуляция проверяет конструкцию ЛПВП с использованием компонента MATLAB в качестве испытательного стенда. В этом учебном пособии выполняются шаги по косимуляции MATLAB с помощью имитатора HDL для проверки пригодности фильтра с увеличенным косинусом, написанного в Verilog ®.

Примечание

Для этого учебного пособия требуются MATLAB, HDL Verifier, Fixed-Point Designer™ и simulator ModelSim ® или Insisive ® HDL. В этом учебном пособии также предполагается, что для функции MATLAB был прочитан код импорта HDL.

Стенд тестирования HDL создает экземпляры двух компонентов фильтра с увеличенным косинусом: один реализован в HDL, а другой связан с функцией обратного вызова MATLAB. Испытательный стенд также генерирует стимул для обоих фильтров и сравнивает их выходные сигналы.

Учебное пособие «Настройка файлов учебных пособий» (MATLAB)

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

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

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

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

    где matlabroot является корневым каталогом MATLAB в системе.

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

    • filter_tb.v

    • mycallback_solution.m

    • rcosflt_beh.v

    • rcosflt_rtl.v

    • rcosflt_tb.mdl (не используется в данном учебном пособии)

Учебное пособие «Запуск мастера косимуляции (MATLAB

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

  2. Задайте папку, созданную в учебном пособии «Настройка файлов учебных пособий» (MATLAB), в качестве текущей папки в MATLAB.

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

    >>cosimWizard

    Эта команда запускает мастер косимуляции.

Учебное пособие «Настройка функции компонента с помощью мастера косимуляции»

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

Учебное пособие «Определение типа косимуляции (MATLAB

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

  1. Изменение косимуляции ЛПВП с опцией MATLAB.

  2. Если используется ModelSim, оставьте опцию Имитатор ЛПВП (HDL Simulator) как ModelSim.

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

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

    Если исполняемые файлы не отображаются в пути, укажите путь к имитатору HDL, как описано в разделе Тип косимуляции - функция MATLAB.

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

Учебное пособие «Выбор файлов HDL (MATLAB

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

  1. Добавление файлов HDL в список файлов.

    1. Щелкните Добавить (Add) и перейдите к папке, созданной в разделе Учебное пособие Настройка файлов учебного пособия (MATLAB).

    2. Выберите файлы Verilog filter_tb.v, rcosflt_rtl.v, и rcosflt_beh.v. Можно выбрать несколько файлов в браузере файлов, удерживая нажатой клавишу CTRL при выборе файлов с помощью мыши.

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

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

Учебное пособие «Задание команд компиляции HDL (MATLAB

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

  1. Проверьте команды компиляции.

    1. Пользователи ModelSim: панель Компиляция HDL выглядит следующим образом.

    2. Incisive users: Ваши команды HDL Compilation будут выглядеть следующим образом:

      ncvlog -64bit -update "/mathworks/home/user/MyTests/filter_tb.v"
      ncvlog -64bit -update "/mathworks/home/user/MyTests/rcosflt_beh.v"
      ncvlog -64bit -update "/mathworks/home/user/MyTests/rcosftl_rtl.v"
  2. Нажмите кнопку Далее (Next), чтобы перейти к панели Модули HDL (HDL Modules).

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

Учебное пособие «Выбор модулей ЛПВП для косимуляции» (MATLAB)

На панели Модули HDL (HDL Modules) выполните следующие действия.

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

    В поле Наименование модуля ЛПВП для косимуляции выберите filter_tb из раскрывающегося списка укажите модуль Verilog, который будет использоваться для косимуляции.

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

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

  3. Нажмите кнопку Next, чтобы перейти на страницу Callback Schedule.

    Мастер Cosimulation Wizard запускает имитатор ЛПВП в фоновой консоли с использованием указанного модуля ЛПВП и опций моделирования. После запуска имитатора HDL появляется страница Расписание обратного вызова. В системах Windows ® консоль остается открытой. Не закрывайте консоль; приложение закрывает это окно по завершении.

Учебное пособие «Задание расписания обратного вызова»

На странице «Callback Schedule» выполните следующие действия.

  1. Оставить тип обратного вызова как matlabcp (по умолчанию). Этот тип предписывает мастеру косимуляции создать функцию обратного вызова MATLAB в качестве компонента для косимуляции с помощью имитатора ЛПВП.

  2. Оставить имя функции обратного вызова как callback_fcn. Мастер присваивает это имя сгенерированной функции обратного вызова MATLAB.

  3. Для компонента HDL нажмите кнопку «Обзор». Щелкните значок расширения рядом с filter_tb чтобы развернуть выделенный фрагмент. Выбрать u_rcosflt_behи нажмите кнопку OK. Вы указали мастеру Cosimulation Wizard, что имитатор HDL связывает этот компонент с функцией обратного вызова MATLAB.

  4. Установить режим триггера в значение Rising Edge.

  5. В поле Триггерный сигнал нажмите кнопку Обзор. Щелкните значок расширения рядом с filter_tb чтобы развернуть выделенный фрагмент. Выбрать u_rcosflt_beh. В списке портов справа выберите clk. Нажмите кнопку ОК.

  6. Нажмите кнопку Add. Мастер косимуляции создает соответствующее matlabcp команда, связывающая u_rcosflt_beh модуля HDL с функциональным callback_fcn MATLAB, как показано на следующем рисунке:

    Для получения дополнительной информации о параметрах обратного вызова см. справочную страницу для matlabcp.

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

Учебное пособие «Создание сценария»

  1. После выхода из этого диалогового окна выберите Launch HDL simulator.

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

Учебное пособие «Настройка функции обратного вызова»

После нажатия кнопки Готово (Finish) в мастере Cosimulation Wizard приложение создает три файла HDL в текущей папке:

  • compile_hdl_design.mДля перекомпиляции конструкции ЛПВП

  • launch_hdl_simulator.mДля перезапуска сервера MATLAB и запуска имитатора HDL.

  • callback_fcn.mФункция обратного вызова MATLAB

Помимо запуска имитатора HDL, программное обеспечение HDL Verifier открывает редактор MATLAB и загружает callback_fcn.m (показано частичное изображение).

Созданный шаблон состоит из четырех частей:

  • Инициализация внутреннего состояния функции обратного вызова

  • Считывание сигнала от компонента ЛПВП

  • Запись сигнала в компонент HDL

  • Обновить внутренние состояния

Этот шаблон можно изменить, чтобы смоделировать приподнятый косинусный фильтр в MATLAB, следуя инструкциям, показанным в следующих разделах.

Примечание

Вы можете найти завершенную измененную функцию обратного вызова в mycallback_solution.m. Эта функция находится в каталоге, в который были скопированы файлы учебного пособия. Этот файл можно использовать для перезаписи файла в текущей папке. Назовите файл "callback_fcn.m"и измените имя функции на callback_fcn.

Учебное пособие «Определение внутренних состояний»

Определите два внутренних состояния: 49-элементный вектор для хранения входных данных фильтра и вектор коэффициентов фильтра.

Править callback_fcn.m чтобы раздел внутреннего состояния содержал следующий код:

Учебное пособие «Считывание сигнала из компонента HDL»

Считайте входные данные фильтра и преобразуйте их в десятичное число в MATLAB.

Править callback_fcn.m чтобы секция считанного сигнала содержала следующий код:

Учебное пособие: Запись сигнала в компонент HDL

Входной сигнал «сброс» управляет выходом фильтра. Если сброс низкий, то выход является произведением предыдущих входов и коэффициентов фильтра. MATLAB преобразует десятичный результат в многозначный логический выход компонента HDL.

Править callback_fcn.m чтобы секция сигнала записи содержала следующий код:

Учебное пособие «Обновление внутренних состояний»

Используйте входные данные фильтра для обновления внутреннего 49-элементного состояния.

Править callback_fcn.m чтобы раздел обновления внутренних состояний содержал следующий код:

Учебное пособие «Запуск косимуляции и проверка дизайна ЛПВП»

Переключитесь на имитатор ЛПВП и введите в консоли имитатора ЛПВП следующую команду:

run 200 ns

В имитаторе ЛПВП отображаются следующие выходные данные:

Эти сообщения указывают, что выходные данные компонента HDL соответствуют поведенческим выводам компонента MATLAB.