Многоуровневая генерация ядра IP

Этот пример показывает HDL, Coder™ поддерживает проекты с несколькими скоростями дискретизации, когда вы запускаете IP Core Generation рабочий процесс.

Если вы используете только AXI4 подчиненные интерфейсы, такие как AXI4 или AXI4-Lite, и когда вы используете Free running для синхронизации процессора/FPGA можно использовать несколько частот дискретизации в проекте без ограничений.

Когда вы сопоставляете порты интерфейса с AXI4-Stream, AXI4-Stream Video или AXI4 Master интерфейсами, чтобы использовать несколько частот дискретизации, убедитесь, что порты DUT, которые сопоставлены с AXI4 интерфейсами, выполняются с самой быстрой скоростью проекта после генерации HDL-кода.

Эти примеры иллюстрируют, как можно смоделировать проект с несколькими скоростями дискретизации при использовании AXI4-Stream, AXI4-Stream Video или AXI4-Master Master интерфейсов.

Запуск части проекта с более низкой скоростью

Можно запускать часть проекта с более медленной скоростью, при этом гарантируя, что порты DUT, которые сопоставлены с интерфейсом, выполняются с самой быстрой скоростью. Этот пример иллюстрирует отображение с AXI4-Stream Video-интерфейсами, но можно сопоставить с AXI4-Stream или AXI4 Master-интерфейсами с помощью этого подхода.

Для получения примера откройте модель hdlcoder_axi_video_multirate.

load_system('hdlcoder_axi_video_multirate')
set_param('hdlcoder_axi_video_multirate','SimulationCommand','update')
open_system('hdlcoder_axi_video_multirate')

В этой модели порты DUT, соответствующие входам и выходам Video_Algorithm запуск с самой быстрой скоростью.

open_system('hdlcoder_axi_video_multirate/Multirate_DUT')

Поэтому эти порты могут быть сопоставлены с AXI4-Stream видеоинтерфейсами. Часть проекта, работающая вне этого алгоритма, соответствует входным slow и выход slowOut выполнение с более медленной скоростью может соответствовать AXI4 или AXI4-Lite интерфейсам. Этот рисунок показывает пример отображения интерфейса целевой платформы для этой модели.

Примечание.Чтобы использовать блоки Pixel Control Bus Creator и Pixel Control Bus Selector, необходимо установить Vision HDL Toolbox™. Если у вас нет Vision HDL Toolbox, используйте вместо этого блоки Bus Creator и Bus Selector.

Смотрите также Проект для генерации AXI4-Stream видео интерфейса.

Применение оптимизации к части проекта, выполняемой с медленной скоростью

С мультирейтовой поддержкой можно применить оптимизации, такие как совместное использование ресурсов, к части проекта, выполняемой с более медленной скоростью. Убедитесь, что оптимизация не вводит более высокую скорость в вашей Simulink™ модели. Этот пример иллюстрирует отображение с AXI4-Stream интерфейсами, но можно сопоставить с AXI4-Stream интерфейсами Video или AXI4 Master с помощью этого подхода.

Для получения примера откройте модель hdlcoder_axi_multirate_sharing

load_system('hdlcoder_axi_multirate_sharing')
set_param('hdlcoder_axi_multirate_sharing','SimulationCommand','update')
open_system('hdlcoder_axi_multirate_sharing/DUT')

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

open_system('hdlcoder_axi_multirate_sharing/DUT/Subsystem')

Совместное использование ресурсов может быть применено к этой части проекта. Чтобы увидеть параметры, сохраненные в этой Подсистеме, запустите hdlsaveparams.

hdlsaveparams('hdlcoder_axi_multirate_sharing/DUT/Subsystem')
%% Set Model 'hdlcoder_axi_multirate_sharing' HDL parameters
hdlset_param('hdlcoder_axi_multirate_sharing', 'HDLSubsystem', 'hdlcoder_axi_multirate_sharing/DUT');
hdlset_param('hdlcoder_axi_multirate_sharing', 'ReferenceDesign', 'Default system with AXI4-Stream interface');
hdlset_param('hdlcoder_axi_multirate_sharing', 'ResetType', 'Synchronous');
hdlset_param('hdlcoder_axi_multirate_sharing', 'SynthesisTool', 'Xilinx Vivado');
hdlset_param('hdlcoder_axi_multirate_sharing', 'SynthesisToolChipFamily', 'Zynq');
hdlset_param('hdlcoder_axi_multirate_sharing', 'SynthesisToolDeviceName', 'xc7z020');
hdlset_param('hdlcoder_axi_multirate_sharing', 'SynthesisToolPackageName', 'clg484');
hdlset_param('hdlcoder_axi_multirate_sharing', 'SynthesisToolSpeedValue', '-1');
hdlset_param('hdlcoder_axi_multirate_sharing', 'TargetDirectory', 'hdl_prj\hdlsrc');
hdlset_param('hdlcoder_axi_multirate_sharing', 'TargetFrequency', 50);
hdlset_param('hdlcoder_axi_multirate_sharing', 'TargetPlatform', 'ZedBoard');
hdlset_param('hdlcoder_axi_multirate_sharing', 'Workflow', 'IP Core Generation');

% Set SubSystem HDL parameters
hdlset_param('hdlcoder_axi_multirate_sharing/DUT/Subsystem', 'SharingFactor', 3);

Можно сопоставить порты интерфейса DUT с интерфейсами AXI4-Stream Master или AXI4-Stream Slave. Этот рисунок показывает пример отображения интерфейса целевой платформы для этой модели.

Смотрите также Проект для генерации AXI4-Stream интерфейса.

Похожие темы