SignaTapII抓取的数据怎么转成Matlab矩阵?
我知道大致方法是用 MATLAB MEX function 中的alt_signaltap_run .
语法如下:
X=alt_signaltap_run('data.stp','signed','auto_signaltap_0');
可是为什么会出现以下错误呢?
Error: Can't find the instance. Download a design with SRAM Object File containing this instance.
Error: Can't run SignalTap II Logic Analyzer -- SignalTap II File is not compatible with the file programmed in the device
Error: Acquisition stopped unexpectedly. No data are returned. Please check previous error messages.
? One or more output arguments not assigned during call to "alt_signaltap_run".
求大神解答!
自己找到解决方法了,在联合调用SignalTapII 和 Matlab 的时候,操作步骤一定要正确。
首先讲讲我对 .stp 的理解,在用SignalTapII抓取数据后会保存为一个 .stp 的文件,但是个人认为 stp文件里面并没有保存数据的信息,而只是一些配置信息,比如要抓取的信号,信号的排列,采样时钟等等。所以直接在Matlab中敲
" X=alt_signaltap_run('data.stp','signed','auto_signaltap_0'); ”是没有意义的,必须要运行SignalTapII以后再进行Matlab部分的操作。
下面是我的操作步骤:
1.在QuartusII中完成编译,下载到FPGA中,然后打开SignalTapII,选择你的 .stp 文件,然后 Run Analysis.
2.打开Matlab 程序,首先要添加一个路径——你的quartus的安装目录下的bin路径,比如我的为 D:\Altera\quartus\bin .在命令窗口敲"addpath D:\Altera\quartus\bin" 回车,这一步个人感觉是加入 MEX function,Matlab自身是没有alt_signaltap_run 这个函数的。
3.敲 "X=alt_signaltap_run('data.stp','signed','auto_signaltap_0');" 把SignalTapII抓的数据存入 X 这个矩阵中。
注:要是顺序出现错误,出现楼上的error,我的经验是把Matlab关了,然后重新从第2步开始。
自问自答,小编解己之惑,乐于分享,谢谢!
因为还没有找到有关类似的提问,希望可以给以后遇到类似问题的人一个参考。
佩服佩服,小编好样的
我为什么用这个方法就不成功呢,?
matlab会报错误
Error: File data.stp cannot be opened to read
Error: Acquisition stopped unexpectedly. No data are returned. Please check previous error messages.
而且我觉得这个连stp的路径都没有,MATLAB怎么会知道导入从哪导入stp里面的数据呢?
有谁用这方法成功的帮忙看下
谢谢LZ分享方法。
