2023年11月26日发(作者:)

Matlab读取SignalTap中数据的几种方法

使用FPGA进行数字信号处理时,经常需要将FPGA中的实际检测到的数据导出,然后用

Matlab进行仿真对比,以确认设计是否达到要求,下面介绍了几种常用的方法。

一、 直接导入.txt或借助Excel表格转换

操作步骤如下:

1 Quartus工程中新建Stp文件,编译,正确的在线采集FPGA内部的数据。

2 如下图所示,SignalTap窗口中的data下面,右键选择create SignalTapII List

file

3 经过步骤2之后,工程所在的文件夹中会生成一个my_stp_auto_singalTap_

的文件。此时可以用Quartus打开,如下图所示:

4 3步骤的图中,蓝色部分是数据的说明(具体表示某一列代表的某个变量),为

Matlab读取数据方便,我们可以去掉前面的说明文件,只留下感兴趣的数据,重新保存

txt文件。打开Matlab,在file下面选择Import Dta…导入.txt文件即可。或者进行

第五步也可。

5 打开一个空的Excel文件,然后在“数据”工具中“自文本”中导入刚才保存好的

txt文件,第一步选择分隔符号,next界面选择空格,后面的保持默认的选项,如下图所示。

然后保存为xslx格式的文件

6 打开Matlab,在file下面选择Import Dta,找到刚才的文件

7 操作6后得到如下图所示的结果。在workspace中可以看到需要导入的数据。Ok

8>把数据读出来,画图

二、 alt_SignalTap_run指令

这种方法在Datasheet中介绍的比较详细,个人觉得比上面的方法要简单一些

1> Quartus工程中新建Stp文件,编译,正确的在线采集FPGA内部的数据。

2> Matlab命令行窗口,运行下面的指令,QuartusII的安装路径添加进来,

bin下面可以看到alt_Signaltap_文件

addpath D:altera11.1quartusbin

这里需要注意两点:

Adatasheet中,。到时不要将win一起敲入命令行,否则报错。

B SignalTap中如果有数据位款超过32bits的,需要拆分一下。

3> 运行alt_signaltap_run即可

Eg:

X =alt_signaltap_run( 'my_stp_' );

X = alt_signaltap_run( 'my_stp_','signed' );

X = alt_signaltap_run( 'my_stp_','signed', 'auto_signaltap_0' );

X =alt_signaltap_run( 'my_stp_', 'signed',

'auto_signaltap_0','my_signalset', 'my_trigger' );

三、导出signaltap II 文件为.csv格式。

signaltap II logic analyzer file 中选export 如下:

设置导出目录,文件名字,ok 即可。

Excel打开保存的文件,取所需要的数据到MATLAB处理。或者直接导入.csv文件。