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

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

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

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

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

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

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

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

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

Факторы

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

  • Когда вы используете оптимизацию, такую как разделение ресурсов или передающий потоком с выравниванием иерархии в определенных случаях, HDL Coder может сохранить иерархию подсистемы в сгенерированной модели. Однако HDL-код, сгенерированный для сглаженных подсистем, встраивается, который сокращает количество файлов HDL.

  • Когда вы используете типы данных с плавающей точкой в Native Floating Point режим, HDL Coder не может сгладить иерархию. Это вызвано тем, что проекты с плавающей точкой генерируют сотни строк кода, и встраивание файлов HDL делает сгенерированный код менее читаемым.

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

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

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

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

  • Во вкладке Apps выберите HDL Coder. Вкладка HDL Code появляется. Выберите Subsystem и затем нажмите HDL Block Properties. Для FlattenHierarchy выберите on, off или inherit.

  • Щелкните правой кнопкой по Subsystem и выберите HDL Code> HDL Block Properties. Для FlattenHierarchy выберите on, off или inherit.

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

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

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

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

  • Synchronous Subsystem или использование блок State Control в Synchronous режим.

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

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

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

    • Шина.

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

    • Блоки интерполяционной таблицы: 1-D Lookup Table, 2-D Lookup Table, Cosine HDL Optimized, Direct LookupTable (n-D), Prelookup, Sine HDL Optimized, n-D Lookup Table.

    • Блок MATLAB System.

    • Блоки Stateflow®: Chart, State Transition Table, Sequence Viewer.

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

Примечание

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