ou009 发表于 2023-11-9 16:19:59

如何指定每次调用VIA时的类型和个数 - 附Skill脚本

我们可以使用快捷键 “O” 调用VIA通孔,随后弹出Create Via选项卡:

其中 Rows/Columns 的默认值一般设置的都是<1>

但是,在实际的版图绘制中,由于考虑到良率的问题,我们一般使用<2>个通孔。所以,在这里需手动将值改成<2>

修改过一次后,在当次Virtuoso程序中能够记住此设置,一旦退出程序重新启动,又将恢复<1>的默认值

所以,如何实现每次调用VIA,始终默认是两个通孔呢 ?

解决方案

解决的方法有几种,比如可以通过修改工艺文件中的viaDef定义部分,但工艺文件一般是没有权限修改的,也不建议修改它

下面介绍 在不更改工艺文件的情况下,如何把viaRows或viaColumns的默认值设置为两个

操作步骤:
1、打开 .cdsenv 文件,输入以下内容:
layout viaUseRowColDefault boolean nil
layout viaRows             int       2
layout viaColumns          int       1

2、或者打开 .cdsinit 文件,输入以下内容:
envSetVal("layout" "viaUseRowColDefault" 'boolean nil)
envSetVal("layout""viaRows"             'int      2)
envSetVal("layout""viaColumns"          'int   1)

问题描述(二)

除了通孔数值的需求外,有时还想将常用的通孔类型(“Via Definition”),设置成默认的:

这样也就不需要再频繁的点击下拉菜单进行选择,以方便于VIA的调用

解决方案

比如:指定"M2_M1"通孔为默认的VIA类型

操作步骤:
1、将下面的代码保存成 .il 文件,例如 ChangeViaDef.il
procedure(CCSRegProc(args)
hiRegTimer("CCSSetDefVia(args->window)" 5)
leHiCreateVia()
) ;proc
procedure(CCSSetDefVia(window)
let((cv cstG currCG techId validVias)
cancelEnterFun('le0ViaForm)
cv=geGetWindowCellView(window)
if(envGetVal("layout" "viaConstraintGroup")=="Same as Wire" then
currCG=envGetVal("layout" "wireConstraintGroup")
else
currCG=envGetVal("layout" "viaConstraintGroup")
) ;if
techId=techGetTechFile(cv)
cstG=cstFindConstraintGroupIn(techId currCG)
validVias=car(setof(x cstG~>objects x~>defName=="validVias"))~>value
if(member("M2_M1" validVias) then
le0ViaForm->viaSingleModeScrollView->viaDefName->value="M2_M1"
) ;if
) ;let
) ;procedure
deRegUserTriggers("maskLayout" nil nil 'CCSRegProc)
deRegUserTriggers("maskLayoutXL" nil nil 'CCSRegProc)
hiSetBindKey("Layout" "<Key>o" "CCSSetDefVia(hiGetCurrentWindow()) leHiCreateVia()")
(向右滑动查看完整代码 / 后台回复「VIA」直接获取代码文本)

2、将代码中第17、18行中的 “M2_M1”,替换成指定的通孔类型名称

3、打开 .cdsinit 文件,添加load命令以用来加载上面的文件:
load("/home/xxx/ChangeViaDef.il")
注:引号内的内容修改成 .il 文件所在的地址

完成以上步骤后,启动Virtuoso程序使用快捷键“O”或者菜单栏,就可以看到效果啦~

populaa 发表于 2023-12-30 14:20:44

谢谢分享

shuqilin 发表于 2024-3-8 17:17:14

厉害:victory:
页: [1]
查看完整版本: 如何指定每次调用VIA时的类型和个数 - 附Skill脚本