EDA课程设计报告-多功能数字钟设计
湖北大学物电学院 EDA课程设计报告(论文) 题目:多功能数字钟设计 专业班级:14微电子科学与工程 姓 名:黄山 时 间:2016年12月20日 指导教师:万美琳卢仕 完成日期:2015年12月20 B 多功能数字钟设计任务书 1.设计目的与要求 了解多功能数字钟的工作原理,加深利用EDA技术实现数字系统的理解 2•设计内容 1 ,能正常走时,时分秒各占2个数码管,时分秒之间用小时个位和分钟个位 所在数码管的小数点隔开; 2 ,能用按键调时调分; 3 ,能整点报时,到达整点时,蜂鸣器响一秒; 4,拓展功能:秒表,闹钟,闹钟可调 3•编写设计报告 写出设计的全过程,附上有关资料和图纸,有心得体会。 4 .答辩 在规定时间内,完成叙述并回答问题。 目录(四号仿5R_GB2312加粗居中) (空一行) 1引言1 2总体设计方案1 2.1设计思路 1 2.2总体设计框图2 3设计原理分析3 3.1分频器 4 3.2计时器和时间调节4 3.3秒表模块5 3.4状态机模块6 3.5数码管显示模块7 3.6顶层模块8 3.7管脚绑定和顶层原理图9 4总结与体会11 多功能电子表 摘要:本EDA课程主要利用QuartusII软件Verilog语言的基本运用设计一个多功能数字钟 ,进行试验设计和软件仿真调试,分别实现时分秒计时,闹钟闹铃,时分手动较时,时分 秒清零,时间保持和整点报时等多种基本功能 关键词:Verilog语言,多功能数字钟,数码管显示; 1引言 QuartusII是Altera公司的综合性PLBFP®开发软件,支持原理图、VHDL、Veri I ogHl 以及AHDL (Altera Ffardvare Descri ption Language)等多种设计输入形式,内嵌自有的 综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程,解决了传统硬 件电路连线麻烦,出错率高且不易修改,很难控制成本的缺点。利用软件电路设计连线方 便,修改容易;电路结构清楚,功能一目了然 2总体设计方案 2.1设计思路 根据系统设计的要求,系统设计采用自顶层向下的设计方法,由时钟分频部分,计 时部分,按键调时部分,数码管显示部分,蜂鸣器四部分组成。这些模块在顶层原理图中 相互连接作用 2.2总体设计框图 蜂鸣器 晶振 3设计原理分析 3.1分频器 分频模块:将20Mhz晶振分频为lhz , 100hz,1000hz分别用于计数模块, 秒表模块,状态机模块 module oclk(CLK,oclk,rst,clk_ 10,clk_l 00); CLK,rst; output oclk,clk_10,clk_100; reg [32:0]cnt,cntl,cnt2; reg oclk,clk_ 10,clk_ 100; always @(posedge CLK or negedge rst) begin if(!rst) begin cnt<=0; oclk<=0; end else if(cnt< 10000-1) cnt<=cnt+l; else begin cnt<=0; oclk=〜o elk; end end always @(posedge CLK or negedge rst) begin if(!rst) begin cntl<=0; clk_10<=0; end else if(cntl<=10000000-l) cntl<=cntl+l; else begin cntl<=0; clk_10<二〜clk_10; end end always @(posedge CLK or negedge rst) begin if(!rst) begin cnt2<=0; clk_100<=0; end else if(cnt2<100000-l) cnt2<=cnt2+l; else begin cnt2<=0; clk_100=〜clk_100; end end endmodule 3.2计时器和时间调节 计时模块:检测posedge clk_10并进行计数,同时能调时调分, 最后是整点报时部分 module cni(clk_10,rst,tiaoshi,tiaofen,ge,shi,bai,qian,wan,shiwan,bee); clk_ 10,rst,tiaoshi,tiaofen; output reg[3:0] ge,shi,bai,qian,wan,shiwan,bee; always @ (posedge clk_10 or negedge rst) begin if(!rst) begin ge<=0; shi<=0; bai<=0; qian<=0; wan<=0; shiwan<=0; end else begin if((!tiaofen) else begin if((! tiaofen)qian<=qian+1 ;end if((! tiaoshi) else begin if((! tiaoshi)shiwan<=shiwan+1 ;end else begin if((shiwan==2 )shi<=0;bai<=0;qian<=0;wan<=0;shiwan<=0;end if(ge<9) ge<=ge+l; else begin ge<=0; if(shi<5) shi<=shi+l; else begin shi<=0; if(bai<9) bai<=bai+l; else begin bai<=0; if(qian<5) qian<=qian+l; else begin qian<=0; if(wan<3) wan<=wan+l; else begin wan<=0; if(shiwan<2) shiwan<=shiwan+1; else shiwan<=0; end end end end end end end end end end always @(posedge clk_10) begin if((ge==0) else bee=1; end endmodule 3.3秒表模块 与计时部分类似,总体思想是调整进制和提高信号频率,如下 module miaobiao(clk_100,tm,m6,m5,m4,