资源共享是一种区域优化,其中HDL Coder™识别多个功能等效的资源,并将它们替换为单个资源。数据在共享资源上进行时间复用以执行相同的操作。
你可以指定共享的因素科幻小说
对于一个子系统或MATLAB函数块。HDL编码器试图识别一定数量的相同的、可共享的资源N
到科幻小说
.代码生成器如何共享这些资源取决于什么N
,科幻小说
,过采样因子
.
默认情况下,过采样因子
为1,资源共享将通过一个超频因子(OCF
),这取决于剩余的科幻小说
和N
.
如果rem(SF,N) == 0 OCF = N;其他的OCF =科幻小说;结束
如果指定过采样因子
大于1时,您的设计在目标硬件上操作一个更快的时钟速率,因为默认情况下时钟速率管道是启用的。当你指定SharingFactor,资源共享优化尝试共享多达N个资源,并按以下因素超时共享资源:
超频因子= (block_rate÷DUT_base_rate)×过采样
您可以使用验证模型来验证优化的DUT的输出是否与原始DUT产生的结果一致。要了解关于验证模型的更多信息,请参见生成模型和验证模型.
资源共享可以大大减少芯片面积。例如,生成的代码可以使用一个乘数来执行来自原始模型的几个相同配置的乘数的操作。但是,资源共享有以下成本:
使用更多的多路复用器,可以使用更多的寄存器。
减少分布式流水线或重定时的机会,因为HDL编码器不跨时钟速率边界流水线。
将目标硬件的时钟速率乘以共享因子。
如果你指定一个非零共享因子MATLAB函数块,HDL编码器识别并共享功能上等效的乘法器。
如果你指定一个非零共享因子子系统, HDL Coder识别并共享以下类型的块的功能等效实例:
获得
产品
Multiply-Add
添加或总和有两个输入
原子子系统
MATLAB函数
代码生成器在功能上是等价的MATLAB函数具有定点类型的块。使用浮点类型或MATLAB Datapath公司
架构MATLAB函数块与定点类型,HDL Coder处理MATLAB函数常规块子系统.的内部共享功能等效的资源MATLAB函数块。想要了解更多,请看使用MATLAB数据路径架构与MATLAB函数块共享.
要从UI中指定资源共享:
在应用程序选项卡上,选择高密度脂蛋白编码器.的HDL代码选项卡出现了。选择子系统、模型参考或MATLAB函数阻塞,然后点击高密度脂蛋白块属性.在SharingFactor字段,输入可共享资源的数量。
右键单击子系统、模型引用或MATLAB函数块,并选择HDL代码>高密度脂蛋白块属性.在SharingFactor字段,输入可共享资源的数量。
在命令行中,设置SharingFactor
使用hdlset_param
,如下面的例子所示。
modelname =“sfir_fixed”dut =“sfir_fixed / symmetric_fir”;open_system modelname hdlset_param (dut,“SharingFactor”4);
多速率共享不能共享从自适应管道插入的管道数量不同的资源。
资源共享不支持模型引用。万博1manbetx
共享的块必须满足以下要求:
单一税率。
没有无限的采样率。DUT不能包含带的块样品时间设置为正
.例如,常数块必须有样品时间设置为1。将所有的示例时间设置为-1常数块在您的DUT,使用以下MATLAB代码:
黑色= find_system (dut,“BlockType”,“不变”);为I = 1:length(blks) set_param(blks{I},“SampleTime”,' 1 ');结束
没有总线输入或输出。
没有可调掩码参数。要共享这些块,请在掩码编辑器中清除可调复选框。
如果块在一个反馈环路内,则至少有一个单位延迟或延迟块必须连接到每个输出端口。
要了解资源共享的特定块设置和要求,请参见:
要查看报告中的资源共享信息,在为每个子系统或模型引用生成代码之前,请启用优化报告。要启用此报告,请在HDL代码选项卡上,选择报告选项,然后选择生成优化报告.
生成优化报告时,在流和共享部分中,您将看到资源共享优化的效果。如果资源共享不成功,则报告显示导致资源共享失败的诊断消息和违规块。
如果资源共享成功,则报表中显示SharingFactor,以及包含共享资源的块组的表。表包含:
组Id:一组相似的Simulink的唯一ID万博1manbetx®共享资源的块,如添加块或产品块。
资源类型:共享组中Simulink块万博1manbetx的类型。
I / O字:在共享组中输入和输出块的字长。
组大小:共享组中相同类型的块数。
块名称:属于共享组的块名称。
色彩的传说:突出显示共享组中所有块的颜色。
要查看Simulink模型和生成的模型中的共享资源,请单击万博1manbetx突出显示共享资源和诊断链接。