1武汉职业技术学院课程结业论文论文题目:DDS信号源的设计姓名:张高所在院系:电子信息工程学院班级:通信12303班学号:12013582指导教师:虞沧武汉职业技术学院二〇一三年十二月2目录封面……………………………………………1目录……………………………………………2摘要……………………………………………3第一章:操作步骤………………………………4第二章:设计框图………………………………5第三章:各功能的模块程序编译………………9第四章:列出仿真波形…………………………15小结……………………………………………16致谢……………………………………………17参考文献…………………………………………173摘要DDS是一种以全数字从相位概念出发直接合成所需波形的一种频率合成技术。目前使用最广泛的方式是利用高速存储器作查找表,然后通过高速DAC输出已经用数字形式存入的正弦波。包含ds_fen,dds_rom,dds_sins三个模块。广泛应用于通信,雷达,测控,电子对抗以及现代化仪器仪表等领域,是一种为电子测量工作提供符合严格技术要求的电信号设备,和示波器、电压表、频率计等仪器一样是最普遍、最基本也是应用最广泛的的电子仪器之一,几乎所有电参量的测量都要用到信号发生器。综上所述,不论是在生产还是在科研与教学上,信号发生器都是电子工程师信号仿真试验的最佳工具。随着现代电子技术的飞速发展,现代电子测量工作对信号发生器的性能提出了更高的要求,不仅要求能产生正弦信号源、脉冲信号源,还能根据需要产生函数信号源和高频信号源。4第一章操作步骤1.编写DDS--fen、DDS--sin、DDS--rom三个模块的VHDL源代码。见附录。2.代码编译无误后打包保存好。3.做DDS信号源的顶层文件。dds_fen模块根据需要生成的信号频率值,产生对应的时钟信号,是DDS设计的核心部分。clk为系统时钟;clr为清零信号;datain为所需频率值。该模块根据datain提供的频率值,产生对应的后续模块的时钟信号。在后续正弦波产生模块中需要提供的时钟信号为所需频率值的64倍,通过相位累加即可得所需频率。5第二章设计框图(1)dds_fen元件:(1)dds_sin模块实现正弦波地址数据输出dds_sin元件:6(3)dds_rom元件:(4)根据三个模块以及输入输出器件做成DDS信号源顶层文件,如下图DDS信号源顶层文件图DDS信号源外部接口VCCclkINPUTVCCclrINPUTVCCdatain[19..0]INPUTdataout[7..0]OUTPUTWIDTH20SignedIntegerclk_k10000000SignedIntegerParameterValueTypeclkclrdatain[width-1..0]clk_outdds_feninstWIDTH6SignedIntegerdepth64SignedIntegerParameterValueTypeclkclrq[width-1..0]dds_sininst1addr6SignedIntegerwidth8SignedIntegerParameterValueTypeclkaddress[addr-1..0]dataout[width-1..0]dds_rominst27端口说明clk:系统时钟clr:清零信号datain[19..0]:设定频率值dataout[7..0]:频率输出4、锁引脚,如下所示clk:N2clr:N25datain:N26、P25、AE14、AF14、AD13、AC13、C13、B13、A13、N1、P1、P2、T7、U3、U4、V1、V2dataout:D25、J22、E26、E25、F24、F23、J21、J208上图为时钟引脚和开关引脚下图为扩展端口引脚5、完成顶层文件设计,锁好引脚并编译通过后,保存文件,连接DE2开发板。在全程编译通过的后下载到DE2,扩展端口GPIO_0[7]~GPIO_0[0]外接D/A变换后在电脑上观察波形。9第三章模块程序编译DDS--fen模块的VHDL源代码LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYdds_fenISGENERIC(WIDTH:INTEGER:=20;clk_k:INTEGER:=10000000);PORT(clk,clr:INSTD_LOGIC;datain:INSTD_LOGIC_VECTOR(WIDTH-1DOWNTO0);clk_out:OUTSTD_LOGIC);END;ARCHITECTUREoneOFdds_fenISSIGNALq:INTEGERRANGE0TOclk_k;SIGNALdata_c:STD_LOGIC_VECTOR((WIDTH-1+6)DOWNTO0);SIGNALclk_out_c:STD_LOGIC;BEGINdata_c=datain&”000000”;10PROCESS(clk,clr,datain)BEGINIFclr=’1’THENq=0;ELSIFclk’EVENTANDclk=’1’THENIFqclk_k-CONV_INTEGER(data_c)THENq=q+CONV_INTEGER(data_c);clk_out_c=’0’;ELSEq=0;clk_out_c=’1’;ENDIF;ENDIF;ENDPROCESS;clk-out=clk_out_c;END;DDS--sin模块的VHDL源代码LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;11ENTITYdds_sinISGENERIC(WIDTH:INTEGER:=6;depth:INTEGER:=64);PORT(clk,clr:INSTD_LOGIC;q:OUTSTD_LOGIC_VECTOR(WIDTH-1DOWNTO0));END;ARCHITECTUREoneOFdds_sinISSIGNALq1:INTEGERRANGE0TO(depth-1);BEGINPROCESS(clk,clr)BEGINIFclr=’1’THENq1=0;ELSIFclk’EVENTANDclk=’1’THENIFq1(depth-1)THENq1=q1+1;12ELSEq1=0;ENDIF;ENDIF;ENDPROCESS;q=CONV_STD_LOGIC_VECTOR(q1,WIDTH);ENDDDS--rom模块的VHDL源代码LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYdds_romISGENERIC(addr:INTEGER:=6;width:INTEGER:=8);PORT(clk:INSTD_LOGIC;address:INSTD_LOGIC_VECTOR(addr-1DOWNTO0);dataout:OUTSTD_LOGIC_VECTOR(WIDTH-1DOWNTO0));13END;ARCHITECTUREoneOFdds_romISSIGNALq:INTEGERRANGE0TO63;SIGNALd:INTEGERRANGE0TO255;BEGINq=CONV_INTEGER(address);PROCESS(clk)BEGINCASEqISWHEN00=d=255;WHEN01=d=254;WHEN02=d=252;WHEN03=d=249;WHEN04=d=245;WHEN05=d=239;WHEN06=d=233;WHEN07=d=225;WHEN08=d=217;WHEN09=d=207;WHEN10=d=197;WHEN11=d=186;WHEN12=d=174;WHEN13=d=162;WHEN14=d=150;WHEN15=d=137;WHEN16=d=124;WHEN17=d=112;WHEN18=d=99;WHEN19=d=87;14WHEN20=d=75;WHEN21=d=64;WHEN22=d=53;WHEN23=d=43;WHEN24=d=34;WHEN25=d=26;WHEN26=d=19;WHEN27=d=13;WHEN28=d=8;WHEN29=d=4;WHEN30=d=1;WHEN31=d=0;WHEN32=d=0;WHEN33=d=1;WHEN34=d=4;WHEN35=d=8;WHEN36=d=13;WHEN37=d=19;WHEN38=d=26;WHEN39=d=34;WHEN40=d=43;WHEN41=d=53;WHEN42=d=64;WHEN43=d=75;WHEN44=d=87;WHEN45=d=99;WHEN46=d=112;WHEN47=d=124;WHEN48=d=137;WHEN49=d=150;WHEN50=d=162;WHEN51=d=174;WHEN52=d=186;WHEN53=d=197;WHEN54=d=207;WHEN55=d=217;WHEN56=d=225;WHEN57=d=233;WHEN58=d=239;WHEN59=d=245;WHEN60=d=249;WHEN61=d=252;WHEN62=d=254;WHEN63=d=255;15WHENOTHERS=NULL;ENDCASE;ENDPROCESS;dataout=CONV_STD_LOGIC_VECTOR(d,WIDTH);END;第四章仿真波形得到输出信号波形如下图所示:16通过DE2开发板上的按键来改变频率,获得不同信号的波形小结频率源是电子系统的核心,现代雷达系统、现代通信系统和电子对抗系统对频率源提出越来越高的要求,因此世界各国都十分重视频率合成技术的研究。直接数字频率合成是继直接模拟频率合成技术和锁相环式频率合成技术之后的第三代频率合成技术,具有频率分辨率高、频率切换速度快、相位噪声低、频率稳定度高和全数字化等优点。本次实验操作在理论研究的基础上进行了DDS信号源的设计和实现。通过此次的课题,掌握了制作波形技术的的原理及设计要领,学习并掌握了可编程逻辑电路的设计,掌握了DE2的安装应用,受益匪浅,为我今后的学习和工作奠下了坚实的基础。17致谢本门课程结束之际,特别感谢虞沧老师的细心教导,让我对电子设计自动化有了一个初步的了解。另外,感谢同学们在学习时给与我的指导和帮助。参考文献EDA技术与实践教程宋烈武电子工业出版社参考网站