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

单元库建库流程,你了解几种?

2020/10/25    来源:单元库特征化及建库技术    作者:峰zou      
关键字:单元库  EDA  
本文主要介绍单元库建库几个常用的flow。从大类上分,主要有三种常见的flow,分别是re-characterization,new characterization和add-on,其中re-characterization flow还可以细分多种小类。
       本文主要介绍单元库建库几个常用的flow。从大类上分,主要有三种常见的flow,分别是re-characterization,new characterization和add-on,其中re-characterization flow还可以细分多种小类。下面我们一起来看一下。

1 Re-characterization Flow

       先来看re-characterization flow。Rechar flow是经常用到的flow之一,比如我们手上有之前建好的lib,或者vendor提供了部分PVT的lib,但我们的实际项目需要更多PVT的lib;再比如我们对一套库进行了部分小的优化(优化了layout,优化cell的设计),但没有做功能性的改变。当我们需要保留原来lib的结构,仅仅需要更新lib里的table(如timing,power)数值,我们一般用到的就是rechar flow。

       Pure rechar flow
 
       从参考库(seed.lib)里抽取必要的信息,如function,slews,loads,timing arcs等,因此pure rechar flow需要用户给的input最少。
 
       Pure rechar flow需要的文件有:
 
       -  Seed.lib – 含function信息,以及slews/loads/timing arcs等信息
 
       -  Netlist(一般是带有寄生参数的后仿网表)和工艺文件(spice model)
 
       -  Configure.tcl文件 – 如果没有,在使用import命令导入seed.lib和netlist的同时,SiliconSmart可以自动产生基本的configure.tcl
 
       import -fast -liberty seed.lib -netlist_dir netlist_dir -ext ext cells
 
       Function recognition flow

       FR flow在seed.lib没有function的时候很有用。它通过读取cell的netlist自动识别cell的function,并且自动产生instance file(.inst)。
 
       FR flow需要的文件有:
 
       -  Seed.lib – 不包含function信息,但有slews/loads/timing arcs等信息
 
       -  Netlist(一般是带有寄生参数的后仿网表)和工艺文件(spice model)
 
        - Configure.tcl文件 – 如果没有,在使用import命令导入seed.lib和netlist的同时,SiliconSmart可以自动产生基本的configure.tcl
 
       举两个栗子:
 
       -  Function由FR识别,slews/loads/whens从seed.lib抽取
 
       import -recognize -liberty seed.lib -netlist_dir netlist_dir -ext ext
 
       注意,这里的-recognize不能省略,否则FR功能会被-liberty关闭。
 
-      Function由FR识别,slews/loads/whens由用户自定义
 
        import -recognize -liberty seed.lib -netlist_dir netlist_dir-ext ext -use_default_slews -use_default_loads -use_default_whens
 
        使用FR flow需要注意以下几点:
 
       -  Netlist – 必须是SPICE格式,Spectre网表目前不支持
 
       -  Spice model – 需通过add_opc_process命令定义在configure.tcl里
 
       -  Power rails – 除了在add_opc_supplies定义外,还需在power_meas_supplies/grounds里定义

       -  Clock pin – 在import时序逻辑单元时,注意要将clock pin列在-clocks和-inputs里,否则工具可能会认错

    import -recognize -netlist_dir netlist_dir -ext ext -clocks {CLK} -inputs {CLK D} -outputs {Q} 

       - Model names – 如果netlist里的mos管是subcircuit方式定义的,注意,nmos/pmos_model_names参数要定义上。同样的,diode用dio_model_names定义;电容用cap_model_names定义;电阻用res_model_names定义。
 
        Skeleton liberty-based flow

       这个flow适用于需要保留seed.lib的attributes,structure,headers,comments等,不使用seed.lib里的loads/slews/whens/arcs。用户可以自行定义autorange,numsteps_slew/load,smallest_slew/load,state_partitions等。
 
       Skeleton liberty-based flow需要的文件有:
 
        - Seed.lib – 只需包含你希望保留的attributes,structure,headers,comments等信息
 
        -  Netlist(一般是带有寄生参数的后仿网表)和工艺文件(spice model)
 
        -  Configure.tcl文件 – 如果没有,在使用import命令导入seed.lib和netlist的同时,SiliconSmart可以自动产生基本的configure.tcl
 
       import -fast -skeleton -liberty seed.lib -netlist_dir netlist_dir -ext ext cells

2 Add-on Flow

        Add-on flow的用法跟re-characterization flow比较类似,不同的是,add-on flow仅characterize我们需要增加的数据,保留已经存在的数据。常用-match来指定需要跑的仿真
 
        Add-on flow需要的文件有:
 
       -  Seed.lib – 含function信息,以及slews/loads/timing arcs等信息
 
       -  Netlist(一般是带有寄生参数的后仿网表)和工艺文件(spice model)
 
       -  Configure.tcl文件 – 如果没有,在使用import命令导入seed.lib和netlist的同时,SiliconSmart可以自动产生基本的configure.tcl
 
       常用add-on flow的几个场景:

       -  增加LVF tables

       -  增加CCS-Timing/CCS-Noise/CCS-Power tables

       -  增加EM tables
 
       create chp
       set_log_file chp/sis.log
       set_location chp
       import -fast -liberty seed.lib -netlist_dir ./ -ext .spf
       configure -timing -ccs_noise
       characterize -match (ccs_noise_*|miller_ccs_*) $cells
       model -ccs_noise -output with_ccsn $cells

3 New Characterization Flow

       这个flow可以理解成从无到有,如我们手头没有任何参考lib,仅有一套cell的网表(netlist),但是我们仍要建库。
 
       New char flow需要的文件有:
 
       -  Netlist(一般是带有寄生参数的后仿网表)和工艺文件(spice model)
 
       - Instance文件 – 手工定义cell的function,pin的信息,以及characterization的控制信息等
 
       - Configure.tcl文件 – 不能自动生成,但可以使用create -legacy从安装目录下copy一个最基本的configure.tcl后,根据具体需求手工设置相关setting
 
       create chp
       set_log_file chp/sis.log
       exec cp configure.tcl chp/config/configure.tcl
       set_location chp
       exec cp cell.inst chp/control/
       configure -timing -power $cells
       characterize $cells
       model -timing -power $cells
 
       常用的flow就是这几种,需要提醒的是,这些flow不是互斥的,在实际项目中,我们很少仅使用某一种flow,更多时候是综合使用多种flow来建库。
责任编辑:杨培
本文来源于互联网,e-works本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供,并已尽力标明作者与出处,如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐