Этот пример показывает 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 интерфейса.