您的当前位置:首页正文

基于Verilog HDL的DDS设计

2021-07-27 来源:好走旅游网
维普资讯 http://www.cqvip.com

·96· 长江大学学报(自科版)理工卷2007年12月第4卷第4期 Journal of Yangtze University(Nat Sci Edit)Sci&Eng V Dec.2007 。一rvo 基于Verilog HDL的DDS设计 王军海 (武汉理工大学自动化学院,湖北武汉430063) [摘要]阐述了直接数字频率合成器(DDS)的原理与设计,利用Verilog HDL硬件描述语言实现了DDS 功能,在Modelsim中完成了仿真。并最终经过了FPGA的验证。 [关键词]DDS;加法器;Verilog HDL;FPGA [中图分类号]TN74 [文献标识码]A [文章编号]1673—1409(2007)04一N096—03 随着数字电子技术的迅猛发展,集成电路设计逐步趋向于系统级、模块化设计方向发展 ¨。运用 Verilog HDL可以很好的解决大规模集成电路的实现。直接数字频率合成器(DDS)是通讯系统中常用的 部件,还可以作为很有用的信号源。采用Verilog HDL不仅可以完成DDS的设计输入、设计验证、测试生 成、故障分析和模拟、定时分析或校验以及原理图的自动生成等任务,而且还可以在不同的FPGA器件之 间实现下载固化以及功能扩展 。 。笔者利用Verilog HDL硬件描述语言实现了DDS功能。 1 DDS的基本原理 DDS的基本原理是利用采样定理,通过查表法产生波形。DDS的结构有很多种,其基本电路原理 如图1所示。 图1 DDS原理框图 相位累加器由N位加法器与N位累加寄存器级联构成。每来一个时钟脉冲CLK,加法器将频率控 制字DATA与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。 累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使加法器 在下一个时钟脉冲的作用下继续与频率控制字相加。这样相位累加器在时钟作用下,不断对频率控制字 进行线性相位累加。由此可以看出,相位累加器在每~个时钟脉冲输入时,把频率控制字累加一次,相 位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。用相位 累加器输出的数据作为波形存储器(ROM)的相位取样地址,这样就可把存储在波形存储器内的波形 抽样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器的输出送到D/A转换器, D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。低通滤波器用于滤除不 需要的取样分量,以便输出频谱纯净的正弦波信号。 2 DDS的设计与实现 DDS的组成形式如图2所示。图2中波形数据存储器的全部数据被读出一次的频率为: ,= fCLK× … [收稿日期]2007—09—12 [作者简介]王军海(1978一)。男,2000年大学毕业。硕士生,现主要从事嵌入式控制方面的研究工作。 维普资讯 http://www.cqvip.com

第4卷第4期 王军海:基于Verilog HDL的DDS设计 · 97 · 式中,f为波形数据存储器输出信号的频率; LK为系统的时钟频率; 为地址加法器的数据宽度; DA 为频率数据。 DATA 图2 DDS的组成形式 考虑到波形数据的精度,取 =10,则m一 =15—10=5, ATA=32—1=31,可以得到厂的最 高频率为9.3kHz。在设计中取DATA的位宽为5,地址加法器的位宽为l1,系统的时钟频率为 10MHz。整个系统可由3个模块组成:地址加法器模块(FULLADDER module)、异步复位D型触发 器模块(R—SDFF module)、分频器模块(DIV—CLK module)。 按照Verilog HDL自上向下的设计原则,系统的顶层模块描述为: module DDS(RESET,CLK,DATA,D0UT,MCLK); input CLK.RESET; input [4:O]DATA output [10:o-I DOUT, output MCLK; wire [10:o-I SUM; wire DIV—CLKI FULLADDER U1(DATA。D0UT,SUM)I RSDFF U2(RESET,SUM,DIV—CLK1,DOUT), DIVCLK U3(RESET,CLK,DIV—CLK1), assign MCLK=DIVCLK1; endmodule MCLK用于为波形存储器提供时钟。分频器模块描述为: module DIVCLK(RESET,CLK,DIV—CLK1); input RESET.CLK: output DIVCLK1; reg E3:O]Q, always@(posedge CLK or negedge RESET) if(!RESET) Q<=0; else if(Q==9) Q<=0; else Q<=Q+1; assign DIVCLK1=~Q[3]; endmodule 维普资讯 http://www.cqvip.com

·98· 长江大学学报(自科版)理工卷 2007年12月 系统的地址加法器模块由10个全加器与一个无进位的加法器组成。全加器的Vefn d ilog HDL描述代码为: O module FADDER (A,B.CYIN,SUM.CYOUT); input A,B,CYg g 龇IN; n n  output SUM,CY—OUT; SUM—A B CYIN; CYOUT一(A&B)l(A&CYIN)1(B&CYIN); 3仿真试验 为了验证系统是否能够满足设计的要求,编写了测试向量(Test Bench)文件在Modelsim中进行 编译、调试与前仿真。仿真结果如图3所示。 踊3仿真结袋圈 从图3中可以看出,波形存储器的地址变化是连续的,这样就可以保证生成波形的精度。DOUT 所增长的步长为“31”,每个步长的时间为lOOns(仿真脉冲周期T—10ns),这样DOUT增加到最大 值7FF(十六进制)共需要约66步 系统输入时钟为10MHz,故所设计的DDS最大输出频率为 15151Hz,最小输出频率约为488Hz,误差均在理论值内(488.3~15.137kHz) 前仿真通过后,将在 Quartus 1I编译综合后生成的pof文件通过下载电缆下载到Altera公司的FPGA FI EX10K10芯片上做 验证(由予波形的一个周期就是波形数据最高bit位变化的周期,故可以通过观察DOUT El5]的变化 来检验DDS的效果),其结果与在Modelsim中仿真的结果一致。 4结 语 基于Verilog HDL的直接数字频率合成器能够实现比较复杂的调频、调相和调幅等功能,具有良 好的实用性。就合成信号质量而言,专用DDS芯片由于采用特定的集成工艺,内部数字信号抖动很小, 可以输出高质量的模拟信号。基于Verilog HDL的DDS也能输出较高质量的信号,虽然达不到专用 DDS芯片的水平,但信号精度误差在允许范围之内。随着这种频率合成技术的发展,其应用前景相当 的可观,现已广泛应用于通讯、导航、雷达、遥控遥测、电子对抗以及现代化的仪器仪表工业等领域。 [参考文献] [1]周立功。夏字闻.单片机与CPLD综合应用技术[M]、jE京:jE京航空航天大学出版社,2003. [2]夏宇闻.复杂数字电路与系统的Verilog HDL设计[M3.jE京t j£京航空航天大学出版社,1998. I3]夏宇闻.Verilog数字系统设汁教程[M].北京:北京航空航天大学出版社,2003. [4]Palnitkar S Verilog HDL数字设计与综合[M].夏宇闻等译.北京:电子工业出版社,2004. [编辑] 洪云飞 

因篇幅问题不能全部显示,请点此查看更多更全内容