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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[原创] 求教 ocean脚本的问题

[复制链接]
发表于 2010-10-8 10:34:22 | 显示全部楼层 |阅读模式

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

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

x
本人在用ocean做工艺角的仿真,仿真后 发现 数据输出后只剩下  最后一个工艺角的数据 而不是想象中的100多个数据,找不出问题来,不知道毛病在哪里 ,牛人知道一下啊 下面是我的脚本 ,不知道哪里出错了
umc18_mosfet_cornerlist ='( "tt" "ss" "ff" "snfp" "fnsp" )
umc18_bjt_cornerlist ='( "bjt_typ" "bjt_max" "bjt_min")
umc18_mimcap_cornerlist ='( "mim_typ" "mim_max" "mim_min")
umc18_resistor_cornerlist ='( "res_typ" "res_max" "res_min")
umc18_diode = "diode"
foreach(umc18_mosfet_corner umc18_mosfet_cornerlist
        case( umc18_mosfet_corner
                ( "tt" umc18_mosfet = "tt")
                ( "ff" umc18_mosfet = "ff")
                ( "ss" umc18_mosfet = "ss")
                ( "fnsp" umc18_mosfet = "fnsp")
                ( "snfp" umc18_mosfet = "snfp")
            )
foreach(umc18_bjt_corner umc18_bjt_cornerlist
        case( umc18_bjt_corner
                ( "bjt_typ" umc18_bjt="bjt_typ")
                ( "bjt_max" umc18_bjt="bjt_max")
                ( "bjt_min" umc18_bjt="bjt_min")
        )
foreach(umc18_resistor_corner umc18_resistor_cornerlist
        case( umc18_resistor_corner
                ( "res_typ" umc18_resistor="res_typ")
                ( "res_max" umc18_resistor="res_max")
                ( "res_min" umc18_resistor="res_min")
        )
foreach(umc18_mimcap_corner umc18_mimcap_cornerlist
        case( umc18_mimcap_corner
                ( "mim_typ" umc18_mimcap="mimcaps_typ")
                ( "mim_max" umc18_mimcap="mimcaps_max")
                ( "mim_min" umc18_mimcap="mimcaps_min")
        )

sprintf( corner_file_tail,"_%s_%s_%s_%s_%s",umc18_mosfet,umc18_bjt,umc18_mimcap,umc18_resistor,umc18_diode )
corner_file = strcat( "/home/piaosg/corners/hjtc_corner",corner_file_tail )
foreach( tmp '(-27 30 80)
      
ocnWaveformTool( 'wavescan )
simulator( 'spectre )
design(  "/home/piaosg/simulation/test4_9_25/spectre/schematic/netlist/netlist")
resultsDir( "/home/piaosg/simulation/test4_9_25/spectre/schematic" )
piaosg_outputfile = outfile( "/home/piaosg/hjtc10/LNA_wk_1009/test4_9_25/simresults/corner.dat" "w")
S11_temp=10
NF_temp=10
S11=10
NF=10
modelFile( corner_file )
analysis('sp ?ports list("/PORT38")  ?start "200M"  ?stop "900M"  )
analysis('pnoise ?start "430M"  ?stop ""  ?maxsideband "20"  
  ?p "/net041"  ?n "/net042"  ?oprobe ""  ?iprobe "/PORT38"  
  ?refsideband "0"  )
analysis('dc ?saveOppoint t  )
analysis('pss ?fund "430M"  ?harms "20"  ?errpreset "moderate"  )
desVar(   "cgs" 400f )
desVar(   "cp" 677f )
desVar(   "l" 81.67n )
desVar(   "c" 4.44p )
desVar(   "frf" 430M )
desVar(   "prf" -10 )
desVar(   "vdc_supply" 1.8 )
envOption(
'firstRun  t
)
temp( tmp )
run()
S11_temp=ymin(db20(sp(1 1 ?result "sp")))
selectResult("pnoise")
NF_temp = ymin(getData("NF"))
S11=min(S11_temp S11)
NF=min(NF_temp NF)
fprintf( piaosg_outputfile,"%s_%s_%s_%s_%s",umc18_mosfet,umc18_bjt,umc18_mimcap,umc18_resistor,umc18_diode )
fprintf(piaosg_outputfile "%L "  tmp)
fprintf(piaosg_outputfile "%L "  S11)
fprintf(piaosg_outputfile  "%L "  NF)
fprintf(piaosg_outputfile "\n")
close(piaosg_outputfile)
)
S11\ dB20 = db(sp(1 1 ?result "sp"))
plot( S11\ dB20 ?expr '( "S11 dB20" ) )
noise\ figure = getData("NF" ?result "pnoise")
plot( noise\ figure ?expr '( "noise figure" ) )
发表于 2010-10-9 13:51:31 | 显示全部楼层
我想是不是数据输出的语法要包含在每次的循环中呢,嘿嘿,我也不知道是不是要这样
发表于 2010-10-9 17:48:17 | 显示全部楼层
2楼是对的,输出要包含在循环里。现在的语句每一次的结果都有print出来的,只是被下一个覆盖了,所以只剩最后一个case了。
 楼主| 发表于 2010-10-10 12:12:26 | 显示全部楼层
回复 3# jianjing526
那我在最下边加5个括号就额可以解决吗?
发表于 2010-10-10 15:46:48 | 显示全部楼层
resultsDir( "/home/piaosg/simulation/test4_9_25/spectre/schematic" )
所有的数据读放到这个文件夹下了,前面的仿真结果被后面的覆盖掉了
 楼主| 发表于 2010-10-10 16:14:32 | 显示全部楼层
回复 5# tanguaner


    那为什么还会有最后一个仿真结果存到了呢?
 楼主| 发表于 2010-10-10 16:22:42 | 显示全部楼层
回复 5# tanguaner


    那我把那行去掉吗?  去掉后  仿真结果存到哪里去了  , 还能计算仿真结果了么
 楼主| 发表于 2010-10-13 14:12:11 | 显示全部楼层
???????????????
发表于 2011-10-26 20:42:21 | 显示全部楼层
不直接写出来,要么就报错,也有可能能够run不过就是基于前面的环境了
也有可能是系统变量本来就有~~

最好是,explicit!
发表于 2011-10-26 21:12:02 | 显示全部楼层
2楼正解。每个run就要变一次resultsDir路径。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-17 20:51 , Processed in 0.023072 second(s), 7 queries , Gzip On, Redis On.

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