南京理工大学DDS实验报告_第1页
南京理工大学DDS实验报告_第2页
南京理工大学DDS实验报告_第3页
南京理工大学DDS实验报告_第4页
南京理工大学DDS实验报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、DDSDDS实验报告第第 页共17页三.波形存储器首先创建一个新的mif文件,将要储存的数据输入进去,点击保存。再创建一个新的ROM,创建过程中选择不同的mif文件即可储存不同的波形。生成的ROM如下:sinrom2aildress11.Oclackinst4四.DDS电路利用LPM_MUX实现波形选择,从正余弦、三角波、锯齿波、方波选择波形输出。总DDS电路图如下:厂|KtiranA-7辰7尸弓讥厂厂|KtiranA-7辰7尸弓讥厂ZI旺二*-5壬ZI-1五分频电路设计原理:脉冲发生电路是为计时器提供计时脉冲的,因为设计的是计时器,所以需要产生1Hz的脉冲信号。EDA实验系统的输入时钟为48

2、MHz,那么要产生1Hz的脉冲信号,则要对输入时钟48MHz进行分频,依次进行48分频、两次1000分频即可得到1Hz的脉冲信号,一次2分频得到0.5Hz。电路图如下::4SMHZresetParameterValuen244SMHz.clk_inclk_out1MHziresetfSv2dk48“reBetinstrSvcjkidooclk_inclk_out:4SMHZresetParameterValuen244SMHz.clk_inclk_out1MHziresetfSv2dk48“reBetinstrSvcjkidooclk_inclk_outinstliKHzresetelkclk

3、.outresetParameterValuen5001Hzresetclk_inclk.outresetParameterValuen500IKHzParameterValuen1RaifHzStpIti(MHzIKHz1Hzinst4iwt2inst4(3)程序代码分频电路用Verilog语言编写,代码如下:modulediv_clk48(clk_in,reset,clk_out);inputclk_in,reset;outputclk_out;regclk_out;regwidth(n)-l:0count;parametern=24;/n为参数,可设置成不同分频always(posedg

4、eclk_in)if(reset)count=0;elseif(count二二n-1)count=0;elsecount0;width二width+1)size二sizel;endendfunctionendmodule六、测频电路设计原理:测频就是计算1秒钟内脉冲的个数。我们利用计数器和锁存器实现这一功能。由于累加器以频率控制字K为间隔,当累加器满量时就会产生一次溢出,完成一次周期性的动作,这个周期也就是DDS信号的一个频率周期,所以将累加器的最高位作为测频电路技术器的脉冲。将1HZ的时钟信号二分频,得到0.5Hz。将0.5Hz脉冲送入锁存器的时钟端,0.5Hz反相延时后的脉冲送入计数器的清

5、零端。这样就使计数器在2s的脉冲周期内,1s内清零,1s内计数。由于锁存器的脉冲和计数器的脉冲是反相的,且有一定的延时,所以当锁存器有效脉冲来到时,计数器是清零状态,锁存器就锁存前1s内计数器的计数信号。这样就完成了1s内的脉冲计数,再将锁存器的输出送入译码显示电路,就可以在数码管上显示波形频率了。原理如下图:七、译码电路(1)设计原理:频率控制字和相位控制字都是四位的二进制码,要转换成8421BCD码才能在数码管上显示。因此先通过译码电路实现此转换再输入显示电路。(2)对应转化如下表:频率控制字kf十进制个位(kfg3.0)十进制十位(kfs3.0)0000(0)0000(0)0000000

6、1(1)0001(1)00000010(2)0010(2)00000011(3)0011(3)00000100010000000101(5)0101(5)00000110(6)0110(6)00000111(7)0111(7)00001000(8)100000001001(9)1001(9)00001010(10)0000(0)00011011(11)0001(1)00011100(12)0010(2)00011101(13)0011(3)00011110(14)010000011111(15)0101(5)0001VHDL程序代码如下:libraryieee;useieee.std_logi

7、c_1164.all;entityyimaisport(pl_kz:instd_logic_vector(3downto0);xw_kz:instd_logic_vector(3downto0);plh:outstd_logic_vector(3downto0);pll:outstd_logic_vector(3downto0);xwh:outstd_logic_vector(3downto0);xwl:outstd_logic_vector(3downto0);endyima;architecturebehaveofyimaisbeginwithpl_kzselectplh=0000when

8、0000,0000when0001,0000when0010,0000when0011,0000when0100,0000when0101,0000when0110,0000when0111,0000when1000,0000when1001,0001when1010,0001when1011,0001when1100,0001when1101,0001when1110,0001whenothers;withxw_kzselectxwh二0000when0000,0000when0001,0000when0010,0000when0011,0000when0100,0000when0101,0

9、000when0110,0000when0111,0000when1000,0000when1001,0001when1010,0001when1011,0001when1100,0001when1101,0001when1110,0001whenothers;withpl_kzselectpll=0000when0000,0001when0001,0010when0010,0011when0011,0100when0100,0101when0101,0110when0110,0111when0111,1000when1000,1001when1001,0000when1010,0001whe

10、n1011,0010when1100,0011when1101,0100when1110,0101whenotherswithxw_kzselectxwl二0000when0000,0001when0001,0010when0010,0011when0011,0100when0100,0101when0101,0110when0110,0111when0111,1000when1000,1001when1001,0000when1010,0001when1011,0010when1100,0011when1101,0100when1110,0101whenothers;endbehave;八、

11、显示电路(1)设计原理:本次实验中用到七位数码显示即七个数码显示管,为控制七个数码管循环点亮,首先设计一个模七计数器,后将其输出经过一个三一八译码器输出位地址,即译码电路7448将输入信号对应的输出信号控制数码管数字的显示,而模块74138译码器选择七个数码管中哪个接受信号。每个数码显示管同步显示需要显示的数字,由于同一时间至点亮一个数码管,用较高的频率来数码管循环显示,利用人眼的视觉惰性,就实现了动态显示功能。2)电路图如下:调试仿真及下载调试先保存,将上述电路以字母输入方式输入并保存在工程文件夹中。再将文件置顶,最后进行编译,在主菜单中选择processing项,在弹出的对话框中选择Sta

12、rtcomplication键,则编译开始。在编译过程中,若有任何信息、错误和警告消息,都将显示在自动打开的Message-Compiler窗口中;若由于文件出错而没有通过,则需要返回原文件进行修改,修改后存盘,再编译直至文件通过。仿真新建一个“VectorWaveformfile文件,并在下拉列表中选.vwf扩展名,生成波形文件。右键单击,在弹出的菜单中选EnterNodesFromeSNF,在弹出的对话框中选择要观测的节点。选OptionGridSize和FileEndTime,设置相应选项,并给输入引脚加上适当的信号。然后,选FileSave保存。接着选择主菜单中的Simulator项,

13、打开模拟器,点击Start开始仿真。下载在主菜单Assignments中选择Device项,在弹出的对话框中选择相应的器件EP1C12Q240C8。在主菜单Assignments选“Pins”,打开平面布置图编辑器窗口,将设计的电路图中的各输入输出锁定在相应的管脚上。具体管脚号参见课程设计参考资料附录五。在主菜单选FileSave保存文件,再次编译项目,生成.sof文件,以用于下载。在主菜单Tools选Programmer,在弹出的对话框中单击start,即可完成下载。要注意在实验的不同阶段,系统板上各短路帽、跳线帽的插拔与否。实验总结本次实验我们还是只用了不到4天的时间设计了一个直接数字频率

14、合成器,相比上星期的EDA难度增加了很多。也许是老师的训练重点变了,上星期重点是熟悉EDA设计的主要工具Quartusll软件,而这星期就应该将重点转入利用这个工具完成设计。这次实验用到了很多以前没接触过的知识,像VHDL语言,本设计里虽然那有几个模块是用VHDL语言编的,但是都是很简单的程序,还是现学的,终于明白了我们所谓的本科大学生对于专业技术还只是略懂一二而已。看来以后要加强自己的专业知识的积淀。同时在分频电路中也是用Verilog语言编写,因为是初学,所以从图书馆借阅了Verilog的相关书籍,在刚开始编写时也会出现各种各样的小错误,但是后来都在老师和助教的帮助下一一解决了。实验中一个

15、难点就是生成ROM表,由于要考虑量化值,所以数据的填写就成了难点,要清楚的了解正弦、方波、三角波、锯齿波的特点。其次就是生成ROM符号,要注意先建立Mif文件。在这个试验开始的第一天中我们只解决了这一个问题。实验完了之后仍觉得这部分是整个实验的核心,也是一个很大的难题。在我们设计的模块中,我们没有设计防抖动开关,所以在后来的频率的调节中,频率跳动太大,对调节数据很不方便。解决的方法可以是设计一个防抖动开关,也可以将频率数据直接接在电路中,这样通过改变电路中的输入频率来达到实验目的。如果以后还有机会,这方面很值得改进。其次,在精度方面我们设计的也不是很全面,由于正弦下半周期的数据可以是上半周期取

16、负数,所以可以压缩数据表提高精度与空间利用率。方波、三角波、锯齿波都可以同理进行压缩。总的来说,设计的大方向上大家都是一样,主要是小的细节的不同,但也就是这些小的细节让整个设计有了很大的变化,因为电路的设计的功能直接关系到在电路箱上的显示与调节,如果没有合理的设计,最终的结果就不是很理想,对用的人来说也不是很方便,会出现各种各样的问题。所以在设计当中应逐步消除各种不同的影响。体会:在这一个星期中,我们通过不断地发现问题、解决问题,学到了很多,收获了很多。记得开始时我们对这个实验充满了疑惑,不知道从何下手,尤其是DDS那块,但后来在老师的耐心指导下,虽然问题还是很多,但一切开始步入了正轨。在后面几天里我们主要解决的问题就是电路的问题,因为首次用语言编写程序,在编译过程中还是存在很多问题,我们根据提示的错误一一改正,最终建立了我们想要的功能模块。在原理图搭建好之后下载到试验箱的过程中也会出现很多问题,所以就要一点一点检查自己的原理图,这是很考验耐心和技巧的时候,在检查时,要逐个模块的检查、调试,有时还要看清管脚,不要接错,和电路中的对应好。尤其是对复杂的图形,更要耐心的看清每一部分。搭建电路图要细心,要是继续在原有图上进行改进时就更要细心了,有时,在初始的设计中有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论