dds直接数字频率合成器电类实验报告Word格式文档下载.docx
《dds直接数字频率合成器电类实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《dds直接数字频率合成器电类实验报告Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
DirectDigitalFrequencySynthesizerisatechnologybasedonfullydigitaltechnique,afrequencycombinationtechniquesynthesesarequiredwaveformfromconceptofphase.
ThisreportdescribestheDigitalFrequencySynthesizercomponents,theuseofthesoftwareandSmartSOPCQuartusIIexperimentalbox,withprogrammablelogicdevicetoachievethedesiredgoaloftheexperiment,canbeexchanged,frequencymeasurement,thefourwaveforms(squarewave,sinewave,sawtooth,trianglewave)switches.Detailsofthecircuitaswellasthebasicprinciplesofcircuitsimulation,andthecompilerprocess.
Keyword:
DirectDigitalFrequencySynthesizercontrolQuartusII
一、实验要求说明
1、实验目的
学习EDA集成工具软件QuartusII的使用;
学习基于可编程逻辑器件的EDA设计流程;
学会基于可编程逻辑器件的电路设计。
2、实验内容
设计一个频率及相位均可控制的具有正弦和余弦输出的直接数字频率合成器(DirectDigitalFrequencySynthesizer简称DDFS或DDS)。
3、实验要求
1.利用QuartusII软件和SmartSOPC实验箱实现DDS的设计;
2.DDS中的波形存储器模块用Altera公司的Cyclone系列FPGA芯片中的ROM实现,ROM结构配置成4096×
10类型;
3.具体参数要求:
频率控制字K取4位;
基准频率fc=1MHz,由实验板上的系统时钟分频得到;
4.系统具有清零和使能的功能;
5.利用实验箱上的D/A转换器件将ROM输出的数字信号转换为模拟信号,能够通过示波器观察到正弦波形;
6.通过开关控制改变DDS的频率和相位控制字,并能用示波器观察加以验证;
7.在数码管上显示生成的波形频率;
8.充分考虑ROM结构及正弦函数的特点,进行合理的配置,提高计算精度;
9.设计能输出多种波形(三角波、锯齿波、方波等)的多功能波形发生器;
10.考虑节省ROM空间的设计,例如只提供四分之一的波形或者半波形。
二、整体电路设计原理
1、基本框图
2、工作原理
DDS的基本结构主要由相位累加器、相位调制器、正弦波数据表(ROM)、D/A转换器构成。
相位累加器由N位加法器N位寄存器构成。
每来一个CLOCK,加法器就将频率控制字fwrod与累加寄存器输出的累加相位数据相加,相加的结果又反馈送至累加寄存器的数据输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。
这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。
由此,相位累加器在每一个时钟脉冲输入时,把频率控制字累加以此,相位累加器输出的数据作为波形存储器的相位取样地址,这样就可把存储在波形存储器内的波形抽样值进行找表查出,完成相位到幅值的转换。
由于相位累加器为N位,相当于把正弦信号在相位上的精度定为N位,所以分辨率为1/2N。
若系统时钟频率为fc,频率控制字fword为1,则输出频率为fOUT=fC/2N,这个频率相当于"
基频"
。
若fword为K,则输出频率为:
fout=K*fC/2N
当系统输入时钟频率fC不变时,输出信号的频率由频率控制字K所决定。
由上式可得:
K=2N*fout/fC
其中,K为频率字,注意K要取整,有时会有误差。
选取ROM的地址时,可以间隔选项,相位寄存器输出的位数D一般取10-16位,这种截取方法称为截断式用法,以减少ROM的容量。
D太大会导致ROM容量的成倍上升,而输出精度受D/A位数的限制未有很大改善。
DDS工作流程示意图:
三、各模块说明
1、分频电路
(1)设计原理
由于SmartSOPC实验系统提供的脉冲为48MHz,因此我们要通过分频电路得到我们所需要的1KHz,1Hz,0.5Hz和1MHz。
分频电路主要是由2分频、3分频、10分频这3种基本分频电路以不同形式组合构成。
(2)电路图如下:
2分频电路图
封装图
从上图可以看出,2分频电路与上周所做EDA2实验中所用2分频电路相同,均
由D触发器构成。
2分频电路波形图
3分频电路图
3分频电路波形图
16分频电路由4个2分频电路串联而成。
由于在之前已经介绍过2分频电路,因此这边就不在赘述。
16分频电路图
16分频电路波形图
10分频电路图
模10计数器电路的波形图
1000分频主要由3个10分频电路相连而成,原理与10分频电路相同。
1000分频电路图
总的脉冲电路图
其封装图如下所示:
48分频电路封装图
2、频率预制和调节电路
(1)设计原理
K为相位增量,也叫频率控制字。
DDS的输出频率表达式为fout=K*fC/2N,当K=1时,DDS输出最低频率(也即频率分辨率)为fc/2N,而DDS的最高输出频率由Nyquist采样定理决定,即fc/2,也就是说K的最大值为2N-1。
因此,只要N足够大,DDS可以得到很细的频率间隔。
要改变DDS的输出频率,只要改变频率控制字K即可。
设计模块时,用74161设计模256模块,1HZ信号输入让其变化。
该模块有清零和保持端,由开关控制,以便计数到需要值时保持或清零。
输出作为频率控制字低八位,高四位置零,输入累加器进行累加。
(a)预制电路图如下:
(b)频率控制:
由频率控制字控制频率的低8位,使频率在0Hz~256Hz间变化,从而达到控制频率的目的
(c)相位控制
由相位控制字控制相位的高4位,使相位较大幅度的变化,从而达到改变相位的目的。
3、累加器
相位累加器由12位加法器与12位寄存器级联构成。
每来一个时钟脉冲,加法器将频率控制字K与寄存器输出的累加相位数据相加,再把相加后的结果送至寄存器的数据输入端。
寄存器将加法器的上一个时钟作用后所产生的相位数据反馈至加法器的输入端,以使加法器在下一个时钟作用下继续与频率控制字进行相加。
这样,相位累加器在时钟作用下,进行相位累加。
当相位累加器累加满量时就会产生一次溢出,完成一个周期性的动作。
(2)原理图如下:
(3)电路图如下:
4、波形存储器
波形存储器(ROM)的原理图如下图所示:
波形存储器(ROM)的原理图
作用:
进行波形的相位—幅值转换。
原理:
ROM的N位地址:
把0°
—360°
的正弦角度离散成具有2N个样值的序列ROM的D位数据位:
则2N个样值的幅值量化为D位二进制数据.所以,波形存储器(ROM)的相位取样地址来自于相位累加器输出的数据.这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。
同时,波形存储器中还可存放不同类种波形的地址,例如正弦波、余弦波、方波、矩形波、锯齿波、三角波等,这些波均可通过后面的D/A
转换器及低通滤波器将数字信号转化为模拟信号从而进行连续信号的输出与恢复。
(1)rom文件的生成
本次实验采用excel表格生成各个函数的数据,并将数据复制至txt中,加上*.mif文件的头部说明生成mif文件。
(2)LPM_ROM的设定
在元器库中选取LPM-ROM,设置ROM的信息,数据宽度为10bits,数据个数为4096;
设置ROM为寄存器输出,不需要时钟和异步清零信号;
指定ROM的初始化数据来源,选择刚刚所生成的mif文件。
然后点击“finish”即可生成ROM单元了。
(4)ROM单元的电路图为:
5、DDS电路
利用LPM_MUX实现波形选择,从正余弦、三角波、锯齿波、方波选择波形输出。
总DDS电路图如下:
6、测频电路
测频就是计算1秒钟内脉冲的个数。
我们利用计数器和锁存器实现这一功能。
由于累加器以频率控制字K为间隔,当累加器满量时就会产生一次溢出,完成一次周期性的动作,这个周期也就是DDS信号的一个频率周期,所以将累加器的最高位作为测频电路技术器的脉冲。
将1HZ的时钟信号二分频,得到0.5Hz.将0.5Hz脉冲送入锁存器的时钟端,0.5Hz反相延时后的脉冲送入计数器的清零端。
这样就使计数器在2s的脉冲周期内,1s内清零,1s内计数。
由于锁存器的脉冲和计数器的脉冲是反相的,且有一定的延时,所以当锁存器有效脉冲来到时,计数器是清零状态,锁存器就锁存前1s内计数器的计数信号。
这样就完成了1s内的脉冲计数,再将锁存器的输出送入译码显示电路,就可以在数码管上显示波形频率了。
(2)原理图如下:
(3)电路图如下:
7、译码电路
(1)设计原理:
频率控制字和相位控制字都是四位的二进制码,要转换成8421BCD码才能在数码管上显示。
因此先通过译码电路实现此转换再输入显示电路。
8、显示电路
因为用的是8位控制字,而实验中只有8位数码管,其中4位用来测频,另外4位用来显示频率或相位字,所以本次实验用到显示复用。
(1)24选12电路
通过开关K控制,选择显示频率字或是相位字
(2)显示电路
(3)将24选12与显示电路组合而成总的显示电路,电路图如下:
9、总电路图:
四、调试仿真及下载
1、调试
先保存,将上述电路以字母输入方式输入并保存在工程文件夹中。
再将文件置顶,最后进行编译,在主菜单中选择processing项,在弹出的对话框中选择Startcomplication键,则编译开始。
在编译过程中,若有任何信息、错误和警告消息,都将显示在自动打开的Message-Compiler窗口中;
若由于文件出错而没有通过,则需要返回原文件进行修改,修改后存盘,再编译直至文件通过。
2、仿真
新建一个“VectorWaveformfile”文件,并在下拉列表中选.vwf扩展名,生成波形文件。
右键单击,在弹出的菜单中选EnterNodesFromeSNF,在弹出的对话框中选择要观测的节点。
选Option\GridSize和Time,设置相应选项,并给输入引脚加上适当的信号。
然后,选保存。
接着选择主菜单中的Simulator项,打开模拟器,点击Start开始仿真
3、下载
(1)在主菜单Assignments中选择Device项,在弹出的对话框中选择相应的器件EP3C25F324C8。
(2)在主菜单Assignments选“Pins”,打开平面布置图编辑器窗口,将设计的电路图中的各输入输出锁定在相应的管脚上。
具体管脚号参见《课程设计参考资料》附录五。
(3)在主菜单选保存文件,再次编译项目,生成.sof文件,以用于下载。
(4)在主菜单Tools选Programmer,在弹出的对话框中单击start,即可完成下载。
(5)要注意在实验的不同阶段,系统板上各短路帽、跳线帽的插拔与否。
五、示波器波形
(1)有相位差得正弦波形:
(2)无相位差得正弦波形:
(3)正余弦信号
(4)三角波波形:
(5)三角波波形:
(6)方波波形:
六、设计感想
1、问题与解决方法
(1)实验中的一个难点是生成ROM表,由于要考虑量化值,所以数据的填写就成了难点,要清楚的了解正弦、方波、三角波、锯齿波的特点。
其次就是生成ROM符号,要注意先建立Mif文件。
实验完了之后仍觉得这部分是整个实验的核心,也是一个很大的难题。
(2)在测频显示上还不完善,只能显示出K=1时的频率,可以将测评显示扩展为5位显示。
(3)在下载到实验箱时,我的频率和相位控制字显示总是不规律的乱跳,检查了原理图及仿真波形都没有问题,最后终于发现在简写输入输出端口时mg[0..3]和mg[]3..0]是不一样的,我在原理图中混乱使用了,所以造成了显示不正常。
2、收获与感受
一开始看到这个题目觉得挺束手无策的,但是经过老师的一番讲解觉得还是挺简单的,再加上自己做数字钟所积累的经验。
果不其然,在实现基本电路的时候,几乎没有遇到什么问题,都是一些小问题,很快就解决了。
但是在做附加电路的时候,问题就开始出现了,比如说做完节省rom的功能后电路所出的波形出现了极其刺眼的高频分量,我无法解决。
跟同学探讨后,不停得放大仿真结果,几乎是到了ns级别来进行毛刺分析,发现是在1021,1022,1023,几个地址的数据出现了问题,但是在更改这几个地址的数据后,问题依然没有得到改善,所以这让我很郁闷,也希望老师能帮助我解决这个问题。
同时我在帮别的同学调试他们的电路时,发现在用选择器的型号时,不同的选择器会出现不同的效果,有些效果很好,有些甚至让D/A芯片不能正常工作,所以我觉得硬件仿真是很有必要的。
所以在做DDS的过程中,我发现用EDA的方式进行仿真真得是很方便,可以直接找出自己的设计问题所在,而不像在用面包板进行仿真,要防止自己粗心或者疲劳时犯下的错误,省下了大量的精力。
当然我也发现了自己的不足,就是对于VHDL语言的不熟悉,我深刻的觉得用语言编写电路,编写逻辑是当今时代的趋势,所以我必须跟上当今世界的发展,这是我此次在DDS设计中所得到的最大感悟。
七、参考文献
1.付文红、花汉兵编著.《EDA技术与实验》.机械工业出版社
2.蒋立平编著.《数字电路》.南京理工大学出版社
3.南京理工大学电子技术中心编.《EDA设计实验指导书》