实验原理
DDS的原理
DDS(Direct Digital Frequency Synthesizer)直接数字频率合成器,也可叫DDFS。
- DDS是从相位的概念直接合成所需波形的一种频率合成技术。
不仅可以产生不同频率的正弦波,而且可以控制波形的初始相位。
DDS原理框图
整体框架及其说明
框架说明:该模块的主要功能为产生任意信号,这里的任意信号为:正弦波、三角波、方波、锯齿波这四种波形。整个工程主要分为五个模块:按键消抖、按键编码、DDS信号发生器(在做这个实验前一定要先把DDS的原理弄懂!!!)DAC TLC5615驱动、低通滤波器(硬件板上已经有了)。
按键消抖模块:由于需要控制波形、幅值、频率、相位三个参数,所以该模块需要三个按键,由于按键为机械按键,在按下的时候会产生抖动,为了达到控制比较稳定,在按键的输入端我们采用软件对按键进行消抖,这里采用的消抖方法为状态机消抖,具体的过程可以看教程的按键消抖那个章节。
/********************************版权声明************************************** ** 大西瓜团队 ** **----------------------------文件信息-------------------------- ** 文件名称: key.v ** 创建日期: ** 功能描述:按键消抖 ** 硬件平台:大西瓜第三代开发板,http://daxiguafpga.taobao.com ** 版权声明:本代码属个人知识产权,本代码仅供交流学习. **---------------------------修改文件的相关信息---------------- ** 修改人: ** 修改日期: ** 修改内容: *******************************************************************************/ module key(clk,key,key_out); input clk,key;//时钟输入,按键输入 output key_out;//经消抖后的按键信号输出
wire clk; wire key;
reg key_out;
parameter s0=2'b00,s1=2'b01,s2=2'b10,s3=2'b11; reg[1:0] state;
always@(posedge clk) begin case(state) s0: begin key_out<=1'b1; if(key==1'b0) state<=s1; else state<=s0; end s1: begin if(key==1'b0) state<=s2; else state<=s0; end s2: begin if(key==1'b0) state<=s3; else state<=s0; end s3: begin if(key==1'b0) begin |