首页 > 微波/射频 > RFIC设计学习交流 > DX帮小弟看看这个ocean脚本错在哪里了,谢谢

DX帮小弟看看这个ocean脚本错在哪里了,谢谢

录入:edatop.com    阅读:
小弟刚开始学着用ocean脚本来做corner仿真,但是无法仿真下去,下面是小弟的脚本,
ocnWaveformTool( 'wavescan )
simulator( 'spectre )
design(  "/home/xjq28007/simulation/LC_VCO_V2_1920M_corners/spectre/schematic/netlist/netlist")
resultsDir( "/home/xjq28007/simulation/LC_VCO_V2_1920M_corners/spectre/schematic" )
silter=list(
        (
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_to_tt")
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_bjt_tt")
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_res_tt")
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_mim_cap_tt")
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_nvar_tt")
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18rf_vpcd_inductor_rev0_2.scs" "section=c18rf_vpcd_tt")
         )
         (
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_to_ff")
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_bjt_max")
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_res_max")
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_mim_cap_max")
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_nvar_max")
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18rf_vpcd_inductor_rev0_2.scs" "section=c18rf_vpcd_max")
         )
         (
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_to_ss")
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_bjt_min")
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_res_min")
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_mim_cap_min")
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_nvar_min")
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18rf_vpcd_inductor_rev0_2.scs" "section=c18rf_vpcd_min")
         ))
       i=0
      tmp=list(125 27 -40)
      foreach(silterra silter
             foreach(temp tmp
                         i=i+1
                        model_silter=list(silterra)
                       modelFile( model_silter)
                analysis('pss ?fund "1.5G"  ?harms "5"  ?errpreset "conservative"
                ?tstab "500n"  ?oscana t  ?p "/OUTPUTN"  ?n "/gnda"
                ?param "vctrl"  ?start "0"  ?stop "2.5"  ?sweepStep "0.2"
                ?restart ""  ?ic "dc"  ?method "gear2only"  ?tstabmethod "gear2only"
                ?ppv ""  )
         )
              desVar(     "vdd33" 3.3   )
              desVar(     "vctrl" 2.5   )
              desVar(     "vctrlN" "2.5-vctrl"  )
      envOption(
             'firstRun  t
             )
            run()
       harm\=1\ freq\;\ pss\ \(Hz\) = harmonic(xval(getData("/ACGND" ?result "pss_fd")) '1)
       plot( harm\=1\ freq\;\ pss\ \(Hz\) ?expr '( "harm=1 freq; pss (Hz)" ) )
              )
              )
提示的错误是:
*Error* eval: not a function - '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_to_tt")

先谢谢大家了!

跪求指点一二,小弟对编程语言是在是愚钝,第一次照猫画虎,谢谢大家了!

请大家帮忙看看吧,谢谢!

大家帮忙啊,跪谢!

list列的不对。你怎么用括号把他们分成三段呢?另外我猜“section=”应该是不需要的。

silter=list(
        (
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_to_tt")
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_bjt_tt")
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_res_tt")
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_mim_cap_tt")
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_nvar_tt")
            '("/home/xjq28007/project/work/cadence/models/spectre_corners/c18rf_vpcd_inductor_rev0_2.scs" "section=c18rf_vpcd_tt")
         )
把这里面的东西,用 include "/home/xjq28007/project/work/cadence/models/spectre_corners/c18_core18_io33_header_spectre.scs" "section=c18_to_tt"的形式存到ttt.scs文件里,其他两个也用这种形式存到fff.scs和sss.scs文件里,
然后: silter=list("/home/xjq28007/project/work/cadence/models/spectre_corners/ttt.scs", "/home/xjq28007/project/work/cadence/models/spectre_corners/fff.scs","/home/xjq28007/project/work/cadence/models/spectre_corners/sss.scs")
这样简洁直观。你的问题出在没有加include这个命令



    谢谢这位大哥了,我的问题解决了,就是因为没有include的原因,按照你的方法,我已成功解决,留个联系方式吧,在深圳或者来深圳的话请你吃饭,

有这等好事啊
以后不搞IC开班培训Ocean去了

小编在深圳么?

在啊,科技园这里上班,一家很小的公司
之前这个比较郁闷,
不知道该怎么办了,
6楼的给了思路,帮助还是很大的,

学习了

唉,我也是同样的问题,用的GF的库比较恶心,乱


麻烦大神帮我看一下程序哪地方错了,主要是list和modelFile的用法是否正确,谢谢!
;; * corner_np_ctrl begin
for(corner_np_ctrl 1 2 3
   if(corner_np_ctrl == 1 corner1="/home/zhangwei/ocean/model_nptt.scs")
   if(corner_np_ctrl == 2 corner1="/home/zhangwei/ocean/model_npss.scs")
   if(corner_np_ctrl == 3 corner1="/home/zhangwei/ocean/model_npff.scs")
;; * corner_rc_ctrl begin
for(corner_rc_ctrl 1 2 3
   if(corner_rc_ctrl == 1 corner2="/home/zhangwei/ocean/model_rctt.scs")
   if(corner_rc_ctrl == 2 corner2="/home/zhangwei/ocean/model_rcss.scs")
if(corner_rc_ctrl == 3 corner2="/home/zhangwei/ocean/model_rcff.scs")
;; * corner_bjt_ctrl begin
for(corner_bjt_ctrl 1 2 3
   if(corner_bjt_ctrl == 1 corner3="/home/zhangwei/ocean/model_bjttt.scs")
   if(corner_bjt_ctrl == 2 corner3="/home/zhangwei/ocean/model_bjtss.scs")
if(corner_bjt_ctrl == 3 corner3="/home/zhangwei/ocean/model_bjtff.scs")

;; * Vpower_ctrl begin
for(Vpower_ctrl 1 2
   if(Vpower_ctrl == 1 then Vpower=2.7 Vpower_path="v2.7")
   if(Vpower_ctrl == 2 then Vpower=3.6 Vpower_path="v3.6")
;; * T_ctrl begin
for(T_ctrl 1 2
   if(T_ctrl == 1 then T=-40 T_path="T-40")
   if(T_ctrl == 2 then T=85 T_path="T85")

corner=list(corner1,corner2,corner3)

printf("The current simulation: %s Vpower=%4.2f temp=%d \n" corner Vpower T)

save_path=strcat("/home/cds/simulation/sim_sdm/spectre/corner_tran" "_" substring(corner -8 4) "_" Vpower_path "_" T_path)

ocnWaveformTool( 'awd )
simulator( 'spectre )

;; change the netlist to delete the capacitance of mim cap

design( "/home/cds/simulation/sim_sdm/spectre/corner_tran/netlist/netlist")

resultsDir( save_path )

modelFile( corner)

    include这句加在哪里啊?

    include这句加在最开始么?

include不加肯定有问题的,只是不用循环也太那个了吧......

申明:网友回复良莠不齐,仅供参考。如需专业解答,请学习本站推出的微波射频专业培训课程

上一篇:看LAYOUT 電流問題
下一篇:大家好,自己在PC上搭建一个cadence IC设计的平台求助!

射频和天线工程师培训课程详情>>

  网站地图