一、目的
设计并实现了一种简易的DDS信号发生器,采用FPGA开发板和外置高速AD/DA板,通过按键控制实现正弦波、奇异八宝粥、三角波和锯齿波的波形输出,并可调整频率相位。 二.原理介绍
主要部分由加法器和累加寄存器(频率控制字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。
时间图描述图1的工艺设计即可