ad fanout control 设置

ad fanout control 设置,第1张

在CPUFANModeSetting设置manualmode,cpufan设置为100-150之间(默认250),这样风扇的转速就下降到1800--2400之间,噪音会小得多了,但是此时风扇并不是智能调节转速的,即转速是一定值!3:设置智能调速,CPUFANTargetTempvalun(CPU风扇模式设置)--40CPUFANStartupvalue(CPU风扇的启动数)---40,就是CPU温度达到40°后开始启动智能调速4CPUFANSTOPvalue(CPU风扇停止数)---35,即CPU温度到35°后停止调速,并随之降速!

注意:在风扇的整个调整过程中需要检测CPU温度,如果出现过高或死机,要立刻停止将风扇修改为原先的默认设置使用,如果是这样说明你的风扇功率小不能降低转速需要另外购买散热器

       Fanout,即扇出,指模块直接调用的下级模块的个数,如果这个数值过大的话,在FPGA直接表现为net delay较大,不利于时序收敛。因此,在写代码时应尽量避免高扇出的情况。但是,在某些特殊情况下,受到整体结构设计的需要或者无法修改代码的限制,则需要通过其它优化手段解决高扇出带来的问题。以下就介绍三个这样的方法:

首先来看下面这个实例,如图1所示为转置型FIR滤波器中的关键路径时序报告,在DSP in FPGA的FIR专题中有介绍转置型结构FIR滤波器输入数据的扇出较大,在图1中所示为11,因此net delay高达1.231ns。如图2所示,输入数据驱动了11个DSP48E1。

       在没有优化情况下,该设计的fmax:206.016MHz

1. 寄存器复制

寄存器复制是解决高扇出问题最常用的方法之一,通过复制几个相同的寄存器来分担由原先一个寄存器驱动所有模块的任务,继而达到减小扇出的目的。通过简单修改代码,如图3所示,复制了4个寄存器:din_d0、din_d1、din_d2、din_d3,din_d、din_d0、din_d1、din_d2分别驱动2个DSP48E1,din_d3驱动3个DSP48E1。其中在代码中为防止综合器优化相同寄存器,在对应信号上加入了(* EQUIVALENT_REGISTER_REMOVAL="NO" *)属性避免被优化。

       综合实现后得到时序报告如图4所示,该数据路径上输入数据fanout减为2,对应net delay也减小到了0.57ns。得到设计如图5所示,与期望的相同,复制了4个寄存器来分担fanout。经过寄存器优化后得到fmax:252.143MHz

       2. max_fanout属性

在代码中可以设置信号属性,将对应信号的max_fanout属性设置成一个合理的值,当实际的设计中该信号的fanout超过了这个值,综合器就会自动对该信号采用优化手段,常用的手段其实就是寄存器复制。属性设置如下代码所示:

(* max_fanout = "3" *)reg  signed [15:0] din_d

将din_d信号的max_fanout属性设置成3,经过综合实现后,得到时序报告如图6所示,其中fanout只有2,相应的net delay也只有0.61ns,自动优化效果还不错。结构如图7所示,其中din_d_12_1、din_d_12_2、din_d_12_3是综合器优化后自动添加,即实现了寄存器复制功能。经过设置max_fanout属性优化后得到fmax:257.135MHz

       3. BUFG

通常BUFG是用于全局时钟的资源,可以解决信号因为高扇出产生的问题。但是其一般用于时钟或者复位之类扇出超级大的信号,此类信号涉及的逻辑遍布整个芯片,而BUFG可以从全局的角度优化布线。而且一块FPGA芯片中BUFG资源也有限,在7k325tffg900上也仅有32个,如果用于普通信号的高扇出优化也不大现实。因此,在时钟上使用BUFG是必须的,但是如果设计中遇到某些复位信号因高扇出产生的时序问题时,可以在此信号上使用BUFG来优化。

综上,在遇到信号高扇出时,对于普通信号可采用寄存器复制或者设置max_fanout属性优化;而对于复位信号,可加入BUFG优化。

转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦

设计规则约束DesignRuleConstraint,即DRC,区别于物理DRC,我们一般称其为logicalDRC或者DRV(DesignRuleViolation)。

为了防止产生max_cap和max_transition的DRV问题,我们一般会在sdc中添加一些max_fanout的约束,另外为了得到更好的ClockTree并防止产生DRV问题,我们也可以对ClockTree添加专门的max_fanout约束。

以上这些max_fanout约束其实都是sdc中User设置的,不是hard的,如果有违反,Designer也可以设置一个更大的值Override之前的值,这样违反就不存在了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/11282140.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存