EDA实现多功能数字钟课程设计.doc_第1页
EDA实现多功能数字钟课程设计.doc_第2页
EDA实现多功能数字钟课程设计.doc_第3页
EDA实现多功能数字钟课程设计.doc_第4页
EDA实现多功能数字钟课程设计.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

EDA实现多功能数字钟数字电子技术课程设计报告 EDA实现多功能数字钟 专业班级: 姓 名: 学 号: 指导教师: 设计日期:目录一、实验任务1二、关键词 1三、内容摘要 1四、数字钟电路系统组成框图2五、各个功能模块的实现 3(1)小时计时 3(2)分钟计时 3(3)秒钟计时 4(4)校时校分5(5)整点报时6(6)时段控制6六、数字钟的顶层文件7七、下载 8(1)添加译码模块后的原理图8(2)选用芯片8(3)分配引脚号9(4)器件下载9(5)效果显示9八、遇到的问题及解决办法12九、课程设计中设计项目完成最终结论 13十、结束语 13十一、附录14一、实验任务:用FPGA器件和EDA技术实现多功能数字钟的设计已知条件:1、Quartus软件 2、FPGA实验开发装置基本功能:1、以数字形式显示时、分、秒的时间; 2、小时计数器为24进制; 3、分、秒计数器为60进制。拓展功能:1、校时、校分(有两个使能端构成,分别为校时、校分功能,同时按无效) 2、仿电台报时(每个小时的59分51、53、55、57、59分别以四长声一短声进行报时) 3、时段控制(让信号显示灯在晚上19点至早上5点灭。之后亮)二、关键词 小时、分钟计时模块、顶层文件、整点报时、时段控制、下载模块三、内容摘要1、设计要求:(1)小时计数器为8421BCD码24制;分和秒计数器为8421BCD码60进制计数器;(2)拓展功能:校正“时”和“分”;整点报时;时段控制。2、硬件描述语言设计(Verilog HDL语言)方法在Quartus软件系统平台上建立数字电子钟电路的顶层文件并完成编译和仿真。3、输入变量:时钟CPS,直接清零RD;输出变量:小时计时H7.4、H3.0为8421BCD码输出,其时钟为CPH;之后的分计时、秒计时均为8421BCD码输出,其时钟为CPS等。4、在顶层文件中,由若干低层模块“打包”组成整个多功能数字钟,分别对各模块作设计及仿真,最后级联各模块,统调、仿真及下载,从而实现各项功能。四、数字钟电路系统组成框图:秒显示器分显示器时显示器仿电台报时秒译码器分译码器时译码器主时段控制体分计数器秒计数器时计数器电定点闹时路校时电路 拓展电路五、各个功能模块的实现(1)小时计时模块图如下: 对该模块进行编译及波形仿真如下:分析及结论:由仿真图看出,当小时的高四位为0、1时,小时的低四位为九时,在下一个时钟的上跳延来了之后,高四位加一;当小时的高四位为2,同时低四位为3时,小时的高低四位都清零。从而实现0024分的记数功能。仿真波形显示里23小时到00分的循环的过程仿真到位。 对上述仿真波形图进行打包工作,将24进制图建立成模块:(2)分钟计时 模块原理图如下:对该图进行编译及波形仿真如下:分析及结论:分计数器是60进制的。当分钟的高四位0、1、2、3、4时,小时的低四位为九时,在下一个时钟的上跳延来了之后,高四位加一;当分钟的高四位为5,同时低四位为9时,分钟的高低四位都清零。从而实现0059秒的记数功能。Cp60S为向分的进位信号上跳沿有效。仿真波形显示里59秒到00秒的循环的过程,仿真到位。对上述仿真波形图进行打包工作,将60进制图建立成模块:(3)秒钟计时 模块原理图如下:对该图进行编译及波形仿真如下分析及结论:仿真实现0059秒的记数功能。Cp60S为向分的进位信号上跳沿有效。仿真波形显示里59秒到00秒的循环的过程,仿真到位。对上述仿真波形图进行打包工作,将60进制图建立成模块:(4)校时校分模块模块原理图如下对该图进行编译及波形仿真如下分析及结论:由仿真图可以看出,当SWM为0时,用秒时钟CPS对分钟进行校对。当SWH、SWM都不为0时、分钟、小时正常计数。验证了本模块的逻辑功能(5)整点报时模块对该图进行编译及波形仿真如下 由仿真图波形图可以看出,当为59分51秒53秒55秒57秒时,以低音报时,当以59分59秒时以高音报时。验证了本模块的逻辑功能正确。(6)时段控制模块对该图进行编译及波形仿真如下 由仿真图波形图可以看出,从6点到18点,路灯灭,从19点到凌晨5点(包括5点)路灯亮,验证了本模块的逻辑功能正确。六、多功能数字钟的顶层文件部分原理图如下:对该图进行编译及波形仿真如下由仿真波形分析:电子钟走时正常;通过对SWH和SWM的操作,能“校时”“校分”;整点高音低音报时;时段控制路灯的亮灭。七、下载1、添加译码模块后的原理图2、选用芯片3、分配引脚号4、对器件进行下载 在电脑上安装实验板驱动然后下载模块进行验证时钟功能。5、效果显示 校时校分整点报时八、课程设计中遇到的问题及解决办法: (1)在用verilog HDL描述模块时一些语言的理解不是很熟悉也不是很理解的到位,通过查找其他书籍和询问老师才得以理解。(2)模块编译成功了进行仿真的时候有些时候得不到相应的结果,会有错误出现,通过回头检查,发现是自己没有按照操作步骤中的setting进行设置所以得不到相应的仿真图形。(3)在最后的所有打包模块级联的时候,很多相应的细节没有注意,例如,有些管脚需要输入这个管脚而我没有给,还有一些管脚之间的链接,我由于疏忽有些标明是大写,有些标明是小写,因此,联接不成功。后来反复的检查就成功了。(3)在实验板上验证效果的时候在Quartus9.1软件上进行操作,且发现该软件中没有相对应的芯片后咨询老师才知应在更高级版本Quartus11.0中操作。(4)在效果显示上面我一开始的效果是秒钟走时正常,到了分钟该进制它不进制。老师说是级联有问题,经过返回去修改模块、仿真均没有问题。后来就将分钟、时钟的模块换成了用图形仿真进行打包然后级联在进行下载显示效果,效果是成功的。后来也有部分同学也出现了这样的状况,老师好好的看了各模块,原来一些模块有着相应的问题。九、课程设计中设计项目完成最终结论特点: 将我们所学的知识来运用实现具有以二十四小时计时、显示、整点报时、时间设置和时段控制的功能。实用性: 数字电子钟在我们平常生活中很常用,应用比较广泛,而经过我所设计的这款数字钟设计过程也比较简单,通过编程就能达到相应的功能。 心得体会:纵使有很多问题,但最终都被解决了,虽然有的问题是和同学讨论解决的,有些东西是请教老师的但还是很高兴的。在这些错误中也透露了自己对现有数电知识掌握的不牢固,对很多概念仍处于朦胧状态。以及对软件的使用不是很熟悉。因此这些是我以后还需要加强学习的地方。十、结束语通过这次VHDL课程设计,我学到了很多,对于原本掌握的不好的数字逻辑相关知识,在课程设计具体实践中有了很深刻的认识,在对于Quartus的操作上也有很大的提高,增加了操作的熟练程度,现在我已经有信心做任何的设计课题。 在学到新知识的同时,我也认识到了VHDL设计的困难性。同时我也觉得将所学的知识融会贯通的运用到实际操作中还是需要一些更多的锻炼。最后,感谢老师们帮我处理一些解决不了的问题,还要感谢在我思维陷入困境时给予我指点,让我获得灵感的同学们以及来帮助我解决问题的同学,谢谢大家!十一、附录1、分频模块程序module div_zh(f,_500HzOut,_1KHzOut, ncR,CLOCK_50,s); input ncR,CLOCK_50,s; output _500HzOut,_1KHzOut,f; wire _1HzOut,_5HzOut; assign f=s?_5HzOut:_1HzOut; divn #(.WIDTH(26),.N(50000000) u0(.clk(CLOCK_50), .rst_n(ncR), .o_clk(_1HzOut) ); divn #(.WIDTH(17),.N(100000) u1(.clk(CLOCK_50), .rst_n(ncR), .o_clk(_500HzOut) ); divn #(.WIDTH(16),.N(50000) u2(.clk(CLOCK_50), .rst_n(ncR), .o_clk(_1KHzOut) ); divn #(.WIDTH(24),.N(10000000) u3(.clk(CLOCK_50), .rst_n(ncR), .o_clk(_5HzOut) ); endmodulemodule divn(o_clk,clk,rst_n); input clk,rst_n; output o_clk; parameter WIDTH=3; parameter N=6; reg WIDTH-1:0 cnt_p; reg WIDTH-1:0 cnt_n; reg clk_p; reg clk_n; assign o_clk=(N=1)? clk:(N0?(clk_p|clk_n):clk_p); always (posedge clk or negedge rst_n) begin if(!rst_n) cnt_p=0; else if(cnt_p=N-1) cnt_p=0; else cnt_p=cnt_p+1; end always (posedge clk or negedge rst_n) begin if(!rst_n) clk_p=0; else if(cnt_p1) clk_p=1; else clk_p=0; end always (negedge clk or negedge rst_n) begin if(!rst_n) cnt_n=0; else if(cnt_n=N-1) cnt_n=0; else cnt_n=cnt_n+1; end always (negedge clk or negedge rst_n) begin if(!rst_n) clk_n=0; else if(cnt_n1) clk_n=1; else clk_n=0; end endmodule2、译码模块程序module decode4_7 ( input 3:0 indec_0,indec_1,indec_2,indec_3,indec_4,indec_5,indec_6,indec_7, output reg 6:0 dout_0,dout_1,dout_2,dout_3,dout_4,dout_5,dout_6,dout_7);always(indec_0 or indec_1 or indec_2 or indec_3 or indec_4 or indec_5 or indec_6 or indec_7 ) begin case(indec_0) 4h1: dout_0 = 7b111_1001; / -0- 4h2: dout_0 = 7b010_0100; / | | 4h3: dout_0 = 7b011_0000; / 5 1 4h4: dout_0 = 7b001_1001; / | | 4h5: dout_0 = 7b001_0010; / -6- 4h6: dout_0 = 7b000_0010; / | | 4h7: dout_0 = 7b111_1000; / 4 2 4h8: dout_0 = 7b000_0000; / | | 4h9: dout_0 = 7b001_1000; / -3- 4ha: dout_0 = 7b000_1000; 4hb: dout_0 = 7b000_0011; 4hc: dout_0 = 7b100_0110; 4hd: dout_0 = 7b010_0001; 4he: dout_0 = 7b000_0110; 4hf: dout_0 = 7b000_1110; 4h0: dout_0 = 7b100_0000; endcase case(indec_1) 4h1: dout_1 = 7b111_1001; / -0- 4h2: dout_1 = 7b010_0100; / | | 4h3: dout_1 = 7b011_0000; / 5 1 4h4: dout_1 = 7b001_1001; / | | 4h5: dout_1 = 7b001_0010; / -6- 4h6: dout_1 = 7b000_0010; / | | 4h7: dout_1 = 7b111_1000; / 4 2 4h8: dout_1 = 7b000_0000; / | | 4h9: dout_1 = 7b001_1000; / -3- 4ha: dout_1 = 7b000_1000; 4hb: dout_1 = 7b000_0011; 4hc: dout_1 = 7b100_0110; 4hd: dout_1 = 7b010_0001; 4he: dout_1 = 7b000_0110; 4hf: dout_1 = 7b000_1110; 4h0: dout_1 = 7b100_0000; endcase case(indec_2) 4h1: dout_2 = 7b111_1001; / -0- 4h2: dout_2 = 7b010_0100; / | | 4h3: dout_2 = 7b011_0000; / 5 1 4h4: dout_2 = 7b001_1001; / | | 4h5: dout_2 = 7b001_0010; / -6- 4h6: dout_2 = 7b000_0010; / | | 4h7: dout_2 = 7b111_1000; / 4 2 4h8: dout_2 = 7b000_0000; / | | 4h9: dout_2 = 7b001_1000; / -3- 4ha: dout_2 = 7b000_1000; 4hb: dout_2 = 7b000_0011; 4hc: dout_2 = 7b100_0110; 4hd: dout_2 = 7b010_0001; 4he: dout_2 = 7b000_0110; 4hf: dout_2 = 7b000_1110; 4h0: dout_2 = 7b100_0000; endcase case(indec_3) 4h1: dout_3 = 7b111_1001; / -0- 4h2: dout_3 = 7b010_0100; / | | 4h3: dout_3 = 7b011_0000; / 5 1 4h4: dout_3 = 7b001_1001; / | | 4h5: dout_3 = 7b001_0010; / -6- 4h6: dout_3 = 7b000_0010; / | | 4h7: dout_3 = 7b111_1000; / 4 2 4h8: dout_3 = 7b000_0000; / | | 4h9: dout_3 = 7b001_1000; / -3- 4ha: dout_3 = 7b000_1000; 4hb: dout_3 = 7b000_0011; 4hc: dout_3 = 7b100_0110; 4hd: dout_3 = 7b010_0001; 4he: dout_3 = 7b000_0110; 4hf: dout_3 = 7b000_1110; 4h0: dout_3 = 7b100_0000; endcase case(indec_4) 4h1: dout_4 = 7b111_1001; / -0- 4h2: dout_4 = 7b010_0100; / | | 4h3: dout_4 = 7b011_0000; / 5 1 4h4: dout_4 = 7b001_1001; / | | 4h5: dout_4 = 7b001_0010; / -6- 4h6: dout_4 = 7b000_0010; / | | 4h7: dout_4 = 7b111_1000; / 4 2 4h8: dout_4 = 7b000_0000; / | | 4h9: dout_4 = 7b001_1000; / -3- 4ha: dout_4 = 7b000_1000; 4hb: dout_4 = 7b000_0011; 4hc: dout_4 = 7b100_0110; 4hd: dout_4 = 7b010_0001; 4he: dout_4 = 7b000_0110; 4hf: dout_4 = 7b000_1110; 4h0: dout_4 = 7b100_0000; endcase case(indec_5) 4h1: dout_5 = 7b111_1001; / -0- 4h2: dout_5 = 7b010_0100; / | | 4h3: dout_5 = 7b011_0000; / 5 1 4h4: dout_5 = 7b001_1001; / | | 4h5: dout_5 = 7b001_0010; / -6- 4h6: dout_5 = 7b000_0010; / | | 4h7: dout_5 = 7b111_1000; / 4 2 4h8: dout_5 = 7b000_0000; / | | 4h9: dout_5 = 7b001_1000; / -3- 4ha: dout_5 = 7b000_1000; 4hb: dout_5 = 7b000_0011; 4hc: dout_5 = 7b100_0110; 4hd: dout_5 = 7b010_0001; 4he: dout_5 = 7b000_0110; 4hf: dout_5 = 7b000_1110; 4h0: dout_5 = 7b100_0000; endcase case(indec_6) 4h1: dout_6 = 7b111_1001; / -0- 4h2: dout_6 = 7b010_0100; / | | 4h3: dout_6 = 7b011_0000; / 5 1 4h4: dout_6 = 7b001_1001; / | | 4h5: dout_6 = 7b001_0010; / -6- 4h6: dout_6 = 7b000_0010; / | | 4h7: dout_6 = 7b111_1000; / 4 2 4h8: dout_6 = 7b000_0000; / | | 4h9: dout_6 = 7b001_1000; / -3- 4ha: d

温馨提示

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

最新文档

评论

0/150

提交评论