接上。。。
CTS到Route的差异主要体现在signal的绕线和rc 抽取模型上。绕线之后相比于cts来说走线可能会出现detour的情况,以及SI的影响,因此首先从这两方面入手进行调整。在trial run阶段如果看到绕线之后的SI比较严重,就需要在cts阶段加上shield net来预防si问题,自然也要在place阶段做好margin。而这对detour的问题,就需要分析是否受到congestion的影响,local绕线资源是否紧张。另外也可以进行分层次绕线,将clock和critical path分别抓出来优先绕线,得到较好的timing。当然还有传统的uncertainty的放松。第二部分就是RC factor的影响,这个需要根据经验值来设定preroute和postroute的rc factor。
这是调整correlation的整体思考流程,针对细节问题可以具体分析灵活应对。比如控制max transition,fanout,开useful skew等等,以及具体分析相应的path,定位差异,再做调整。
另外,就是pr工具和signoff 工具之间的timing correlation了。首先二者要用相同的timing分析模型和timing check window,这样能保持二者计算方式的一致性。再者就是,抽取RC 文件比rc factor,让rc值尽可能一致。derate值保持一致,uncertainty依然是传统的方式,适当过约。
注:
uncertainty的设置方法
set_interactive_constraint_modes [all_constraint_modes -active]
set_clock_uncertainty 0.10 -setup [all_clocks]
经验值,在place阶段取周期的10%,然后在cts,postroute逐步放松至大约6%的周期,最后在到signoff的标准
RCfactor的抽取,以INNOVUS为例,使用generateRCFactor的cmd来实现preroute和postroute的调节因子值得抽取.
generateRCFactor -preroute true -postroute medium -reference externalSpef -spefMapFile *.spef.gz -outputFile updateRC.tcl
这里可以使用第三方工具生成的spef,比如StarRC工具,当然也可以使用Innovus自己生成的对应corner的spef,可以用rcOut -rc_corner -spef的命令生成。注意,preroute的rc参数可以适当比pstroute过约。