HDL Coder™ поддерживает генерацию кода для типов сигнала Simulink® и типов данных с несколькими особыми случаями.
Если ваш DUT или другие блоки в вашей модели имеют много сигналов ввода или вывода, можно создать сигналы шины улучшить удобочитаемость модели. Сигнал шины или шина являются составным сигналом, который состоит из других сигналов, которые называются элементами.
Можно сгенерировать HDL-код для проектов, которые используют виртуальные и невиртуальные шины. Например, можно сгенерировать код для проектов, которые содержат:
Порты подсистемы DUT соединяются с шинами.
Simulink и блоки Stateflow®, которые поддерживают шины и генерацию HDL-кода.
Способные к шине блоки являются блоками, которые могут принять сигналы шины, как введено и произвести сигналы шины как выходные параметры. Для списка способных к шине блоков, которые поддерживает Simulink, смотрите Способные к шине Блоки. HDL Coder поддерживает генерацию кода для способных к шине блоков в библиотеке блоков HDL Coder. Для получения дополнительной информации смотрите раздел "HDL Code Generation" каждой страницы блока. Поддерживаемые блоки включают:
Кроме того, подсистемы, модели и эти пользовательские функции поддерживают шины для симуляции и генерации HDL-кода:
Модели - ссылки, см., что Модель Ссылается для генерации HDL-кода.
Stateflow Chart (Stateflow)
Блоки MATLAB Function
Блоки MATLAB System
Блоки Vision HDL Toolbox™, которые принимают pixelcontrol
соедините шиной для входа управления
Шины не поддерживаются в IP Core Generation
рабочий процесс. Кроме того, вы не можете сгенерировать код для проектов, которые используют:
Модель - ссылка Черного квадрата соединяется с шиной.
Вход шины с блоком Delay с ненулевым Initial condition.
Можно сгенерировать код для Simulink, MATLAB® или перечислений Stateflow в рамках проекта.
Перечислимые величины должны монотонно увеличиваться.
Строки перечисления должны иметь уникальные имена и не должны использовать зарезервированное слово на языке VHDL или Verilog®.
Если вашим выходным языком является Verilog, все имена элемента перечисления должны быть уникальными в рамках проекта.
Перечисления в портах DUT верхнего уровня не поддерживаются со следующими рабочими процессами или методами верификации:
Рабочий процесс Генерации Ядра IP
Рабочий процесс Тюремщика FPGA
Рабочий процесс ввода-вывода FPGA Simulink Real-Time
Индивидуальная настройка для рабочего процесса Устройства USRP
FPGA в цикле
HDL Cosimulation
Можно использовать матричные типы с этими блоками в проекте. Для получения дополнительной информации смотрите раздел "HDL Code Generation" каждой страницы блока.
Библиотека блоков HDL Coder | Поддерживаемые блоки |
---|---|
Разрывы | Эти блоки поддерживаются:
|
Дискретный | Эти блоки поддерживаются:
|
Операции плавающей точки HDL | Блок Rounding Function поддерживается. |
Операции HDL | Все блоки в этой библиотеке поддерживаются. |
RAM HDL | Блоки в этой библиотеке не поддерживаются. |
Подсистемы HDL | Блоки в этой библиотеке не поддерживаются. |
Логика и битовые операции | Эти блоки поддерживаются:
|
Интерполяционные таблицы | Блоки в этой библиотеке не поддерживаются. |
Математические операции | Эти блоки поддерживаются:
|
Model Verification | Все блоки в этой библиотеке поддерживаются. |
Утилиты всей модели | DocBlock поддерживается. Блок Model Info не делает типов данных таблицы поддержки. |
Ports & Subsystems | Блок Subsystem поддерживается. |
Атрибуты сигнала | Эти блоки поддерживаются:
|
Маршрутизация сигнала | Эти блоки поддерживаются:
|
Источники | Эти блоки поддерживаются:
|
Приемники | Эти блоки поддерживаются:
|
Пользовательские функции | Блок MATLAB Function поддерживается. |
Генератор кода не делает типов таблицы поддержки в интерфейсах Subsystem, для которого вы генерируете HDL-код. Используйте блок Reshape, чтобы преобразовать матричный вход в 1D массив в интерфейсе. В Subsystem используйте другой блок Reshape, который преобразует 1D массив назад в матричный тип с размерностью, которую вы задали.
Массивы, сохраненные в упорядоченном по строкам размещении, не поддерживаются для генерации HDL-кода
Сигналы переменного размера не поддерживаются для генерации кода.