最近,在利用FPGA采集数据,前端是通过AD采集,然后直接输出给FPGA,需要分析采集到的数据,通常的办法只能在signaltap中,右击信号列表然后点击”Create SignalTap II List File”生成数据文件,操作如图1所示,图2为生成的数据文件,处理数据时先将文件中所有数据拷贝到ultraedit中,然后通过列模式提取需要处理的那列数据,拷贝到matlab中进行后续分析处理。
![一种matlab调用signaltap采集数据的方法](http://i8.hexunimg.cn/2014-06-28/166136541.jpg)
![一种matlab调用signaltap采集数据的方法](http://i4.hexunimg.cn/2014-06-28/166136542.jpg)
上述操作方法过程比较繁琐,主要是手动操作比较多,如果需要采集的数据较多,则需要多次重复操作,真是体力活儿啊,难免然操作者产生厌烦心理。下面介绍一种通过matlab直接调用signaltap采集数据的方法。
在matlab端只需要一下语句:
addpath ("d:/altera/11.0sp1/quartus/bin");
din = alt_signaltap_run("stp1.stp","signed");
alt_signaltap_run("END_CONNECTION");
其中addpath语句是将quartus软件路径加入进来;alt_signaltap_run语句执行数据的采集工作,当然此时对应的*.sof文件应该已经下载到FPGA中了,"signed"返回的是有符号数据;alt_signaltap_run("END_CONNECTION")语句表示断开由matlab建立的jtag连接。
采用此方法,无需打开signaltap,matlab直接获取数据进行处理,免除了大量重复的手动操作,大大提高了工作效率。