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