exponenta event banner

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

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

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

Идентификатор руководства

3.2.3

Серьезность

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

Описание

Блоки, участвующие в распределенной конвейерной обработке с векторными типами

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

Параметры и требования к блокам

  1. В разделе Свойства блока HDL для блоков задайте для параметра Архитектура значение:

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

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

  2. Укажите количество ступеней трубопровода, используя свойства InputPipeline и OutputPipeline в диалоговом окне Свойства блока HDL (HDL Block Properties) или вставляя блоки задержки вручную.

  3. Включите функцию Pipelining в подсистеме, для которой требуется применить эту оптимизацию.

  4. Откройте отчет Распределенная конвейерная обработка (Distributed Pipelining).

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

Пример распределенной конвейерной обработки векторной суммы элементов

В этом примере показано, как можно распределить регистры конвейера на выходе блока «Сумма элементов», принимающего векторные входы.

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')

На выходе блока «Сумма элементов» отображается блок задержки, состоящий из трех элементов. Распределенную конвейерную обработку можно использовать для распределения задержек.

1. Задайте для архитектуры значение Tree для блока «Сумма элементов».

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

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

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

3. Создание кода HDL для подсистемы DUT.

makehdl('hdlcoder_distributed_pipelining_soe/DUT')

4. Откройте отчет о создании кода для просмотра результатов оптимизации распределенных конвейеров.

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

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

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

Подробнее