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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[求助] 怎么通过SKILL脚本 获取到CIW窗口中打印的内容呢……

[复制链接]
发表于 2021-7-14 17:27:42 | 显示全部楼层 |阅读模式

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

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

x
比如我在脚本中执行了schCheck(cv)这个函数 它的返回值是error warning的个数,error warning的内容打印在CIW窗口里 我现在想获取到打印出的错误做下一步处理,应该怎么获取?
发表于 2021-7-14 18:29:18 | 显示全部楼层
SKILL function: getWarn()
 楼主| 发表于 2021-7-14 19:17:07 | 显示全部楼层


amodaman 发表于 2021-7-14 18:29
SKILL function: getWarn()


试了下没行……是这样写的
schCheck(deGetEditCellView())
println(getWarn())
打印了nil
那还有执行schCheck后 同时出来的error有办法获取到吗

发表于 2021-7-14 23:56:52 | 显示全部楼层
errset(schCheck(deGetEditCellView()) t), error_string = errset.errset
println(error_string)
发表于 2021-7-15 09:37:20 | 显示全部楼层


amodaman 发表于 2021-7-14 23:56
errset(schCheck(deGetEditCellView()) t), error_string = errset.errset
println(error_string)


第一句执行后CIW有打印error和warning信息,但是errset.errset返回nil是为什么呢?
 楼主| 发表于 2021-7-15 09:58:44 | 显示全部楼层


amodaman 发表于 2021-7-14 23:56
errset(schCheck(deGetEditCellView()) t), error_string = errset.errset
println(error_string)


大佬……试了下……您说的errset(),getWarn(),这俩打印出来都是nil……
发表于 2021-7-15 10:41:25 | 显示全部楼层


蟹黄包包 发表于 2021-7-15 09:58
大佬……试了下……您说的errset(),getWarn(),这俩打印出来都是nil……


见截图,哪里有问题?不是err_str已经赋值了捕捉到的错误信息了吗?后面的程序可以随意使用这个变量。
捕获.PNG
 楼主| 发表于 2021-7-15 10:56:26 | 显示全部楼层


amodaman 发表于 2021-7-15 10:41
见截图,哪里有问题?不是err_str已经赋值了捕捉到的错误信息了吗?后面的程序可以随意使用这个变量。
...


大佬……不知道是不是错误的种类不一样,您打开一个schematic ,把这个图随意改错一点,删一条线什么的,执行schCheck(deGetEditCellView()),CIW窗口中报的是floating net错误……您这个报的错是因为那个参数t写错了位置,应该往外挪一层,这种错误是可以得到的,但我想得到的是schCheck(deGetEditCellView())报的哪个net floating了

发表于 2021-7-15 13:03:05 | 显示全部楼层


蟹黄包包 发表于 2021-7-15 10:56
大佬……不知道是不是错误的种类不一样,您打开一个schematic ,把这个图随意改错一点,删一条线什么的, ...


代码很简单,主要是要想通这个错误或者警告信息在Cadence里面通过什么管道发出就可以了。我试了几个不同的管道才蒙对了。

defmacro(captureWarnings (@rest body)
  `let(((tempPort outstring()))
    unwindProtect(
      {
        let(((poport tempPort))
          ,@body
          warn("")
          getWarn()
        )
      getOutstring(tempPort)
      }
      close(tempPort)
    )
  )
)
warn_str = captureWarnings( schCheck( deGetEditCellView() ) )
printf("My captured error:\n %L\n" warn_str)




捕获.PNG
 楼主| 发表于 2021-7-15 15:20:20 | 显示全部楼层


amodaman 发表于 2021-7-15 13:03
代码很简单,主要是要想通这个错误或者警告信息在Cadence里面通过什么管道发出就可以了。我试了几个不同 ...


厉害!膜拜ing……
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-12-19 01:13 , Processed in 0.023206 second(s), 7 queries , Gzip On, Redis On.

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