《EDA设计III-直接数字频率合成器(DDS)设计.docx》由会员分享,可在线阅读,更多相关《EDA设计III-直接数字频率合成器(DDS)设计.docx(27页珍藏版)》请在课桌文档上搜索。
1、干脆数字频率合成器(DDS)设计摘要干脆数字合成(DDS)是一种数字式技术,产生的频率和相位可调输出信号引用到个固定频率时钟源模块的精度数字数据技术。本质上,参考时钟脉冲频率间隔分开一个I)I)S结构提出的二进制限制字.限制字通常是24到48位长,使DDS的实施供应优越的输出频率调谐转别率。在日益竞争成本的今日,高性能,功能与作用相结合,DDS产品正快速地成为除传统的高速频率的模拟合成器解决方法之外的另一种选择。高速,高性能,D/A变换器和DDS结构到单片机(通常是一个完整DDS的解决方法)上的综合使这项技术能锅购准广泛应用,而且在很多场合供应一种替代基F模拟的P1.1.合成器。在很多应用中,
2、运用DDS的解决方案拥有敏捷的特性,相较模拟等效电路锁相环频率合成器它有些独特的优势。DDS优势:微林兹的输出频率和相位调擦功能,这些全部在数字限制卜.完成。极其快的调相输出频率(或者相位),相位频率连续无畸变/使未达到的相关模拟还原时间异样。DDS数字化实现了消退了手工系统谢谐的须要操控和零部件老化和温度模拟合成器解决方法。DDS实现了数字的限制接口,当它在处理器下限制时系统可被遥控的环境变得简单、精确且尽可能完善。当它作为一个相位合成器时,DDS能锅前所未有的匹配来限制I和Q的输出.知字干脆频率合成涔(DDS),随意的波形发生器,频率计SumaryDirectdigitalsynthesi
3、s(DDS)isatechniqueforusingdigitaldataprocessingblocksasameanstogenerateafrequency-andphase-tunableoutputsignalreferencedtoufixed-frequencyprecisionclocksource.Inessence,thereferenceclockfrequencyisudivideddown,inaDDSarchitecturebythescalingfactorsetforthinaPrOgraMnabIebinarytuningword.Thetuningwordi
4、stypically24-48bitslongwhichenablesaDDSimplementationtoprovidesuperioroutputfrequencytuningresolution.Today,Scost-competitive,high-performance,functionally-integrated,andSmallpackage-sizedDDSproductsarefastbecominganalternativetotraditionalfrequency-agileanalogsynthesizersolutions.Theintegrationofah
5、igh-speed,high-perfo11nance,DconverterandDDSarchitectureontoasinglechip(formingwhatiscommonlyknownasaCoinplete-DDSsolution)enabledthistechnologytotargetawiderrangeofKeywordsDirectdigitalsynthesis(DDS),Thegeneratorofarbitrarywaveform,Frequencymeasure书目I、正文4一、设计要求说明4二、方案论证4三、各模块设计原理6I、相位累加器62、建立RoV宏单元
6、73,频率限制与相位限制模块124、动态显示模块155、分频模块186、测频模块207、限制模块22四、总装图23五、编程下载24II、结论25IIK参考文献2526IVx忒验感想I、正文一、设计要求说明I本试脸的内容是运用DDS的方法设计一个随意频率的正弦信号发生器,利用QuartusII完成设计、仿真等工作,并进行硬件测试。1、 基本要求,1) 利用QUartUSIl软件和SmartSOPC试验箱实现DDS的设计。2)利用试验箱上的D转换沿件将ROM输出的数字信号转换为模拟信号,能够通过示波器视察到正弦波形。3) 通过开关输入DDS的频率和相位限制字,可分别对波形的频率和相位进行调整,并能
7、用示波器视察加以5佥证。4) 设计实现一个频率计,可对波形频率加以测量,同时和示波器上显示的须率进行对比,肯定误差不能超过1Hz。2、 扩展要求I1) 设计能输出多种波形(三角波、锯齿波、方波等)的多功能波形发生罂,并能通过开关对各种波形进行转换。2) 当RoM中只存储1/4个波形的时候,也能设计输出完整的波形。3) 可对输出的两路相位差进行测量,并且在数码管上显示。二、方案论证:DDS即DirectDigitalSynthesizer数字合成器,是种新型频率合成技术。具有相对带宽大、频率转换时间短、辨别力嬴、相位连续性好等优点,很简单实现频率、相位和幅度的数控调制,广泛应用于通讯领域。DDS
8、的基本结构如图2.1所示,主要由相位累加器、相位调制器、正弦波数据表(ROM)、D/A转换器构成。相位累加器由N位加法器N位寄存器构成。每来一个时C1.OCK,加法器就将频率限制字fword与累加寄存器输出的累加相位数据相加,相加的结果又反馈送至累加寄存器的数据输入端,以使加法器在下一个时钟脉冲的作用下接若与频率限制字相加。这样,相位累加器在时钟作用下,不断对频率限制字进行线性相位累加。由此可以看出,相位累加器在每个时钟脉冲输入时,把频率限制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加落的溢出频率就是DDS输出的信号频率。用相位累加器输出的数据作为波形存储潜(ROM)的相位取样
9、地址,这样就可把存储在波形存储器内的波形抽样值(二进制编码)经隹找表杳出,完成相位到幅值转换。波形存储器的输出送到D/A转换器,由D/A转换器将数字信号转换成模拟信号输出,DDS信号波程示意图如图2.2所示.由于相位累加器为N位,相当于把正弦信号在相位上的精度定为丫位(N的取值范闹般为2432),所以辨别率为1/2N.若系统时钟频率为FCIk,频率限制字fword为1,则输出频率为Fout=Fclk2N,这个频率相当下“基集”。若fword为B,则输出频率为:F.=B*当系统输入时钟频率Fclk不变时,输出信号频率为频率限制字M所确定。由上式可得:B=2jvx端FClk其中B为频率字,留意B要
10、取整,有时会有误差。选取RoM的地址(即相位累加器的输出数据)时,可以间隔选项,相位寄存器输出的位数M一般取10l6位,这种截取方法称为截断式用法,以削减ROH的容量。M太大会导致ROM容量的成倍一升,面输出精度受D/A位数的限制未有很大改善。图2.2DDS工作流程示意图三、各模块设计原理I1、相位K加器:累加涔由一个全加涔和一个寄存黯构成。从功能上看寄存器即是将输入的数据留存,然后延时个时钟频率后输出。可通过VHD1.语言当中的IF语句实现。所以全加器和寄存器可以通过VHD1.语言集成在一起,形成累加器。在累加的过程中,对频率限制字进行累加,对相位限制字只加一次。整个累加器用VHD1.语言描
11、述如下:累加器libraryieee;useieee.std_logic_1164.all:useieee.stdOgiC.unsigned,al1;entityleijia2isport(elk:instdlogic:adfw:instllogicvector(11downto0);频率跟制字ad_pw:instd_logic_vector(11downto0):收;工result:bufferstd_logic_vector(11downto0):endleijia2;architecturemaxpldofleijia2issignalres:stdlogic_vector(11down
12、to0):beginprocess(elk,adfw,adPW)beginifrising_edge(elk)thenres=ros+ad_fw;resullwmC5aCci!MEgboisbtockV1.WnehMedFt”MgMMarQemgI图3.3图3.56)新建RoY宏单元初始化Inif文件:mif文件有两种生成方式,第一种是FiONew-XkherFiles选中YCinoryInitializationfile之后会生成一个类似Excel的表堆,我们只须要在每个的地址位置上填上相应的数据即可。如图3.6所示。83H2052063201208-.5|*620320420920A7I2
13、042C1624S4856647280889620C21221821E22522B23123723E24424A20C2132192oe21421A2212272202332M24024624CZIB2CF21021621721C21D22222322922922F2302352362323C2422422482492424F21121721E22422A23323723024324924F由于这手工填写的方法特别次时,所以最好的方法就是参照mif文件的格式,用程序或软件自动生成个mif文件,即是所说的其次种方法。在此介绍用C+语言生成ROM数据的方法,下面是产生RoM数据值的C+程序:inc
14、lude-stdio.hWincludemath,h”intnain(intargc,char*argv)(inti=0;doubles=0:or(i=0:K4096:i+)/,生成的波形表个周期4096个点(s=sin(atan(l)*8*i4096);.it.r,sine.nif;运行时要在roBgen.exe文件所在的书.且F生成SinQ.mif文件用记事本打开,加上如下所示的mif文件的头部说明即可:DEPTH=4096;数据个数为-1096个WIDTH=IO;一数据宽度为IobiISADDRESS,RADIx=DEC:-地址以10例旧小DATA_RADIX=HEX:一数据以16进制显
15、示CONTENTBEGINRoN的数据,每个数据必需占用一行I否则会错ENDROM模块为图为:Iomnaddressil.01lnn.ctockql901用相同的方法可实现三角波、裾齿波的ROM。3、频率限制与相位限制模块,频率限制与相位限制一样,均是由一个模100计数黯和一个BCD-二进制码转换器组成。模100计数器输出的是0100的BCD码,通过显示译码器之后可在数码管上显示。把模100计数器输出的BCD码输入BCD-二进制码转换器之后再分别输入到累加器的频率(adfw)s相位限制(ad_pw)端相加,就可实现对频率和相位的调整。1)模100计数器由VHD1.代码实现,具有清零功能,可级联
16、。用VHD1.语言描述如下:一模100计数器libraryieee;useieee.std_logic1164.all:useieee.std_logic_unsigned.al1;ENTITYcntmlOOISPoRT(ci:instd_logic:一进位信号,输入nrcset:instd_logic:一清零信号(异步清零,低位有效输入elk:instd_logic;一时钟信号(下降沿触发),输入co:oulstllogic;一进位信号,输出qh:bufferstd_logicvector(3downto0);岛代,输出qi!bufferstdOgijVeCtOr(3downto0)低位,i
17、li);IXDcntmlOO:ARCHITECTUREbehaveOFcntmlOOISBEGINco)OlSr0;PROCESS(elk,nreset)BEGINII(nreset=,O)THENqh=0000”;ql=*0000*;E1.SIF(elkEVENTANDCIk=0)THENif(ci=)thenif(ql=9)thenql=*0()00*;i(qh=9)thenqh=*OOOO;elseqh=qh+l:endif;elseql*1T6e*q(3OHDifDIf协2tF如IfUtw-l修qCdmOOrBM咐闿卸1.q9CQ2ZH;4、动态显示模块:动太显示模块由两部分构成,是七
18、选限制电路,二是匕段数码管显示详码器7447.理论上给七选一限制电路一个大于50Hz的频率(此处我们给IKHz),由于人眼的视觉暂留效应,我们仍旧可以看到全部数码管均显示。七选限制电路由VHD1.代码实现,通进修改代码,最高可实现八路同时显示。用V川儿语言描述如下:一七选一的限制电路1.IBRARYIEEE;1.Sf-IEEE.STD_1.0GIC_1164.A1.1.:USEIEEE.STD1.OGICUNSIGNED.1.1.:USEIEEE.STD_1.OGIC_ARITH.1.1.;EXTHYSE1.ISPORT(C1.KRSTQINlQIN2QIN3QIN4QIN5QIN6QIN7Q
19、OUTSEI.INININININININININSTDJJ)GIC;STD_1.OGIC;ST1.1.OGICVECTOR(3STD1.OGICVECTOR(3std_logic_vector(3STD_1.OGICVECTOR(3STD_1.OGICVECTOR(3STD1.OGICVECTOR(3STD1.OGICVECTOR(3IX)WNT()DOWNTODOWNTODOWNTODOWNTOI)OWNToDOWNTO0:0:0:OiOi0)0:STD_1.0GIC_VECT0R(3I)OWVro0):OlTSTD_1.OGIC_VECTOR(7D0WM00));Architectire
20、beh,veoiselisbeginPROCESS(C1.K,RST)VARIAB1.ECNTrINTEGERRGI0TO6:BEGINIF(RST=*0,)THENCNT:=O;SElX=00000000”;QoUTW=QIN1;SEI.Q0UT=QIN2;SE1.=wlH1110;WHEN2=X)0UT=QIN3;SEI.Q0T=QlN4;SE1.Q0UT=QIN5:SE1.Q0UT=QIN6;SE1.Q0UT=QIN7:SE1.QOUT=QIN1;SE1.=,U1H11;ENDCASE:ENDIF;ENDPROCESS;ENDBEHAVE;七选一电路集成模块为:SE1.C1.KRSTON
21、130ON23.0QN33OlQN43.O)ON530)ON63.O)XN730QoUlI3SE1.7.q11514动态显示模块组装图为:*田利十IK对V*S6C(41*OG7T11,X动态显示集成模块图为:XlanShiIKHzQN1(3.01QN2(30|QN33.0QNH30QN53.0QN6(301ONTI3.0OG(7.0SEG(7.0动态显示仿真图为(对QlNh2时进行动显洋码):5、分频模块:分频罂由VHD1.编译形成。主要编程思想是,设计个变量:用来计数,变量来的范围由分频数确定,前一半计数范围内使输出为0,后一半计数范圉内使输出为1,即可实现分频,且占空比为50K利用该思想,
22、可轻易地对输入频率进行随意分频。本试验分频器可分出2KHz、IKHz、2Hz、1Hz、IMHZ和0.5Hz的频率。用VHD1.语言描述如下:一分频器libraryieee;useieee.std_logic1164.alI;useieee.s【dlogicunsigned.all;entityfenpinlisport(clk_in,reset:instdOgic:clk_outO,clk_outl,clk-out2,clk_out3,clk_out4,clk-out5:outstdlogic):endfenpinl:architecturestructureoffenpinlisConsli
23、intcouniO:integer:=24000:constantcount1:integer:-48000:constantcount2:integer:=24000000:constantcount3:integer:-48000000;constantCOUnI4:integer:=48;constantcount5:integer:-96000000;begindivideelk:process(elkin,reset)variablen:integerrange0to23999;variablenl:integerrange0to47999;variablen2:integerran
24、ge0to23999999;variable113:integerrange0to47999999;variablen4:integerrange0to47;variablen5:integerrange0to95999999;beginif(resel=f)thenn0:=0;nl:=0;n2:=0:n3:=0;elkoutO;clk_outl=,0;elkoul2=0;clk_out3=0;elk.out4=0;clk_out5=0;elsiffallingedge(elkin)thenif(n(count0/2)thenclk_outO;n0:=n0+l:Isi,(nOcounlO)Oi
25、enclk_outO=1,:nz=n+l;else2KHzr)0:=0;endif;if(nl(count1/2)thenclk_outl=O:nl:=nl+l:elsif(nlcountl)thenclk_outl=1,;nk=nl+l:elsenl:=O;endif;-IKHzif(n2(count2/2)lienclk_out2=,O;n2:=n2+l:elsif(n2count2)thenelkoul2;n2:=n2+l:elsen2:=0;endif;2Hzif(n3(count3/2)thenclk-out3三,O*;n3:=n3+l;elsif(113count3)thenclk
26、_out3=,;n3:=n3+l:elsen3:=0;endif;-IHzif(114(CoUnI4/2)thenclout4=,0,;n4:=n4+l;elsi(n4count4)thenelkOUE=1;n4:=n4+l;elsen4:=0:endif;-IMHzif(n5(count52)thenelkout5=O;n5:=n5+l:clsif(n5count5)thenclk_out5“18”叫叫3皿Pa网”i.*o5“II引PU三ruuuuurjuuwwuuwuun11fuvu1111fumnjuuumnn11mmnnw6、冽领模块:测频模块主要由两部分构成。是模60K(本设计中频率
27、最高为50K)的计数器,二是锁存器。模60K计数器由一个模60的计数器和一个模1000的计数器级联而成,前面已经讲过计数器的设计方法,这里不再赘述。至于锁存器即是将输入延时之后输出,用一个IF语句,条件为上升沿(或下降沿)到来即可实现.锁存器的时钟端输入0.5Hz的频率,同时将0.5Hz频率进行反相延时之后输入模60K计数器的清零端。那么在2秒中之内,有1秒钟计数器在计数,1秒钟计数在清零。同时由于计数器中辘入的05HZ经过反相延时,所以正值计数器清零的时候锁存器将所计的1秒钟的脉冲个数(即是频率)锁存并输出到数码管显示。锁存罂用YHD1.语言描述如下:一锁存器UBRARYIEEE;ISEIE
28、EE.STD_1.OGIC1164.A1.1.:USEIEEE.STD_1.OGICUNSIGNED.A1.1.:ENTITYsuocunISPORT(1.OAD:1NSTD1.OGIC:DIN5;INSTD_1.0GIC_VECT0R(3DOWNTO0);DIN4IlNSTD1.1.QGK1.vECTOR(3DOWNTO0):DIN3:1XSTD_l.OGICVECTOR(3DOWNTO0):DIN2:1XSTD1.OGICVECTOR(3DOWNTO0):DINl:1NSTD_1.OGIC_VECTOR(3DOWNTO0);D0UT5:OUTSTDJX)GlCjECTOR(3DOWXTO0
29、);DoUT4:()1TSW1.tX11CVECTOR(3DOA00):IX)UT3:(H!TSTD1.OGICVECTOR(3DOWMO0);D0UT2:OUTSTD-1.ICJfECTOR(3DOWXTO0);DOUTl:0UTSTD_1.0GIC_VECT0R(3DOWNTo0);END:ARCHITECTlREBEHAVIOROFsuocunISBEGINPROCESS1.OAD,DINI,DIN2,1)1N3)BEGINIF(1.OAD,EVENTAND1.OAD=THEND0UT5=DIN5;DOUT4=DIN4;D0UT3=DIN3;D0UT2=DIN2:douti=dini:E
30、NDIE;ENDPROCESS;ENDBEHAVIOR:测频罂的总装图为:测频罂仿真图为(图中显示频率为49Hz):7、限制模块:在本试验中,由于数码管只有8个,但总共须要9个数码显示,所以须要将它们分开显示,并由一个开关限制。要显示两路正弦波,一路三角波和一路锯齿波,但D/A转换只有两路,所以也须要限制开关对它们进行分开转换。本设计中限制模块依旧由YHD1.语言实现,设计思想大体等同于设计一个单刀双掷开关。当开关为1时输出一路,当开关为。时输出另外一路。两套限制模块设计大体相同,这里以分路进行D/A转换的设计为例,用YHD1.语言实现如下:-ROM限制1.IBRARYIEEE;USEIEEE
31、.STD_1.0GIC1164.1.I.;i:htyRomkongisPORT(RQMlROM2keyKOM);l:XDROMKONG;:IXSTD1.OGICVECTOR(9DOWXTO0);:INSTD_1.OGIC_VECTOR(9DOWNTO0)::INSTD_1.OGIC:()1TSTD_1.OGICVECTOR(9DOWNTO0)ArchitectlrebehaveOFromkongisBEGINPROCESS(key)BEGINIF(key=O)THENR0M=R0M2:E1.SEROMSIMJIlM*IWtfGtmjdIUQViMwdIrEI5m,2_I,qR】q翻,QM,被可
32、利喇种】39,99939332:,:993:U5333。3:。:。-MpZ50X.X.M8三mjvmnM)yn4fJt)mrm333vsnwaA)XVtwinvvn33AHlE33XXIV1113MXHlE33工VIEl33XAHvTnwQSXIVTnWQ:33YEll33IGufrrIWmnW3bxrm何曲区小SghlI&XlElG*S)2A八El,:Xl11uy3JHVrm33aVlEl3U)vnWM,xrrTngej.iE(*3HIEW“)工vp113e).HiEeXXIE33%HiE(*3IHVV11TU”E32、平安设置选择Assignments-Setting,在Device&Pi
33、nOptions中点击UnUSedPinS标签页,设置不用的管脚为三态。3、全程编译选择“Processing”,在其下拉菜单中选择StartCompiIationw进行全程编译。4、下,点击工具栏上的按钮,在HardWareSetUP中点击AddHardWare按钮,选定OK,将HardWareSetupByIeBlasler1.PTl在Program/configure列卜的复选框中打勾后,点击按钮,将电路下载至EDA试验系统的P1.D器件中。下我结束后,实际操作,检查是否达到设计要求。II、结论干脆数字频率综合技术,即DI)S技术,是种新型的频率合成技术和信号产生方法。其电路系统具有较高
34、的频率辨别率,可以实现快速的频率切换,并且在变更时能保持相位的连续,很简单实现频率、相位和幅度的数控调制。DDS在相时带宽、频率转换时间、而辨别力、相位连续性、正交输出以及集成化等一系列性能指标方面远远超过了传统频率合成技术所能达到的水平,为系统供应了优于模拟信号源的性能。DDS是利用采样定理,依据相位间隔对正弦信号进行取样、量化、编码,然后储存在ROM中构成一个正弦皆询表,通过查表法产牛.波形。采样位数越多,波形辨别率越高,波形越清楚。III、参考文献EDA技术及应用主编:王广君杨志方华中科技高校出版社数字电路EDA设计与应用主编:聂小燕鲁才人民邮电出版社NEDA技术及VHD1.主编:蒋小燕东南高校出版社EDA技术主编:刘俊逸华中科技高校出版社ED.A技术与VHD1.电路开发应用实践主编:刘语晓电子工业出版社EDA设计试验指导书3主编:南京理工高校电了技术中心数字逻辑电路与系统设计主编:蒋立平电子工业出版社IV、试验感想通过两周的试脸,每天从早上8:OO到晚上10:00,为r实现自己的设计反复阚阅资料,和同学探讨,调试、修改程序,而不知疲乏。本次