Выравнивание иерархии

Что сглаживает иерархия?

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

Программное обеспечение HDL Coder™ полагает, что блоки в сглаженной подсистеме на том же уровне иерархии, и больше не сгруппированы в отдельные подсистемы. Этот фактор позволяет кодеру реорганизовывать блоки для оптимизации через исходные иерархические контуры при сохранении функциональности.

Когда сгладить иерархию

Сгладьте иерархию к:

  • Включите более обширную область и оптимизацию скорости.

  • Сократите количество выходных файлов HDL. Для каждой сглаженной подсистемы HDL Coder генерирует ту меньше выходного файла HDL.

Постарайтесь не сглаживать иерархию, если вы хотите сохранить взаимно-однозначное отображение от имени подсистемы до HDL имя entity или module. Не выравнивание иерархии делает HDL-код более читаемым.

Предпосылки для выравнивания иерархии

Чтобы сгладить иерархию, подсистема должна иметь следующие свойства блока.

СвойствоНеобходимое значение
DistributedPipelining'off'
StreamingFactor0
SharingFactor0

Чтобы сгладить иерархию, у вас должен также быть глобальный набор свойств MaskParameterAsGeneric к 'off'. Для получения дополнительной информации смотрите, Генерируют параметризованный HDL-код от подсистемы маскированной.

Опции для выравнивания иерархии

По умолчанию подсистема наследовала свое выравнивание иерархии, сходящее с родительской подсистемы. Однако можно включить или отключить выравнивание для отдельных подсистем.

Опции выравнивания иерархии для подсистемы перечислены в следующей таблице.

Установка выравнивания иерархииОписание
наследуйтесь (значение по умолчанию)Используйте установку выравнивания иерархии родительской подсистемы. Если эта подсистема является подсистемой высшего уровня, не сглаживаться.
наСгладьте эту подсистему.
'off'Не сглаживайте эту подсистему, даже если родительская подсистема сглажена.

Как сгладить иерархию

Установить выравнивание иерархии с помощью диалогового окна HDL Block Properties:

  1. Щелкните правой кнопкой по подсистеме.

  2. Выберите HDL Code> HDL Block Properties.

  3. Для FlattenHierarchy выберите on, off или inherit.

Чтобы установить иерархию, сглаживающуюся из командной строки, используйте hdlset_param. Например, чтобы включить иерархию, сглаживающуюся для подсистемы, my_dut:

hdlset_param('my_dut', 'FlattenHierarchy', 'on')
См. также hdlset_param.

Ограничения для выравнивания иерархии

Подсистема не может быть сглажена, если подсистема:

  • Синхронная Подсистема или использование блок State Control в режиме Synchronous.

  • Реализация черного квадрата или модель - ссылка.

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

  • Любая регулярная или подсистема маскированная, которая содержит блок MATLAB function.

  • Подсистема маскированная, которая содержит любое следующее:

    • Шина.

    • Перечислимый тип данных.

    • Блок интерполяционной таблицы: 1D Интерполяционная таблица, 2D Интерполяционная таблица, Косинус, Прямой LookupTable (n-D), Предварительный поиск, Синус, n-D Интерполяционная таблица.

    • Блок MATLAB System.

    • Блок Stateflow®: График, Таблица Изменения состояния, Sequence Viewer.

    • Блокируйтесь с передачей или никакой-op реализацией. Смотрите Проходят, Никакой HDL и Каскадные Реализации.

Примечание

Эта опция удаляет контуры подсистемы перед генерацией кода. Это не обязательно генерирует HDL-код с абсолютно плоской иерархией.