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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 2334|回复: 8

[求助] 【求助】cadence virtuoso ADE保存的状态波形一直被最新的状态覆盖

[复制链接]
发表于 2022-11-29 20:09:41 | 显示全部楼层 |阅读模式

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

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

×
在ADE L中保存了多个仿真后的state,之前一直是可以打开查看当时仿真的波形。但是,突然前两天开始,打开保存的sate,波形wave都没有了,但value还会在。我还特意画了个最简单的mos管电路,还是以上问题,而且会有这些warning:Problem while loading expression: E0 already exists.
Problem while loading expression: E1 already exists.
Problem while loading expression: E2 already exists.
Problem while loading expression: E3 already exists.
Problem while loading expression: E4 already exists.
Problem while loading expression: E5 already exists.
Problem while loading expression: E6 already exists.
Problem while loading expression: E7 already exists.
Problem while loading expression: E8 already exists.
Problem while loading expression: E9 already exists.
Problem while loading expression: E10 already exists.
Problem while loading expression: E11 already exists.
Problem while loading expression: E12 already exists.
但实际上,我根本没有保存expression,只在outputs里加了个mos管的端电流。

或者是:
*WARNING* Symbol(s) named " 'k' " used in the definition of dependent expression
                     Name: 'E0'
               Expression: 'average(clip(k 0.1 0.5))'
have not been defined as expressions. This may result in evaluation errors or ambiguous values for the dependent expression.
Either add these symbol(s) as expression(s) in the Outputs or remove them from the definition of the dependent expression.


如果再仿真,它就始终只保存最新一次仿真结果。仿佛是覆盖了之前保存的状态结果,但我明明是起了不同名字保存的。关键,以前都这样操作,都没问题。怎么现在就查看不了以前保存的状态结果了。搞了几天了,太郁闷了!感谢大神们!

 楼主| 发表于 2022-11-30 10:57:21 | 显示全部楼层
没人遇到过这种问题吗?
回复 支持 反对

使用道具 举报

发表于 2022-12-1 09:50:01 | 显示全部楼层
replace换成append
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-7 11:16:39 | 显示全部楼层


   
penghe666 发表于 2022-12-1 09:50
replace换成append


试过了,还是没有最新保存的转态数据与波形,只有最近一次的,提示:
Problem while loading expression: E0 already exists.
Problem while loading expression: E1 already exists.
Problem while loading expression: E2 already exists.
Problem while loading expression: E3 already exists.
Problem while loading expression: E4 already exists.
Problem while loading expression: E5 already exists.
Problem while loading expression: E6 already exists.
Problem while loading expression: E7 already exists.
Problem while loading expression: E8 already exists.
Problem while loading expression: E9 already exists.
Problem while loading expression: E10 already exists.
Problem while loading expression: E11 already exists.
Problem while loading expression: E12 already exists.

回复 支持 反对

使用道具 举报

发表于 2022-12-13 16:05:37 | 显示全部楼层


   
sarafeng 发表于 2022-12-7 11:16
试过了,还是没有最新保存的转态数据与波形,只有最近一次的,提示:
Problem while loading expression: ...


有点难搞,没遇到过,如果解决请指导一下
回复 支持 反对

使用道具 举报

发表于 2025-7-27 19:04:37 | 显示全部楼层
本帖最后由 yiyaowen 于 2025-7-27 19:11 编辑

关于这个 Warning 我有遇到过,其实是在你项目的 .cadence/dfII/viva 这个目录下,有个名为 calcExprSetup 的文件,VIVA 会用它来加载波形窗口里的 dependentExprsList,有时你误操作或者 virtuoso 出了 bug 的时候,会把你某个仿真 session 的一些变量配置缓存下来,最终导致打开其它 session 的时候加载了一些牛头不对马嘴的表达式。

可以先看下你工程目录下 .cadence/dfII/viva/calcExprSetup 这个文件的内容,比如可能是这样的:

artistResMgrCalcExprSetup("false" "plot" "E0" "getData("/I0/net0478" ?result 'tran)")
artistResMgrCalcExprSetup("false" "plot" "E1" "getData("/I0/net0473" ?result 'tran)")
artistResMgrCalcExprSetup("false" "plot" "E2" "getData("/I0/net0468" ?result 'tran)")
artistResMgrCalcExprSetup("false" "plot" "E3" "getData("/I0/net0464" ?result 'tran)")
artistResMgrCalcExprSetup("false" "plot" "E4" "getData("/I0/net0419" ?result 'tran)")
artistResMgrCalcExprSetup("false" "plot" "E5" "getData("/I0/net0416" ?result 'tran)")
artistResMgrCalcExprSetup("false" "plot" "E6" "getData("/I0/net0421" ?result 'tran)")
artistResMgrCalcExprSetup("false" "plot" "E7" "getData("/I0/net0471" ?result 'tran)")

然后再去你那个出问题的 session 的仿真目录下,找到 spectre_state1/waveformSetup_ws.state/waveformSetup_ws_1.grf 这个文件:

<IndexedProp Name="dependentExprsList">
    <SimpleProp Name="E0" Value='getData("/I0/net0478" ?result 'tran)' Type="stringValue" />
    <SimpleProp Name="E1" Value='getData("/I0/net0473" ?result 'tran)' Type="stringValue" />
    <SimpleProp Name="E2" Value='getData("/I0/net0468" ?result 'tran)' Type="stringValue" />
    <SimpleProp Name="E3" Value='getData("/I0/net0464" ?result 'tran)' Type="stringValue" />
    <SimpleProp Name="E4" Value='getData("/I0/net0419" ?result 'tran)' Type="stringValue" />
    <SimpleProp Name="E5" Value='getData("/I0/net0416" ?result 'tran)' Type="stringValue" />
    <SimpleProp Name="E6" Value='getData("/I0/net0421" ?result 'tran)' Type="stringValue" />
    <SimpleProp Name="E7" Value='getData("/I0/net0471" ?result 'tran)' Type="stringValue" />
</IndexedProp>

这个文件就是你在仿真时点击 save session 并勾选 Wavefrom Setup 后保存的波形配置文件,每次启动 session 时会从这个节点的依赖表达式列表加载变量;至于为什么这些毫不相关的表达式会保存下来,开头说过可能是之前的误操作或者是 virtuoso 的 bug,导致某次仿真的时候把临时的配置给写到 .cadence 这个缓存下了。

解决办法很简单:首先彻底关闭 virtuoso,然后把 .cadence/dfII/viva/calcExprSetup 这个文件删了,最后去相关仿真的 waveformSetup_ws_1.grf 文件里把 dependentExprsList 这个节点删了(或者直接删除 waveformSetup_ws_1.grf 也行,看其它波形配置是否有保留需求),最后重启 virtuoso 就能恢复正常了。注意一定要先关掉 virtuoso,因为这些缓存数据已经被读到当前运行环境的内存里了,所以在 virtuoso 跑着的时候删掉这些文件,保存/退出的时候它又会把数据覆盖回去。


回复 支持 反对

使用道具 举报

发表于 2025-7-27 19:05:37 | 显示全部楼层
不过已经过去这么久了,可能已经帮不到你了
回复 支持 反对

使用道具 举报

发表于 2025-7-30 11:32:18 | 显示全部楼层


   
yiyaowen 发表于 2025-7-27 19:05
不过已经过去这么久了,可能已经帮不到你了


佬,可以顺便问一下在不同的工作窗口上跑仿真,总会被最新的窗口的仿真结果覆盖的问题吗?
回复 支持 反对

使用道具 举报

发表于 昨天 02:19 | 显示全部楼层


   
kkker 发表于 2025-7-30 11:32
佬,可以顺便问一下在不同的工作窗口上跑仿真,总会被最新的窗口的仿真结果覆盖的问题吗?
...


不同仿真 session 出来的结果应该是会在不同的波形窗口显示的吧,你这个是指一个 virtuoso 进程内所有仿真结果都只显示在一个波形窗口中吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-8-9 13:38 , Processed in 0.016335 second(s), 3 queries , Gzip On, Redis On.

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