Определенные шаблоны или комбинация блоков с регистрами могут улучшить достижимую тактовую частоту и уменьшить использование площади на платах FPGA. Адаптивная оптимизация конвейеризации создает эти шаблоны путем вставки регистров трубопроводов в блоки в проекте. Чтобы определить оптимальное количество регистров конвейера для вставки в ваш проект, оптимизация рассматривает целевое устройство, целевую частоту, размеры слова умножителей и настройки в HDL Block Properties. См. Раздел «Адаптивная конвейеризация»
По умолчанию адаптивная оптимизация конвейеризации отключена в модели. Если вы решили использовать эту оптимизацию, необходимо вручную включить ее.
Во многих ситуациях можно вручную вставить трубопроводы в модель и сгенерировать эффективный HDL-код, не разрешая адаптивную оптимизацию конвейеризации. Для примера можно добавить трубопроводы вручную рядом с умножителем.
Однако для определенных шаблонов проекта необходимо включить адаптивную оптимизацию конвейеризации перед генерацией кода. Например, вы, возможно, не сможете добавить трубопроводы вручную во внутреннюю логику блока Discrete-Time Integrator.
Инструкции по активации адаптивной конвейеризации:
Если перед R2021a, отчет об адаптивной конвейеризации для вашей модели показал, что генератор кода вставил адаптивные конвейеры, вручную включите адаптивную конвейеризацию, когда вы генерируете код для этой модели.
Если ваша модель использует блоки, которые поддерживаются адаптивной оптимизацией конвейеризации, и вы не вставляете вручную регистры трубопроводов для этих блоков, включите адаптивную конвейеризацию.
Если ваша модель использует блоки, которые поддерживаются адаптивной оптимизацией конвейеризации, и вы включите любую из следующих оптимизаций, также включите адаптивную конвейеризацию:
Совместное использование ресурсов
Вытекание
Тактовая частота конвейеризации.
Смотрите Отчет по адаптивным Конвейеризациям и Поддерживаемые Блоки.
Следующие примеры иллюстрируют некоторые ситуации, в которых необходимо включить адаптивную конвейеризацию.
См. раздел «Выполнение аудиофильтра на Live Audio Входа с использованием платы Zynq».
Модель в этом примере имеет включённую адаптивную конвейеризацию. Если вы отключаете адаптивную конвейеризацию, сгенерированный HDL-код не соответствует временным ограничениям.
Откройте и исследуйте эту модель для дискретного конечная импульсная характеристика.
Для блока DUT Subsystem свойство SharingFactor установлено в 8
. Итак, эта подсистема использует оптимизацию совместного использования ресурсов.
Сгенерируйте код с отключенной адаптивной конвейеризацией
В диалоговом окне «Параметры конфигурации» на вкладке Генерация HDL-кода > Optimization > конвейеризация снимите флажок Adaptive pipelining.
В HDL Workflow Advisor установите целевую частоту (МГц) на 200
и инструмент синтеза для Xilinx Vivado
. Сгенерируйте HDL-код и выполните синтез FPGA. Для получения дополнительной информации о генерации кода и шагах синтеза смотрите Генерация HDL-кода и FPGA Synthesis из Simulink Model.
В сгенерированной модели адаптивные трубопроводы не вставляются.
Результат синтеза показывает отрицательное ослабление, указывая, что временные ограничения не выполняются.
Сгенерируйте код с включенной адаптивной конвейеризацией
В диалоговом окне Параметров конфигурации на вкладке Генерации HDL-кода > Оптимизация > Конвейеризацией выберите Adaptive конвейеризации. Сгенерируйте HDL-код и перфромный синтез FPGA, как и прежде.
В сгенерированной модели можно увидеть, что генератор кода вставил адаптивные конвейеры для блоков умножителя.
Результат синтеза показывает положительное ослабление, указывая, что временные ограничения удовлетворены.