Сглаживание иерархии

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

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

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

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

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

Выровнять иерархию по:

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

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

Факторы

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

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

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

Как сплющить иерархию

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

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

Чтобы задать выравнивание иерархии с помощью диалогового окна 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.

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

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

  • A 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.

    • Блоки с реализацией pass-through или no-op. Смотрите Pass through, No HDL и Cascade Implementations.

Примечание

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

Отчет о сглаживании иерархии

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

В отчете отображаются подсистемы в вашей модели, которые FlattenHierarchy установлены на on и off, статус выравнивания иерархии и встроенные файлы HDL. Можно использовать отчет, чтобы более эффективно сглаживать иерархию подсистемы и улучшать возможности для оптимизации, такие как конвейеризация по тактовой частоте в модели.

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

См. также

Похожие темы