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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6029|回复: 11

[求助] skill 函数嵌套函数

[复制链接]
发表于 2020-3-25 16:54:54 | 显示全部楼层 |阅读模式

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

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

x
我要实现一个功能,三个独立函数。在schematic中选中一个symbol,执行函数一,函数一返回值为此symbol的所有出PIN的list。
然后在layout界面,选中一个block,执行函数二,函数二返回值为block内部的所有pin list。
然后执行函数三,对两个list进行对比,然后进行xx操作。

现在我三个独立函数都可以正常运行,但是,怎么样才能将函数1和函数2的返回值传递到函数三呢?
举例来说:
procedur(func1()
let((X)
X="test"
);let
);proc
func1返回值是“test”

procedure(func3()
let((obj)
obj=func1()
);let
);proc
func3返回值是“test”  ,我就是想要这个能力,func3可以获取func1的返回值。
但是,当func1的返回值不是直接赋值的,而是经过obj=geGetSelSet() ,然后对obj进行一系列操作之后,得到的X="TEST"
那么这个返回值在单独执行func1时没问题,在执行func3时就会返回 :func1 就是只返回func1这个函数名。


求助大佬怎么解。我试过弄一个全局变量 XX=procedure(func1().........),然后把全局变量XX赋值给func3,还是返回:func1 而不是“TEST”
我有试过嵌套函数:
procedure(func3()
let((obj)
obj=procedure(func1()
let((obj X)
obj=geGetSelSet()
.....
.....
.....
X=.....
);let
);proc
);let
);proc
这样嵌套函数,没有语法错误,我先单独执行func1,让X变为“TEST”,然后在执行func3,func3的返回值还是func1  ,而不是“TEST”




发表于 2020-3-25 17:19:09 | 显示全部楼层
函数要用return返回你想要的值,然后才能传到其他函数。
 楼主| 发表于 2020-3-26 08:26:52 | 显示全部楼层


dummy_tony 发表于 2020-3-25 17:19
函数要用return返回你想要的值,然后才能传到其他函数。


let定义局部变量,返回值是let内最后一个参数。return是prog用的,prog定义局部变量,可以用return在任意位置返回
发表于 2020-4-24 15:37:12 | 显示全部楼层
THANKS
 楼主| 发表于 2020-4-24 15:56:39 | 显示全部楼层
这个脚本我写出来了,用了写入和读取文件的方法进行中间寄存。不过主要用于顶层top多条lane,pin name上浮时各个lane加不同的后缀,人工修改非常耗时,xl出来再移动到正确位置也非常耗时,此时正是这个脚本的用武之地。
但总体来说,底层用处不大。适用范围小。我应该会在我另一个帖子里贴上这个脚本,有需要的可以去下载
发表于 2020-5-1 22:25:56 | 显示全部楼层
求脚本
发表于 2020-5-6 11:40:03 | 显示全部楼层
同求脚本
 楼主| 发表于 2020-5-6 12:17:13 | 显示全部楼层
本帖最后由 chinarml 于 2020-5-6 12:19 编辑


我在脚本资料区有一个加精的帖子,里面是我分享的脚本。这个脚本很长,因为我经过调试的脚本都在公司的linux系统内,拿不出来。
能上传到这里的是我手打的,并没有经过测试。现在分享的脚本都是50行以内的。
有一些100行以上,甚至几百行的脚本,我都没手打,怕漏掉字母,或者大小写弄错导致脚本失效。

而且这个脚本很特殊,我是用来同步电路pin name和layout pin name的。
假如一个block底层的pin name和上层调用时不同,这个脚本会自动将底层的pin上浮,并且替换成新的name。

小模块pin少,收益不大。只是针对一个IP有很多条LANE的,一个LANE几百个pin,然后每个LANE的pin在上层调用时都增加了某个后缀,比如*_LANE1_*这种.

这个脚本,后续我再考虑一下是否手打吧
发表于 2020-5-6 14:24:01 | 显示全部楼层


chinarml 发表于 2020-5-6 12:17
我在脚本资料区有一个加精的帖子,里面是我分享的脚本。这个脚本很长,因为我经过调试的脚本都在公司的lin ...


非常感谢!
发表于 2020-5-22 13:59:09 | 显示全部楼层


chinarml 发表于 2020-5-6 12:17
我在脚本资料区有一个加精的帖子,里面是我分享的脚本。这个脚本很长,因为我经过调试的脚本都在公司的lin ...


多谢楼主!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-22 10:01 , Processed in 0.023946 second(s), 7 queries , Gzip On, Redis On.

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