Программное обеспечение 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, который вы запускаете с предоставленной функции MATLAB hdldaemon
, ожидает запросов связи от экземпляров симулятора HDL, работающего на тех же или различных компьютерах. Когда сервер получает запрос, он выполняет заданную функцию MATLAB, которую вы закодировали, чтобы выполнить задачи от имени модуля в вашем проекте HDL. Параметры, которые вы задаете, когда вы запускаете сервер, указывают, устанавливает ли сервер общую память, или TCP/IP снабжают линии связи сокетом.
Обратитесь к Настройкам Cosimulation для допустимых настроек машины.
Программирование, взаимодействие через интерфейс и планирование соглашений для функций испытательного стенда и функций компонента фактически идентичны. По большей части те же процедуры применяются к обоим типам функций.
Выполните эти шаги рабочего процесса, чтобы создать функцию компонента MATLAB для cosimulation с симулятором HDL.
Создайте модуль HDL. Скомпилируйте, разработайте и симулируйте модель в симуляторе HDL. Смотрите Модули HDL Записи для Визуализации MATLAB.
Создайте функцию MATLAB компонента. Смотрите Запись Функция Компонента.
Поместите функцию компонента в путь поиска файлов MATLAB. Функция Си-Плэйс-Компонент на Пути поиска файлов MATLAB.
Свяжите экземпляр HDL с функцией компонента с помощью matlabcp
. Смотрите Связывают Вызовы функции Компонента С matlabcp.
Добавьте опции планирования. См. Опции Расписания для Сеанса Компонента.
Установите точки останова для интерактивной (дополнительной) отладки HDL.
Запустите cosimulation от симулятора HDL. Смотрите HDL MATLAB Запуска Cosimulation.
Выберите HDL Module Name for Use with MATLAB Component Function
Задайте режимы направления портов в модуле HDL для использования с функциями компонента
Задайте типы данных порта в модулях HDL для использования с функциями компонента
Скомпилируйте и разработайте проект HDL для использования с функциями компонента
Наиболее базовый элемент коммуникации в интерфейсе HDL Verifier является модулем HDL. Интерфейс передает все данные между симулятором HDL и MATLAB как данные порта. Программное обеспечение HDL Verifier работает с любым существующим модулем HDL. Однако, когда вы кодируете модуль HDL, который предназначен для верификации MATLAB, необходимо полагать, что ее имя, типы данных совместно используются этими двумя средами и режимами направления. Разделы в рамках этой главы затрагивают эти темы.
Процесс для кодирования модулей HDL для визуализации MATLAB следующие:
Выберите HDL Module Name for Use with MATLAB Component Function
Задайте режимы направления портов в модуле HDL для использования с функциями компонента
Задайте типы данных порта в модулях HDL для использования с функциями компонента
Скомпилируйте и разработайте проект HDL для использования с функциями компонента
Несмотря на то, что не требуемый, при именовании модуля HDL, рассматривают выбор имени, которое также может использоваться в качестве имени функции MATLAB. (Обычно называющие правила для VHDL® или Verilog® и MATLAB совместимы.) По умолчанию программное обеспечение HDL Verifier принимает, что модуль HDL и его функция симуляции совместно используют то же имя. Смотрите Связывают Вызовы функции Испытательного стенда С matlabtb.
Для получения дополнительной информации на рекомендациях по именованию функции MATLAB, см., “что MATLAB Программирует Советы” на файлах и именах файлов в документации MATLAB.
В вашем операторе модуля необходимо задать каждый порт с режимом направления (вход, вывести, или двунаправленный). Следующая таблица задает эти три режима.
Используйте режим VHDL... | Используйте режим Verilog... | Для портов это... |
---|---|---|
IN | input | Представляйте сигналы, которые могут управляться функцией MATLAB |
OUT | output | Представляйте значения сигналов, которые передаются функции MATLAB |
INOUT | inout | Представляйте двуполярные сигналы, которыми можно управлять или значения передачи к функции MATLAB |
Типы Данных порта для Сущностей 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 Verifier и демонстрации. Для получения дополнительной информации при использовании компилятора HDL, см. документацию средства моделирования.
Кодирование функции MATLAB, которая должна визуализировать модуль HDL или компонент, требует, чтобы вы следовали определенным соглашениям кодирования. Необходимо также изучить преобразования типа данных, которые происходят, и преобразования типа данных программы для работы на данных и возврата данных к симулятору HDL.
Чтобы закодировать функцию MATLAB, которая должна проверить модуль HDL или компонент, выполните следующие шаги:
Изучите синтаксис для функции компонента HDL Verifier MATLAB. Смотрите Синтаксис Функции Компонента.
Изучите, как программное обеспечение HDL Verifier преобразует данные из симулятора HDL для использования в среде MATLAB. Смотрите Поддерживаемые Типы данных.
Выберите имя для функции компонента MATLAB. Смотрите Вызывают MATLAB Component Function Command matlabcp.
Задайте ожидаемые параметры в функциональной линии определения компонента. См. Определения Синтаксиса и Аргумента функции функции MATLAB.
Определите типы данных порта, передаваемых в функцию. См. Определения Синтаксиса и Аргумента функции функции MATLAB.
Извлеките и, если применимо к симуляции, примените информацию, полученную в portinfo
структура. Смотрите Получающий доступ к и Применение Информации порта.
Преобразуйте данные для манипуляции в среде MATLAB, как применимые. Смотрите Данные о HDL Преобразования, чтобы Отправить в MATLAB.
Преобразуйте данные, которые должны быть возвращены в симулятор 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 Параметр.