Вставьте распределенные регистры трубопровода для блоков с векторными входными параметрами типа данных

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

Каждая инструкция имеет уровень серьезности, который указывает на уровень требований податливости. Чтобы узнать больше, смотрите Уровни серьезности Руководств по моделированию HDL.

ID инструкции

3.2.3

Серьезность

Информативный

Описание

Блоки, которые Участвуют в Распределенной Конвейеризации с Типами векторов

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

Блокируйте настройки и требования

  1. В HDL Block Properties для блоков, набор Architecture к:

    • Tree или Linear для сумматоров, множителей и блоков MinMax. Распределенная вставка регистра трубопровода не поддерживает Cascade архитектура.

    • Linear для Dot Product. Распределенная вставка регистра трубопровода не поддерживает Tree архитектура для этого блока.

  2. Задайте количество настроек канала связи при помощи свойств InputPipeline и OutputPipeline в диалоговом окне HDL Block Properties, или путем ручной вставки блоков Delay.

  3. Включите DistributedPipelining на Subsystem, для которого вы хотите применить эту оптимизацию.

  4. Откройте Распределенный отчет Конвейеризации.

  5. Откройте и исследуйте сгенерированную модель.

Распределенный пример конвейеризации за векторную сумму элементов

В этом примере показано, как можно распределить регистры трубопровода при выходе блока Sum of Elements, который принимает векторные входные параметры.

open_system('hdlcoder_distributed_pipelining_soe')
set_param('hdlcoder_distributed_pipelining_soe','SimulationCommand','Update')

Если вы перемещаетесь по модели, вы видите три настройки канала связи для блока Sum of Elements.

open_system('hdlcoder_distributed_pipelining_soe/DUT/Add')

Вы видите блок Delay трех добавленных при выходе блока Sum of Elements. Можно использовать распределенную конвейеризацию, чтобы распределить задержки.

1. Установите архитектуру на Tree для блока Sum of Elements.

hdlset_param('hdlcoder_distributed_pipelining_soe/DUT/Add/Add', ...
                    'Architecture','Tree')

2. Включите DistributedPipelining на добавить подсистеме

hdlset_param('hdlcoder_distributed_pipelining_soe/DUT/Add', ...
                    'DistributedPipelining','On')

3. Сгенерируйте HDL-код для Подсистемы DUT.

makehdl('hdlcoder_distributed_pipelining_soe/DUT')

4. Откройте Отчет Генерации кода видеть эффект распределенной оптимизации конвейеризации.

5. Чтобы видеть эффект преобразования и как регистры трубопровода распределяются, откройте сгенерированную модель и перейдите к Добавить Подсистеме.

load_system('gm_hdlcoder_distributed_pipelining_soe')
set_param('gm_hdlcoder_distributed_pipelining_soe','SimulationCommand','Update')
open_system('gm_hdlcoder_distributed_pipelining_soe/DUT/Add')

Смотрите также

Параметры конфигурации Simulink

Связанные примеры

Больше о

Для просмотра документации необходимо авторизоваться на сайте