Иерархическое распределённая конвейеризация расширяет возможности распределённой конвейеризации путем перемещения задержек между иерархическими контурами в подсистеме с сохранением иерархии подсистем.
Если подсистема в иерархии не поддерживает распределённую конвейеризацию, HDL- Coder™ не перемещает задержки через эту подсистему.
Например, следующая модель имеет один уровень иерархии подсистем:
Следующая схема показывает модель после применения иерархической распределенной конвейеризации:
Подсистема теперь содержит регистры конвейеров:
Иерархическое распределённая конвейеризация позволяет распределённой конвейеризации работать с большей частью вашего проекта, что увеличивает вероятность того, что распределённая конвейеризация может еще больше уменьшить ваш критический путь.
Иерархическая распределенная конвейеризация сохраняет исходную иерархию подсистемы, которая позволяет вам отслеживать изменения, которые происходят во время конвейеризации для вложенных блоков Subsystem.
Для модели можно задать иерархическое распределённую конвейеризацию. Чтобы задать иерархическое распределённую конвейеризацию с помощью пользовательского интерфейса, на вкладке Apps выберите HDL Coder. Появится вкладка HDL Code. Щелкните Subsystem и затем щелкните HDL Block Properties. Установите DistributedPipelining значение on
На вкладке Apps выберите HDL Coder. Появится вкладка HDL Code.
Нажмите Settings. На вкладке HDL Code Generation Optimization > Pipelining выберите Hierarchical distributed pipelining и нажмите OK.
Чтобы включить иерархическое распределённую конвейеризацию, в командной строке введите:
hdlset_param('modelname', 'HierarchicalDistPipelining', 'on')
Иерархическое распределённая конвейеризация должно быть отключено, если подсистема DUT содержит модель-ссылку.
Чтобы увидеть иерархическую информацию о распределённой конвейеризации в отчете, прежде чем вы сгенерируете код для каждой подсистемы или модели-ссылки, включите отчет оптимизации. Чтобы включить этот отчет, на вкладке HDL Code, выберите Report Options, а затем Generate optimization report.
Когда вы генерируете отчет оптимизации, в разделе Distributed Pipelining, вы видите эффект иерархической оптимизации распределённой конвейеризации. Если иерархическая распределенная конвейеризация не удалась, в отчете показываются диагностические сообщения и нарушающие блоки, из-за чего иерархическая распределенная конвейеризация не прошла.
Если иерархическое распределённая конвейеризация успешна, в отчете отображаются цветные разделы для различения различных областей, в которых HDL Coder применяет иерархическое распределённую конвейеризацию.
Лейсерсон, К. Э. и Джеймс Б. Саксен. «Синхронизация синхронной схемы». Алгоритмика. Том 6, № 1, 1991, стр. 5-35.