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