Создайте функцию компонента MATLAB

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

Функции MATLAB component симулируют поведение компонентов в модели HDL. Тупиковый модуль (обеспечение только определений порта) в модели HDL передает свои входные сигналы функции компонента MATLAB. Компонент MATLAB обрабатывает эти данные и возвращает результаты к выходным параметрам тупикового модуля. Компонент MATLAB обычно обеспечивает некоторую функциональность (такую как фильтр), который еще не реализован в HDL-коде.

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

Когда соединено с MATLAB, симулятор HDL функционирует как клиент с MATLAB как сервер. Следующий рисунок показывает несколько-клиентских-сценариев, связывающие с сервером в порте сокета TCP/IP 4449.

Сервер MATLAB может обслужить несколько одновременных сеансов симулятора HDL и модулей HDL. Однако необходимо следовать рекомендуемым инструкциям, чтобы помочь серверу отследить ввод-вывод, сопоставленный с каждым модулем и сеансом. Сервер MATLAB, который вы начинаете с предоставленной функции hdldaemon, ожидает запросов связи от экземпляров симулятора HDL, работающего на тех же или различных компьютерах. Когда сервер получает запрос, он выполняет заданную функцию MATLAB, которую вы закодировали, чтобы выполнить задачи от имени модуля в вашем проекте HDL. Параметры, которые вы задаете, когда вы запускаете сервер, указывают, устанавливает ли сервер общую память, или TCP/IP снабжают линии связи сокетом.

Обратитесь к Настройкам Cosimulation для допустимых настроек машины.

Примечание

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

Выполните эти шаги рабочего процесса, чтобы создать функцию компонента MATLAB для cosimulation с симулятором HDL.

  1. Создайте модуль HDL. Скомпилируйте, разработайте и симулируйте модель в симуляторе HDL. Смотрите Модули HDL Записи для Визуализации MATLAB.

  2. Создайте функцию MATLAB компонента. Смотрите Запись Функция Компонента.

  3. Настройте связь симулятора HDL MATLAB.

  4. Поместите функцию компонента в путь поиска файлов MATLAB. Функция Си-Плэйс-Компонент на Пути поиска файлов MATLAB.

  5. Свяжите экземпляр HDL с функциональным использованием компонента matlabcp. Смотрите Связывают Вызовы функции Компонента С matlabcp.

  6. Добавьте опции планирования. См. Опции Расписания для Сеанса Компонента.

  7. Установите точки останова для интерактивной (дополнительной) отладки HDL.

  8. Запустите cosimulation от симулятора HDL. Смотрите HDL MATLAB Запуска Cosimulation.

Запишите модули HDL для визуализации MATLAB

Кодирование модулей HDL для визуализации с MATLAB

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

Процесс для кодирования модулей HDL для визуализации MATLAB следующие:

Выберите HDL Module Name for Use with MATLAB Component Function

Несмотря на то, что не требуемый, при именовании модуля HDL, рассматривают выбор имени, которое также может использоваться в качестве имени функции MATLAB. (Обычно называющие правила для VHDL® или Verilog® и MATLAB совместимы.) По умолчанию программное обеспечение HDL Verifier принимает, что модуль HDL и его функция симуляции совместно используют то же имя. Смотрите Связывают Вызовы функции Испытательного стенда С matlabtb.

Для получения дополнительной информации на рекомендациях по именованию функции MATLAB, см., “что MATLAB Программирует Советы” на файлах и именах файлов в документации MATLAB.

Задайте режимы направления портов в модуле HDL для использования с функциями компонента

В вашем операторе модуля необходимо задать каждый порт с режимом направления (вход, вывести, или двунаправленный). Следующая таблица задает эти три режима.

Используйте режим VHDL...Используйте режим Verilog...Для портов это...
INinputПредставляйте сигналы, которые могут управляться функцией MATLAB
OUToutputПредставляйте значения сигналов, которые передаются функции MATLAB
INOUTinoutПредставляйте двуполярные сигналы, которыми можно управлять или значения передачи к функции MATLAB

Задайте типы данных порта в модулях HDL для использования с функциями компонента

Типы Данных порта для Сущностей VHDL.  В вашем операторе сущности необходимо задать каждый порт, который вы планируете протестировать с MATLAB с типом данных VHDL, который поддерживается программным обеспечением HDL Verifier. Интерфейс может преобразовать скалярные и данные массива следующих типов VHDL к сопоставимым типам MATLAB:

  • STD_LOGIC, STD_ULOGIC, BIT, STD_LOGIC_VECTOR, STD_ULOGIC_VECTOR, и BIT_VECTOR

  • INTEGER и NATURAL

  • REAL

  • TIME

  • Перечислимые типы, включая пользовательские перечислимые типы и CHARACTER

Интерфейс также поддерживает все подтипы и массивы предыдущих типов.

Примечание

Программное обеспечение HDL Verifier не поддерживает расширенные идентификаторы VHDL для следующих компонентов:

  • Порт и имена сигнала используются в cosimulation

  • Перечислимые литералы, когда используется в качестве индексов массива порта и имен сигнала используются в cosimulation

Однако программное обеспечение действительно поддерживает основные идентификаторы для VHDL.

Типы Данных порта для Модулей Verilog.  В вашем определении модуля необходимо задать каждый порт, который вы планируете протестировать с MATLAB с типом данных порта Verilog, который поддерживается программным обеспечением HDL Verifier. Интерфейс может преобразовать данные следующих типов порта Verilog к сопоставимым типам MATLAB:

  • reg

  • целое число

  • провод

Примечание

Программное обеспечение HDL Verifier не поддерживает escaped-идентификаторы Verilog для порта и сигнализирует об именах, используемых в cosimulation. Однако это действительно поддерживает простые идентификаторы для Verilog.

Скомпилируйте и разработайте проект HDL для использования с функциями компонента

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

 Компиляция для ModelSim

 Компиляция для острого

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

Запишите функцию компонента

Обзор к кодированию функции компонента HDL Verifier

Кодирование функции MATLAB, которая должна визуализировать модуль HDL или компонент, требует, чтобы вы следовали определенным соглашениям кодирования. Необходимо также изучить преобразования типа данных, которые происходят, и преобразования типа данных программы для работы на данных и возврата данных к симулятору HDL.

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

  1. Изучите синтаксис для функции компонента HDL Verifier MATLAB. Смотрите Синтаксис Функции Компонента.

  2. Изучите, как программное обеспечение HDL Verifier преобразует данные из симулятора HDL для использования в среде MATLAB. Смотрите Поддерживаемые Типы данных.

  3. Выберите имя для функции компонента MATLAB. Смотрите Вызывают MATLAB Component Function Command matlabcp.

  4. Задайте ожидаемые параметры в функциональной линии определения компонента. См. Определения Синтаксиса и Аргумента функции функции MATLAB.

  5. Определите типы данных порта, передаваемых в функцию. См. Определения Синтаксиса и Аргумента функции функции MATLAB.

  6. Извлеките и, если применимо к симуляции, примените информацию, полученную в portinfo структура. Смотрите Получающий доступ к и Применение Информации порта.

  7. Преобразуйте данные для манипуляции в среде MATLAB, как применимые. Смотрите Данные о HDL Преобразования, чтобы Отправить в MATLAB.

  8. Преобразуйте данные, которые должны быть возвращены в симулятор HDL. См. Преобразование данных для Возврата к симулятору HDL.

Для большего количества советов смотрите Испытательный стенд и Функциональную Запись Компонента.

Синтаксис функции компонента

Синтаксис функции компонента MATLAB

function [iport, tnext] = MyFunctionName(oport, tnow, portinfo)

Аргументы ввода/вывода, iport и oport, для MATLAB функция компонента реверс аргументов port для функции испытательного стенда MATLAB. Таким образом, функция компонента MATLAB возвращает данные сигнала в выходные параметры и получает данные из входных параметров связанного модуля HDL.

Инициализируйте функциональные выходные параметры к пустым значениям в начале функции как в следующем примере:

tnext = [];
oport = struct();

См. Определения Синтаксиса и Аргумента функции функции MATLAB для объяснения каждого из аргументов функции. Для получения дополнительной информации об использовании tnext и tnow для планирования симуляции с matlabcp, смотрите, что Функции Компонента Расписания Используют tnext Параметр.

Похожие темы