FPGA实验
DDS IP 数字波形合成
- 使用 Vivado的IPI工具,例化DDS IP
- DDS需要能够配置频率字(相位增量)
- DDS工作时钟使用PL的板载50MHz时钟
- 使用ILA工具观察波形, 使用VIO设定频率字
- 在ILA的波形窗口里,观察你设定的波形的周期,验证你频率字设定的正确性
- 把ILA波形导出到CSV文件,波形样点长度不小于2048点,在Matlab里分析波形的频谱,验证你生成波形的正确性。
- 使用VIO更改频率字,分别生成1MHz和3MHz的正弦波形。使用以上流程,验证你输出波形的正确性。
ADDA测试
- 注意,AN108是34针的插头,注意其插装位置,1脚和zynq底板对齐,不要插错
- 黑金AN108的低通滤波器通带为0-20MHz左右
- 基于“DDS IP 数字波形合成DAC ” 实验方案,使用50MHz时钟频率,使用DAC输出正弦波。
- 把DAC输出模拟信号自环给ADC的输入
- 使用MMCM分频,给ADC提供25MHz采样时钟
- 使用ILA捕获ADC的输出数据,不少于2048样点。
- 使用Matlab分析ADC数据频谱
- 用VIO更改频率字,生成1MHz和3MHz的正弦信号,用Matlab分析ILA数据验证频谱正确。
DAC FIFO实验
- 基于“DDS IP 数字波形合成DAC ” “ ADDA测试” 实验方案
- 用MMCM 把 合成出100MHz的时钟,让DDS工作在100MHz时钟
- 让DAC和DAC的接口电路工作在50MHz,此时DAC的采样率为50MHz
- 在DDS和DAC接口电路之间,放置一个带独立时钟的AXI-Stream-Data FIFO,FIFO两端的时钟分别为DDS的工作时钟100MHz和DAC的工作时钟50MHz
- 生成FIFO需要带data count信号(本实验仅用于观察,以后的实验中这些信号有用。)
- DDS的数据输出接口需要有TREADY信号
- DAC接口电路需要将FIFO输出端的AXI-S接口转换成DAC的接口格式,自行编写RTL代码完成该功能。另外由于DAC的工作频率小于DDS工作频率,所以DAC接口控制器给FIFO的RDY信号应该一直为高。
- 以上结构的意义在于,把接口电路和信号处理电路分离在不同的时钟域,从而使得各部分保持独立
- 本实验添加2个system ILA,分别观察FIFO两端接口的信号时序,注意观察 data count端口的变化。
10.用VIO配置频率字,分别生成1MHz和3MHz的DDS正弦波形,用system ILA抓取DAC的输入数据,用Matlab分析频谱,验证频率正确。 - 本实验是一个典型的带反向流控的跨时钟域传输信号的例子
带FIFO的ADDA实验
- 本实验在DAC FIFO实验的基础上完成
- 把DAC输出模拟信号自环给ADC的模拟输入
- ADC使用25MHz的时钟信号采样
- ADC的输出的数据信号,用ILA抓取观察波形
- 用VIO配置频率字,分别生成1MHz和3MHz的DDS正弦波形,用Matlab分析频谱,验证频率的正确性。

本文详细介绍了在Zynq FPGA上进行的实验,包括DDS IP数字波形合成,ADDA测试,以及带FIFO的ADDA实验。实验涉及Vivado的IPI工具,ILA波形观察,MATLAB频谱分析,以及FIFO在跨时钟域传输中的应用。通过调整频率字,生成不同频率的正弦波,并验证了波形的正确性。
371

被折叠的 条评论
为什么被折叠?



