差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
任意波形产生 [2016/05/26 21:49] gongyu [硬件构成] |
任意波形产生 [2020/10/09 01:31] (当前版本) gongyu |
||
---|---|---|---|
行 8: | 行 8: | ||
* 信号流程中的时序及各级时钟产生 | * 信号流程中的时序及各级时钟产生 | ||
* 通过[[示波器]]、[[频谱仪]]观察信号的构成及质量 | * 通过[[示波器]]、[[频谱仪]]观察信号的构成及质量 | ||
+ | |||
+ | {{drawio>simpledds}} | ||
====项目要求==== | ====项目要求==== | ||
{{ :stepfpga_dds.png |}} | {{ :stepfpga_dds.png |}} | ||
+ | <WRAP centeralign> **图1. 小脚丫FPGA同串行DAC构成的任意信号发生器** </WRAP> | ||
+ | |||
本项目采用[[http://www.analog.com|Analog Devices]]公司的8位串行DAC芯片[[http://www.analog.com/cn/search.html?q=ad5601|AD5601]],小脚丫FPGA模块通过SPI总线与AD5601连接,AD5601输出模拟信号,通过一个RC低通滤波器进行抗混叠滤波,得到最高频率为200KHz以内的信号。具体要求如下: | 本项目采用[[http://www.analog.com|Analog Devices]]公司的8位串行DAC芯片[[http://www.analog.com/cn/search.html?q=ad5601|AD5601]],小脚丫FPGA模块通过SPI总线与AD5601连接,AD5601输出模拟信号,通过一个RC低通滤波器进行抗混叠滤波,得到最高频率为200KHz以内的信号。具体要求如下: | ||
* 输入:5个按键,用于控制输出信号的波形以及频率选择 | * 输入:5个按键,用于控制输出信号的波形以及频率选择 | ||
行 28: | 行 32: | ||
* 采用LFCSP和SC70封装 | * 采用LFCSP和SC70封装 | ||
{{ :ad5601block.png |}} | {{ :ad5601block.png |}} | ||
+ | |||
+ | <WRAP centeralign>**图2 AD5601的内部功能框图** </WRAP> | ||
+ | |||
{{ :ad5601timing.png |}} | {{ :ad5601timing.png |}} | ||
+ | <WRAP centeralign> **图3 AD5601数据接口时序**</WRAP> | ||
===逻辑架构=== | ===逻辑架构=== | ||
{{ :dds_block.png |DDS的构成框图}} | {{ :dds_block.png |DDS的构成框图}} | ||
+ | <WRAP centeralign> **图4 DDS的构成框图**</WRAP> | ||
{{ :dds_spectrum.png |通过DDS产生的信号频谱}} | {{ :dds_spectrum.png |通过DDS产生的信号频谱}} | ||
+ | <WRAP centeralign> **图5 通过DDS产生的信号频谱**</WRAP> | ||
{{ :dds_antialias.png |DDS系统中的抗混叠滤波器的使用}} | {{ :dds_antialias.png |DDS系统中的抗混叠滤波器的使用}} | ||
+ | <WRAP centeralign> **图6 DDS系统中的抗混叠滤波器的使用**</WRAP> | ||
**调试过程:**由于这是一个相对复杂的系统,我们采用分段实现的方式进行系统实现和分阶段调试: | **调试过程:**由于这是一个相对复杂的系统,我们采用分段实现的方式进行系统实现和分阶段调试: | ||
行 46: | 行 57: | ||
* keyin.v: 按键输入控制,选择波形以及调整频率,需要防抖处理 | * keyin.v: 按键输入控制,选择波形以及调整频率,需要防抖处理 | ||
* dds.v: 根据频率控制字能够改变的相位累加器 | * dds.v: 根据频率控制字能够改变的相位累加器 | ||
- | * rom.v: [[Lattice Diamond]]软核构成的波表存储器,可以配置成宽度8位、深度256Byte的[[ROM]],如果要存储多个波形方便切换,可以生成对应于不同波形的ROM文件 | + | * rom.v: [[Lattice Diamond]]系统自带软核构成的波表存储器,可以配置成宽度8位、深度256Byte的[[ROM]],如果要存储多个波形方便切换,可以生成对应于不同波形的ROM文件 |
* spidac.v: 通过SPI总线协议将ROM表中的数据串行发送給AD5601 | * spidac.v: 通过SPI总线协议将ROM表中的数据串行发送給AD5601 | ||
行 138: | 行 149: | ||
====结果及资源报告==== | ====结果及资源报告==== | ||
- | |||
====参考资料==== | ====参考资料==== |