差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
上一修订版 两侧同时换到之后的修订记录
任意波形产生 [2016/05/26 21:48]
gongyu
任意波形产生 [2016/05/26 22:10]
gongyu
行 11: 行 11:
 ====项目要求==== ====项目要求====
 {{ :​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: 行 30:
   * 采用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>​
  
 **调试过程:**由于这是一个相对复杂的系统,我们采用分段实现的方式进行系统实现和分阶段调试: **调试过程:**由于这是一个相对复杂的系统,我们采用分段实现的方式进行系统实现和分阶段调试:
   - DAC产生直流电压:通过[[SPI]]串行总线的低速数模变换器[[DAC]]得到需要的直流电压,按键更改数字参数能够改变输出直流电压的值   - DAC产生直流电压:通过[[SPI]]串行总线的低速数模变换器[[DAC]]得到需要的直流电压,按键更改数字参数能够改变输出直流电压的值
-  - DAC生成正弦波:通过[[FPGA]]内部寄存器或调用内部IP核将内嵌的块RAM配置成256深度,位宽为8位的ROM存储一个周期的正弦波波形信号,逻辑控制将波形表中的每个点通过DAC输出,生成模拟的正弦波信号+  - DAC生成正弦波:通过[[FPGA]]内部寄存器或调用内部IP核将内嵌的块RAM配置成256深度,位宽为8位的[[ROM]]存储一个周期的正弦波波形信号,逻辑控制将波形表中的每个点通过DAC输出,生成模拟的正弦波信号
   - DAC生成任意波形,并且可以调整频率   - DAC生成任意波形,并且可以调整频率
  
行 46: 行 55:
   * 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: 行 147:
  
 ====结果及资源报告==== ====结果及资源报告====
- 
  
 ====参考资料==== ====参考资料====