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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 42790|回复: 71

[求助] 请教,如何用cadence skill语言做一个脚本把一个原理图中的一个参数设为1

[复制链接]
发表于 2014-10-12 19:17:07 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 azeee 于 2014-10-12 19:27 编辑

请教谁会用CADENCE SKILL,能否给一个实例让我做个参照,我想用它来把原理图中的所有FINGERS改成1.

在网上找了很多资料,SKILL资料是找到,不过CADENCE函数和它的接口找不到~

请教大家~~
发表于 2014-10-13 07:44:32 | 显示全部楼层
选中需要修改的器件,按一下q,查看属性,找到finger属性,修改一下,这个时候在你的ciw窗口中可以看到skill的操作,将这些代码复制到脚本中保存,然后写个循环,逐个的check,逐个的修改保存就可以了。
 楼主| 发表于 2014-10-13 08:38:45 | 显示全部楼层
回复 2# xuhongwei_li


    谢谢~~
我去研究研究,如果有例子就更好了
发表于 2014-10-13 09:58:29 | 显示全部楼层
本帖最后由 amodaman 于 2014-10-13 10:03 编辑

回复 1# azeee

我随便写了下, 自己没跑过, 你试试看. 应该没什么大问题.

Change_Param.il.doc (727 Bytes, 下载次数: 1296 )
 楼主| 发表于 2014-10-13 10:01:35 | 显示全部楼层
回复 4# amodaman


    真是非常感谢~~这太有帮助了
 楼主| 发表于 2014-10-14 08:38:07 | 显示全部楼层
本帖最后由 azeee 于 2014-10-14 08:55 编辑

回复 4# amodaman


    大虾真是对我帮助甚大,若是没有那例子,我估计要耗费5 6 倍的时间做这个。昨天把脚本调出来了,但是有几个函数还不是非常明白,不知大虾能否指点一二。

1、foreach这个函数循环是如何做的,比如您昨天写的INST INSTS是否可以这样理解,INST读取了INSTS以后,第二次循环的时候是INSTS直接就搜索第二个器件了吗,还是另外的机制,那样就有一个泛用性的问题。(感觉STARTFINDER里面数据讲不明= =。也可能是我不会查)
2、car(setof(x parms x~>name==fingers))这个函数中,两个X代表什么意思,SETOF是对比之后,若是T就返回NAME值,若是错误就返回NIL,是否是如此应用。而CAR我看STARTFINDER中说是返回第一个参数,这点我有些不明白。

大虾的原代码有几处小错误,第一处是FINGERS的宏定义(姑且就叫宏定义吧= =)拼写错误了。第二处是DBSET这个函数无法把FINGERS的VALUE设置为1,我最后直接=赋值结果就可以改了。第三处是FINGER_PARAM~>NAME用%L的格式才能PRINT,额也顺带问一下%L这个格式和%S有啥区别。第四个不含有FINGERS的器件返回的是NIL,无法直接赋值修改,所以我加了个IF的判定。

再次感谢~~~~!!
发表于 2014-10-14 08:57:31 | 显示全部楼层
本帖最后由 天牛不唱歌 于 2014-10-14 09:00 编辑

1. 应该INSTS是个数组,那INST相当于是个数组索引吧,第一个指到数组第一个值,第二次指到第二个值。
注:skill里的数组都是用 list表示的。
2.setof用于筛选过滤,具体不用x而用y代替是否可以我倒是没有试验过,parms位置一般是个list,而x就是对这个list的一个索引,x~>name==fingers这个是筛选条件,如果满足筛选条件就会返回这个值,到新的list里,如果不满足那就不会加入到新的list里。car用于返回一个list的一个值。
3.%L是list格式,%s是string格式。  而list和string格式的区别类似于C++中,数组和string的区别。
 楼主| 发表于 2014-10-14 09:01:14 | 显示全部楼层
回复 7# 天牛不唱歌


    谢谢~~讲的好清楚~基本懂了~~
发表于 2014-10-14 10:17:31 | 显示全部楼层
回复 8# azeee

兄弟要多读书啊! 呵呵,所有的信息都在手册里面. 这是我随手写的,花了不超过一分钟. 你说dbSet不工作? 在这里=也是相当于dbSet的,只不过我习惯一些老函数,比如=很多时候用setq 函数来写,写出来像lisp语言,因为SKILL最初的编码形式是照抄lisp人工智能语言的。
 楼主| 发表于 2014-10-14 10:31:41 | 显示全部楼层
回复 9# amodaman


    嗯嗯,大虾提点的是,我会去多看手册的,刚刚学SKILL,其他语言就学过C语言,所以有些地方领悟比较慢哈~~大虾说的手册不知道是不是那本SKILL LANGUAGE USER GUIDE。

那个DBSET,我是在它之前和之后加了PRINTF,结果没变,不知道是不是我哪里写错了,我猜有可能是数据格式的问题,我下午再去调一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-16 06:10 , Processed in 0.023566 second(s), 8 queries , Gzip On, MemCached On.

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