"); //-->
熟悉netlist 文件
例:
*******MUX2 NETLIST ********
*.BIPOLAR
*.RESI=1K
.INCLUDE ./inv.cir
.PARAM
.GLOBAL VSS:G VDD:P
***************************
.SUBCKT MUX2 OUT SIGN OP1 OP2 WP=1u WL=1u
+LP=0.5u LN=0.5u
MI01 OP2 NET01 VDD VDD P W=WP L=LP
MI02 OP2 SIGN VDD VSS N W=WN L=LN
MI03 OP2 SIGN OUT VDD P W=WP L=LP
MI04 OP2 NET01 OUT VSS N W=WN L=LN
MI05 OP1 NET01 OUTB VDD P W=WP L=LP
MI06 OP1 SIGN OUTB VSS N W=WN L=LN
MI07 OP1 SIGN VDD VDD P W=WP L=LP
MI08 OP1 NET01 VDD VSS N W=WN L=LN
XI09 NET01 SIGN INV1
XI10 OUTB OUT INV1
.ENDS
************************
*********INV1 NETLIST*********
.SUBCKT INV1 OP IP
MI001 OP IP VDD VDD P W=1u L=0.5u
MI002 OP IP VSS VSS N W=1u L=0.5u
.ENDS
************************
上例中,第一行*******MUX2 NETLIST ******** 注释行,说明作用;
*.BIPOLAR 用来对比analog elements,(resistor,diodes,capcitors)。使用该命令,但不又希望忽略这些器件分别使用 ,*.RESI、*.DIODE、*.CAPA;例中*.RESI=1K 表明忽略电阻阻值小于1K的电阻。即电阻两端相连到一起;
注:以*. 开头的命令为以CDL 命令,是属于SPICE的扩展命令,语法较为宽泛,如命名时可以用数字,也可以使用字符。如果想注释该命令,在开头使用用反斜杠(\),注释一般语句使用美元符号($)。
.INCLUDE $path/filename 表明使用其他的NETLIST
.PARAM 用来传递参数值,即使不在global中说明,在HSPICE中也会被强迫使用;
.GLOBAL VSS:G VDD:P 用来定义global node,如power,ground clocks或者其他不会出现到子电路的I/O节点。可以利用*.EQUIV来取一个别名。
*.GLOBAL 1:P 0:G 99:G 2:P
*.EQUIV VSS1=0 ,VDD1=1, VSS2=99, VDD2=2
.SUBCKT SubName OUT IN1 IN2 …
…
.ENDS SubName
用来表明为一个子电路,长度过长用加号(+)衔接。句首字符表明该行的类型:
M(MOSFETS),X(SUBCIRCUIT),Q(BJTS),C(CAP),R(RES),D(DIODES),J(JFETS)
格式如下:(D:drain,G:gate,S:source,B:bulk,T:type,V:value,
O:export,I:Import,INS:instance,C:collector,BS:base,E,emitter
PO:positive,NG:negative)
Mxxx D G S B T [V]
Xxxx O I1 I2…In INS [V]
Qxxx C BS E [B] T [$EA=V]
Cxxx PO NG T V
Rxxx net1 net2 V
Dxxx PO NG T
Jxxx D G S T [V]
使用LOGLVS将NETLIST编译为.s 文件,附带生成的文件有:6SCHMAP.MAP,CROSREF.LIS,IMAGE.LIS,JOURNAL.LGS,LOGINFO.TXT,PRINT.OUT,EXPNAM.TRF
用Dracula进行检测时,需要注意的一些文件:
.log 运行记录 .mlg 系统错误信息
.sum DRC报告 .lvs LVS报告
.msm 警告信息 .err ERROR 记录
.erc ERC错误记录
.inp command file 读入记录
认识LVS REPORT
Dracula,LVSCHK option 请参阅本文附录。
*.lvs 开头表明运行的时间等相当记录
第二段会列出所读的TopCellName,如果到此停止,可能是datebase / topcellname 错误。
第三段列出运行前后DEVICES 减少的情况对比。
第四段列出Layout & Schematic 节点对,如有不匹配情况,应予以改正。
第五段列出节点匹配的详细情况,是report的主体。
第六段为匹配详细的列表。
实例操作(以上例MUX2为例):
1,单独切开out
** WARNING ** LAYOUT PAD : out 8 CONNECTED TO NOTHING
*************** DISCREPANCY 1 **********************************
----------------------------MATCHED DEVICE UN-MATCHED NODE---------
*DEV3 MOS P ---- MI03 : *DEV12 MOS P
: X=15.61 Y=9.86
sign, out, op2 sign, op2, ?7
*************** DISCREPANCY 2 **********************************
2,切断out 与传输门
************* DISCREPANCY 1 **********************************
--------------------------------MATCHED DEVICE UN-MATCHED NODE---------
*DEV3 MOS P ---- MI03 : *DEV12 MOS P
: X=15.61 Y=9.86
sign, out, op2 sign, op2, ?7
…
*************DISCREPANCY 5 *********************************
--- NODE out
---WITH UN-MATCHED DEVICES-------
*DEV3 MOS P ---- MI03 : ***** UN-MATCHED *****
sign, out, op2
*DEV4 MOS N ---- MI04 : ***** UN-MATCHED *****
net01, out, op2
OCCURRENCE NAME outb
DEV24 INV : DEV23 INV
: X=2.92 Y=5.51
outb, out outb, out
3,切断sign中一段
************** DISCREPANCY 5 *********************************
--- NODE sign
---WITH UN-MATCHED DEVICES-------
DEV2 MOS N ---- MI02 : DEV5 MOS N
: X=13.96 Y=5.51
sign, vdd, op2 sign, op2, vdd
*DEV7 MOS P ---- MI07 : ***** UN-MATCHED *****
sign, vdd, op1
DEV3 MOS P ---- MI03 : DEV12 MOS P
: X=15.61 Y=9.86
sign, out, op2 sign, op2, out
*DEV6 MOS N ---- MI06 : ***** UN-MATCHED *****
sign, outb, op1
OCCURRENCE NAME net01
DEV23 INV : DEV24 INV
: X=10.27 Y=5.51
net01, sign net01, sign
总结1:
以上实际操作中,可以看到,但pin floating时,会有floating的信息列出。
第二和第三中,显然,我们并没有去减少device,但对pin节点来说是缺少的,反过来讲,是这个节点还需要联接到别的地方,其个数即为不匹配的个数。
4,将out 与sign相互颠倒
*********** DISCREPANCY 9 *********************************
--- NODE out
---WITH UN-MATCHED DEVICES-------
***** UN-MATCHED ***** : *DEV9 MOS P
: X=6.52 Y=9.86
out, op1, vdd
?DEV3 MOS P ---- MI03 : ***** UN-MATCHED *****
sign, out, op2
?DEV4 MOS N ---- MI04 : ***** UN-MATCHED *****
net01, out, op2
***** UN-MATCHED ***** : *DEV2 MOS N
: X=4.87 Y=5.51
out, op1, ?5
OCCURRENCE NAME outb
*DEV24 INV : *DEV24 INV
: X=10.27 Y=5.51
?outb, out net01, out
***** UN-MATCHED ***** : ?DEV5 MOS N
: X=13.96 Y=5.51
out, op2, vdd
***** UN-MATCHED ***** : ?DEV12 MOS P
: X=15.61 Y=9.86
out, op2, sign
************** DISCREPANCY 10 *********************************
--- NODE sign
---WITH UN-MATCHED DEVICES-------
?DEV2 MOS N ---- MI02 : ***** UN-MATCHED *****
sign, vdd, op2
*DEV7 MOS P ---- MI07 : ***** UN-MATCHED *****
sign, vdd, op1
?DEV3 MOS P ---- MI03 : ***** UN-MATCHED *****
sign, out, op2
*DEV6 MOS N ---- MI06 : ***** UN-MATCHED *****
sign, ?outb, op1
OCCURRENCE NAME net01
*DEV23 INV : *DEV23 INV
: X=2.92 Y=5.51
net01, sign ?5, sign
***** UN-MATCHED ***** : ?DEV6 MOS N
: X=15.61 Y=5.51
net01, op2, sign
***** UN-MATCHED ***** : ?DEV12 MOS P
: X=15.61 Y=9.86
out, op2, sign
总结2:
从上面这步操作中,可以看到节点 out 或者sign左右不匹配的个数不同,表明节点out处(4-2=2)多接了二个,而节点sign处(2-4=-2)少接了二个。
注:以上实验,是以netlist正确为前提。
LVS report 中,MOS节点顺序schematic GSD ,layout GDS;SubCircuit OI
netlist中MOS节点顺序为DGS
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。