Распределенная конвейерная обработка - это оптимизация скорости, которая уменьшает критический путь за счет перемещения существующих задержек в конструкции при сохранении функционального поведения. В этом руководстве показано, как эффективно использовать оптимизацию для векторных входных данных.
Каждое руководство имеет уровень серьезности, который указывает уровень соответствия требованиям. Дополнительные сведения см. в разделе Рекомендации по моделированию HDL Уровни серьезности.
3.2.3
Информативный
Задав определенные параметры, можно применить оптимизацию распределенной конвейерной обработки для вставки регистров трубопроводов для этих блоков при вводе векторов, превышающих 3 по размеру. Для получения дополнительной информации см. раздел «Создание кода HDL» на каждой странице блока.
Сумматоры: Добавить, Вычесть и Сумма элементов
Множители: выигрыш, продукт и продукт элементов
В разделе Свойства блока HDL для блоков задайте для параметра Архитектура значение:
Tree или Linear для сумматоров, множителей и блоков MinMax. Вставка распределенного регистра трубопровода не поддерживает Cascade архитектура.
Linear для точечного продукта. Вставка распределенного регистра трубопровода не поддерживает Tree архитектура для этого блока.
Укажите количество ступеней трубопровода, используя свойства InputPipeline и OutputPipeline в диалоговом окне Свойства блока HDL (HDL Block Properties) или вставляя блоки задержки вручную.
Включите функцию Pipelining в подсистеме, для которой требуется применить эту оптимизацию.
Откройте отчет Распределенная конвейерная обработка (Distributed Pipelining).
Откройте и проверьте созданную модель.
В этом примере показано, как можно распределить регистры конвейера на выходе блока «Сумма элементов», принимающего векторные входы.
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')
