1、简易DDS频率合成器设计第一章 系统分析与设计方案1.1 DDS设计原理介绍 DDS即Direct Digital Synthesizer数字频率合成器,是一种基于全数字技术,从相位概念出发直接合成所需波形的一种频率合成技术,是一种新型的数字频率合成技术。具有相对带宽大、频率转换时间短、分辨力高、相位连续性好等优点,很容易实现频率、相位和幅度的数控调制,广泛应用于通讯领域。1.2直接数字式频率合成器(DDS)的基本结构直接数字式频率合成器(DDS)是从相位概念出发直接合成所需波形。其电路一般包括基准时钟、频率累加器、相位累加器、相位调制器、同步寄存器、正弦ROM查找表,D/A转换器。基本结构如
2、图1所示。图1 直接数字式频率合成器(DDS)的基本结构1.3基本DDS结构的常用参量计算1.3.1 DDS的输出频率fout 。 Fout=(FWfclk)/ 2N fclk1=50KHZ,FW=1,n=8,则Fout =195.3125HZ。 fclk1=500KHZ,FW=1,n=8,则Fout =1.953KHZ。1.3.2 DDS产生的相位。 (PW2)/2N1.3.3 DDS的频率分辨率。 Fout=fclk/2N1.3.4 DDS的频率输入字FW计算。 FW=2N(fout/fclk)1.4 DDS的工作原理1.4.1相位累加器与频率控制字FW每来一个时钟脉冲fclk,N位加法器
3、将频率控制字FW与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的输入端。累加寄存器一方面将在上一时钟周期作用后所产生的新的相位数据反馈到加法器的输入端,使加法器在下一时钟的作用下继续与频率控制字FW相加;另一方面将该值作为存储器的地址输出相应的波形数据。最终经D/A转换成所需要的模拟波形。相位累加器在基准时钟的作用下,进行线性相位累加,当相位累加器加满量时就会产生一次溢出,这样就完成了一个周期,此周期即为DDS的频率周期。DDS的输出信号频率:Fout=(FWfclk)/ 2N,通过设定相位累加器的位数和频率控制字可确定输出频率。1.4.2 相位控制字PW 每来一个时钟脉冲f
4、clk,加法器将相位控制器PW与累加寄存器输出的数据相加,把相加后的结果作为波形存储器(ROM)的相位取样地址,这样就可以把存储在波形存储器内的波形取样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器的输出送到D/A转换器,将数字量转换成所要求合成频率的模拟量信号。第二章 软件设计2.1 Verilog HDL程序2.1.1 8位加法器程序代码module adder8(sum,a,b);output sum;input a,b;wire3:0 a; wire3:0 b;wire7:0 sum;assign sum=a+b;end module2.1.2 16位加法器程序代码mod
5、ule adder16(sum,a,b);output sum;input a,b;wire7:0 a; wire7:0 b;wire15:0 sum;assign sum=a+b;endmodule2.1.3 8位寄存器程序代码module reg8(din, q, clk);output7:0 q;input7:0 din, input, clk;reg7:0 q;always (posedge clk) begin q=din;endendmodule2.1.4 16位寄存器程序代码module reg16(din,q,clk);output15:0q;input15:0din;inpu
6、t clk;reg15:0q;always (posedge clk) begin q=din;endendmodule2.1.5 dds代码程序module dds (clk0,fword,pword,fout,pout);output7:0 fout,pout;input7:0 fword,pword;input clk0;wire7:0 lin8b,sin8b;wire15:0 f16b,d16b,din16b;assign f16b15:8=fword;assign f16b7:0=8b00000000;adder16 u1(.a(f16b),.b(d16b),.sum(din16b)
7、;reg16 u2( clk(clk0),.in(din16b),.qout(d16b);rom u3(d16b15:8,fout);adder8 u4(.a(pword),.b(d16b15:8),.sum(lin8b);reg8 u5(.clk(clk0),.in(lin8b),.qout(sin8b);rom u6(sin8b,pout);endmodule2.1.6 ROM的创建 首先选择ROM数据文件编辑窗,即在File 菜单中选择“New”,并在New窗中选择“Other files”项,并选“Memory Initialization File”,点击OK后产生ROM数据文件大小
8、选择窗。这里采用2点8位数据的情况,可选ROM的数据数Number为256,数据宽Word size取8位。点击“OK”,将出现空的mif数据表格,表格中的数据为10进制表达方式,任一数据对应的地址为左列于顶行数之和)。将波形数据填入此表中,完成后在File菜单中点击“Save as”,保存此数据文件。第三章 实验仿真3.1 原理图3.1.1 ROMROM深度256,数据位8位如图2所示图2 ROM深度256,数据位8位3.1.2 八位加法器图3 八位加法器3.1.3 十六位加法器图4 十六位加法器3.1.4 八位寄存器图5八位寄存器3.1.5 十六位寄存器图6十六位寄存器3.2 仿真波形ad
9、der8波形如图3所示图7 adder8波形adder16波形如图4所示图8 adder16波形reg8波形如如图5所示图9 reg8波形reg16波形如图6所示图10 reg16波形rom波形如如图7所示图11 rom波形ddsf1p0波形如如图8所示图12 ddsf1p0波形ddsf2p0波形如如图9所示图13 ddsf2p0波形ddsf8p0波形如如图10所示图14 ddsf8p0波形ddsf32p0波形如如图11所示图15 ddsf32p0波形ddsf1p64波形如如图12所示图12 ddsf1p64波形ddsf1p128波形如如图13所示图13 ddsf1p128波形ddsf1p19
10、2波形如如图14所示图14 ddsf1p192波形3.3 D/A转换电路 图15 DAC0830引脚图 图16 DAC0832的逻辑结构3.3.1 DAC0832结构及工作原理 DAC0832是8分辨率的D/A转换集成芯片。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在电子产品中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。引脚图及主要内部逻辑结构图15、16所示。根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。DAC0832是采用CMOS工艺制成
11、的单片直流输出型8位数/模转换器。如图4-82所示,它由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。,输出的模拟量 与输入的数字量成正比,这就实现了从数字量到模拟量的转换。一个8位D/A转换器有8个输入端(其中每个输入端是8位二进制数的一位),有一个模拟输出端。输入可有28=256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。3.3.2 D/A转换电路模块 ROM中存储数据,采用查表法输出的数字信号经过D/A转换器DAC0832和OP07转换和运放后产生0V到5V之间范围的电压范围。3.4 实验结果实验数
12、据如表1所示FWfoutPW相位fclk1=50KHz1195.3Hz00rad2390.6Hz4781.2Hz641.57rad81.562KHz fclk2=500KHz11.953KHz1283.14rad23,906KHz47.812KHz1924.71rad815.62KHz表1 实验结果表格3.5 调试过程3.5.1对adder8、adder16、reg8、reg16的调试 对这4个部分的调整主要针对仿真波形的参数设定,加法器的end time设定为20us,寄存器设定为10us。且各个仿真波形的时钟要设定统一。且这4个波形的输入变量都设置为10进制,结果便于观察,以上仿真图都验证
13、了结果的正确性。3.5.2. D/A转换电路的调试 其中接电源时用到了+12V、12V,所以对应管脚一定检查清楚,还有最后测输出电压时,DAC0832的数据端都置高时,Vout=5V,当只有最高位接地时Vout=2.5V。3.5.3输出波形的调试 在接开发板之前要做fword,pword,fout,pout的引脚锁定及器件选择。然后做仿真波形,仿真波形无误后再将示波器的输入接上图电路板的输出。观察示波器输出的正弦波形。第四章 心得体会通过此次系统课程设计的学习,掌握了很多EDA课程内容与实际应用结合的知识。这一点也是感触最深的一点,刚开始学习EDA,感觉非常摸不到学习的门路,即使认真听老师讲课
14、了,仍然还是觉得这些新的知识非常难以理解,以前都没有接触过的;但是通过没星期这样长时间系统的实验,觉得知识不是简单的浮于课本上,对EDA课程的认识也变得越来越透明。尤其是对Quartus软件的使用,比之前掌握的更加熟练。软件使用过程中生成模块的不同方法,以及使用过程中该注意的方法都慢慢掌握。同时在做的过程中发现自己很多的问题,尤其是小细节方面,试验过程中自己出现的问题比如有:刚开始用软件的时候总是忘了先建一个工程,以至于自己的工程下很多文件也显得很凌乱,刚开始居然以为同一顶层文件下的不同模块是在不同的工程内,所以导致编译出错;在编写程序的时候字母的大小写没有注意,但错过一次之后就不会再犯这种错误了。还有程序或原理图都弄好后要整体编译;再仿真波形的时候一定要使时钟保持一致,各参数也选择好。第五章 参考文献1.蒋立平编著.数字电路.南京理工大学出版社2.南京理工大学电子技术中心编.EDA设计实验指导书3.付文红、花汉兵编著.EDA技术与实验.机械工业出版社4.王毅评、张振荣编著.VHDL编程与仿真.北京人民邮电出版社5.潘松、黄继业编著.EDA技术实用教程.北京科学出版社6.邹彦编著.EDA技术与数字系统设计.北京电子工业出版社7.谭会生、瞿遂春等编.EDA技术综合应用实例与分析.西安电子科技大学出版社
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1