在整个R2G的流程里边,寄生参数抽取(StarRC)是比较没有存在感的。大部分的时间,工程师们只是用这个工具来刷SPEF。并不会关注太多。这本身其实是一个好事情,反向证明了参数抽取工具的高度稳定性!
但是,再小的工具都有可以挖掘的地方,StarRC就是一个值得细品的小工具,说的不多,做的不少,通过一些特殊的调教,还可以获得额外的收获。话不多说,ICer GO!
简介
StarRC的寄生参数抽取可以作为签收标准,和APR相比通常有如下的优(完)势(备)性
- metal fill handle
- half-node scale factor
- light-base layer and lower metal support. like: poly, active, contact, M1 etc.
- resistance scaling by temperature
以上种种,常见的影响主要是来自于metal filll。metal fill是一种常见的处理芯片流片的密度(density)问题。与常规的APR操作不同,metal fill通常实在calibre(GDS 工具里边)完成的,虽然历史上也流行过在APR工具里边完成的流程。但是从处理效率和独立想上而言,metal fill 确实是calibre等GDS工具的强项。
由于metal fill是基于真实GDS的数据进行现场生成(APR通常用的是LEF/MW文件),各种因素混在一起,metal fill 通常会带来一些RC参数和绕线上的影响/
StarRC的open/short GUI 定位功能
在常规的starRC运行数据库上,通常会生成两个文件
- shorts_all.sum
- opens.sum
用户可以通过读取这两个文件,定位出APR数据库和metal fill等信息合并后产生的short/open问题,当然这两个report也会包含APR数据库原有的short//open信息。
基于上,starRC是可以评判出作为extraction对象数据库里边的short/open问题,利用这个功能,StarRC可以导出MW/NDM数据库,将short/open进行GUI查验,具体流程如下:
- 完成正常的starRC抽取
- 基于下列starRC command生成可以GUI debug的数据库
*** * for icc user
*** DEBUG_MILKYWAY_DATABASE: my_design
* for icc2 user
DEBUG_NDM_DATABASE: my_design
* this path need to match the normal starRC command setting
STAR_DIRECTORY: star
** * for all nets comamnd:
** NETS: *
NETS: net1 net2 net3
3. 运行命令,生成可以debug的MW/NDM数据库
> StarXtract -Display short_regions star_cmd_debug
4. 打开MW/NDM数据库进行查验
short GUI debug举例
在starRC的short_all.sum文件里边有如下的描述,
这里是一个net和blockage的short,此时使用如下命令打开debug的数据库
然会聚焦到指定位置,可以看到如下的信息
在short report里边呈现出的三个net这里都可以看到,这里标注的SYNPSYS_FLOAT是一种metal fill的标记方式,对照GDS,可以看到这个细节
(PS: 为了节省资源,StarRC只保留了临近的metalfill的信息)
open GUI debug 举例
对于open net,会根据实际逻辑连接关系,从现有的绕线资源上选取一段进行短连接(解open),同时会基于工艺信息,在短连接上应用一个小电阻,譬如这里的:resistance=0.01, width=100
描述中的RCG是指:resistively connected group
starRC通过使用一个默认(很小)的电阻,把输出的pin和open 的net重新连接在一起,这样对于STA 而言,并不会出现一个很大的开路延迟。所以,使用小电阻的虚拟连接显然比保持open更加合理。
一个简单的示意图如下所示:通过小电阻建立连接
spef RC信息比较
通常APR工具和StarRC都可以产生spef,但是StarRC的SPEF是可以用作签收使用的,鉴于前述,APR的spec通常不可以当作签收有。为了推进时序分析,需要让APR的RC信息和签收尽量一致。这里需要用户对APR和StarRC抽取出来的spef进行一个比对,然后基于结果对APR的RC scaling进行合理的配置,从而在APR里边得到逼近签收阶段的RC信息,对优化timing可以起到事半功倍的效果。
命令:StarXtract -compare_parasitics APR_SPEF SIGNOFF_SPEF
![](/qrcode.jpg)
StarRC会从三个维度进行比对:
- net total cap
- net coupling cap
- p2p resistance
在比较返回信息的顶部,会有三个维度的比较的平均值(mean)和方差(std)信息
方差是各个数据与平均数之差的平方的和的平均数,通常用于描述数据的离散度,方差结果越小,说明离散度越小,一致性越高
譬如下列的tcap的差异
上述信息中:
- 正值代表:APR比signoff 大
- 负值代表:APR比signoff 小
对于不同的APR工具,请使用下列命令进行配置
-
invs: 用户可以通过调整下面的
create_rc_corner
对APR的RC抽取进行调整,从而达到和signoff更为接近的值(PS:C家也有自己独到的ostrich,后面有机会的话,也可以分享给大家)
-
ICC/ICC2:用户可以通过命令
set_extraction_options
进行RC scaling配置
【敲黑板划重点】
StarRC可以读取比APR更多的GDS相关的信息,在做extraction的时候可以遵循原著,并且可以辅助R2G的设计流程和加快定位,是值得大家多多把玩的一个小工具
参考资料
Synopsys StarRC User Guide