eda课程设计报告多功能数字钟设计大学论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖北大学物电学院EDA课程设计报告(论文)
题目:多功能数字钟设计
专业班级: 14微电子科学与工程
姓名:黄山
时间:2016年12月20日
指导教师:万美琳卢仕
完成日期:2015年12月20日
多功能数字钟设计任务书
1.设计目的与要求
了解多功能数字钟的工作原理,加深利用EDA技术实现数字系统的理解
2.设计内容
1,能正常走时,时分秒各占2个数码管,时分秒之间用小时个位和分钟个位所在数码管的小数点隔开;
2,能用按键调时调分;
3,能整点报时,到达整点时,蜂鸣器响一秒;
4,拓展功能:秒表,闹钟,闹钟可调
3.编写设计报告
写出设计的全过程,附上有关资料和图纸,有心得体会。
4.答辩
在规定时间内,完成叙述并回答问题。
目录(四号仿宋_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公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL 以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程,解决了传统硬件电路连线麻烦,出错率高且不易修改,很难控制成本的缺点。利用软件电路设计连线方便,修改容易;电路结构清楚,功能一目了然
2 总体设计方案
2.1 设计思路
根据系统设计的要求,系统设计采用自顶层向下的设计方法,由时钟分频部分,计时部分,按键调时部分,数码管显示部分,蜂鸣器四部分组成。这些模块在顶层原理图中相互连接作用
3 设计原理分析
3.1 分频器
分频模块:将20Mhz晶振分频为1hz,100hz,1000hz分别用于计数模块,秒表模块,状态机模块
module oclk(CLK,oclk,rst,clk_10,clk_100);
input CLK,rst;
output oclk,clk_10,clk_100;
reg [32:0]cnt,cnt1,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+1;
else
begin
cnt<=0;
oclk=~oclk;
end
end
always@(posedge CLK or negedge rst) begin
if(!rst)
begin
cnt1<=0;
clk_10<=0;
end
else
if(cnt1<=10000000-1)
cnt1<=cnt1+1;
else
begin
cnt1<=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-1)
cnt2<=cnt2+1;
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);
input 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