И поддержка типов данных сигнала

HDL Coder™ поддерживает генерацию кода для типов сигнала Simulink® и типов данных с несколькими особыми случаями.

Шины

Если ваш DUT или другие блоки в вашей модели имеют много сигналов ввода или вывода, можно создать сигналы шины улучшить удобочитаемость модели. Сигнал шины или шина являются составным сигналом, который состоит из других сигналов, которые называются элементами.

Можно сгенерировать HDL-код для проектов, которые используют виртуальные и невиртуальные шины. Например, можно сгенерировать код для проектов, которые содержат:

  • Порты подсистемы DUT соединяются с шинами.

  • Simulink и блоки Stateflow®, которые поддерживают шины и генерацию HDL-кода.

Поддерживаемые блоки с шинами

Способные к шине блоки являются блоками, которые могут принять сигналы шины, как введено и произвести сигналы шины как выходные параметры. Для списка способных к шине блоков, которые поддерживает Simulink, смотрите Способные к шине Блоки. HDL Coder поддерживает генерацию кода для способных к шине блоков в библиотеке блоков HDL Coder. Для получения дополнительной информации смотрите раздел "HDL Code Generation" каждой страницы блока. Поддерживаемые блоки включают:

Кроме того, подсистемы, модели и эти пользовательские функции поддерживают шины для симуляции и генерации HDL-кода:

Соедините шиной ограничения поддержки

Шины не поддерживаются в 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-кода

  • Сигналы переменного размера не поддерживаются для генерации кода.

Связанные примеры

Больше о