eda课程设计报告多功能数字钟设计大学论文

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档