exponenta event banner

Сведение иерархии

Что такое сведение иерархии?

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

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

Когда выравнивать иерархию

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

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

  • Более широкая оптимизация площади и скорости.

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

Соображения

  • Перед выравниванием иерархии необходимо иметь MaskParameterAsGeneric свойство имеет значение off. Дополнительные сведения см. в разделе Создание параметризованного кода HDL из маскированной подсистемы.

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

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

Как выровнять иерархию

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

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

Чтобы задать сведение иерархии с помощью диалогового окна Свойства блока HDL (HDL Block Properties), выполните следующие действия.

  • На вкладке Приложения выберите Кодер HDL. Появится вкладка Код HDL (HDL Code). Выберите подсистему и нажмите Свойства блока HDL. Для параметра FlattenHierarchy выберите on, off или inherit.

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

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

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

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

Невозможно выровнять подсистему, если подсистема:

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

  • Эталонная реализация модели.

  • Триггерная подсистема при включении триггерного сигнала.

  • Маскированная подсистема, содержащая следующие элементы:

    • Автобус.

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

    • Блоки таблиц подстановок: таблица подстановок 1-D, таблица подстановок 2-D, оптимизированная косинусная ЛПВП, таблица прямых подстановок (n-D), предварительная подстановка, оптимизированная синусоидальная ЛПВП, таблица подстановок n-D.

    • Блок системы MATLAB.

    • Блоки Stateflow ®: диаграмма, таблица перехода состояний, средство просмотра последовательностей.

    • Блоки с реализацией сквозной передачи или без операции. См. разделы Сквозные, Без HDL и Каскадные реализации.

Примечание

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

Отчет по выравниванию иерархии

Для просмотра информации о сведении иерархии в отчете перед созданием кода для каждой подсистемы или ссылки на модель включите отчет оптимизации. Чтобы включить этот отчет, на вкладке Код HDL (HDL Code) выберите Параметры отчета (Report Options), а затем выберите Создать отчет по оптимизации (Generate optimization report).

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

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

См. также

Связанные темы