HDL Coder™ поддерживает генерацию кода для типов сигналов и типов данных Simulink ® в нескольких особых случаях.
Если DUT или другие блоки в модели имеют много входных или выходных сигналов, можно создать сигналы шины для улучшения читаемости модели. Сигнал шины или шина - это составной сигнал, который состоит из других сигналов, называемых элементами.
Можно создать HDL-код для проектов, использующих виртуальные и невиртуальные шины. Например, можно создать код для проектов, содержащих:
Порты подсистемы DUT, подключенные к шинам.
Блоки Simulink и Stateflow ®, поддерживающие шины и генерацию кодов HDL.
Блоки с поддержкой шины представляют собой блоки, которые могут принимать сигналы шины в качестве входных сигналов и создавать сигналы шины в качестве выходных сигналов. Список блоков с поддержкой шины, поддерживаемых Simulink, см. в разделе Блоки с поддержкой шины. Кодер HDL поддерживает генерацию кода для блоков с поддержкой шины в библиотеке блоков кодера HDL. Для получения дополнительной информации см. раздел «Создание кода HDL» на каждой странице блока. Поддерживаемые блоки включают в себя:
Кроме того, подсистемы, модели и эти пользовательские функции поддерживают шины для моделирования и генерации кода HDL:
Ссылки на модель см. в разделе Ссылка на модель для генерации кода HDL.
Диаграмма статофлоу (статофлоу)
Функциональные блоки MATLAB
Системные блоки MATLAB
Vision HDL Toolbox™ блоки, принимающие pixelcontrol шина для входа управления
Шины не поддерживаются в IP Core Generation workflow-процесс. Кроме того, нельзя создавать код для проектов, использующих:
Ссылка модели «Черный ящик», подключенная к шине.
Вход шины в блок задержки с ненулевым начальным условием.
В проекте можно создать код для перечислений Simulink, MATLAB ® или Stateflow.
Значения перечисления должны монотонно увеличиваться.
Строки перечисления должны иметь уникальные имена и не должны использовать зарезервированное ключевое слово на языке Verilog ® или VHDL.
Если целевым языком является Verilog, все имена членов перечисления должны быть уникальными в конструкции.
Перечисления на портах DUT верхнего уровня не поддерживаются следующими рабочими процессами или методами проверки:
Рабочий процесс создания IP-ядра
FPGA Рабочий процесс под ключ
Рабочий процесс ввода-вывода FPGA в режиме реального времени Simulink
Настройка рабочего процесса устройства USRP
FPGA-в-контуре
Косимуляция ЛПВП
С этими блоками в проекте можно использовать типы матриц. Для получения дополнительной информации см. раздел «Создание кода HDL» на каждой странице блока.
| Библиотека блоков кодеров HDL | Поддерживаемые блоки |
|---|---|
Неоднородности | Поддерживаются следующие блоки:
|
Дискретный | Поддерживаются следующие блоки:
|
| Операции с плавающей точкой HDL | Поддерживается блок функции округления. |
Операции ЛПВП | Поддерживаются все блоки в этой библиотеке. |
RAM HDL | Блоки в этой библиотеке не поддерживаются. |
Подсистемы ЛПВП | Блоки в этой библиотеке не поддерживаются. |
Логические и битовые операции | Поддерживаются следующие блоки:
|
Таблицы подстановки | Блоки в этой библиотеке не поддерживаются. |
Математические операции | Поддерживаются следующие блоки:
|
Проверка модели | Поддерживаются все блоки в этой библиотеке. |
Утилиты для всей модели | Поддерживается DocBlock. Блок Информация о модели (Model Info) не поддерживает типы матричных данных. |
Порты и подсистемы | Блок подсистемы поддерживается. |
Атрибуты сигнала | Поддерживаются следующие блоки:
|
Маршрутизация сигналов | Поддерживаются следующие блоки:
|
Источники | Поддерживаются следующие блоки:
|
Сливы | Поддерживаются следующие блоки:
|
| Пользовательские функции | Поддерживается функциональный блок MATLAB. |
Генератор кода не поддерживает типы матриц на интерфейсах подсистемы, для которой создается код HDL. Блок изменения формы используется для преобразования ввода матрицы в массив 1-D в интерфейсе. В подсистеме используйте другой блок изменения формы, который преобразует массив 1-D обратно в тип матрицы с заданной размерностью.
Массивы, хранящиеся в макете основной строки, не поддерживаются для генерации кода HDL
Сигналы переменного размера не поддерживаются для генерации кода.