e-works数字化企业网  »  文章频道  »  产品创新数字化(PLM)  »  EDA

单元库质量验证方法之qualify_library

2020/10/25    来源:单元库特征化及建库技术    作者:峰zou      
关键字:单元库  质量验证  
这篇推文来介绍一下单元库质量验证方法之二——qualify_library。
       上一篇推文介绍了单元库质量验证方法之一compare_library(请见:单元库质量验证方法之compare library),在比较两个lib结构及数值的一致性方面非常有用。那么,如果我们手上有一个lib,我们能否检查这个lib的语法,结构,一致性,数据合理性,精度等等质量指标呢?这篇推文就来介绍一下单元库质量验证方法之二——qualify_library。

       Qualify_library能检查的项目包括:NLDM-CCST一致性检查,NLDM-CCSN一致性检查,voltage range检查,sensitivity检查,leakage检查,hazard检查,pg_pin检查,data range检查,minimum load index检查等等。其中前三项是必查项,后几项为选查项,由用户指定是否需要检查。
 
       先上qualify_library的语法:
 
       qualify_library [-cells list_of_strings] [-check list_of_strings] string
 
       [-cells list_of_strings]列出哪些cells需要检查;[-check list_of_strings]列出需要做的检查项,如aocv, data_range, hazard,leakage, load_index, lvf, pg_pin, sensitivity等等;string指定library的名字或者cell-level library的路径。
 
       qualify_library如何使用?下面列举一个基本的用法:
 
       set_location $charpoint
       set_config_opt qualification_lc_shell /tools/2020.03/bin/lc_shell(LC的启动命令)
       qualify_library test.lib
 
        这三句话就能让SiliconSmart运行qualify的功能,运行完之后会在当前的charpoint目录下自动产生qualification的文件夹。结果为.html文件,用户可以通过浏览器如firefox打开结果:
 
       firefox $charpoint/qualification/html/index.html

图1

       由于qualify_library是基于Library Compiler工具的检查,因此必须调用LC工具,最简单的调用方式就是直接指定LC的启动命令:
 
        set_config_opt qualification_lc_shell /tools/2020.03/bin/lc_shell(LC的启动命令)
 
        下面一起来分别了解qualify_library的各个检查项
 
        Library compilation检查

       顾名思义,这个检查是针对lib的语法、结构等的检查。SiliconSmart调用LC对lib进行编译,如果有warning或者error就会报出来。用户可以根据自己的需要,使用qualification_lc_suppress参数来waive掉部分已知的warning。
 
       set_config_opt qualification_lc_suppress {LBDB-605 LBDB-172}
 
       CCST&CCSN一致性检查

       CCST-NLDM和CCSN-NLDN一致性检查是qualify_library的默认检查项。它检查的是从CCST以及CCSN model里求得的slew和delay是否与NLDM一致。针对每一个cell,每一条arc,每一个state,每一组slew/load都会做检查,只有当slew和delay的误差在设定的tolerance之内才会被认为通过。设定误差容限的语句:
 
       set_config_opt qualification_tol {delay rel_tol abs_tol slew rel_tol abs_tol}
如:set_config_opt qualification_tol {delay 0.1 0.2 slew 0.3 0.4}

图2

    Voltage range检查

       Voltage range检查也是qualify_library的默认检查项。它检查的是CCSN model是否能够实现轨到轨的transition。使用了5%和95%两个数值作为轨到轨的阈值。  图3

     Cell sensitivity检查

        Cell sensitivity检查是可选检查项,检查cell的delay和slew对input波形尤其是波形尾部的敏感度,因为有时input波形的扭曲对cell的timing值的变化影响很大。在做这个检查的时候,会用两个input波形驱动同一个cell,一个是正常的轨到轨的transition,另一个是95%VDD的transition,然后比较这两个波形驱动下的delay或者slew,一旦超过设定的阈值,则报error。
 
       qualify_libarary -check sensitivity test.lib 图4

       Data range检查

       Data range检查也是可选检查项,检查lib里的数值是否有超出用户指定范围之外的值。
 
       set_config_opt qualification_data_range {delay 0.1 0.25 transition 0.1 0.25}
qualify_library -check data_range test.lib 图5
 
       Minimum load index检查

       这个检查也是可选检查,检查load index里的最小值是否比min_capacitance还要小,这样能避免下游工具使用外插的方法计算对应的value。
 
       qualify_library -check load_index test.lib

图6

    Leakage检查

       该项检查也是可选项,用来检查leakage_power里是否有0值。
 
       qualify_library -check leakage test.lib

 图7


       Hazard检查

       该项检查也是可选项,主要用来检查table中的0值(min_pulse_width除外),以及数值的单调性。
 
       qualify_library -check hazard test.lib 图8

    PG_pin一致性检查

       该项检查也是可选项,用来检查.lib中的pg_pin是否跟netlist中的pg_pin一致。
 
       qualify_library -check pg_pin test.lib

图9

       除了上面提到的检查项外,qualify_library还能检查UPF,AOCV,LVF,Scaling等等。这些检查项待我们介绍到相应部分的时候再介绍给大家,所以,敬请期待吧。
责任编辑:杨培
本文来源于互联网,e-works本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供,并已尽力标明作者与出处,如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐