DDS(Direct Digital Synthesizer) 即数字合成器 ,可以通过修改FWORD(频率控制字) 和 PWORD(相位控制字) 来较容易实现
频率、相位、以及幅度的控制,在通信领域运用较为广泛。其原理图如下图所示
下面以代码的形式来解释此图的原理
假设Clk 时钟频率为100MHZ 周期为10ns ,假设 data 可以组成32点正弦波信号
always@(posedge Clk)
time <= time +1'b1 ;
case(time)
0 :data = 0
1:data = 1
2:data = 2.5
3:data = 3.7
此处省略
31:data =0 ;
可知 : 一个正弦波周期为 32*10 即 320ns 频率为 1/320 * 10^9 hz ,要想使其变为周期为160ns 的正弦波 我们知道 每隔10ns 输出一个点 ,要想周期为160ns 则需输出 160/10 个点 即16个点 ,我们怎么控制系统输出16个点呢? 仔细想一想就知道只需要将 time <= time + 1 ;改为 time <= time + 2 即可 ;而time <= time + B正好对应的就是累加器的电路图 ,完全是DDS的思想 。
为了进一步理解DDS原理 , 仍以代码的形式进行理解 。
一般情况下