fansonzou的个人空间 https://blog.eetop.cn/565339 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

单元库质量验证方法之compare library

已有 2079 次阅读| 2020-4-18 21:20 |系统分类:芯片设计

曾经看过一个帖子,有人问K库的痛点在哪里?部分回帖提到了lib的验证,怎么验证我们做出来的库。lib验证是单元库建库不可缺少的一环,关系到整个单元库的质量。

SiliconSmart提供了一套完善的单元库验证流程,主要包括三块内容:compare_library比较两套lib文件的差异;qualify_library验证lib文件的质量;hdl(verilog)验证。


这篇推文着重介绍compare_library


既然compare_library是单元库质量验证中的一个必要环节,那么什么时候需要用到?Comparelibraryre-characterization中应用最为广泛,用来验证我们re-char出来的libreferencelib相比,结构是否一致,有无attribute丢失,table数值是否有较大的差异等等。


Compare library的基本命令很简单:


compare_library -reference reference.lib -test test.lib


以上命令会比较test.libreference.lib的结构是否匹配,包括groupattributeswhens,但是这个命令不会比较table的数值。比较的结果会存放在当前工作目录下的compare_library文件夹下。可以使用-output_dir这个option来指定不同的存放路径。


那么如果需要比较table的数值呢?其实很简单,加一个-valueoption就可以:


compare_library -reference reference.lib -test test.lib -value


运行结束后会得到一个summary,你可以从summary.log里查看相应的结果。


 

如果你想看更加细节的数据,比如所有points的比较结果,这些数据放在.csv文件里,你可以进去查看。每一种meas类型都有对应的.csv文件,如delayslewenergysetuphold等等。默认只列出比较结果为fAIl的点,如果需要所有点的比较结果,可以使用-all_points这个option。建议加上-tsv这个option,能使数据排列更整齐易读。


下面介绍几个常见并且非常好用的compare_libraryoption


-compare_values


指定哪些group的数值需要做比较,比如我们要比较ccstlvf这两个group的数值在reference.libtest.lib之间的差异,命令就可以这么下:


compare_library -reference reference.lib -test test.lib-value -compare_value {ccst lvf}


-compare_template_name


默认是不比较templates的,可以通过打开-compare_template_name来比较templates


compare_library -reference reference.lib -test test.lib-value -compare_values (ccst) -compare_template_name


 
-ignore

通过使用这个option来人为控制某些不需要比较的group或者attribute,如不需要比较“timing group和“driver”相关的attribute


compare_library -reference reference.lib -test test.lib-value -cells {INVX2} -ignore{timing *driver*}


-interpolation


reference.libtest.libindex里的数值不一样的时候,我们还能不能做compare了?使用-interpolation就可以。-interpolation有三个数值,分别是0120代表不做内插计算,只有在tablesize完全一致,并且数值的偏差小于某一个确定的tolerance的情况下才会做比较;1代表只做线性内插计算,不做外插计算;2代表即会做内插计算又会做外插计算。


compare_library -reference reference.lib -test test.lib-value -interpolation 1


SiS里有一个参数compare_library_interpolation的作用跟这个option类似,一旦用了-interpolation这个option,那么compare_library_interpolation会自动失效。


这里还要注意一点,-interpolation只针对1D2Dtable3Dtable不支持,也就是说如果要做3Dtable的数值比较,两个libindex必须要相同。


-user_defined


SiS默认是不比较user_defined相关的attribute的,必须打开-user_definedoption才能比较。这里需要提醒大家的是,ECSM相关的group目前是被当作user_defined的,因此如果要比较ECSM相关的内容,不要忘了打开-user_defined这个option


compare_library -reference reference.lib -test test.lib -user_defined


-ee_cells


如果两个lib里有几个cell类似,但是名字不同,能比较吗?可以,用-ee_cells列出需要配对比较的cell的名字:


compare_library -reference reference.lib -test test.lib -ee_cells {AND2X1 ANDP2X1}


-tolerance_guide


这个option也比较好用,它能告诉你设置不同的tolerance,比较出来的结果的不同通过率(pass-rates),让用户对趋势有个大致的了解。

compare_library -reference reference.lib -test test.lib -value-tolerance_guide


 


支持GUI


Compare_library是支持GUI的,关于GUI的用法,后面打算专门推文详细介绍。



如何设置tolerance


首先,可以使用-tolerance开关来查看当前默认的tolerance


compare_library -tolerance


如果需要调整当前的tolerance,可以使用set_config_opt命令,如:


set_config_opt delay_absolute_tolerance 0.0005 (单位是lib里对应的单位)
set_config_opt delay_relative_tolerance 0.02 2%


如果两个lib的误差超过了设定的tolerance,那么就会报出来。



几点建议


-  对于第一次使用compare_library,建议分成两步来做,先比较结构,再比较数值。在比较数值之前,将结构等基础问题解决好,然后再做数值上的比较。


-  对于数值的比较,建议设置合理的tolerance,不要太紧也不能太松。比如constraints,如果设置1pstolerance,显然就太紧了,因为constraint很难有这么高的匹配度。但是对于delay/slew,设置1ns,显然又太松了,因为delay/slew的量测很简单直接,一般设置1~5ps比较合理。


-  要注意tolerance的单位,tolerance的单位是跟着lib走的,在设置tolerance之前必须弄清楚你的lib的单位,这点很重要。


-  要注意,CCSECSMLVF默认是不比较的,怎么让工具比较,上面已经提到了。


最后,祝小伙伴们使用愉快!
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
欢迎关注公众号【单元库特征化及建库技术】,ID:libchar



点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 27

    粉丝
  • 3

    好友
  • 0

    获赞
  • 5

    评论
  • 900

    访问数
关闭

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


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

GMT+8, 2024-12-22 18:06 , Processed in 0.015263 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部