在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1921|回复: 3

[原创] skill脚本-metal connection 并扎via

[复制链接]
发表于 2023-9-17 21:21:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
[color=rgba(0, 0, 0, 0.9)]对于模拟版图工程师来说,接线是最基本的操作,接线多而且用时也比较长,那如何提高接线效率就是模拟版图工程师应该思考的问题。
[color=rgba(0, 0, 0, 0.9)]基于以上需求,现开发了一个metal connection并扎via的功能,开发这个功能有一般有两种方式:
[color=rgba(0, 0, 0, 0.9)]方式一:metal走线有属性,选择想要对接的metal,并让相同属性的metal对接并扎via。
[color=rgba(0, 0, 0, 0.9)]方式二:metal走线无属性,对选择的金属按照最佳顺接关系对接并扎via。
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]本文只介绍方式二开发的脚本功能,脚本相关功能阐述如下:
[color=rgba(0, 0, 0, 0.9)]1. 对path和path segment都可以操作,兼容性强。
[color=rgba(0, 0, 0, 0.9)]2. 会根据metal宽度决定扎via的排数和列数,最少会扎两颗via。
[color=rgba(0, 0, 0, 0.9)]3. 可对两条metal或者多条metal进行对接,不用考虑metal起止走线方向。
[color=rgba(0, 0, 0, 0.9)]4. 各种金属环境都可以操作(如下图),如下三种环境都可以实现metal的顺接。
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]脚本操作方式:执行脚本快捷键后,鼠标框选想要对接的其中一组metal的尾部,再继续框选要对接的另外一组metal的尾部。
如有以上需求的模拟版图工程师可以添加我微信,可提供加密脚本。
[color=rgba(0, 0, 0, 0.9)]
如想学skill脚本编程的工程师也可以加我微信(微信号:wxqz_2022)进行相关咨询。
发表于 2023-9-17 22:30:47 | 显示全部楼层
prog( ( OBJ1 OBJ2 obj1 obj2 Vline Hline HW VW HBP VBP xHBP yHBP xHEP yHEP xVBP yVBP xVEP yVEP
      Space1 Space2 Space3 Space4 LeftDown LeftUp RightUp RightDown TechFile CGroupId
      MyViaOptions Window Num1 Num2 BigNum SmallNum NEWVIAS)

OBJ1 = geGetSortedSelectByLine()
OBJ2 = geGetSortedSelectByLine()
Setlist = mapcar('list OBJ1 OBJ2)
F1=car(OBJ1) L1=cadr(OBJ1)
F2=car(OBJ2) L2=cadr(OBJ2)
foreach(Set Setlist
if(caar(Set)~>objType == "pathSeg"
then obj1 = car(leConvertShapeToPathSeg(leConvertShapeToPolygon( caar(Set))) )
     dbDeleteObject(caar(Set))
else obj1 = car(leConvertShapeToPathSeg(leConvertShapeToPolygon( caar(Set))) )
);
if(caadr(Set)~>objType == "pathSeg"
then obj2 = car(leConvertShapeToPathSeg(leConvertShapeToPolygon(caadr(Set))) )
     dbDeleteObject(caadr(Set))
else obj2 = car(leConvertShapeToPathSeg(leConvertShapeToPolygon(caadr(Set))) )
);if   ***IC617 SKILL BUG.Delete extra pathSeg ***
if(xCoord(obj1~>beginPt)==xCoord(obj1~>endPt) && yCoord(obj2~>beginPt)==yCoord(obj2~>endPt)
then  Vline = obj1 Hline = obj2);if
if(xCoord(obj2~>beginPt)==xCoord(obj2~>endPt) && yCoord(obj1~>beginPt)==yCoord(obj1~>endPt)
then  Vline = obj2 Hline = obj1);if

HW  = Hline~>width/2  VW  = Vline~>width/2
HBP = Hline~>beginPt  HEP = Hline~>endPt
VBP = Vline~>beginPt  VEP = Vline~>endPt

..................................................................
.................................................................
.................................................................

应该就是这个脚本吧

connet net by name 和 connect net by order
发表于 2024-7-16 11:17:04 | 显示全部楼层


FOREVER10 发表于 2023-9-17 22:30
prog( ( OBJ1 OBJ2 obj1 obj2 Vline Hline HW VW HBP VBP xHBP yHBP xHEP yHEP xVBP yVBP xVEP yVEP
       ...


大哥,有完全的脚本吗

发表于 2024-7-16 16:12:06 | 显示全部楼层
收藏一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-27 08:48 , Processed in 0.018969 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表