ocean PVT仿真
在每个循环中加一句打印当次循环的编号和PVT参数到一个文件,用文件和图对照着看,就知道编号所对应的PVT了。
plot(your_signal ?expr'("your_corner"))
比较习惯把波形里需要的信息用公式表示出来,然后打到CSV文件里
能不能具体点,把语句也给我。呵呵,我是菜鸟。
能不能具体点,我初学ocean。下面是我的语句,能不能告诉我加在哪?ocnWaveformTool( 'wavescan )
simulator( 'spectre )
design(
"/home/simulation/sim_vref/spectre/schematic/netlist/netlist")
resultsDir( "/home/simulation/sim_vref/spectre/schematic" )
mvCorner=list( "sp_mv_ff" "sp_mv_fs" "sp_mv_ss" "sp_mv_sf")
bjtCorner=list( "sp_bjt_min" "sp_bjt_max")
mimCorner=list( "sp_mimcap_min" "sp_mimcap_max")
lvCorner=list("sp_lv_tt")
resCorner=list( "sp_resistor_min" "sp_resistor_max")
tmp=list(-4085)
vlot=list(2.3 3 3.7)
foreach(lv lvCorner
foreach(mv mvCorner
foreach(bjt bjtCorner
foreach(res resCorner
foreach(mim mimCorner
foreach(temp tmp
foreach(vdd vlot
i=i+1
modelFile(
list("/home/yuqh/simulation/model_lib/sp_header_spectre.scs",lv)
list("/home/yuqh/simulation/model_lib/sp_header_spectre.scs",mv)
list("/home/yuqh/simulation/model_lib/sp_header_spectre.scs",bjt)
list("/home/yuqh/simulation/model_lib/sp_header_spectre.scs",res)
list("/home/yuqh/simulation/model_lib/sp_header_spectre.scs",mim)
)
analysis('tran ?stop "50u"?errpreset "conservative")
desVar(
"VCI" vdd
)
temp( temp)
run()
selectResult( 'tran )
plot(getData("/I0/Vbg") )
)
)
)
)
)
)
)
能不能具体点,我初学ocean。下面是我的语句,能不能告诉我加在哪?ocnWaveformTool( 'wavescan )
simulator( 'spectre )
design(
"/home/simulation/sim_vref/spectre/schematic/netlist/netlist")
resultsDir( "/home/simulation/sim_vref/spectre/schematic" )
mvCorner=list( "sp_mv_ff" "sp_mv_fs" "sp_mv_ss" "sp_mv_sf")
bjtCorner=list( "sp_bjt_min" "sp_bjt_max")
mimCorner=list( "sp_mimcap_min" "sp_mimcap_max")
lvCorner=list("sp_lv_tt")
resCorner=list( "sp_resistor_min" "sp_resistor_max")
tmp=list(-4085)
vlot=list(2.3 3 3.7)
foreach(lv lvCorner
foreach(mv mvCorner
foreach(bjt bjtCorner
foreach(res resCorner
foreach(mim mimCorner
foreach(temp tmp
foreach(vdd vlot
i=i+1
modelFile(
list("/home/yuqh/simulation/model_lib/sp_header_spectre.scs",lv)
list("/home/yuqh/simulation/model_lib/sp_header_spectre.scs",mv)
list("/home/yuqh/simulation/model_lib/sp_header_spectre.scs",bjt)
list("/home/yuqh/simulation/model_lib/sp_header_spectre.scs",res)
list("/home/yuqh/simulation/model_lib/sp_header_spectre.scs",mim)
)
analysis('tran ?stop "50u"?errpreset "conservative")
desVar(
"VCI" vdd
)
temp( temp)
run()
selectResult( 'tran )
plot(getData("/I0/Vbg") )
)
)
)
)
)
)
)
试着把最后一句脚本要改;
Vbg=VT("/I0/Vbg")
plot(Vbg ?expr list(strcat(vdd temp lv mv bjt res mim)))
analysis('tran ?stop "50u"?errpreset "conservative")
desVar(
"VCI" vdd
)
temp( temp)
run()
selectResult( 'tran )
Vbg=VT("/I0/Vbg")
plot(Vbg ?expr list(strcat(vdd temp lv mv bjt res mim)))
)
)
)
)
仿真结果为:
*Error* strcat: argument #1 should be either a string or a symbol (type template = "S") - 2.3*Error* load: error while loading file - "vref_bg.ocn"
我把语句改为:Vbg=VT("/I0/Vbg")plot(Vbg ?expr list(strcat("vdd" "temp" "lv" "mv" "bjt" "res" "mim")))
仿真不会出错,但显示结果为下图
还是没得到想要的结果,应该是循环语句没把值赋给输出。
i=i+1之后加
v=desVar("vdd" vdd)
然后把list(strcat())括号里的vdd换成v;你看是不是能够显示电压。
我把语句改为:Vbg=VT("/I0/Vbg")plot(Vbg ?expr list(strcat("vdd" "temp" "lv" "mv" "bjt" "res" "mim")))
仿真不会出错,但显示结果为下图
还是没得到想要的结果,应该是循环语句没把值赋给输出。
非常感谢了。现在可以了 。我加了语句i=i+1v=desVar("vdd" vdd)
t=desVar("temp" temp)
mvcor=desVar("mv" mv)
bjtcor=desVar("bjt" bjt)
rescor=desVar("res" res)
mimcor=desVar("mim" mim)
Vbg=VT("/I0/Vbg")
plot(Vbg ?expr list(strcat(mvcor bjtcor rescor mimcor v t)))
仿真结果除了最后一个t(温度)显示不了,其他都可以了。
t是保留变量,你换个别的名字就行了;
还有, i=i+1没看出有什么用;
感觉温度这个变量是被定义过了还是怎样,有点怪,怎么弄就是显示不出来,把t改成其他字母它就出错。
t是保留变量,是命令执行以后返回的表示done的量;换成其他的名字就没问题了;注意要换两处:desvar和strcat
好东西,学习了!
temp直接当参数传递给strcat或者list是被当做fixnum来处理的,而strcat或者list接受的参数类型是string或者symbol。所以需要提前将temp用concat函数转换为symbol。
concat的具体用法是:
temp_symbol=concat(temp)
然后将temp_symbol作为list的参数
dsfdsfdf
这个怎么学习?函数的用法,还有ocean。
基本上只能看manual和userguide
xue xi
您好,我现在还是有一个问题,我想用ocean脚本跑PVT,现在温度和工艺角都可以跑起来,但是电源电压依旧跑不起来,你能帮我看看脚本问题出在哪吗?谢谢啦~
现在运行脚本总提示vpwer是无约束变量,应该怎么改?
foreach(vpower Vpower
此句中的Vpower的确没有定义,应该换成VDD
desVar里的Vpower是不是也要换成VDD?我换了之后报错,ERROR:input.scs8:Unexpected quotedstring ””4.5”
ERROR:input.scs8:Badly formed parameters statement