首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于FPGA的数字频率合成器设计与实现

基于FPGA的数字频率合成器设计与实现

摘要:为了产生稳定激励信号的目的,采用Verilog硬件语言在FPGA上实现了数字频率合成器的设计,该设计包括累加器、波形存储器、AD转换、低通滤波器等;对累加器、波形存储器都进行了仿真,并下载到FPGA中,经A/D转换,滤波,获得了稳定的正弦激励信号。本设计只实现了正弦信号设计,通过对波形存储器数据改变,可以实现任意波形的输出。
关键词:FPGA;数字频率合成器;信号发生器;VerilogHDL

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

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


    DDS的具体工作过程如图1所示。N位相位累加器由N位加法器和N位累加寄存器组成。每来一个时钟脉冲,N位加法器将频率控制字K与N位累加寄存器输出的累加相位数据相加,并把相加后的结果送至累加寄存器的输入端。累加寄存器一方面将上一时钟周期作用后所产生的新的相位数据反馈到加法器的输入端,使加法器在下一时钟的作用下继续与频率控制字K相加;另一方面将这个值作为取样地址,送入幅度/相位转换电路,使其输出相应的波形数据。最后经D/A转换器和LPF将波形数据转换成所需要的模拟波形。
    相位累加器在基准时钟的作用下,进行线性相位累加,当N位相位累加器累加Ⅳ次后就会产生一次溢出,这样就完成了一个周期,这个周期也就是DDS信号的频率周期。
    DDS模块的输出频率fout是系统工作频率fclk,相位累加器比特数N及频率控制字K三者函数,其数学关系由式(1)给出:
   
    其频率分比率为K/2N。

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

2.2 存储波形信号的ROM的设计

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


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



3 结束语
    本文在FPGA开发平台上,基于DDS工作原理,用VerilogHDL语言设计并实现了DDS直接频率合成,经过D/A转化和外加滤波整形电路处理波形数据,输出频率可调的正弦波。可以作为信号源使用。具有较好的实用价值。
返回列表