在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8903|回复: 8

[原创] 我做的一个EDI的布局方法,大家一起来讨论一下。

[复制链接]
发表于 2011-3-19 21:16:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
大家好,入手布局布线一段时间了。
由于工程对时序的要求非常高,按常规流程,目前也拿不出特别好的降时序的方法。
因此,我们内部人员,只能自己动手想办法进行细调。
在研究中,我发现了一种有效的在布局阶段降低时序的方法,希望对各位朋友有用。
当然,我走布局布线的时间还很短,难免这个方法,有很多问题,希望各位前辈,不吝赐教。

言归正传:
在大规模芯片整体布局时,我们一般是控制SRAM的放置。
往往关键路径,存在于部件间的连线。而一味调整部件间距离,又会造成局部绕线。反复调整,使迭代进度比较慢。
因此,对于部分部件,我们往往采取区域优化,在从顶层调用的方法。
以上,都是常规方法。下面,我主要说下,在局部部件优化时候的特殊策略。

这里,除了看timing报告,做优化,其实,我们后端,还可以找前端,问清楚流水栈和逻辑分布,通过调整寄存器来优化布局。
以一个运算部件为例:
1,在布局中,其共分为4栈,读取,执行,存储,写回。
其中,读取阶段,由于寄存器阵列,有大量的旁路,造成了其在逻辑级上较多,同时,大量的复杂连接,也容易形成绕线。
这里,我通过对逻辑分析。将名为control的20个寄存器,在中心进行阵列放置,使绕线延迟,变得均衡。
2,同时,由于从SRAM出来的一栈,SRAM和窗口寄存器本身的延迟较大,容易成为关键路径,而其下一站,逻辑级数和部件延时都较低。
因此,我对前400条关键路径的与SRAM相关的寄存器,用脚本进行了沿SRAM的阵列布局。
注:这里,我使用的脚本方法是,用根据起始坐标,用perl程序计算出坐标阵列。直接用placeInstance命令方式,而不是通过每次从SRAM的Pin脚坐标,增加一个偏移量,进行放置。这样做,可以大大加快脚本的运行速度。
还有一点,为什么只对前400条路径,进行操作,原因是,相关寄存器数量较多,我无法保证,拉动之后,SRAM附近的空间依然足够工具优化放置逻辑,所以只对前面的进行操作。经过几次试验,发现,对前400条操作,效果比较好。
3,根据逻辑关联,调整了2个控制软宏的空间位置,进行guide放置。
4,和前端商量,将setup最大的SRAM的片选使能端,设置为双周期路径。干掉了一大批关键路径。

通过以上3种方法的精调。基本将关键路径逼入了,其纯逻辑延迟占94%。跟传统流程下的关键路径延迟比较,成功的下调了34%的延时。
我觉得,这种方法,还是比较有效的,深入器件内部,进行寄存器调整,可以比工具,更有针对性和预见性的进行调整,效率和效果都还可以。

希望发上来和大家分享,大家有什么更好的建议,也请告诉我哦。
发表于 2011-3-19 23:43:34 | 显示全部楼层
多谢分享!!!
发表于 2011-3-20 13:59:10 | 显示全部楼层
Thank you for sharing
发表于 2011-3-20 21:42:35 | 显示全部楼层
谢谢西西同学的分享,回去我也试试,我目前也正遇到类似的问题!
发表于 2011-3-21 17:07:11 | 显示全部楼层
这个也太微操作了吧, 当然是有实力,

但有时候搞的太细比较累,

floorplan的原则当然是按照数据流来放,可以和前端的人商量下,

对于 timing问题, 可以用path group, 增加margin,增加综合margin的方法来修,
发表于 2011-3-21 19:10:44 | 显示全部楼层



言简意赅,该说的都说到了。
 楼主| 发表于 2011-3-21 20:18:16 | 显示全部楼层
5楼朋友谬赞了。我也才入行没多久,还是新人。
我是怕丢工作。。。。
时序压不下来,主管很火大。
而目前,公司里制定的流程条件下,自动布局,又达不到要求。
margin和grouppath也用了。
专门修绕线的脚本也上了。
关键路径上的器件也全换成LVT了。
这年头,大家都知道,找份工作不容易,我真怕失业。
所以才下了这个笨功夫。
PS:主管看了汇报后,只回了一句,那6%非逻辑延迟,可以压掉不?
各位前辈经验丰富,是否能帮我看看,我还可以用什么招呢?
发表于 2011-3-22 09:41:49 | 显示全部楼层
关键是看看 zero wireload model下有多少margin啊,

后端的能力是有限的,如果 前端留的margin不够,后端不一定能达到timing的,

我看你能用的都用了,再修比较难了,

6% 非逻辑延迟---- 就是flop的延迟是吧, flop换成lvt 也能提高timing,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-2-13 00:06 , Processed in 0.027382 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表