1、应用目的:在做Model时需要创建用于模型测试的TESTKEY测试版图
参考文章:https://www.docin.com/p-609136802.html
2、脚本创建
2.1、创建器件原理图
cv = dbOpenCellViewByType(“gpdk45test” "mostestkey" "schematic" "" "w")
#创建原理图图,gpdk45test是创建原理图所在的Library,mostestkey是原理图名字
nmos_cv = dbOpenCellViewByType("gpdk045" "nmos2v" "SYMBOL" "" 'r )
#在gpdk045库中,选择nmos2v器件,“symbol”表示选怎nmos2v的器件符号symbol,即/gpdk045/nmos2v/symbol
mos_instID=schCreateInst( cv mos_cv "M24" 0:10 "R0" )
#创建器件,cv当前原理图视窗,mos_cv选择的器件, “M24” 器件命名Name,x:y 坐标,“R0”旋转方式
执行上述命令后,成功生成器件。
3、批量创建
基于上述命令批量创建,修改相关语句
mos_instID=list()
#mos_instID创建为list数据类型
mos_number=20
#创建mos器件总数,
X=4
#定义行数为4
Y=mos_number/X
i=0
(for m 0 X
( for n 0 Y
sprintf(strNum "%d" i)
name=strcat( "M" strNum )
mos_instID=append1(mos_instID schCreateInst( cv mos_cv name m:n "R0" ) )
i++
)
)
4、总体代码
procedure(mostestkey()
cv = dbOpenCellViewByType(“gpdk45test” "mostestkey" "schematic" "" "w")
nmos_cv = dbOpenCellViewByType("gpdk045" "nmos2v" "SYMBOL" "" 'r )
mos_instID=list()
mos_number=20
X=4
Y=mos_number/X
i=0
(for m 0 (X-1)
( for n 0 (Y-1)
sprintf(strNum "%d" i)
name=strcat( "M" strNum )
mos_instID=append1(mos_instID schCreateInst( cv mos_cv name m:n "R0" ) )
i++
)
)
);procedure
hiSetBindKey("Layout" "<Key>F5" "mostestkey()")
创建如下图所示的20个MOS器件。