(用Matlab读取SignalTap数据方法.docx
文本预览下载声明
用Matlab读取SignalTap中数据的几种方法使用FPGA进行数字信号处理时,经常需要将FPGA中的实际检测到的数据导出,然后用Matlab进行仿真对比,以确认设计是否达到要求,下面介绍了几种常用的方法。一、?? 直接导入.txt或借助Excel表格转换操作步骤如下:1〉??在Quartus工程中新建Stp文件,编译,正确的在线采集FPGA内部的数据。2〉??如下图所示,在SignalTap窗口中的data下面,右键选择create SignalTapII List file。? ? ? ? ? ? ? ? ? ? ? ??3〉??经过步骤2之后,工程所在的文件夹中会生成一个my_stp_auto_singalTap_0.txt的文件。此时可以用Quartus打开,如下图所示:4〉??在3步骤的图中,蓝色部分是数据的说明(具体表示某一列代表的某个变量),为了Matlab读取数据方便,我们可以去掉前面的说明文件,只留下感兴趣的数据,重新保存为txt文件。打开Matlab,在file下面选择Import Dta…导入.txt文件即可。或者进行第五步也可。5〉??打开一个空的Excel文件,然后在“数据”工具中“自文本”中导入刚才保存好的txt文件,第一步选择分隔符号,next界面选择空格,后面的保持默认的选项,如下图所示。然后保存为xslx格式的文件6〉??打开Matlab,在file下面选择Import Dta…,找到刚才的文件7〉??操作6后得到如下图所示的结果。在workspace中可以看到需要导入的数据。Ok8把数据读出来,画图二、?? 用alt_SignalTap_run指令这种方法在Datasheet中介绍的比较详细,个人觉得比上面的方法要简单一些1?????在Quartus工程中新建Stp文件,编译,正确的在线采集FPGA内部的数据。2?????在Matlab命令行窗口,运行下面的指令,将QuartusII的安装路径添加进来,在bin下面可以看到alt_Signaltap_run.dll文件addpath D:\altera\11.1\quartus\bin这里需要注意两点:A〉datasheet中,。到时不要将win一起敲入命令行,否则报错。B〉?SignalTap中如果有数据位款超过32bits的,需要拆分一下。3?????运行alt_signaltap_run即可Eg:X =alt_signaltap_run( my_stp_file.stp );?X = alt_signaltap_run( my_stp_file.stp,signed );?X = alt_signaltap_run( my_stp_file.stp,signed, auto_signaltap_0 );?X =alt_signaltap_run( my_stp_file.stp, signed, auto_signaltap_0,my_signalset, my_trigger );三、导出signaltap II 文件为.csv格式。在signaltap II logic analyzer file 中选export 如下:设置导出目录,文件名字,ok 即可。用Excel打开保存的文件,取所需要的数据到MATLAB处理。或者直接导入.csv文件。
显示全部