一、目的
使用 FPGA
开发板和外部挂载的高速
AD/DA
板卡,设计并实现一个简易
DDS
信号发
生器,可通过按键控制实现正弦波、方波、三角波和锯齿波的波形输出,频率相位可调。
二、原理介绍
主要部分由加法器和累加寄存器(在频率控制字K变化时不会干扰相位累加器工作)组成。简单来说:首先,K值输入,加上相位累加器原先寄存的值(位宽为N),再传到累加寄存器中生成相位码;然后,相位累加器和相位调制器生成的值(地址即横轴)传入ROM表,ROM表会事先存储我们要显示一个完整周期的正弦波信号,相应的地址(横轴)对应所存储的数据(纵轴)。
那么ROM表中的数据是怎么来的呢?
利用matlab产生mif文件,在quartus里设置ROM IP核时调用mif文件即可。在matlab中沿横轴等间隔采样2^N=4096次,每次采集的信号幅度用1字节(8bit)数据表示(0~255),然后将采样结果(mif文件)按顺序写入ROM存储单元中。生成的mif文件部分内容如下图所示,冒号左侧为横轴地址,右侧为纵轴存储数据,可与上图中的正弦波横纵轴对应。
简单来说就是查找表,地址(频率字K)自己设,就可得到对应得存储数据。
输出信号 CLK_OUT 的频率Fout = K * Fclk/ 2^N,相位字输入P= θ/2pai/2^M。
时序图就是将图一得流程设计描述出来就可以