LVS_command_file介绍

在LVS command file有错误或者需要自行构造一个器件时,我们要对它做适当的修改和添加。本文档首先会以一个例子来说明LVS command file的结构,然后再举一个构造器件的例子。 一、

LVS command file的结构

我们以“st3400”工艺的LVS command file为例(红色为command file执行语句,语句总体上由上至下的循序进行说明,说明文字为黑色字体,有些部分只作节选,为说明问题某些部分并不完全按语句上下循序,而是为了直观,拿到了一起)

#DEFINE metal2_process //#DEFINE metal3_process

// CSMC 0.50um BCD ST3400

// CALIBRE(r) version 2006.4 LVS file

// ;;#################################################################### // ;; (@) CSMC CALIBRE LVS COMMAND FILE

// ; 0.5um 5V VGS / 25V VDS DPTM BCDMOS Process Design Rule(version #9E10) // ;; (@)# METAL LAYER PROCESS: THICK TOP METAL( DPDM )

// ;; NON-THICK TOP METAL( DPSM/DPDM/DPTM ) // ;; (@)# DATE: 2010/01/21 wul

// ;;#################################################################### 首先,如上边红色语句中“//”为注释符,意味着在它之后的语句将不被执行。 最开头的“#DEFINE metal2_process”、“#DEFINE metal3_process”表示定义了“metal2_process”和“metal3_process”两个名词。如果配合后边会出现的“#IFDEF----#ENDIF”语句则构成了一个option,即通过“注释”和“非注释”可以选择开启后边的“#IFDEF----#ENDIF”语句。很显然我们现在开启的的是“metal2_process”。对于“#IFDEF----#ENDIF”语句我们在后边会讲到。

在接下来一大段的被注释掉语句中,我们可以看到上华特意将这一command file所适用工艺、版本号等信息列了出来。

//Name Description Device Layer Operation // // -------- --------------------------------- -------------------------- ---- -- // // // // MOS Type: // // // // M(MN) 5v normal NMOS SN*TO*PC // // M(MP) 5v normal PMOS SP*TO*PC*TB // // M(BN) 5v isolation NMOS SN*TO*PC*BN // // LDD(HA) 40v/5v LDNMOSFET TO*GT*NM*NG*DP*PB // // RESISTOR Type // // // // R(RW) Nwell Resistor TB*RES_NW_mark // // R(RN) N+ Resistor SN*TO*RES_mark // 以上,上华将本command file中出现的器件罗列了出来(此处只节选了部分),同样这些都被注释掉了,只是作为备注信息。

LAYOUT PATH \

LAYOUT PRIMARY \LAYOUT SYSTEM GDS2

DRC RESULTS DATABASE \SOURCE PATH \SOURCE PRIMARY \SOURCE SYSTEM SPICE

EXCLUDE CELL fuse_m2 INTVCC_DMY OSC_DMY ea_DMY

PRECISION 1000 RESOLUTION 5

UNIT CAPACITANCE FF UNIT LENGTH M

TEXT DEPTH PRIMARY

以上定义了版图和电路提取后的路径及文件类型,同时定义了版图中绘制精度、最小格点及单位。

LVS FILTER UNUSED OPTION YC RE RG AB RC

PORT LAYER TEXT 1001 1006 1011 1050 1053 1056 LVS CHECK PORT NAMES YES LAYER empty 999

LAYER A1 1000

LAYER MAP 7 DATATYPE 0 1000

LAYER A1SLOT_slot 1002

LAYER MAP 136 DATATYPE 3 1002

LAYER A1_net 1003

LAYER MAP 7 DATATYPE 253 1003

LAYER A1_pin 1004

LAYER MAP 7 DATATYPE 251 1004

LAYER A2 1005

LAYER MAP 9 DATATYPE 0 1005

LAYER A2SLOT_slot 1007

LAYER MAP 137 DATATYPE 3 1007

LAYER A2_net 1008

LAYER MAP 9 DATATYPE 253 1008

LAYER A2_pin 1009

LAYER MAP 9 DATATYPE 251 1009

以上将绘制版图用到的所有mask层次、辅助层次及它们的数据类型、代号都罗列出来(此处节选)。这是最基本的版图层次信息,我们将以它们为基础,一步步构建出一个个器件。

// A1SLOT_slot_drc=A1SLOT_slot andnot DCTY_mark A1SLOT_slot_drc=NOT A1SLOT_slot DCTY_mark

// A2SLOT_slot_drc=A2SLOT_slot andnot DCTY_mark A2SLOT_slot_drc=NOT A2SLOT_slot DCTY_mark

// A3SLOT_slot_drc=A3SLOT_slot andnot DCTY_mark A3SLOT_slot_drc=NOT A3SLOT_slot DCTY_mark

// BA_drc=BA andnot DCTY_mark BA_drc=NOT BA DCTY_mark

// BN_drc=BN andnot DCTY_mark BN_drc=NOT BN DCTY_mark

// DP_drc=DP andnot DCTY_mark DP_drc=NOT DP DCTY_mark

// GT_drc=GT andnot DCTY_mark GT_drc=NOT GT DCTY_mark 以上的“DCTY_mark”表示不检查LVS的mark层,“NOT A B”的逻辑为“A与上B的非”,所以“*_drc”表示“*”与上“DCTY_mark”的非。

// bn_innerHole=innerHoles BN_drc bn_innerHole=HOLES BN_drc INNER

// nw_innerHole=innerHoles TB_drc nw_innerHole=HOLES TB_drc INNER

// this rule checks the completness of BN for full isolation

// wrong_bn=(BN_drc enclose DP_drc) enclose (bn_innerHole notInteract nw_innerHole)

L38129=ENCLOSE BN_drc DP_drc

L12582=NOT INTERACT bn_innerHole nw_innerHole wrong_bn=ENCLOSE L38129 L12582

// mnbn_rec=(pcngate andnot mn_rec) andnot wrong_bn L29776=NOT pcngate mn_rec mnbn_rec=NOT L29776 wrong_bn

以上语句是为了形成完全隔离,而要求埋层中间不能出现空洞,即将isub与psub隔离开。“mnbn_rec”为mnbn管的识别层,加上适当的尺寸命令就可以定义器件的L、

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4