电子科技大学电子工程学院 四川理工学院自动化与电子信息学院 彭 昭
电子科技大学电子工程学院 胡进峰
基于FPGA的直接数字频率合成器的优化设计
电子科技大学电子工程学院 四川理工学院自动化与电子信息学院 彭 昭
电子科技大学电子工程学院 胡进峰
介绍了DDS的基本工作原理,针对传统DDS存在的主要问题,提出了基于流水线结构的累加器和基于波形对称的ROM优化设计,并在开发软件Quartus II上仿真,验证了优化设计的正确性。不仅提高了系统的运算速度,而且也节省了硬件资源。
FPGA;DDS;流水线结构;仿真
随着科技的飞速发展,对信号发生器的要求越来越高,传统分立式模拟电路来难满足[1]。直接数字频率合成法(Direct Digital Frequency Synthesis简称DDFS或DDS)具有频率稳定度高、分辨率高、切换时间短、相位变化连续、易于实现各种数字调制、集成度高等特点,能很好的满足各种需求[2]。
因此,DDS技术在通信、雷达、电子对抗、仪器测试等领域都有广泛的应用。专用DDS芯片在控制方式、频率控制等方面不灵活,很多时候不能满足系统的要求,利用FPGA来设计符合自己需要的DDS系统就是一个很好的解决方法。
DDS是利用数字相位累加产生线性变化的数字相位输出信号,通过波形数据查找表,获得对应于相位信号的数字化幅度信号,再通过数模转换器(DAC)获得模拟信号输出[3]。一个基本的DDS系统由基准时钟fclk、相位累加器、相位/幅值查找表(ROM)、数模转换器(DAC)及低通滤波器(LPF)组成,如图1所示。
图1 DDS原理框图
图3 优化的ROM结构框图
工作原理:预先在ROM中存入所需波形的幅度编码,每来一个时钟信号,N位的相位累加器将频率控制字K累加,同时累加器输出序列的高M位去寻址相位/幅值查找表,得到一系列离散的幅度编码(Y位)。该幅码经数模转换后得到模拟的阶梯电压,再经低通滤波器平滑后,就可得到所需要的波形信号。
DDS的输出信号频率fout=K·fclk/2N,频率分辨率为Δfout=foutmin/2N,实际最高输出频率取foutmax=fclk×40%,相对带宽为foutmax/foutmin=2N×40%。
传统DDS结构的运算速度受相位累加器运算速率的限制,输出频率分辨率受相位/幅值查找表(ROM)存储容量的限制。大多数情况下频率控制字的位数都为20位以上,而传统DDS结构的相位累加器是采用一级式全加器和寄存器实现的。多位数的加法计算是由低到高串行进行的,这样会因为位数多而影响计算速度。传统DDS结构的相位/幅值查找表(ROM)是没有经过优化设计,而是直接将波形的采样数据放入ROM,这样会占用很大的空间,而硬件资源是有限的。
相位累加器是DDS的关键部件之一,它的运算速度直接影响DDS的运算速度。为了改进传统DDS结构因频率控制字位数多而带来的计算速度问题,采用DSP芯片设计中的流水线结构,并在每级流水线中设计了反馈电路,形成了累加流水线工作状态。将32位频率控制字的相位累加器采用4级流水线结构实现,每级8位,原理如图2所示。
图2 32位4级流水线结构累加器框图
32位流水线累加器共4级锁存,4级加法。第1级锁存用于存储并稳定32位输入数据,中间每一级8位加法器均搭配一级寄存器,这样可以减少毛刺。由流水线的原理可知,该累加器的整体速度取决于8位加法器。这样整体计算速度比传统的速度就提高了3倍。
由于QUARTUSⅡ软件中提供了参数化的宏功能模块库(LPM),通过改变LPM中模块的某些参数,可以达到设计的要求,所以LPM是提高电路设计的一种有效方法[4]。本设计中,相位累加器的各级加法器均调用参数化模块库中的LPM_ADD_SUB模块,形成四级流水线工作状态,并在每一级流水线中插入几个寄存器来提高系统的数据吞吐率。
根据波形的对称性,可以对采样波形数据的存储进行优化,以便节省ROM空间。以正弦波为例,在[0,π]区间内其波形是关于π/2对称的,因此其[π/2,π]区间内的波形可以通过对[0,π/2]的波形关于π/2进行翻转得到;同理[π,2π]区间内的波形可以通过对[0,π]的波形关于横轴翻转得到。所以实际上ROM只需要存储[0,π/2]内的正弦函数值,通过适当控制即可实现输出一个完整周期的正弦函数值,从而大大减小存储器的大小。优化的ROM结构框图如图3所示。
图4 优化设计后的DDS仿真波形图
图5 优化后ROM输出正弦函数值仿真结果
首先将相位寄存器输出的高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文件。
通过FPGA的开发软件Quartus II,将编译综合后的DDS设计文件用软件自带的仿真器进行仿真,仿真波形如图4所示,通过仿真波形验证了设计是正确的。利用Quartus II自带嵌入式逻辑分析仪Signal Tap II采集ROM输出的数据所形成的波形,如图5所示。从输出波形可以验证设计的正确性。
本文通过构建流水线结构的相位累加器和波形存储表ROM的优化设计,改善了DDS传统机构的所存在的两个主要问题。设计调用QUARTUSⅡ软件中提供了参数化的宏功能模块库(LPM),对设计过程进行了详细的描述,并仿真验证了优化设计的正确性。经实验测试,在QUARTUS II环境下选取同一种器件,采用优化后的DDS设计方法,不仅提高了工作频,而且大大节省了资源。
[1]刘凌,胡永生译.数字信号处理的FPGA实现[M].北京:清华大学出版社,2003,5.
[2]陈风波,冒燕,李海鸿.基于FPGA的世界数字频率合成器设计[J].微计算机信息,2006,22(5):197-199.
[3]邹彦,庄严等.EDA技术与数字系统设计[M].北京:电子工业出版社,2007,4.
[4]潘松,王国栋.VHDL实用教程[M].成都:电子科技大学出版社,2001,3.
Direct digital frequency synthesizer based on FPGA optimization design
Peng Zhao1,2Hu Jinfeng1
(1.University of Electronic Science and technology,college of Electronic Engineering,Chengdu Sichuan,611731,China;2.Sichuan University of Science and Engineering,college of automation and electronic information,Zigong Sichuan,643000,China)
The basic principle of DDS was introduced.In the light of traditional DDS problems,is proposed based on pipeline structure of the accumulator and based on waveform symmetry ROM optimization design,and in the development of software Quartus II simulation,verif i ed the correctness of design optimization.Not only improves the operation speed of system,but also can save hardware resource.
FPGA;DDS;Pipeline structure;Simulation
彭昭(1982—),男,四川自贡人,实验师,主要从事信息与信号处理方面的研究。