Определенные схемы или комбинация блоков с регистрами могут улучшить достижимую тактовую частоту и уменьшить использование области на платах FPGA. Адаптивная оптимизация конвейеров создает эти массивы путем вставки регистров трубопроводов в блоки в проекте. Чтобы определить оптимальное количество регистров трубопровода для вставки в конструкцию, оптимизация учитывает целевое устройство, целевую частоту, длину слова умножителя и настройки в свойствах блока HDL. См. раздел Адаптивное конвейерирование.
По умолчанию оптимизация адаптивной конвейерной обработки в модели отключена. Если вы решите использовать эту оптимизацию, ее необходимо включить вручную.
Во многих случаях можно вручную вставить трубопроводы в модель и создать эффективный код HDL без оптимизации адаптивного конвейера. Например, можно добавить трубопроводы вручную рядом с множителем.
Однако для определенных образцов конструкции перед созданием кода необходимо включить оптимизацию адаптивного конвейера. Например, невозможно добавить трубопроводы вручную во внутреннюю логику блока дискретного интегратора времени.
Руководство по включению адаптивной конвейерной обработки:
Если до R2021a отчет о адаптивной конвейерной обработке для модели показал, что генератор кода вставил адаптивные конвейерные операции, то при создании кода для этой модели вручную включите адаптивную конвейерную обработку.
Если в модели используются блоки, поддерживаемые адаптивной оптимизацией конвейеров, и для этих блоков вручную не вставляются регистры трубопроводов, включите адаптивную конвейеризацию.
Если в модели используются блоки, поддерживаемые оптимизацией адаптивной конвейерной обработки, и при этом включается любая из следующих оптимизаций, также активизируйте адаптивную конвейерную обработку.
Совместное использование ресурсов
Вытекание
Конвейеризация тактовой частоты.
См. раздел Отчет по адаптивным трубопроводам и поддерживаемые блоки.
Следующие примеры иллюстрируют некоторые ситуации, в которых необходимо включить адаптивную конвейерную обработку.
См. раздел Запуск аудиофильтра при вводе звука в реальном времени с использованием платы Zynq.
Для модели в этом примере включена адаптивная конвейерная обработка. При отключении адаптивной конвейерной обработки сгенерированный код HDL не соответствует ограничениям синхронизации.
Откройте и изучите эту модель для дискретного фильтра FIR.

Для блока подсистемы DUT свойство SharingFactor имеет значение 8. Таким образом, эта подсистема использует оптимизацию совместного использования ресурсов.
Создание кода с отключенной адаптивной конвейерной обработкой
В диалоговом окне «Параметры конфигурации» на вкладке «Создание кода HDL» > «Оптимизация» > «Конвейерная обработка» снимите флажок «Адаптивная конвейерная обработка».
В помощнике по рабочим процессам HDL установите целевую частоту (МГц) в значение 200 и инструмент синтеза для Xilinx Vivado. Создайте код HDL и выполните синтез FPGA. Дополнительные сведения о шагах генерации и синтеза кода см. в разделах Генерация кода HDL и Синтез FPGA из Simulink Model.
В созданной модели адаптивные трубопроводы не вставляются.

Результат синтеза показывает отрицательный провал, указывающий на то, что временные ограничения не выполняются.

Создание кода с включенной адаптивной конвейерной обработкой
В диалоговом окне «Параметры конфигурации» на вкладке «Создание кода HDL» > «Оптимизация» > «Конвейерная обработка» выберите «Адаптивная конвейерная обработка». Генерировать код HDL и выполнять синтез FPGA, как ранее.
В созданной модели можно увидеть, что генератор кода вставил адаптивные трубопроводы для блоков множителя.

Результат синтеза показывает положительное ослабление, указывающее на то, что временные ограничения удовлетворены.
