【摘要】介绍了DDS的基本工作原理,针对传统DDS存在的主要问题,提出了基于流水线结构的累加器和基于波形对称的ROM优化设计,并在开发软件Quartus II上仿真,验证了优化设计的正确性。不仅提高了系统的运算速度,而且也节省了硬件资源。
【关键词】FPGA;DDS;流水线结构;仿真
1.引言
随着科技的飞速发展,对信号发生器的要求越来越高,传统分立式模拟电路来难满足。直接数字频率合成法(Direct Digital Frequency Synthesis简称DDFS或DDS)具有频率稳定度高、分辨率高、切换时间短、相位变化连续、易于实现各种数字调制、集成度高等特点,能很好的满足各种需求。
因此,DDS技术在通信、雷达、电子对抗、仪器测试等领域都有广泛的应用。专用DDS芯片在控制方式、频率控制等方面不灵活,很多时候不能满足系统的要求,利用FPGA来设计符合自己需要的DDS系统就是一个很好的解决方法。
2.DDS的工作原理
DDS是利用数字相位累加产生线性变化的数字相位输出信号,通过波形数据查找表,获得对应于相位信号的数字化幅度信号,再通过数模转换器(DAC)获得模拟信号输出。一个基本的DDS系统由基准时钟fclk、相位累加器、相位/幅值查找表(ROM)、数模转换器(DAC)及低通滤波器(LPF)组成,如图1所示。
工作原理:预先在ROM中存入所需波形的幅度编码,每来一个时钟信号,N位的相位累加器将频率控制字K累加,同时累加器输出序列的高M位去寻址相位/幅值查找表,得到一系列离散的幅度编码(Y位)。该幅码经数模转换后得到模拟的阶梯电压,再经低通滤波器平滑后,就可得到所需要的波形信号。
DDS的输出信号频率fout=K·fclk/2N,频率分辨率为Δfout=foutmin/2N,实际最高输出频率取foutmax=fclk×40%,相对带宽为foutmax/foutmin=2N×40%。
3.DDS的优化设计
传统DDS结构的运算速度受相位累加器运算速率的限制,输出频率分辨率受相位/幅值查找表(ROM)存储容量的限制。大多数情况下频率控制字的位数都为20位以上,而传统DDS结构的相位累加器是采用一级式全加器和寄存器实现的。多位数的加法计算是由低到高串行进行的,这样会因为位数多而影响计算速度。传统DDS结构的相位/幅值查找表(ROM)是没有经过优化设计,而是直接将波形的采样数据放入ROM,这样会占用很大的空间,而硬件资源是有限的。
3.1 基于流水线结构的累加器设计
相位累加器是DDS的关键部件之一,它的运算速度直接影响DDS的运算速度。为了改进传统DDS结构因频率控制字位数多而带来的计算速度问题,采用DSP芯片设计中的流水线结构,并在每级流水线中设计了反馈电路,形成了累加流水线工作状态。将32位频率控制字的相位累加器采用4级流水线结构实现,每级8位,原理如图2所示。
32位流水线累加器共4级锁存,4级加法。第1级锁存用于存储并稳定32位输入数据,中间每一级8位加法器均搭配一级寄存器,这样可以减少毛刺。由流水线的原理可知,该累加器的整体速度取决于8位加法器。这样整体计算速度比传统的速度就提高了3倍。
由于QUARTUSⅡ软件中提供了参数化的宏功能模块库(LPM),通过改变LPM中模块的某些参数,可以达到设计的要求,所以LPM是提高电路设计的一种有效方法。本设计中,相位累加器的各级加法器均调用参数化模块库中的LPM_ADD_SUB模块,形成四级流水线工作状态,并在每一级流水线中插入几个寄存器来提高系统的数据吞吐率。
3.2 ROM查找表的优化设计
根据波形的对称性,可以对采样波形数据的存储进行优化,以便节省ROM空间。以正弦波为例,在区间内其波形是关于π/2对称的,因此其区间内的波形可以通过对的波形关于π/2进行翻转得到;同理区间内的波形可以通过对的波形关于横轴翻转得到。所以实际上ROM只需要存储内的正弦函数值,通(下转第133页)(上接第108页)过适当控制即可实现输出一个完整周期的正弦函数值,从而大大减小存储器的大小。优化的ROM结构框图如图3所示。
首先将相位寄存器输出的高M位总地址分为3部分:最高位作为数据的符号位,实现对数据正负的转换,次高位作为地址的标志位,实现对ROM地址的转换。而剩下的低M—2位通过地址转换器后作为ROM地址位。如果将最高位和次高位合并起来看,它们实质上是构成一个象限选择器,其值从00至11分别代表第1、2、3、4象限。这样只需传统的DDS结构的1/4的存储空间。
用QUARTUSⅡ软件中提供了参数化的宏功能模块库(LPM)来设计,lpm_rom的波形存储表只需要产生数据文件*.mif,然后直接在定制lpm_rom时,添加数据文件即可,但这种方法在FPGA支持内部嵌入式阵列块(EAB)时才可以使用。mif文件是在编译和仿真过程中作为存储器(ROM)初始化输入的文件,有多种方式可以创建mif文件。
4.仿真验证
通过FPGA的开发软件Quartus II,将编译综合后的DDS设计文件用软件自带的仿真器进行仿真,仿真波形如图4所示,通过仿真波形验证了设计是正确的。利用Quartus II自带嵌入式逻辑分析仪Signal Tap II采集ROM输出的数据所形成的波形,如图5所示。从输出波形可以验证设计的正确性。
5.结束语
本文通过构建流水线结构的相位累加器和波形存储表ROM的优化设计,改善了DDS传统机构的所存在的两个主要问题。设计调用QUARTUSⅡ软件中提供了参数化的宏功能模块库(LPM),对设计过程进行了详细的描述,并仿真验证了优化设计的正确性。经实验测试,在QUARTUS II环境下选取同一种器件,采用优化后的DDS设计方法,不仅提高了工作频,而且大大节省了资源。
参考文献
刘凌,胡永生译.数字信号处理的FPGA实现.北京:清华大学出版社,2003,5.
陈风波,冒燕,李海鸿.基于FPGA的世界数字频率合成器设计.微计算机信息,2006,22(5):197—199.
邹彦,庄严等.EDA技术与数字系统设计.北京:电子工业出版社,2007,4.
潘松,王国栋.VHDL实用教程.成都:电子科技大学出版社,2001,3.
作者简介:彭昭(1982—),男,四川自贡人,实验师,主要从事信息与信号处理方面的研究