Проект шаблонов, которые требуют адаптивной конвейеризации

Определенные шаблоны или комбинация блоков с регистрами могут улучшить достижимую тактовую частоту и уменьшить использование площади на платах FPGA. Адаптивная оптимизация конвейеризации создает эти шаблоны путем вставки регистров трубопроводов в блоки в проекте. Чтобы определить оптимальное количество регистров конвейера для вставки в ваш проект, оптимизация рассматривает целевое устройство, целевую частоту, размеры слова умножителей и настройки в HDL Block Properties. См. Раздел «Адаптивная конвейеризация»

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

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

Однако для определенных шаблонов проекта необходимо включить адаптивную оптимизацию конвейеризации перед генерацией кода. Например, вы, возможно, не сможете добавить трубопроводы вручную во внутреннюю логику блока Discrete-Time Integrator.

Инструкции по активации адаптивной конвейеризации:

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

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

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

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

    • Вытекание

    • Тактовая частота конвейеризации.

Смотрите Отчет по адаптивным Конвейеризациям и Поддерживаемые Блоки.

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

Аудиосистема, которая использует фильтры Low Pass, Band Pass и High Pass

См. раздел «Выполнение аудиофильтра на 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, как и прежде.

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

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

Похожие темы

Похожие темы