初学SKILL脚本记录

1。使用自动化脚本语言skill来绘制测试版图,高效便捷。

2。skill语法比较简单,主要是要了解用什么函数去调用就行。
查了下资料,可以把Virtuoso->Options->log filter \a \p打✔
之后在版图上进行操纵的命令就会在log上输出
例如 我需要的画矩形金属线,选好M1 dg之后,快捷键R 画出。
log输出,如下图

初学SKILL脚本记录_第1张图片

可以看出快捷键画矩形(rectangle)的skill命令是:leHiCreateRect()
通过鼠标事间mouseAddPt()确定矩形的两个对角。
因为是脚本,所以鼠标命令替换成脚本,采用addPint(x:y)命令。
例如:
leHiCreateRect()
addPoint(0:0)
addPoint(20:20)
就画出了一个20*20的正方形块。

3.开始编写脚本语言
3.1skill脚本语言程序结构是
procedure(function()
...
);procedure
3.2尝试编写函数Rect
procedure(Rect()
leHiCreateRect()
addPoint(0:0)
addPoint(20:20)
);procedure
然后发现只制行了leHiCreateRect操作,没有制行
3.3解决问题
翻一下版图相关的skill手册 就是doc下的sklayoutref.pdf
ctrl+f 找addpoint函数,发现没有,那估计运行不了。
然后ctrl+f 找leHiCreateRect,看了下是交互式命令,Interactive SKILL Function.
然后一张交互式skill与制行式procedure skill function对照表

初学SKILL脚本记录_第2张图片

image.png


需要把交互式函数换成右边的procedural sk function.

image.png


liHiCreateRect就要换成dbCreateRect函数。
然后,看下这个dbCreateRect函数咋用,然后PDF上点它,会跳转到网页讲函数用法

初学SKILL脚本记录_第3张图片

image.png


三个输入
d_cellview 单元视图 cv 看例cv= deGetEditCellView()函数 大概就是获得版图吧编辑视图
txl_layerPurpose 名称,编号,大概就是制定画的layer
l_bBox 左下 右上 坐标点 list(x1:y1 x2:y2)
3.4 程序
procedure(Myrect()
dbCreateRect(
deGetCellView()
leGetEntryLayer() #return当前版图选择的层号
list('(0 0) '(20 20))
)
);procedure
也可以
procedure(Myrect()
dbCreateRect(
deGetCellView()
list("M2" "drawing" )
list('(0 0) '(20 20))
)
);procedure
~

初学SKILL脚本记录_第4张图片


4 写一下
4.1 方块阵列 宽度为L,这边设置为100nm
第一个起始位置为(x0,y0),方块左下坐标
因此,主要就是调整myrect的list()最表参数,通过循环来改变。
skill函数 直接变量赋值 x0=14,y0=15
alist=list(x0 y0) alist-> (14 15)
procedure(Myrect()
x0=14
y0=15
alist=list(x0 y0)
dbCreateRect(
deGetCellView()
list("M2" "drawing")
list('(0 0) alist)
)
);procedure
4.2 添加循环生成更多方块
假设方块和方块横向间距30,每行5个
纵向间距30 每行5个,形成5*5阵列
看下skill的循环语句

初学SKILL脚本记录_第5张图片


i 变量 1 每次增加1 总长度 每次循环执行的程序
i从1开始算

初学SKILL脚本记录_第6张图片

image.png

初学SKILL脚本记录_第7张图片


写的比较粗糙,大概就是这么个过程,主要就是查SKILL基本语法和sklayout函数

你可能感兴趣的:(开发语言)