在运用FPGA进行无线通信或许进行信号处理时,一般依照这样的过程进行:
(1)运用matlab进行浮点算法仿真
(2)将matlab浮点算法转换为定点算法,进行仿真,并与浮点算法的功能进行比较
(3)假如定点算法功能抵达要求,就能够在FPGA上进行定点算法的完成
(4)FPGA完成定点算法后,要将FPGA完成的算法功能与matlab仿真进行比较,以确认是否到达要求
第四步需求进行FPGA与Matlab仿真的比较。假如是用FPGA的仿真成果与Matlab仿真成果进行比较的话,能够凭借Modelsim仿真时将发生的数据写入文件,然后再在Matlab中读出文件中的数据,进行仿真比较。
那么假如要愈加实在的比较FPGA完成后的成果与Matlab仿真作用的话,能够运用Signal Tap II,在线收集FPGA内部处理发生的数据,然后在Signal Tap II窗口右键点击,挑选create signalTap II list File指令。如下图所示。
进行这步操作后,会发生一个文件,下面是从文件中截取了一部分数据,如下所示:
Signal Legend:
Key Signal Name
0 = ad_clk
1 = ad_data
2 = rx:rx_inst|rx_demsk:rx_demsk_inst|compare_decesion:compare_decesion|data_out
3 = rx:rx_inst|rx_demsk:rx_demsk_inst|FIR_LPF_16:FIR_LPF_16_INST|data_out
Data Table:
Signals-> 0 1 2 3
sample
-256 0 2604 0 -7024719322
-255 1 2604 0 -7024719322
-254 1 2604 0 -8128737870
-253 1 421 0 -8128737870
-252 0 421 0 -8128737870
-251 0 421 0 -8128737870
-250 1 421 0 -8128737870
-249 1 421 0 -8813966451
-248 1 4 0 -8813966451
-247 0 4 0 –8813966451
……
下面就能够运用matlab读取这些数据了,为了matlab读取便利,咱们能够把前面标明信号称号等内容删去,只保存sample后边的数据。
然后翻开matlab,挑选File –> import data指令,如下图所示:
挑选方才的数据文件,会呈现如下对话框:
能够看到matlab把数据文件中的数据,作为一个矩阵进行存储,矩阵的称号便是方才数据文件保存的称号。这时你就能够在Workspace中看到这个数据了,如下图所示:
这样咱们就能够运用这些数据在Matlab中进行仿真了,假如想读取这个矩阵中第5列的数据能够一下指令:
data5 = stp_data(:,5);
这儿然后进行可对data5进行处理,下图是直接读取signaltap II收集的数据,在Matlab进行显现:
别的,除了能够运用GUI操作读取数据的话,matlab也供给了呼应的函数textread,能够运用下面的指令读出数据:
[a1,a2,a3,a4,a5]=textread(stp_data.txt,%d%d%d%d%d)
这样,就能够将stp_data.txt中的数据读入。详细关于textread的运用方法能够参阅Matlab的help