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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 4478|回复: 2

[解决] 使用OCEAN的measure语句,如何返回一个none值?(附带OCEAN脚本)

[复制链接]
发表于 2011-6-13 13:03:28 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 fairyline 于 2011-6-15 15:50 编辑

我用OCEAN在做仿真的时候,遇到下面的问题
详细描述如下:

打算输出Au,Fu,PM,GM
但是,在有些情况下GM是测量不出来的。
这时候,仿真器报错:
*Error* Computation of gain margin failed for expression "VF("/VOUT_ac")". Phase does not cross -180 degrees
然后停止运行

我想实现,当GM测量不出来的时候,给GM赋值为“none”
请教版上的大人,如何实现上述想法?

附上我的OCEAN脚本:

simulator( 'spectre )
design("/sim_results/sim_EA_ac/spectre/schematic/netlist/netlist")
resultsDir("/sim_results/sim_EA_ac/spectre/schematic" "a" )
p=outfile("/a.txt" "w")
i=0
modelFile(
    '("/tsmc18mm/1P5M/tsmc18/../models/spectre/cmn018_assp_v1d1.scs" "tt")
)

CL2='(1u 0.47u 0.1u)
RL2='(13.3 1200 12000)
R30m2='(30m 0.0001)
foreach(CL CL2
foreach(RL RL2
foreach(R30m R30m2
i++
analysis('ac ?start "0.01"  ?stop "1G"  )
desVar(          "RL" RL        )
desVar(          "R30m" R30m        )
desVar(          "DM3" "dd2"        )
desVar(          "DM2" "dd2"        )
desVar(          "dd2" 1.2        )
desVar(          "dd" 3.3        )
desVar(          "CL" CL        )
desVar(          "DM0" "dd2"        )
desVar(          "DM1" 0        )
temp( 27 )
run()
Au = value(dB20(VF("/VOUT_ac")) 0.01 ?histoDisplay nil ?noOfHistoBins 1)
Fu = cross(dB20(VF("/VOUT_ac")) 0 1 "falling" nil nil)
PM = phaseMargin(VF("/VOUT_ac"))
GM = gainMargin(VF("/VOUT_ac"))
fprintf(p, "%5.1f\n%5.2f\n%5.2f\n%5.2f\n\n" Au Fu/1000 PM GM)
)
)
)
close(p)
 楼主| 发表于 2011-6-13 13:41:45 | 显示全部楼层
本帖最后由 fairyline 于 2011-6-13 13:43 编辑

呵呵

自己搞定了!

增加一个if语句

if(GM==nil then
fprintf(p, "%5.1f\n%5.2f\n%5.2f\nnone\n\n" Au Fu/1000 PM )
else
fprintf(p, "%5.1f\n%5.2f\n%5.2f\n%5.2f\n\n" Au Fu/1000 PM GM)
)

查了ocean的manual,说,如果measure语句计算失败的话,会附上nil的值。
所以通过上面的if语句,就可以轻松实现
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-2-2 09:22:00 | 显示全部楼层
以上属于自问自答型

呵呵

不错哦。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

X

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

GMT+8, 2025-9-14 07:30 , Processed in 0.011286 second(s), 3 queries , Gzip On, Redis On.

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