欢迎来到天天文库
浏览记录
ID:58863625
大小:61.00 KB
页数:6页
时间:2020-09-22
《基于FPGA的直接数字频率合成技术设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于FPGA的直接数字频率合成技术设计作者:张华桦 文章来源:国外电子元器件摘要:介绍了利用现场可编程逻辑门阵列FPGA实现直接数字频率合成(DDS)的原理、电路结构和优化方法。重点介绍了DDS技术在FPGA中的实现方法,给出了采用ALTERA公司的ACEX系列FPGA芯片EP1K30TC进行直接数字频率合成的VHDL源程序。直接数字频率合成(DirectDigitalFraquencySyn-thesis即DDFS,一般简称DDS)是从相位概念出发直接合成所需波形的一种新的频率合成技术。它在相对带宽、频
2、率转换时间、相位连续性、正交输出、高分辨率以及集成化等一系列性能指标方面已远远超过了传统频率合成技术。当累加器的N很大时,最低输出频率可达Hz、mHz甚至μHz。也就是说:DDS的最低合成频率接近于零频。如果fc为50MHz,那么当N为48位时,其分辨率可达179nHz。转换时间最快可达10ns的量级,这都是传统频率合成所不能比拟的。但它的不足之处是最高工作频率会受限、噪声和杂波不够理想。本设计采用ALTERA公司的FPGA芯片EP1K30TC-144来实现DDS技术。EP1K30芯片属ALTERA公司的ACE
3、X系列,该系列是ALTERA公司着眼于通信、音频处理及类似场合应用而推出的FPGA器件系列芯片,它采用0.22/0.18微米混合工艺,密度从10000门到门。所有ACEX系列器件均兼容64bit、66MHz的PCI,并支持锁相环电路。ACEX1K采用查找表(LUT)和EAB(嵌入式阵列块)相结合的结构,可用来实现存储器、专用逻辑功能和通用逻辑功能,每个EBA能提供4096比特的存储空间,每个LE包含4个输入LUT、一个可编程的触发器、进位链和一个层叠链。合理运用进位链能够提高系统运行速度。EP1K30TC-144
4、的最大系统门数为,它有1728个逻辑宏单元数和5个嵌入式阵列块,最大可提供2kB的ROM/RAM位,因而可完全满足DDS设计的要求。1 DDS的实现过程图1为DDS系统的基本原理图,图中的相位累加器由N位全加器和N位累加寄存器级联而成,可对频率控制字的2进制码进行累加运算,是典型的反馈电路,产生的累加结果的高M位作为ROM查找表的取样地址值,而此查找表中储存了一个周期的正弦波幅度值。显然,此处存储器ROM可以看作一个从相位到正弦幅值的转换器。这样,用ROM的输出值来驱动DAC,然后经滤波即可转换成所需要的模拟正弦
5、波形;同时N位累加输出又可作为全加器的下一轮数据与频率数据相加,直到相位累加器加满产生溢出,从而完成一个周期,也就是DDS信号的频率周期。2 DDS在FPGA中的实现考虑到本系统的规模以及以后的扩展需要,该系统中的DDS电路采用VHDL硬件描述语言来实现,因为VHDL语言设计的电路模块可以方便地移植到不同的FPGA芯片中。由于硬件原因,本系统的最高频率为100kHz,因此,采用常规设计即可满足要求,但若要应用于高速系统,还要采用一些提高系统运行速度的措施,如采用流水线技术,即在设计中把延时较大的组合逻辑块切割成两
6、块大致相等的组合逻辑块,并在这两个逻辑块中插入触发器,也可通过多个触发器时钟来提高系统速度,还可以采用ALTREA公司的FPGA器件所特有的进位链来设计高速电路。 图2所示为一个具有频率、相位与幅度调制的DDS系统的FPGA组成框图。它的频率调制可以在调谐寄存器与相位累加器之间插入一加法器来实现,频率调制与相位调制有相同的分辨率,因此,频率可以覆盖整个调谐频段。相位调制器可通过在相位累加器后插入一个加法器来实现。幅度调制则是在正弦查找表后插入一个乘法器来实现。该系统具有高精度、高稳定性等特点。2.1ROM查找
7、表的设计ROM查找表在整个设计中是一个比较重要的部分。为了保证波形的平滑,设计时可将一个周期分为1024个点。但是,点数太多时,用文本方式输入可能有很多困难。因此,应当用C语言描述正弦方程式,最后再将其转化为所需的mif文件。以下是其C语言的源程序:main(){inti;floats;for(i=0;i<1024;i++){s=sin(atan(1)*8*i/1024);......2.2DDS主模块设计DDS主模块部分可根据上述原理,采用VHDL来描述,以下是部分源程序:BEGINPROCESS(clk)BE
8、GINIF(clk'eventANDclk='1')THEN\\时钟上升沿触发freqw<=freqin;acc<=acc+freqw;\\开始累加ENDIF;ENDPROCESS;romaddr<=acc(adderwidth-1downtoadderwidth-10);\\累加结果的高11位作为查找表的地址位i_rom:lpm_rom\\调用ROM查找表......
此文档下载收益归作者所有