exponenta event banner

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

Программное обеспечение 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 для косимуляции с помощью имитатора ЛПВП.

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

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

  3. Настройка соединения симулятора MATLAB-HDL.

  4. Поместите функцию компонента на путь поиска MATLAB. См. раздел Размещение функции компонента на пути поиска MATLAB.

  5. Связывание экземпляра HDL с функцией компонента с помощью matlabcp. См. раздел Привязка вызовов функций компонента с помощью matlabcp.

  6. Добавить параметры планирования. См. раздел Параметры спецификации для сеанса компонента.

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

  8. Запустить косимуляцию с имитатора ЛПВП. См. раздел Запуск косимуляции MATLAB-HDL.

Запись модулей HDL для визуализации MATLAB

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

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

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

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

Хотя это и не требуется, при присвоении имени модулю HDL следует выбрать имя, которое также может использоваться в качестве имени функции MATLAB. (Как правило, правила именования для VHDL ® или Verilog ® и MATLAB совместимы.) По умолчанию программное обеспечение HDL Verifier предполагает, что модуль HDL и его функция моделирования имеют одно и то же имя. См. раздел Bind Test Stench Function Calls with 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 для следующих компонентов:

  • Имена портов и сигналов, используемые при косимуляции

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

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

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

  • reg

  • целое число

  • провод

Примечание

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

Компиляция и разработка проекта ЛПВП для использования с функциями компонентов

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

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

 Компиляция для резцового

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

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

Общие сведения о кодировании функции компонента верификатора HDL

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

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

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

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

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

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

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

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

  7. При необходимости преобразуйте данные для манипулирования в среде MATLAB. См. раздел Преобразование данных HDL для отправки в MATLAB.

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

Дополнительные советы см. в разделе Запись функций тестового стенда и компонентов.

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

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

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

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

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

tnext = [];
oport = struct();

Описание каждого из аргументов функции см. в разделе Синтаксис функции MATLAB и определения аргументов функции. Дополнительные сведения об использовании tnext и tnow для моделирования планирования с помощью matlabcpсм. раздел Планирование функций компонентов с использованием параметра tnext.

Связанные темы