基于FPGA用VerilogHDL设计实现DDS直接频率合成的方法

FPGA/ASIC技术

206人已加入

描述

数字频率合成器(DDS,Direct Digital Synthesizer)是一种数字控制的锁相倍频器。其输出频率是基准频率的整数倍,通过频率选择开关改变分频比来控制压控振荡器的输出信号频率。与传统的频率合成器相比,DDS具有低成本、低功耗、高分辨率和快速转换时间等优点,是实现设备全数字化的一个关键技术,广泛使用在通信与电子仪器领域。

DDS基本原理
DDS的工作原理是以数控振荡器的方式产生频率、相位可控制的正弦波。电路一般包括基准时钟、频率累加器、相位累加器、幅度/相位转换电路、D/A转换器和LPF(Low Phase Filter,低通滤波器)。

VerilogHDL


DDS的具体工作过程如图1所示。N位相位累加器由N位加法器和N位累加寄存器组成。每来一个时钟脉冲,N位加法器将频率控制字K与N位累加寄存器输出的累加相位数据相加,并把相加后的结果送至累加寄存器的输入端。累加寄存器一方面将上一时钟周期作用后所产生的新的相位数据反馈到加法器的输入端,使加法器在下一时钟的作用下继续与频率控制字K相加;另一方面将这个值作为取样地址,送入幅度/相位转换电路,使其输出相应的波形数据。最后经D/A转换器和LPF将波形数据转换成所需要的模拟波形。

 

相位累加器在基准时钟的作用下,进行线性相位累加,当N位相位累加器累加Ⅳ次后就会产生一次溢出,这样就完成了一个周期,这个周期也就是DDS信号的频率周期。

DDS模块的输出频率fout是系统工作频率fclk,相位累加器比特数N及频率控制字K三者函数,其数学关系由式(1)给出:

2、系统设计
2.1、相位累加器的设计
相位累加器是典型的反馈电路,由N位全加器和N位累加寄存器级联而成,对代表频率的二进制码进行累加运算。相位累加器的位数N=32。可以达到较高频率分辨率。该模块通过Verilog语言编写。仿真电路如图2所示。

VerilogHDL


2.2、存储波形信号的ROM的设计
本模块ROM的设计,基于ALTERA公司的开放的IP核,自动生成,其存储的正弦波波形文件,即初始化文件,通过C语言编写,生成波形数据存储到ROM中。由于采用的DAC器件为8位输入,因此本文设计的ROM数据宽度为8,不过为了提高精度,存储器深度选为1024。仿真电路如图3所示。

VerilogHDL


2.3、系统整体模块及仿真图
本系统整体电路图如图4所示,包括累加器、32位的寄存器、存储波形的ROM三部分组成。其中累加器进行DDS相位调节,输出的结果,送入32位的D触发器,产生读取ROM的地址信号,由于受到ROM的限制,我们截取高10位作为读取ROM的地址信号,产生稳定的信号。输入后续的ADC及滤波电路进行处理,输出稳定的波形。仿真电路如图5所示。该系统很好地实现了波形数据的读取。

VerilogHDL


VerilogHDL


3、结束语
本文在FPGA开发平台上,基于DDS工作原理,用VerilogHDL语言设计并实现了DDS直接频率合成,经过D/A转化和外加滤波整形电路处理波形数据,输出频率可调的正弦波。可以作为信号源使用。具有较好的实用价值。
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分