问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何解决high fanout问题

发布网友 发布时间:2022-04-21 19:41

我来回答

1个回答

热心网友 时间:2023-06-26 11:11

         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优化。

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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 如何解决fpga high fanout问题 冰粉是由什么材料做成?儿童天天吃冰粉对身体有什... 玉米淀粉可以加冰粉粉做凉粉吗,会Q弹吗,易断吗? 怎么注销锁定的iCloud的账号 制作果冻,用什么凝固剂口感最好,制作白凉粉呢 手工冰粉为什么容易抖坏 白凉粉里可不可以放西瓜白糖蜂蜜? 怎样做凉白粉好吃点 在iphone4s上登录了icloud邮箱,怎么注销啊 急急急急 好吃的白凉粉怎么做好吃又简单,做法图解 icloud怎么注销 如何注销iCloud邮箱? 各国元旦习俗嫩 元旦有没有吃汤圆的习俗 元旦吃饺子是12月31号晚上还是1月1号晚上 北方vs南方,元旦这一天吃什么? 元旦这一天吃饺子好不好? 进入大学之后的主要想法和打算 进入大学英语怎么说 刚刚进入大学,需要注意什么呢? FPGA中时钟问题,EP2C20F256C6引脚CLK和DPCLK的区别 DC综合时出现这种违列该怎么解决 英语翻译汉语 74HC164N的资料 我想请教CD74HC154EN芯片功能介绍 帮忙把英文文献翻译成中文的 谢谢了 给100分 在线等! 为什么vivado synthesis design一直跑不出来 QQ漂流瓶怎么玩? 手机qq漂流瓶怎么玩,具体步骤, QQ漂流瓶什么意思 QQ漂流瓶在哪里可以直接漂啊?? qq里面的漂流瓶在什么地方 QQ漂流瓶在哪 iPhoneXr摔碎了 里面照片不知道有没有iCloud备份 ... 我的苹果XR资料全部导入另外一台苹果12上去了XR上... 大枪小说txt全集免费下载 给领导请假用什么理由? 想请一周的假,什么理由比较合适? 员工让老板无法拒绝的20个请假理由? 大学请假什么理由最好啊?