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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6638|回复: 16

[求助] skill大神请进

[复制链接]
发表于 2018-6-25 09:39:17 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 我力可 于 2018-6-28 16:18 编辑

各位大神,谁能用skill帮小弟解决下面问题:


在layout中有很多的metal2小方块,选中Q一下,在connectivity中的Net Name一栏没有任何名字,现在我想通过skills语言将这些metal2小方块批量的在Net Name一栏填上相同的名字,请问哪位大神可以做到吗?
 楼主| 发表于 2018-6-25 09:51:40 | 显示全部楼层
回复 1# 我力可


    {4E017296-CE42-4ACD-863A-A03DB88B5C72}.jpg
发表于 2018-6-28 15:16:26 | 显示全部楼层
Sorry no Chinese input at the this computer.
Below is the thought you may give a try. It's based on reply from Andrew Beckett for giving net name for newly created path.

1. Get all the metal 2 rectangles you want to assigned the net name by "geGetSelSet"
2. Using "dbMakeNet" to create the net, where you assign the net name
3. Using "dbAddFigToNet" to add the newly created path to the net.

You can check the details and usage of these functions through Cadence manual. They should be all official APIs, thus you can find it via the "API Finder", launching it by "startFinder()" command in the CIW

Good luck and have fun
 楼主| 发表于 2018-6-28 16:18:55 | 显示全部楼层
自己给自己顶一个
发表于 2018-6-28 17:53:25 | 显示全部楼层
Sorry no Chinese input at this computer.

Somehow my reply is not presented previously. Type it again.
Just some thoughts that that you can try it out.
It's based on the reply from Andrew Beckett for adding net name to newly created path in layout.
Hope it can help you, and have fun.
You can use "startFinder" in the CIW to trigger the "API Finder" to get detailed explanation for the functions.

1. Using "geGetSelSet()" to get all the M2 metal rectangle you want to modify.
2. Using "dbMakeNet" to create the net,
3. Using "dbAddFigToNet" to add the selected M2 metal rectangle to the net.
 楼主| 发表于 2018-7-2 09:45:57 | 显示全部楼层
回复 5# fatcat1205


    非常感谢你的回复,这个问题已经得到了解决。详细可以看下面的帖子。

    http://bbs.eetop.cn/thread-764256-1-1.html
发表于 2018-7-2 10:19:40 | 显示全部楼层
非常感谢你的分享。
发表于 2018-7-4 14:28:34 | 显示全部楼层
回复 6# 我力可

我看了那边的解决方案,如果是针对dummy的操作应该是可以的。而且用这个办法,如果是检查所选金属的属性,里面net的赋值也是对的。

但存在一个隐患,就是可能有些callback函数被挑过了。
举例来说,假如mos管的最小线宽是90nm,你通过gui是不可能把mos管的宽设置到90nm之下的。
因为有callback函数去检查。一般来讲,你会得到一个warning message,然后后台自动填入最小线宽90nm。
但是你可以通过skill脚本mos管的宽设置到90nm以下,因为你可以绕过callback函数。

对于layout来讲,如果直接修改property,而不是通过特定的API,你有可能破坏layout XL的完整性。令其一些功能失效。

我稍微改动了下原来的程序,把赋值语句换成了对应的API。没有亲测过。希望没bug

procedure(SetNetNameForSelShapes(NetName)
let((NetId)
        NetId=dbCreateNet(geGetEditCellView() NetName)
        foreach(shape geGetSelSet()
                dbAddFigToNet(shape NetId)     ;using API instead directly assign the parameter value.

        );foreach
);let
);procedure



Description of dbAddFigToNet

Assigns the given figure object to a specified net object. If the figure is already associated with a different net, the figure will be detached from that net before being assigned to the given net object.

Example

dbAddFigToNet(figId netId)

When the above execution is successful, you can verify that the figure is added using

netId~>figs=>list(figs...)

Where figId will be a member of the returned list.



你可以参照上面的例子,看看你创建的net下面是不是有这些dummy金属
 楼主| 发表于 2018-7-4 15:17:43 | 显示全部楼层
回复 8# fatcat1205


    感谢大神回复,我已经亲测了你修改过的方法,里面有bug存在:
    bug:当我选中一个dummy layer的情况下,用此脚本命名为net1,然后再选中另外的dummy layer,也用此脚本命名为net1时会提示
            error。如下图所示:

{E80510FB-F924-4B07-B53E-083034386325}.jpg
发表于 2018-7-4 17:15:41 | 显示全部楼层
第一个成功了,第二个失败了是吧。
那是因为下面这行在第二次执行的时候,返回了nil值。
NetId=dbCreateNet(geGetEditCellView() NetName)
原因是net1已经存在了,所以新建失败。
你可以自己尝试修改一下,加一个判断,看看参数里面的net是不是已经存在了。如果存在就用它,如果没有就新建。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-22 11:20 , Processed in 0.024328 second(s), 8 queries , Gzip On, Redis On.

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