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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: whb610

[求助] 请问ocean仿真rcosc如何直接输出频率值

[复制链接]
 楼主| 发表于 2013-6-25 15:28:18 | 显示全部楼层
回复 10# cyl


   .。。。。。。。。。。。。   analysis(`tran ?stop "20u"  ?outputstart "5u" )
   temp( T )
   run()
   selectResult(`tran)
   freq = frequency(v("/vout" ?result "tran-tran"))
   plot( freq ?expr `( "freq" ) )

还是有问题,提示:wave1938 is not a waveform object that can be displayed and will be DELETED automatically,我在ADE界面下直接仿真也不会直接打印频率值,而是在ADE界面的outputs一栏中写入相应的freq值,请帮忙看一下怎么修改,谢谢
发表于 2013-6-25 15:54:52 | 显示全部楼层
回复 11# whb610


freq = frequency(v("/vout" ?result "tran-tran"))可以改成freq = frequency(VT("/vout"))
如果只跑一个瞬态,结果是ADE下面的一个数值;
如果跑参数扫描,结果是一幅图;
 楼主| 发表于 2013-6-25 16:33:10 | 显示全部楼层
本帖最后由 whb610 于 2013-6-25 16:36 编辑

回复 12# cyl


   改成freq =frequency(VT("/vout")),并设定只对mos参数扫描,共输出5个结果,仿真完成后依然没有频率值的输出,五次仿真每次完成后都提示:wave1938 is not a waveformobject that can be displayed and will be DELETED automatically rcosc.rar (900 Bytes, 下载次数: 15 )
发表于 2013-6-25 16:36:04 | 显示全部楼层
回复 13# whb610


    把你参数扫描的script贴上来看看;
 楼主| 发表于 2013-6-25 16:37:03 | 显示全部楼层
回复 14# cyl


   已传,13楼,谢谢
 楼主| 发表于 2013-6-25 16:39:05 | 显示全部楼层
本帖最后由 whb610 于 2013-6-25 16:40 编辑

回复 14# cyl


   抱歉,好像要钱,咋做不要钱?不是我不厚道,真的不知道咋整才不要钱
发表于 2013-6-25 16:41:38 | 显示全部楼层
回复 13# whb610
做成附件贴上来就是你的不对了……
 楼主| 发表于 2013-6-25 16:46:06 | 显示全部楼层
本帖最后由 whb610 于 2013-6-25 16:47 编辑

回复 17# cyl


   马上改


for( corner_ctrl 1 5
  if(corner_ctrl==1
      corner=
        '("/home/backend/whb/analog/project/CL804/embeddedflashrules/pdk/SPDK18PF_183350_CDS_v1.0.1/smic18pf_2P5M_2010_4_26/smic18pf/../models/spectre/pf018_v0p2_spe.scs" "ss"))
  if(corner_ctrl==2
      corner=
        '("/home/backend/whb/analog/project/CL804/embeddedflashrules/pdk/SPDK18PF_183350_CDS_v1.0.1/smic18pf_2P5M_2010_4_26/smic18pf/../models/spectre/pf018_v0p2_spe.scs" "tt"))
  if(corner_ctrl==3
      corner=
        '("/home/backend/whb/analog/project/CL804/embeddedflashrules/pdk/SPDK18PF_183350_CDS_v1.0.1/smic18pf_2P5M_2010_4_26/smic18pf/../models/spectre/pf018_v0p2_spe.scs" "ff"))
  if(corner_ctrl==4
      corner=
        '("/home/backend/whb/analog/project/CL804/embeddedflashrules/pdk/SPDK18PF_183350_CDS_v1.0.1/smic18pf_2P5M_2010_4_26/smic18pf/../models/spectre/pf018_v0p2_spe.scs" "fnsp"))
  if(corner_ctrl==5
      corner=
        '("/home/backend/whb/analog/project/CL804/embeddedflashrules/pdk/SPDK18PF_183350_CDS_v1.0.1/smic18pf_2P5M_2010_4_26/smic18pf/../models/spectre/pf018_v0p2_spe.scs" "snfp"))

   for( corner_res_ctrl 1 1
     if(corner_res_ctrl==1
         corner_res=
           '("/home/backend/whb/analog/project/CL804/embeddedflashrules/pdk/SPDK18PF_183350_CDS_v1.0.1/smic18pf_2P5M_2010_4_26/smic18pf/../models/spectre/pf018_v0p2_spe.scs" "res_ss"))
     if(corner_res_ctrl==2
         corner_res=
           '("/home/backend/whb/analog/project/CL804/embeddedflashrules/pdk/SPDK18PF_183350_CDS_v1.0.1/smic18pf_2P5M_2010_4_26/smic18pf/../models/spectre/pf018_v0p2_spe.scs" "res_tt"))
     if(corner_res_ctrl==3
         corner_res=
           '("/home/backend/whb/analog/project/CL804/embeddedflashrules/pdk/SPDK18PF_183350_CDS_v1.0.1/smic18pf_2P5M_2010_4_26/smic18pf/../models/spectre/pf018_v0p2_spe.scs" "res_ff"))

      for( corner_bjt_ctrl 1 1
        if(corner_bjt_ctrl==1
            corner_bjt=
              '("/home/backend/whb/analog/project/CL804/embeddedflashrules/pdk/SPDK18PF_183350_CDS_v1.0.1/smic18pf_2P5M_2010_4_26/smic18pf/../models/spectre/pf018_v0p2_spe.scs" "bjt_ss"))
        if(corner_bjt_ctrl==2
            corner_bjt=
              '("/home/backend/whb/analog/project/CL804/embeddedflashrules/pdk/SPDK18PF_183350_CDS_v1.0.1/smic18pf_2P5M_2010_4_26/smic18pf/../models/spectre/pf018_v0p2_spe.scs" "bjt_tt"))
        if(corner_bjt_ctrl==3
            corner_bjt=
              '("/home/backend/whb/analog/project/CL804/embeddedflashrules/pdk/SPDK18PF_183350_CDS_v1.0.1/smic18pf_2P5M_2010_4_26/smic18pf/../models/spectre/pf018_v0p2_spe.scs" "bjt_ff"))

          for(power_ctrl 1 1
            if(power_ctrl==1 vpower=2.7)
            if(power_ctrl==2 vpower=3.3)
            if(power_ctrl==3 vpower=3.6)

             for(T_ctrl 1 1
               if(T_ctrl==1 T=125)
               if(T_ctrl==2 T=27)
               if(T_ctrl==3 T=-40)

;save_path = /home/backend/whb/simulation/test/spectre/schematic/corner
ocnWaveformTool( 'wavescan )
simulator( 'spectre )
design(
"/home/backend/whb/simulation/test/spectre/schematic/netlist/netlist" )
resultsDir( "/home/backend/whb/simulation/test/spectre/schematic/corner" )
modelFile(
corner
corner_res
corner_bjt
)
;analysis('tran ?stop "100n" ?start "0"  )
analysis('tran ?stop "20u"  ?outputstart "5u"  )
;analysis('ac ?start "1m"  ?stop "100M"  )
;analysis('dc ?param "temp"  ?start "-40"  ?stop "125" ?lin "2000"  )
desVar(
"vpower" vpower )
save( 'i "/I20/M17/D" "/I20/M51/D" )
temp( T )
run()

;selectResult( 'ac )
;plot(getData("/net097") )
;net097phasemargin = phaseMargin(v("/net097" ?result "ac-ac"))
;plot( net097phasemargin ?expr '( "net097phasemargin" ) )

;selectResult( 'dc )

selectResult( 'tran )
;VOUTfreq = frequency(v("/VOUT" ?result "tran-tran"))
VOUTfreq = frequency(VT("/VOUT"))
;plot(getData("/VOUT") ?expr list("frequency"))
plot(getData("/VOUT"))
;plot( getData("/I20/net0238")
plot( VOUTfreq ?expr '( "VOUTfreq" ) )
;plot(getData("/I20/M17/D") getData("/I20/M51/D") )

)
)
)
)
)
 楼主| 发表于 2013-6-25 16:54:51 | 显示全部楼层
回复 17# cyl


   格式不是很好,看起来费劲,你全选拷贝到写字板里,就很方便了
发表于 2013-6-25 17:49:28 | 显示全部楼层
回复 18# whb610


    我觉得是这样哈:你用了for循环,每次循环开始时都会把上次循环的结果删掉,所以结果从来都只是一个点,而不是一个阵列,无法plot;
你可以这样改改:在脚本的第一行打开一个port:
fp0=outfile("~/freq.txt")

把原来的plot语句换成fprintf语句:
fprintf(fp0 " %.3f\n“ freq)

你试试吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-17 03:32 , Processed in 0.023159 second(s), 8 queries , Gzip On, Redis On.

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