exponenta event banner

Рекомендации по распределенному трубопроводированию и трубопроводированию с тактовой частотой

Генератор кода вводит регистры при указании определенных реализаций блоков или использовании определенных настроек. Чтобы узнать больше об этих регистрах и о том, как использовать их для оптимизации сроков проектирования, следуйте приведенным ниже инструкциям.

Каждое руководство имеет уровень серьезности, который указывает уровень соответствия требованиям. Дополнительные сведения см. в разделе Рекомендации по моделированию HDL Уровни серьезности.

Рекомендации по трубопроводированию тактовой частоты

Идентификатор руководства

3.2.1

Серьезность

Информативный

Описание

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

  • Трубопровод ввода и вывода

  • Многоцикловые блочные реализации, такие как сложные математические операции, такие как Sqrt и Revacal.

  • Сопоставление библиотеки с плавающей запятой

  • Балансировка задержки

  • Совместное использование ресурсов и потоковая передача

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

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

Рекомендуемые параметры распределенной прокладки трубопроводов

Идентификатор руководства

3.2.2

Серьезность

Рекомендуется

Описание

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

Чтобы использовать эту оптимизацию для подсистемы, установите для свойства блока HDL Pipelining значение on.

Для более эффективного использования этой оптимизации в диалоговом окне «Параметры конфигурации» на панели «Создание кода HDL» > «Оптимизация» можно задать эти дополнительные параметры.

  • ConstrainedOutputPipeline: убедитесь, что общее число вставленных задержек, включая любой введенный и выходной конвейер, больше или равно значению, указанному для ConstrainedOutputPipeline в подсистеме.

  • Иерархическая распределенная конвейерная обработка (Hierarchical distributed pipelining): выберите этот параметр, если требуется применить распределенную конвейерную оптимизацию в иерархии нескольких подсистем. Убедитесь, что для подсистемы верхнего уровня и каждой подсистемы в иерархии установлено свойство блока HDL Pipelining. on.

    Примечание

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

  • Конвейеризация тактовой частоты: выберите этот параметр, если требуется, чтобы генератор кода вставлял регистры с тактовой частотой вместо скорости передачи данных.

  • Разрешить конвейеризацию тактовой частоты выходных портов DUT: выберите этот параметр, если требуется, чтобы генератор кода вставлял регистры на тактовой частоте вместо скорости передачи данных на выходных портах DUT.

  • Сохранить задержки проекта: выберите этот параметр, если не требуется, чтобы генератор кода перемещал задержки, добавленные в проект. Оптимизация перемещает только регистры трубопроводов.

  • Distributed pipelining priority: Укажите, должен ли приоритет быть Numerical Integrity или Performance. Если вы используете Performanceубедитесь, что результаты моделирования совпадают. В некоторых случаях этот параметр перемещает регистры в блоки, которые имеют начальные значения, например константы, что может повлиять на результаты моделирования.

Подсистема, для которой требуется применить оптимизацию, должна соответствовать следующим требованиям:

  • Убедитесь, что подсистема, в которой применяется эта оптимизация, не содержит петель обратной связи.

  • Используйте блоки, поддерживаемые для распределенной конвейерной обработки. Список неподдерживаемых блоков см. в разделе Ограничения распределенной конвейерной обработки. Как обходной путь:

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

    • Измените приоритет распределенной конвейерной обработки на Performance для определенных блоков, например Enabled Subsystem.

  • Время выборки блоков должно быть дискретным. Если для блоков с параметром «Sample Time» установлено значение Inf, измените их на -1. Сведения о программном определении и изменении времени выборки см. в разделе Изменение параметров блока с помощью find_system и set_param.

  • Удалите все входные порты в блоках Scope, чтобы избежать генерации бесконечного времени выборки.

См. также

Параметры конфигурации Simulink

Связанные примеры

Подробнее