用quantus extraction从DEF抽spef,多corner
专栏:iLoveIC July 9, 2025, 4:14 p.m. 74 阅读
本文介绍用cadence quantus extraction从DEF抽spef的流程和方法,一次性可以抽取多个corner的spef。

本文介绍用cadence quantus extraction(老点的版本叫Cadence EXT)从DEF抽spef的流程和方法,一次性可以抽取多个corner的spef。

〇、需要提前准备的文件

  • def(从apr里导出)

  • tech lef、stdcell lef(fab提供)

  • QRC tech file(fab提供)

一、从innovus里导出最终的def。

defOut -floorplan -netlist -routing digital_top.def

二、为了编写脚本方便,新建一个文件夹test,把def、tech lef、stdcell lef、qrcTechFile拷贝或软链接到同一个目录下。假设test目录层次关系如下:

/home/user/test
    |- digital_top.def
    |- tech.lef
    |- stdcell.lef
    |- qrc_tech_file.defs (本文3.1介绍,手工编写)
    |- QRC
        |- rcmax
            |- qrcTechFile
        |- cmax
            |- qrcTechFile
        |- rcmin
            |- qrcTechFile
        |- cmin
            |- qrcTechFile
        |- typ
            |- qrcTechFile
        |- corner.defs (本文3.2介绍,手工编写)

三、编写抽取spef的脚本

3.1、定义qrc tech库

即用类似cds.lib的格式来定义qrctechfile所在路径,指定到rcmax、rcmin等所在目录,例如在工作目录test新建一个qrc_tech_file.defs,内容如下:

# define tech name
DEFINE QRC /home/user/test/QRC

DEFINE是关键词,QRC是工艺库名字,后面跟路径。

3.2、定义多corner配置文件

在3.1指定的qrc库路径QRC下,新建corner.defs文件,也是采用cds.lib的格式,来定义每个corner的qrcTechFile所在路径,具体内容如下,

# define corners
DEFINE rcmax /home/user/test/QRC/rcmax
DEFINE rcmin /home/user/test/QRC/rcmin
DEFINE cmax /home/user/test/QRC/cmax
DEFINE cmin /home/user/test/QRC/cmin
DEFINE typ /home/user/test/QRC/typ

注意:corner.defs文件名不要修改,quantus运行时会根据文件自动查找。

3.3、编写抽取spef的cmd文件qrc_cmd_multicorner.tcl

  • 首先,定义def、top、spef前缀、log等文件名。

  • 其次,定义qrc tech库,要抽取spef的corner和温度。

  • 再定义,lef与qrc tech层的对应关系。前一列是lef(innovus)层的名字,后一列是qrc tech file(ict文件)的层的名字。

  • input_db设置lef和def文件。

  • extractfilter_coupling_cap设置抽取spef的参数,其中电容阈值可以在innovus里利用setDesignMode -process 130来取得)。

  • global_nets设置电源和地线的名字

  • output_setupoutput_db设置spef的名字和细节。

  • log_file设置抽取spef的log文件名和warning、error的数量。

完整脚本qrc_cmd_multicorner.tcl如下:

set MYDEF digital_top.def
set top digital_top
set MYSPEF_PREFIX ${top} 
set MYLOG qrc.log

process_technology \
    -technology_library_file qrc_tech_file.defs \
    -technology_name QRC \
    -technology_corner rcmax cmax rcmin cmin typ \
    -temperature 125 125 -40 -40 25

distributed_processing -multi_cpu 16

# first column is the layer name in APR/lef
# second column is the layer name in ict/qrctechfile
extraction_setup \
    -technology_layer_map \
    PO_L71    PO \
    Cont_L92  CO \
    M1_L111   M1 \
    T1_L121   T1 \
    M2_L112   M2 \
    T2_L122   T2 \
    M3_L113   M3 \
    T3_L123   T3 \
    M4_L114   M4 \
    T4_L124   T4 \
    M5_L115   M5

graybox -type lef_obstruction

input_db \
    -type def \
    -lef_file_list {tech.lef stdcell.lef} \
    -design_file ${MYDEF}

extract \
    -selection all \
    -type rc_coupled

# note: the unit is fF
filter_coupling_cap \
    -cap_filtering_mode absolute_and_relative \
    -total_cap_threshold 0 \
    -coupling_cap_threshold_absolute 0.4 \
    -coupling_cap_threshold_relative 1

global_nets -nets "VCC VSS"

output_setup \
    -file_name ${MYSPEF_PREFIX} \
    -compressed true

output_db \
    -type spef \
    -subtype standard \
    -output_incomplete_nets true \
    -output_unrouted_nets true

log_file \
    -file_name ${MYLOG} \
    -dump_options true \
    -max_info_messages 10000 \
    -max_error_messages 10000 \
    -max_warning_messages 10000

四、运行cadence quantus软件

在terminal里运行quantus -cmd qrc_cmd_multicorner.tcl,在当前目录下即可生成多个corner的spef文件。

五、常见工艺节点的电容阈值的设置

节点totalrelativeabsolute
180~15050.033
130~110010.4
90010.2
<55010.1

 

感谢阅读,更多文章点击这里:【专栏:iLoveIC】
最新20篇 开设专栏