微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微波和射频技术 > RFIC设计学习交流 > 用ocean导出结果时出错

用ocean导出结果时出错

时间:10-02 整理:3721RD 点击:

各位大侠好,
我进行瞬态仿真后,想用ocean将仿真结果导出来,在terminal中运行ocean文本时,出现错误如下:

ocean> *Error* fprintf/sprintf: format spec. incompatible with data - nil
我的ocean脚本如下:
openResults( "./Sim/TESTBENCH_ADC_TOP/spectre/config/psf" )
results()
selectResult( 'tran )
myfile=outfile("mydata.txt" "w")
for(n 0 1000
prTime=n*3.3333e-6+9.5e-6
fprintf(myfile, "%f%.5f\n" prTime value(VT("/D9") prTime))
) ;; for n
close(myfile)
谢谢各位大侠了!

如果result没有选择错误的话,在sleectResult的语句后面加一条,outputs(), 看看是否有东西返回。 如果没东西返回的话,VT("/D9")也不会有结果返回。

amodaman,
您好!
按照您所说的,我在selectResult后面添加了一句outputs(),有返回结果,就是我所保存的节点。
谢谢您!

那么VT("/D9")的仿真时间够不够你做0 到1000次的循环呢?否则VT(“/D9”)不会返回 nil 的。

呵呵,刚才的回复有点问题,不好意思!
在selectResult后面添加了一句outputs(),返回结果如下:
ocean>("/I23/SH_OUT" ”/D<0>" ”/D<1>" ”/D<2>" ”/D<3>" ”/D<4>" ”/D<5>" ”/D<6>" ”/D<7>" ”/D<8>" ”/D<9>" "/net035")
然后我把ocean脚本文件里面的value(VT("/D9") prTime)改成value(VT("/D<9>") prTime),
没有错误,但是mydata.txt里面什么都没有,是空的,不知道为什么!
谢谢您了!

amodaman,
您好!
呵呵,数据导出来了,最开始的错误就是因为VT("/D9"),应该是VT("/D<9>"),后面没有结果是因为还没存储完结果,呵呵,等一段时间mydata.txt里面就有数据了,呵呵!
谢谢您了!

amodaman,
您好!
用ocean导出仿真时间较长的数据时又出现错误了,错误如下:
ocean> *Error* Insufficient virtual memory: Malloc failed - nil
麻烦您了!

看提示啊,第一个是你的fprintf中有不兼容的数据,第二个是你的仿真的太大了,没有内存资源了。有可能是你的脚本写的不规范,导致占用过多系统资源

嗯,第一个是输出数据的名字弄错了,第二个说是虚拟内存不够,脚本的话不太会弄,呵呵

想问一下,psf中存的不是二进制的数据么,经过导出这一步骤出来的数据还是二进制的吗?

学习中!

您好 ,我在用ocena仿真一个基准电流源,我想看到输出电流的大小并保存,可是却报错,我想知道哪里错了?去掉红色部分 是没有错误的run()
printf("%d \n",i)
I0=getData("/M7/D")
fprintf(p,"Num:%-2d MOS_Corner:%s Res_Corner:%s Temperature:%-3d I0:%-.6f \n",i gsmc_mos gsmc tempvalue I0)
))
close(p)
printf("\n---End---\n")

getData函数返回的是波形,不能拿来直接打印, 数据的类型不对. 你要打印的数据需要把I0再加工才行。 最后红色的I0改成: value(I0, tempvalue) 就应该可以了。

我也碰到了数据类型不兼容的问题,我是这样改的:把I0=getData("/M7/D")该为I0=getData("M7.D")然后就好了,希望对后来人有帮助

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top