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

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

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

Примечание

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

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 (не используется в данном руководстве)

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

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

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

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

    >>cosimWizard

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

Руководство: настройте функцию компонента с помощью Cosimulation Wizard

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

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

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

  1. Измените HDL cosimulation with опцию на MATLAB.

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

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

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

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

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

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

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

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

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

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

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

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

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

В Мастерах косимуляции перечислены команды по умолчанию в окне Команды компиляции. Вам не нужно изменять эти значения по умолчанию для этого руководства.

  1. Исследуйте команды компиляции.

    1. Пользователи ModelSim: Ваша панель HDL компиляции выглядит аналогично следующей.

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

      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-модулей.

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

Руководство: Выбор HDL-модулей для косимуляции (MATLAB)

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

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

    При Name of HDL module to cosimulate with выберите filter_tb в раскрывающемся списке для определения модуля Verilog, который будет использоваться для косимуляции.

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

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

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

    Мастер косимуляции запускает Симулятор HDL в фоновой консоли с помощью заданных HDL-модуля и параметров симуляции. После запуска Симулятора HDL появится страница Коллбэка Schedule. В Windows® систем, консоль остается открытой. Не закрывать консоль; приложение закрывает это окно по завершении.

Руководство: Задание Коллбэка расписания

На странице Расписание коллбэке выполните следующие шаги:

  1. Оставьте Callback type следующим matlabcp (по умолчанию). Этот тип предписывает Cosimulation Wizard создать функцию обратного вызова MATLAB как компонент для косимуляции с Симулятором HDL.

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

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

  4. Установите Trigger mode значение Rising Edge.

  5. Для Trigger Signal щелкните Browse. Щелкните значок расширителя рядом с filter_tb чтобы развернуть выделенный фрагмент. Выберите u_rcosflt_beh. В списке портов справа выберите clk. Нажмите OK.

  6. Нажмите Add. Этот Cosimulation Wizard генерирует соответствующее matlabcp команда, которая связывает u_rcosflt_beh модуля HDL с Функцией MATLAB callback_fcn, как показано на следующем изображении:

    Для получения дополнительной информации о параметрах коллбэка смотрите страницу с описанием для matlabcp.

  7. Нажмите кнопку Next, чтобы перейти на страницу Сгенерировать скрипт.

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

  1. Оставьте Launch HDL simulator after exiting this dialog выбранным.

  2. Щелкните Finish, чтобы завершить сеанс Cosimulation Wizard и сгенерировать скрипты.

Руководство: Настройка функции обратного вызова

После клика 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- компонента

  • Запись сигнала в 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 так, что раздел внутренних состояний обновления содержит следующий код:

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

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

run 200 ns

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

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