首页 用FPGA实现DDS的设计

用FPGA实现DDS的设计

举报
开通vip

用FPGA实现DDS的设计 图 1 DDS的原理框图 图 2 优化后的 DDS核心框图 用 FPGA实现 DDS的设计 吴曙荣 , 杨银堂 , 朱樟明 (西安电子科技大学 微电子研究所 ,陕西 西安 710071) 摘  要 :主要介绍了直接数字频率合成器 DDS (D irect D igital Frequency Synthesizer,简称 DDS)的原 理和特点 ,研究了用 FPGA实现 DDS的设计方法 ,给出了为提高芯片运算速度、加大输出带宽、减小 芯片面积等而采用的流水线架构、查找表压缩等优化方法。并给出了仿真结果...

用FPGA实现DDS的设计
图 1 DDS的原理框图 图 2 优化后的 DDS核心框图 用 FPGA实现 DDS的设计 吴曙荣 , 杨银堂 , 朱樟明 (西安电子科技大学 微电子研究所 ,陕西 西安 710071) 摘  要 :主要介绍了直接数字频率合成器 DDS (D irect D igital Frequency Synthesizer,简称 DDS)的原 理和特点 ,研究了用 FPGA实现 DDS的设计方法 ,给出了为提高芯片运算速度、加大输出带宽、减小 芯片面积等而采用的流水线架构、查找 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 压缩等优化方法。并给出了仿真结果。 关键词 :流水线 ;直接数字频率合成 ;压缩存储查找表 ;现场可编程门阵列 中图分类号 : TP274    文献标识码 : A    文章编号 : 1671Ο654X (2006) 01Ο0001Ο03 引言 随着科技的发展 ,对信号发生器各方面的要求越 来越高。传统的信号发生器由于波形精度低、频率稳 定性差等缺点 ,已经不能满足许多实际应用的需要 ,所 以必须研究新的信号发生器以满足实际应用的要求。 近年来 ,直接数字频率合成器 (DDS)由于其具有频率 分辨率高、频率变换速度快、相位可连续变化等特点 , 在数字通信系统中已被广泛采用。随着微电子技术的 发展 ,现场可编程门阵列 ( FPGA )器件得到了飞速发 展。由于该器件具有速度快、集成度高和现场可编程 的优点 ,因而在数字处理中得到广泛应用 ,越来越得到 硬件电路设计工程师的青睐。 1 DDS的基本原理 DDS的主要思想是从相位的概念出发合成所需的 波形 ,其结构由相位累加器 ,相位 —幅值转换器 , D /A 转换器和低通滤波器组成 ,是 Tierney, Rader和 Gold 于 1971年提出 [ 1 ]。它的基本原理框图如图 1所示。 图 1中 , fc 为时钟频率 , K为频率控制字 , N 为相 位累加器的字长 , m 为 ROM地址线位数 , n为 ROM的 数据线宽度 (一般也为 D /A转换器的位数 ) , fo 为输出 频率 , 输出频率 f0 由 fC 和 K共同决定 : f0 = fC ×KÞ 2N 。又因为 DDS遵循奈奎斯特 (Nyquist)取样定律 :即 最高的输出频率是时钟频率的一半 ,即 f0 = fC Þ2。实 际中 DDS的最高输出频率由允许输出的杂散水平决 定 ,一般取值为 f0 ≤40% fC。 对 DDS进行优化设计 ,目的是在保持 DDS原有优 点的基础上 ,尽量减少硬件复杂性 ,降低芯片面积和功 耗 ,提高芯片速度等。 2 优化构想 为了减小 DDS的设计成本 , 对其结构进行优化 , 优化后 DDS的核心结构框图如下所示。 其中的地址转换器是根据 adri[ 14 ]的数值判断数值是 增长 (0~π /2)或减少 (π /2~π) ,数据转换器是根据 adri[ 15 ]的数值判断生成波形的前半个周期 (0~π)或 者后半个周期 (π~2π)。 2. 1 流水线结构 将 32位累加器分成 4条流水线 ,每条流水线完成 8位的加法运算 ,流水线的进位进行级联 [ 2 ] , 运用流 水线结构可以提高累加器的运算速度 3倍多。为了提 高运算速度 ,加法器采用的是目前速度最快的预先进 位算法 ;为了避免因预先进位传输链过长而影响速度 ,  收稿日期 : 2005Ο10Ο26    修订日期 : 2005Ο12Ο05  基金项目 :国家重点实验室基金 (51433030103DZ0101)  作者简介 :吴曙荣 (1980Ο) ,女 ,陕西西安人 ,硕士研究生 ,研究方向为可编程混合信号。 第 36卷  第 1期 航 空 计 算 技 术 Vol. 36 No. 1 2006年 1月 Aeronautical Computing Technique Jan. 2006 每 8位加法器由两个 4位加法器实现。如图 3所示 : 采用流水线结构可以提高器件的运算速度。但是缺点 是数据需要保持 4个时钟周期 ,降低了系统跳频的跳 变频率。 图 3 流水线加法器框图 2. 2 加法器最低位的修正 提取相位累加器的高 16位输出作为 ROM的查找 地址 ,输出截位减少了 ROM的容量 ,损失的低 16位对 生成波精度造成的误差可以忽略不计 ;但因此产生的 截位误差却会对频谱纯度和输出带宽产生影响。实验 表明当频率控制字 K和截位误差 2(32 - 16)在为互质数 的情况下可以将影响减到最小。解决的办法是在相位 累加器的最低位加入 c0,相位累加器的字长变为 32 + 1位 ,截位误差为 2 (32 - 16) + 1 ,即频率控制字 (奇数 )和截 位误差 (偶数 )之间互质。这样带来地址上 1 /2LSB的 误差影响 ,但是在实际应用中可以忽略。 2. 3 ROM的压缩 :三角近似法 三角近似法是利用三角恒等式近似的方法对 ROM容量进行压缩 :因为 sin (A +B + C ) = sin (A +B ) cosC + cosA cosB sinC + sinA sinB sinC ,当 A 远大于 B 和 C时 ,则利用三角近似 cosB≈ 1, sinC≈ 0 ,上式可以简 化为 : sin (A +B + C) = sin (A +B ) + cosA sinC 。这样 可以将 ROM转化为两个较小的 ROM ,分别存储 sin (A +B )和 cosA sinC的值 ,这两个 ROM的总容量为 2A (2B + 2C )。从频谱和 ROM容量两方面进行考虑 ,对于 14 位地址的最佳分割是 : A = 5, B = 4, C = 5[ 3 ]。 对 ROM表的压缩 ,是利用相位累加器的次高位来 判断象限 ,将正弦合成波合成到 0~π范围 ;最高位作 为符号位 ,将正弦波合成到 0~2π范围。对于余弦 波 ,符号位是由最高位与次高位异或得到 ,因为余弦波 形比正弦波形提前π /2相位。但是因为正弦函数和 余弦函数关于π /4对称 ,因此可以只存储 (0~π /4)的 正弦和余弦函数值 ,这样存储器大小将减小一半。相 位累加器的次次高位可以在 0~π /4和π /4~π /2之 间选择。实际电路实现时 ,次次高位是与次高位异或 产生这个信号。另外 ,为了完成正交输出 ,还要增加两 个 2: 1多路选择器电路。 3 DDS的 Verilog HDL实现 Verilog HDL语言专门面向硬件与系统设计 ,可以 在芯片算法、功能模块、结构层次、测试向量等方面进 行描述 ,是当前 ASIC设计的主要语言之一。 3. 1 四位超前进位加法器的主要源程序 [ 4 ] : g[ i ] = a[ i ] &b[ i]; p [ i ] = a[ i ] | b [ i ]; always@ ( a or b or gnd or g or p ) begin carrychain[ 0 ] = g[ 0 ] | p [ 0 ] &cin; sum [ 0 ] = p [ 0 ] c^in; for ( j = 4’1; j < 4; j = j + 4’b1) begin carrychain[ j ] = g[ j ] | p [ j ] &carrychain [ j - 1 ]; sum [ j] = p [ j ] c^arrychain[ j - 1 ]; end cout = carrychain[ 3 ]; end 3. 2 流水线加法器阵列及最低位修正的实现 claadd8 s U_add1 (p ipe1, SYNCFREQ [ 7: 0 ] , gnd, add1, c1) ; claadd8 s U _ add2 ( p ipe2, SYNCFREQ [ 15: 8 ] , p ipec1, add2, c2) ; claadd8 s U _ add3 ( p ipe3, SYNCFREQ [ 23: 16 ] , p ipec2, add3, c3) ; claadd8 s U _ add4 ( p ipe4, SYNCFREQ [ 31: 24 ] , p ipec3, add4, c4) ; 在此调用了 8位超前进位加法器 [ 5 ] ,用 Verilog HDL的结构描述方法实现 ,对应于用电路图输入逻 辑。四个加法器在不同的时钟控制下工作 ,实现流水 线结构 ; p ipe1、p ipe2、p ipe3、p ipe4分别为各自加法器的 和 ; SYNCFREQ 是 32 位频率控制字 , gnd、p ipec1、 p ipec2、p ipec3是加法器的输入进位位 , c1、c2、c3、c4是 加法器的输出进位位。 3. 3 波形折叠和抬高算法 3. 3. 1 波形折叠 (地址转换器 ) always@ ( adri) if ( adri[ 14 ] )  adro = 14’h1ff a^dri[ 13: 0 ]; else  adro = adri; end endmodule ·2·                       航 空 计 算 技 术                第 36卷 第 1期 图 4 DDS在 k = 02时的仿真时序图 3. 3. 2抬高算法 (数据转换器 ) always@ ( data or adri[ 15 ] )   begin  if ( ! adri[ 15 ] ) sindata = 9’h1ff d^ata;  else   sindata = data - 9’h001; end result = { ! adri[ 15 ] , sindata}; end 根据 adri[ 14 ]的数值判断地址码是否需对π /2进 行折叠。用 ^(按位异或 )实现对地址码对 π /2的折 叠 :用全 1减去 adri的数值 ,因为被减数是确定的而且 是全 1,所以用异或实现减法 ,比用减法器节省门数。 根据 adri[ 15 ]的数值判断波形的正负 :若是正 ,则 用全 1和从 ROM中取出的值相加 ,相当于原数据减 1 后再在最高位拼接 1,以 1LSB的偏移量为代价 ,省略 减法器 ;若是负 ,则用按位异或实现减法 ,得到经过抬 高处理的数据。抬高处理是为了使 DAC的输入全为 正数。 3. 4 压缩 sin值 ROM查值表 rom1 U _ rom1 (QWAVESIN , MODPHASE , SY2 SCLK , RESETN ) ; rom2 U _ rom2 ( p roduct , QWAVESIN2 , QWAVE2 SIN1 , SYSCLK , RESETN) ; 其中 rom1 是 sin (A + B ) 值的存储表 rom2 是 cosA sinC值的存储表。QWAVESIN是 rom1表的输出 , MODEPHASE是从累加器输出的量化正弦值。p roduct 是 rom2的输出 , QWAVESIN2 , QWAVESIN1分别是 cosA和 sinC的值。再由 9位加法器将 rom1和 rom2 的输出相加 ,就可得到正弦查值表的完整输出。 在 MAX + PLUSII下的正弦查值表的输出如下图 所示。 实验表明 ,所设计的 DDS在满足性能的条件下 , 提高了芯片工作速度 ,节约了芯片面积 ,改善了频谱性能。 4 结束语 本文给出了利用 A ltera 公司的 FLEX10K设计 DDS的方法 ,并得到了一些改进 :使用流水线算法和输 入寄存器可以在不过多增加门数的条件下 ,大幅度提 高芯片的工作速度 ;修正加法器最低位带来 3dB左右 的频谱性能提高 ,提高了输出波形的频谱纯度 ;压缩 ROM的容量 ,可以使芯片在满足性能的基础上节约了 芯片资源。 参考文献 : [ 1 ] D A Sutherland, R A Strauch, S S W harfield. CMOS/SOS Frequency Synthesizer LSI Circuit for Spectrum Communica2 tions[ J ]. IEEE Solid State Circuit, 1984, 19 ( 8) : 497 - 505. [ 2 ] 郭军朝 ,王森章 . 一种高速低功耗直接数字频率合成器 的设计与实现 [ J ]. 微电子学 , 2004. 10 (5) : 572 - 574. [ 3 ] H T N icholas, H Samueli. A 150MHZ D irect D igital Fre2 quency Synthesizer in 1. 25μm COMS with - 90dbc Spurious Sperformance[ J ]. IEEE Solid State Circuit, 1991, 26 (12) : 1959 - 1969. [ 4 ] 夏宇闻. 从算法设计到硬件逻辑的实现 :复杂数字逻辑 系统的 Verilog HDL设计技术方法 [M ]. 北京 :高等教育 出版社 , 2001, 2. [ 5 ] J Bhasker著 ,徐振林等译. Verilog HDL 硬件描述语言 [M ]. 北京 :机械工业出版社 , 2000, 7. Design of a DDS Based on FPGA W U ShuΟrong, YANG Y inΟtang, ZHU ZhangΟm ing (M icroelectron ic Institu te of X id ian U niversity, X i′an 710071, Ch ina) Abstract: This paper described the p rincip le and features of DDS (D irect D igital Frequency Synthesizer) , studied the way to design DDS use FPGA, used p ipeline structures and look - up table comp ression etc methods to raises the chip operation speed, enlarges the bandwidth output, decreases the chip area etc. Finally, give the simulate result. Key words: p ipeline; DDS; look - up table comp ression; FPGA ·3·2006年 1月 吴曙荣 等 :用 FPGA实现 DDS的设计      
本文档为【用FPGA实现DDS的设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_720780
暂无简介~
格式:pdf
大小:335KB
软件:PDF阅读器
页数:3
分类:工学
上传时间:2013-11-24
浏览量:24