Определенные шаблоны или комбинация блоков с регистрами могут улучшить достижимую тактовую частоту и уменьшать использование области на платах FPGA. Адаптивная оптимизация конвейеризации создает эти шаблоны путем вставки регистров трубопровода в блоки в проекте. Чтобы определить оптимальное количество регистров трубопровода, чтобы вставить в ваш проект, оптимизация рассматривает целевое устройство, целевую частоту, размеры слова множителя и настройки в HDL Block Properties. Смотрите Адаптивную Конвейеризацию.
По умолчанию адаптивная оптимизация конвейеризации отключена на модели. Если вы решаете использовать эту оптимизацию, необходимо включить ее.
Во многих ситуациях можно выборочно вставить трубопроводы в модель и сгенерировать эффективный HDL-код, не включая адаптивную оптимизацию конвейеризации. Например, можно выборочно добавить трубопроводы рядом со множителем.
Для определенных шаблонов разработки необходимо включить адаптивную оптимизацию конвейеризации прежде, чем сгенерировать код. Например, вы не можете смочь выборочно добавить трубопроводы во внутреннюю логику блока Discrete-Time Integrator.
Инструкции по тому, разрешить ли адаптивную конвейеризацию:
Для релизов до R2021a адаптивный отчет конвейеризации для вашей модели показал, что генератор кода вставил адаптивные трубопроводы. Включите адаптивную конвейеризацию, когда вы сгенерируете код для той модели.
Если ваша модель использует блоки, которые поддерживаются адаптивной оптимизацией конвейеризации, и вы выборочно не вставляете регистры трубопровода для этих блоков, включаете адаптивную конвейеризацию.
Если ваша модель использует блоки, которые поддерживаются адаптивной оптимизацией конвейеризации, и вы включаете любую следующую оптимизацию, также включаете адаптивную конвейеризацию:
Разделение ресурсов
Потоковая передача
Конвейеризация тактовой частоты.
См. адаптивный отчет конвейеризации и поддерживаемые блоки.
Аудиосистема в качестве примера, Который Использование Низкая Передача, Передача Полосы, и Фильтры высоких частот и Дискретный КИХ-Фильтр, Который Разделение ресурсов Использования иллюстрирует некоторые ситуации, в которых необходимо включить адаптивную конвейеризацию прежде, чем сгенерировать код.
Смотрите выполнение аудиофильтра на живом аудиовходе Используя Совет Zynq.
Модель в этом примере имеет адаптивную включенную конвейеризацию. Если вы отключаете адаптивную конвейеризацию, сгенерированный HDL-код не соответствует ограничениям синхронизации.
Откройте и исследуйте эту модель для Дискретного КИХ-фильтра.
Для блока Subsystem DUT свойство SharingFactor блока HDL установлено в 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 как прежде.
В сгенерированной модели вы видите, что генератор кода вставил адаптивные трубопроводы для блоков множителя.
Результат синтеза показывает положительное слабое, показывая, что удовлетворяют синхронизирующим ограничениям.