有关ocean脚本仿真有两个电源的多个corner,请高手帮我检查一下··急
我是一个初学者,望各位大侠多赐教啊万分感激
我是在ADE里面先设置好条件后,再导出的ocean脚本,然后做了点修改
最后跑出来的错误是: error eval:not a function-'("/home/project`````" "tt")
反正是读不出模型文件。
ocean的脚本大致如下:
ocnWavefornTool('wavescan)
simulator('spectre)
design("/home/project/```/netlist")
resultDir("/home/project/`````/schematic")
tsm=list(
(
'("/home/project/```````/flash018.scs" "tt")
'("/home/project/```````/flash018.scs" "tt_res")
'("/home/project/```````/flash018.scs" "tt_3v")
)
(
'("/home/project/```````/flash018.scs" "ss")
'("/home/project/```````/flash018.scs" "ss_res")
'("/home/project/```````/flash018.scs" "ss_3v")
)
(
'("/home/project/```````/flash018.scs" "ff")
'("/home/project/```````/flash018.scs" "ff_res")
'("/home/project/```````/flash018.scs" "ff_3v")
)
)
i=0
tmp=list(125 27 -40)
foreach(tsmc tsm
foreach(temp tem
i=i+1
model_tsmc=list(tsmc " ")
modelFile(
model_tsmc
)
analysis('tran? stop "500n")
run()
selectResult('tran)
plot(`````````````````)
)
)
我看出来,你是想把每个不同的corner做成一个list
(
'("/home/project/```````/flash018.scs" "tt")
'("/home/project/```````/flash018.scs" "tt_res")
'("/home/project/```````/flash018.scs" "tt_3v")
)
但是这样modelFile看到的是一个list,其中只有一个元素,就是上面的值。
我的建议在下面的帖子中。
tsm=list("tt","ss","ff")
foreach(tsmc tsm
...
modelFile(
list("/home/project/```````/flash018.scs" sprintf(nil,"%s",tsmc))
list("/home/project/```````/flash018.scs" sprintf(nil,"%s_res",tsmc))
list("/home/project/```````/flash018.scs" sprintf(nil,"%s_3v",tsmc))
)
...
)
3# zhanglg
果然厉害啊! 终于有结果了啊!
非常感谢啊!
结果发现 图形很多很乱啊 每个参数它都跑了遍啊
如果我想把tt只跑27度,ss只跑125度,ff只跑-40度 这也怎样写循环啊?
好人做到底啊! O(∩_∩)O~
我也去查一些资料,如果知道的话,请告诉我啊!
4# taoying
CorTempList=list(
list("tt",27)
list("ss",125)
list("ff",-40)
)
foreach(CorTemp CorTempList
tsmc=nth(0,CorTemp)
Temp=nth(1,CorTemp)
;Set Corner
modelFile(
list("/home/project/```````/flash018.scs" sprintf(nil,"%s",tsmc))
list("/home/project/```````/flash018.scs" sprintf(nil,"%s_res",tsmc))
list("/home/project/```````/flash018.scs" sprintf(nil,"%s_3v",tsmc))
)
;Set Temp
temp(Temp);
)
核心思想就是为每一种仿真条件建立一个list。
上面使用了两个函数有点记不清楚了
nth()是从一个List中取数值,你自己确认一下参数的位置
temp()仿真温度的设定
6# zhanglg
恩 非常感谢啊!
哈,学习到了!
谢谢分享
确实学习了
very good
thank you
受教了,造福大家阿
感谢分享!
获益匪浅啊
谢谢 学习
学到好东西了
学习,碰到类似问题可以借鉴~
受益匪浅
非常不错。仔细看了帖后,对照自己写的ocean脚本,解决了相应的问题~
牛人,我要学习,哈哈
学到了。
学习了!
学海无涯
学习了。
学习到了,非常感谢。
nice
我是把整个的lib按照corner重新整理了一遍,直接一句 “blablabla.lib” “ss“ 就可以跑ss了,再用ADE的时候也比较方便~ 就是整合一堆libmdl费些时间
怎么整合的啊?
这个是可以的,但是怎么用这个文件在ADE直接run corner?比较久之前折腾过,现在忘记了,兄弟有什么高见吗?
