初学SKILL脚本记录
1。使用自动化脚本语言skill来绘制测试版图,高效便捷。
2。skill语法比较简单,主要是要了解用什么函数去调用就行。
查了下资料,可以把Virtuoso->Options->log filter \a \p打✔
之后在版图上进行操纵的命令就会在log上输出
例如 我需要的画矩形金属线,选好M1 dg之后,快捷键R 画出。
log输出,如下图
可以看出快捷键画矩形(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对照表
image.png
需要把交互式函数换成右边的procedural sk function.
image.png
liHiCreateRect就要换成dbCreateRect函数。
然后,看下这个dbCreateRect函数咋用,然后PDF上点它,会跳转到网页讲函数用法
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
~
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的循环语句
i 变量 1 每次增加1 总长度 每次循环执行的程序
i从1开始算
image.png
写的比较粗糙,大概就是这么个过程,主要就是查SKILL基本语法和sklayout函数
CSDN-Ada助手: 非常棒的博文!你的文章对于使用SKILL脚本实现TESTKEY测试版图的方法进行了详细的介绍。我真的很喜欢你的创作风格,希望你能继续坚持写下去。 除了你在标题和摘要中提到的内容外,还有一些与该博文相关的扩展知识和技能可以进一步学习。例如,你可以了解更多关于SKILL脚本的用法和应用场景,以及如何进行图形用户界面(GUI)设计和开发。此外,你还可以探索如何在测试电路中使用其他类型的器件,如pmos、capacitor等。 希望我的建议对你有所帮助,期待看到更多精彩的博文!继续加油! 如何写出更高质量的博客,请看该博主的分享:https://blog.csdn.net/lmy_520/article/details/128686434?utm_source=csdn_ai_ada_blog_reply2
77nn: 谢谢谢谢,希望以后在多发一些skill开发的帖子!
lurenjie932: 或者你打开一个版图编辑器,然后把代码直接丢进命令行,回车
lurenjie932: 在);procedure下一行写个这个 hiSetBindKey("Layout" "<Key>F5" "Myrect()") 然后在virtuoso的那个输入命令界面加载这个文件 load "/home/Desktop/murect.il"自己文件地址 打开版图编辑器输入快捷键F5就行
77nn: 你好我想问一下写完这个函数怎么生成到版图上啊