在正式开始我们的算法探险之前,我们需要先搭建好一个功能强大的实验平台。正所谓“工欲善其事,必先利其器”,一个稳定、顺畅的开发环境将是我们未来学习之旅的坚实基础。
本章将手把手地指导你完成所有必要的软硬件准备工作。
1软件的准备
对于本教程使用到的软件有Vivado、MATLAB以及WaveVison5,它们对应的软件版本如下所示:
Vivado: Vivado.2021.1
MATLAB: MATLAB.R2025a
WaveVison5: WaveVison5
上述的软件的安装包本教程所配套的文件已提供,至于Vivado和MATLAB具体安装教程可自行参考网上资料,本章后续提供WaveVison5的安装教程。其中Vivado 是FPGA开发平台,适配Xilinx的芯片;MATLAB用于检验算法以及处理数据;WaveVison5用于分析Vivado ila导出的数据。
至于其他版本的工程,读者可自行搭建。
2 MATLAB与Vivado的协同
在简单的LED闪烁项目中,结果是肉眼可见的。但在复杂的DSP设计中,我们如何知道FPGA内部成千上万个比特的运算结果是否正确呢?答案是:依靠MATLAB。
我们的工作流程将是这样的:
1. 在MATLAB中定义问题和答案:
生成测试激励 (Test Vector/Stimulus): 使用MATLAB生成输入信号(如一个纯净的正弦波,或一个带噪声的信号),并将其保存为文本文件(如 `.txt`)。
计算黄金参考 (Golden Reference): 用MATLAB对该输入信号执行相同的DSP算法(如滤波),得到理论上完全正确的结果,也保存为文本文件。
2. 在Vivado中进行验证:
编写Testbench: 在Vivado的仿真环境中,Testbench模块会读取MATLAB生成的“测试激励”文件,并将其作为输入送给你的FPGA设计(我们称之为DUT - Device Under Test)。
对比结果: Testbench会同时捕获DUT的输出,并可以将其与MATLAB生成的“黄金参考”文件进行对比。如果两者在允许的误差范围内完全一致,我们就能充满信心地说:我们的FPGA设计是正确的!
这个 “MATLAB生成激励与参考 -> Vivado仿真验证”的闭环流程,是专业数字IC/FPGA设计中的标准做法,也是我们整个教程将遵循的核心方法论。它能帮助我们在上板之前,就发现和修复绝大部分的逻辑错误。
3 WaveVison5 与Vivado的协同
WaveVision 5 是德州仪器(TI)推出的一款专业数据分析软件,主要用于对模拟信号转换为数字信号(ADC)后的数据进行频谱分析和性能评估。该软件广泛应用于电子工程、通信、传感器评估等领域,特别适用于 FPGA 或其他硬件平台采集的 ADC 数据处理。
核心功能:
频谱分析与 FFT:支持对采集数据进行快速傅里叶变换(FFT),生成频谱图,分析信号的频率分布。
性能指标计算:自动计算并显示关键性能指标,如信噪比(SNR)、无杂散动态范围(SFDR)、有效位数(ENOB)等,帮助用户评估 ADC 的性能。
多通道支持:支持多达 4 通道的数据采集和分析,适用于多通道系统的测试需求。
数据导入与导出:支持从 ASCII 文件导入和导出数据,方便与其他工具或平台的数据交换。
图形化界面:提供直观的图形界面,用户可以方便地查看时域图、频谱图等,进行数据分析和结果展示。
3.1 WaveVision 5 安装
选择02_software文件夹
选择snac002e.zip压缩包解压
解压后以管理员权限打开该文件进行安装
选择接受条款,点击next。
选择文件安装路径,点击next。
默认,点击next。
全选,点击next。
完成安装,点击install
安装完成后的图标
3.2 在线逻辑分析仪数据导出
Vivado ILA数据的导出
在viavdo的ila界面将信号设置模拟信号,有符号数十进制的形式,全部信号设置完成后,点击Export ILA Data。
出现下框:Format选择CSV,再选择保存路径。
打开.CSV文件,根据名称就可以看到要分析的波形具体在哪一列,如分析adc_data_i1_reg[11:0]。
3.3 WaveVision 5分析数据
打开WaveVision 5,选择Plots点击import。
选择文件所在文件夹,点击一个.csv文件,选择一列目标通道,设定时钟(ila的采样时钟),点击import。
导入后为时域波形,点击上部功能框可转换到频域,点击下部功能框可以缩放图像。
点击频域,画出所采集信号的频谱,加窗,可以选择谐波标记与两条噪声线,打开左边显示FFT读数框,可以直接显示信噪比等信号指标。
如果想显示多个信号,只需在点击Plot,再选择一个信号即可。
|