Программное обеспечение HDL Verifier™ обеспечивает средства визуализации компонентов HDL в среде MATLAB ®. Для этого необходимо кодировать модель ЛПВП и функцию MATLAB, которые могут совместно использовать данные с моделью ЛПВП. В этой главе рассматриваются соглашения по программированию, интерфейсам и планированию для функций компонентов MATLAB, которые взаимодействуют с имитатором HDL.
Функции компонента MATLAB моделируют поведение компонентов в модели 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 для косимуляции с помощью имитатора ЛПВП.
Создание модуля HDL. Компиляция, разработка и моделирование модели в имитаторе ЛПВП. См. раздел Запись модулей HDL для визуализации MATLAB.
Создайте функцию MATLAB компонента. См. раздел Запись функции компонента.
Поместите функцию компонента на путь поиска MATLAB. См. раздел Размещение функции компонента на пути поиска MATLAB.
Связывание экземпляра HDL с функцией компонента с помощью matlabcp. См. раздел Привязка вызовов функций компонента с помощью matlabcp.
Добавить параметры планирования. См. раздел Параметры спецификации для сеанса компонента.
Установите точки останова для интерактивной отладки HDL (необязательно).
Запустить косимуляцию с имитатора ЛПВП. См. раздел Запуск косимуляции MATLAB-HDL.
Выбор имени модуля HDL для использования с функцией компонента MATLAB
Определение режимов направления порта в модуле HDL для использования с функциями компонентов
Определение типов данных портов в модулях HDL для использования с функциями компонентов
Компиляция и разработка проекта ЛПВП для использования с функциями компонентов
Наиболее основным элементом связи в интерфейсе HDL Verifier является модуль HDL. Интерфейс передает все данные между имитатором HDL и MATLAB в качестве данных порта. Программное обеспечение HDL Verifier работает с любым существующим модулем HDL. Однако при кодировании модуля HDL, предназначенного для проверки MATLAB, следует учитывать его имя, типы данных, совместно используемых двумя средами, и режимы направления. Разделы этой главы охватывают эти темы.
Процесс кодирования модулей HDL для визуализации MATLAB выглядит следующим образом:
Выбор имени модуля HDL для использования с функцией компонента MATLAB
Определение режимов направления порта в модуле HDL для использования с функциями компонентов
Определение типов данных портов в модулях HDL для использования с функциями компонентов
Компиляция и разработка проекта ЛПВП для использования с функциями компонентов
Хотя это и не требуется, при присвоении имени модулю HDL следует выбрать имя, которое также может использоваться в качестве имени функции MATLAB. (Как правило, правила именования для VHDL ® или Verilog ® и MATLAB совместимы.) По умолчанию программное обеспечение HDL Verifier предполагает, что модуль HDL и его функция моделирования имеют одно и то же имя. См. раздел Bind Test Stench Function Calls with 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 для следующих компонентов:
Имена портов и сигналов, используемые при косимуляции
Перечисляемые литералы при использовании в качестве индексов массива имен портов и сигналов, используемых при косимуляции
Однако программное обеспечение поддерживает базовые идентификаторы для VHDL.
Типы данных портов для модулей Verilog. В определении модуля необходимо определить каждый порт, который планируется протестировать с помощью MATLAB, с типом данных порта Verilog, поддерживаемым программным обеспечением HDL Verifier. Интерфейс может преобразовывать данные следующих типов портов Verilog в сопоставимые типы MATLAB:
reg
целое число
провод
Примечание
Программное обеспечение HDL Verifier не поддерживает идентификаторы выхода Verilog для имен портов и сигналов, используемых при косимуляции. Однако он поддерживает простые идентификаторы для Verilog.
После создания или редактирования исходных файлов HDL компилятор симулятора HDL используется для компиляции и отладки кода.
Дополнительные примеры см. в учебных пособиях и демонстрациях программы HDL Verifier. Дополнительные сведения об использовании компилятора HDL см. в документации симулятора.
Для кодирования функции MATLAB, предназначенной для визуализации модуля или компонента HDL, необходимо соблюдать определенные правила кодирования. Необходимо также понимать происходящие преобразования типов данных и преобразования типов данных программы для работы с данными и возврата данных в имитатор HDL.
Чтобы кодировать функцию MATLAB для проверки модуля или компонента HDL, выполните следующие действия:
Изучите синтаксис функции компонента MATLAB HDL Verifier. См. раздел Синтаксис функции компонента.
Узнайте, как программное обеспечение HDL Verifier преобразует данные из имитатора HDL для использования в среде MATLAB. См. раздел Поддерживаемые типы данных.
Выберите имя для функции компонента MATLAB. См. раздел Вызов команды MATLAB Component Function matlabcp.
Определите ожидаемые параметры в строке определения функции компонента. См. раздел Синтаксис функции MATLAB и определения аргументов функции.
Определите типы данных порта, передаваемых в функцию. См. раздел Синтаксис функции MATLAB и определения аргументов функции.
Извлеките и, если применимо к моделированию, примените информацию, полученную в portinfo структура. См. раздел Получение доступа к информации о портах и ее применение.
При необходимости преобразуйте данные для манипулирования в среде MATLAB. См. раздел Преобразование данных HDL для отправки в MATLAB.
Преобразуйте данные, которые необходимо вернуть в имитатор ЛПВП. См. раздел Преобразование данных для возврата в имитатор ЛПВП.
Дополнительные советы см. в разделе Запись функций тестового стенда и компонентов.
Синтаксис функции компонента MATLAB:
function [iport, tnext] = MyFunctionName(oport, tnow, portinfo)
Аргументы ввода/вывода, iport и oport, для функции компонента MATLAB - обратное значение аргументов порта для функции тестового стенда MATLAB. То есть функция компонента MATLAB возвращает данные сигнала на выходы и принимает данные с входов связанного модуля HDL.
Инициализируйте выходные данные функции до пустых значений в начале функции, как в следующем примере:
tnext = []; oport = struct();
Описание каждого из аргументов функции см. в разделе Синтаксис функции MATLAB и определения аргументов функции. Дополнительные сведения об использовании tnext и tnow для моделирования планирования с помощью matlabcpсм. раздел Планирование функций компонентов с использованием параметра tnext.