主要内容

分布式管道插入MATLAB函数块

本例展示了如何使用分布式流水线优化对MATLAB函数块生成的HDL代码进行优化。分布式流水线是HDL Coder™优化,改进了从MATLAB函数块,Simulink®模型或Stateflow®图表生成的HDL代码。通过使用分布式流水线,您的设计在FPGA设备上实现了更高的时钟速率。

乘数链模型

这个例子展示了如何在一个简单的模型中分布管道寄存器,该模型将五个乘法串在一起。

open_system (“hdlcoder_distpipe_multiplier_chain”) set_param (“hdlcoder_distpipe_multiplier_chain”“SimulationCommand”“更新”

HDL_DUT子系统是您希望为其生成HDL代码的DUT。子系统驱动MATLAB函数块mult_chain

open_system (“hdlcoder_distpipe_multiplier_chain / HDL_DUT”

要查看乘法链,请打开MATLAB函数块。

open_system (“hdlcoder_distpipe_multiplier_chain / HDL_DUT / mult_chain”

应用分布式管道优化

1.为MATLAB函数块指定两个管道阶段的生成。

ml_subsys =“hdlcoder_distpipe_multiplier_chain / HDL_DUT / mult_chain”;hdlset_param (ml_subsys“OutputPipeline”, 2)

2.指定MATLAB Datapath公司体系结构。该体系结构将MATLAB函数块视为常规的子系统。然后,您可以跨MATLAB函数块与Simulink®模型中的其他块应用各种优化。

hdlset_param (ml_subsys“架构”MATLAB Datapath公司的);

3.在块上启用分布式流水线优化。要查看优化结果,请启用优化报告的生成。要在模型中应用跨层次结构的优化,请在模型上启用层次结构的分布式管道,并在所有子系统上启用分布式管道。

hdlset_param (“hdlcoder_distpipe_multiplier_chain”...“HierarchicalDistPipe”“上”“OptimizationReport”“上”) hdlset_param (“hdlcoder_distpipe_multiplier_chain / HDL_DUT”“DistributedPipelining”“上”);hdlset_param (ml_subsys“DistributedPipelining”“上”);

您还可以选择为MATLAB函数块的分布式流水线使用综合时间估计MATLAB Datapath公司体系结构。综合时序估计用于计算分布式管道设计中组件的传播延迟。使用此选项,您可以更准确地反映组件在硬件上的功能,以便更好地在设计中分配管道,并最大化特定目标设备的时钟频率。有关更多信息,请参见使用综合时间估计的分布式管道

要为分布式流水线启用综合时间估计,请使用模型参数为分布式管道使用综合评估HDL代码生成>优化>流水线选项卡,或使用hdlset_param

hdlset_param (“hdlcoder_distpipe_multiplier_chain”“UseSynthesisEstimatesForDistributedPipelining”“上”

4.生成的HDL代码HDL_DUT子系统。

makehdl (“hdlcoder_distpipe_multiplier_chain / HDL_DUT / mult_chain”

默认情况下,HDL Coder生成VHDL代码hdlsrc文件夹中。

优化结果分析

在分布式管道报告中,您可以看到代码生成器移动了管道寄存器。要查看优化的效果,请打开生成的模型gm_hdlcoder_distpipe_multiplier_chain并导航到HDL_DUT子系统。

MATLAB Datapath公司架构在MATLAB函数块中创建了一个子系统。然后,优化可以分配您在子系统中添加的管道寄存器和单元延迟,以优化乘数链并改进计时。打开mult_chain子系统。

另请参阅

相关的话题

Baidu
map