基于FPGA的直接数字频率合成器的设计和实现
摘要:介绍了利用Altera的FPGA器件(ACEX EP1K50)实现直接数字频率合成器的工作原理、设计思想、电路结构和改进优化方法。
关键词:直接数字频率合成(DDS) 现场可编程门阵列(FPGA)
直接数字频率合成(Direct Digital Fraquency Synthesis,即DDFS,一般简称DDS)是从相位概念出发直接合成所需要波形的一种新的频率合成技术。
目前各大芯片制造厂商都相继推出采用先进CMOS工艺生产的高性能和多功能的DDS芯片(其中应用较为广泛的是AD公司的AD985X系列),为电路设计者提供了多种选择。然而在某些场合,专用的DDS芯片在控制方式、置频速率等方面与系统的要求差距很大,这时如果用高性能的FPGA器件设计符合自己需要的DDS电路就是一个很好的解决方法。
ACEX 1K是Altera公司着眼于通信、音频处理及类似场合的应用而推出的FPGA器件芯片系列,总的来看将会逐步取代FLEX 10K系列,成为首选的中规模器件产品。它具有如下特点:
(1)ACEX 1K采用查找表(LUT)和EAB(嵌入式阵列块)相结合的结构,特别适用于实现复杂逻辑功能存储器功能,例如通信中应用的数字信号处理、多通道数据处理、数据传递和微控制等。
(2)典型门数为1万到10万门,有多达49152位的RAM(每个EAB有4096位RAM)。
(3)器件内核采用2.5V电压,功耗低,能够提供高达250MHz的双向I/O功能,完全支持33MHz和66MHz的PCI局部总线标准。
(4)具有快速连续式延时可预测的快速通道互连(Fast Track);具有实现快速加法器、计数器、乘法器和比较器等算术功能的专用进位链和实现高速多扇入逻辑功能的专用级连接。
ACEX EP1K50具有典型门数50000门,逻辑单元2880个,嵌入系统块10个,完全符合单片实现DDS电路的要求。因此采用它设计DDS电路,设计工具为Altera的下一代设计工具Quartus软件。
javascript:window.open(this.src);" style="cursor:pointer;"/>
1 DDS电路工作原理
图1所示是一个基于的DDS电路的工作原理框图。
DDS的工作原理是以数控振荡器的方式产生频率、相位可控制的正弦波。电路一般包括基准时钟、频率累加器、相位累加器、幅度/相位转换电路、D/A转换器和低通滤波器(LPF)。频率累加器对输入信号进行累加运算,产生频率控制数据X(frequency data或相位步进量)。相位累加器由N位全加器和N位累加寄存器级联而成,对代表频率的2进制码进行累加运算,是典型的反馈电路,产生累加结果Y。幅度/相位转换电路实质上是一个波形寄存器,以供查表使用。读出的数据送入D/A转换器和低通滤波器。
具体工作过程如下:
每来一个时钟脉冲Fclk,N位加法器将频率控制数据X与累加寄存器输出的累加相位数据相加,把相加后的结果Y送至累加寄存器的输入端。累加寄存器一方面将在上一时钟周期作用后所产生的新的相位数据反馈到加法器的输入端,以使加法器在下一时钟的作用下继续与频率控制数据X相加;另一方面将这个值作为取样地址值送入幅度/相位转换电路(即图1中的波形存储器),幅度/相位转换电路根据这个地址输出相应的波形数据。最后经D/A转换器和低通滤波器将波形数据转换成所需要的模拟波形。
相位累加器在基准时钟的作用下,进行线性相位累加,当相位累加器加满量时就会产生一次溢出,这样就完成了一个周期,这个周期也就是DDS信号的一频率周期。
DDS输出信号的频率由下式给定:
Fout=(X/Y) ×Fclk
假定基准时钟为70MHz,累加器为16位,则Y=2 16=65536
Fclk=70MHz
再假定X=4096,则
Fout=(4096/65536) ×70=4.375MHz
可见,通过设定相位累加器位数、频率控制字X和基准时钟的值,就可以产生任一频率的输出。DDS的频率分辨率定义为:
Fout=Fclk/Y (2)
由于基准时钟一般固定,因此相位累加器的位数就决定了频率分辨率。如上面的例子,相位累加器为16位,那么频率分辨率就可以认为是16位。位数越多,分频率越高。
2 利用FPGA设计DDS电路
在用FPGA设计DDS电路的时候,相位累加器是决定DDS电路性能的一个关键部分,小的累加器可以利用ACEX器件的进位链得到快速、高效的电路结构。然而由于进位链必须位于临近的LAB(逻辑阵列块)和LE(逻辑单元)内,因此长的进位链势必会减少其它逻辑使用的布线资源,同时过长的进位链也会制约整个系统速度的提高。
另一种提高速度的办法是采用流水线技术,即把在一个时钟内要完成的逻辑操作分成几步较小的操作,并插入几个时钟周期来提高系统的数据吞吐率。但是流水线技术比较适合开环结构的电路,要用在累加器这样的闭环反馈的电路中必须谨慎考虑,以保证设计的准确无误。
综合考虑后,相位累加器采用进位链和流水线技术相结合的办法来证明,这样既能保证较高的资源利用率,又能大幅提高系统的性有和速度。
相位/幅度转换电路是DDS电路中的另一个关键部分,设计中面临的主要问题就是资源的开销。该电路通常采用ROM结构,相位累加器的输出是一种数字式锯齿波,通过取它的若干位作为ROM的地址输入,而后通过查表和运算,ROM就能输出所需波形的量化数据。
在FPGA(针对Altera公司的器件)中,ROM一般由EAB实现,并且ROM表的尺寸随着地址位数或数据位数的增加成指数递增关系,因此在满足信号性能的前提条