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