搜档网
当前位置:搜档网 › 多功能数字钟设计Verilog语言编写

多功能数字钟设计Verilog语言编写

多功能数字钟设计Verilog语言编写
多功能数字钟设计Verilog语言编写

多功能数字钟设计

院系:电光学院

班级:***

学号: ***

姓名: ***

指导老师:***

时间:2010.4.20.

摘要:利用QuartusII软件设计一个数字钟,利用模块化的程序设计思想,核心

模块均采用Verilog语言编写(译码显示模块采用原理图设计),软件仿真调试编译成功后,再下载到SmartSOPC实验系统中。经过硬件测试,查找软件设计缺陷,并进一步完善软件,最终设计得到较为满意的多功能数字钟。

关键词:QuartusII; 多功能数字钟; 模块化; Verilog; 可编程;

Abstract:Using the QuartusII software design a digital bell with the blocking method.The design takes theory drawing instead of Verilog language.After emluating and debuging successfully,translate and edit the code.Then,download the result to the programmable SmartSOPC system and test it in hardware.Realizing the soul of designing hardware by software.

Keywords:QuartusII; digital bell; blocking method; VHDL; programmable; hardware

目录

设计内容简介 (3)

设计要求说明 (3)

方案论证(整体电路设计原理) (3)

各子模块设计理 (5)

分频模块: (5)

计数模块: (7)

--校准模块程序实现: (8)

--秒计数模块程序实现: (9)

--分计数模块程序实现: (10)

--时计数模块程序实现: (10)

整点报时模块: (12)

闹钟设定模块: (13)

--闹钟调节模块程序实现: (14)

--输出信号选择模块程序实现: (14)

彩铃模块: (15)

译码显示模块: (18)

万年历模块: (19)

--日计数模块程序设计: (20)

--月计数模块程序设计: (23)

--年计数模块程序设计: (23)

--万年历波形仿真结果: (25)

结论: (26)

实验感想: (26)

附图: (27)

设计内容简介

设计一个数字计时器,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、快速较秒等功能。在设计的电路具有上述基本功能的前提下,我又进行了功能扩展:整点报时、闹钟设置、彩铃和万年历功能。(由于时间限制,万年历功能未经硬件测试,仅通过软件层面简单调试仿真)

设计要求说明

设计基本要求:

1、能进行正常的时、分、秒计时功能;

2、分别由六个数码管显示时分秒的计时;

3、K1是系统的使能开关(K1=0正常工作,K1=1时钟保持不变);

4、K2是系统的清零开关(K2=0正常工作,K2=1时钟的分、秒全清零);

5、K3是系统的校分开关(K3=0正常工作,K3=1时可以快速校分);

6、K4是系统的校时开关(K4=0正常工作,K4=1时可以快速校时);

设计提高部分要求

1、使时钟具有整点报时功能(当时钟计到59’53”时开始

报时,在59’53”, 59’55”,59’57”时报时频率为512Hz,59’59”时报时频率为1KHz);

2、闹表设定功能;

方案论证(整体电路的工作原理)

本实验在实现实验基本功能的基础上,加入了整点报时、闹钟设置、彩铃和万年历显示调节功能。整个电路由计数模块、分频模块、校时、校分较秒模块,清零模块、保持模块,整点报时模块,闹钟设定模块、彩铃模块,以及万年历模块构成。(如下图所示)基本功能:数字计时器基本功能是计时,因此首先需要获得具有精确振荡时间的脉振信号,以此作为计时电路的时序基础,实验中可以使用的振荡频率源为48MHZ,通过分频获得所需脉冲频率(1Hz,,2Hz,4Hz,1KHz,500Hz,6MHz)。经过Verilog编程可以轻松获得较为精确的分频信号。在计数模块中,秒位和分位分别通过编程用模60计数器实现,时位通过编程用模24计数器实现。校时、校分及校秒模块则通过语言选择实现。清零及保持功能在计数模块中用判断语句可轻松实现。计数模块总共输出6路信号:秒位的个、十位,分位的个、十位及时位的个、十位。

整点报时:利用计数模块的输出作为报时模块的输入,当检测到59’53”, 59’55”,59

实验模块原理图

57”时令报时模块的输出为500Hz,59’59”时令报时模块的输出为1Kz.,驱动蜂鸣器产生不同的响声。

闹钟设定模块:这里设计一个闹钟模块,输入为计数模块的输出及一系列调节信号,输出接到译码模块上。在闹钟模块内部,核心模块是一个选择模块,选择输出的信号是闹钟显示还是正常的计数显示。为了使闹钟模块与计数模块是相互独立的,因此单独设计模24(闹钟小时)和模60(闹钟分钟)作为选择模块的输入。设计程序语言的思想是,当检测到与设定闹钟相同的时、分位时就输出一个信号1,并保存当前计数位(加1)当检测到当前信号与保存位相同时输出信号恢复为0。(这个信号将作为闹铃结束的判断信号)

彩铃模块:本程序选用了一段悠扬的梁祝音乐,该模块的输入分别为6MHz和4Hz,通过编程实现输出为符合音律的不同频率。程序实现的思想并不复杂,只要有乐谱可以实现各种不同的音乐输出。蜂鸣器何时鸣叫取决于闹钟模块的输出。

译码显示模块:本模块没有采用V erilog语言实现,通过搭建原理图实现。显示功能是通过数选器、译码器、码转换器和7段显示管实现的。因为实验中只用一个译码显示单元,6个7段码(用于显示时分秒),所以通过1个24选4MUX和一个3-8译码器配合,显示译码器采用7447,根据计数器的信号进行数码管的动态显示。

万年历模块:通过编程可以轻松实现,原理与上述计数模块,调节模块很是类似。由于未经

硬件测试(时间限制),将在下面的子模块介绍中给出软件层面的实现和编译调试结果。各子模块设计原理

本数字钟设计主要用Verilog语言实现,严格采用了模块化的程序设计思想,自顶向下逐步求精,模块之间高度独立。(仅译码显示模块采用原理图搭建)下面将分别介绍各主要子模块及其子模块以及算法语言的实现和部分波形仿真编译调试结果。

分频模块:

(clkout输出为1Hz,clkout1K输出为1Kz,clkout500输出为500Hz,clkout2输出为2Hz,clkout6M输出为6MHz,clkout4输出为4Hz.)

module clkdiv(clk,clkout,clkout1k,clkout500,clkout2,clkout6M,clkout4);

input clk;

output clkout,clkout1k,clkout500,clkout2,clkout6M,clkout4;

reg clkout,clkout1k,clkout500,clkout2,clkout6M,clkout4;

reg [31:0]cnt,cnm,cnn,cmm,caa,cbb;

always@(posedge clk) //产生1Hz信号

begin

if(cnt== 32'd2*******)

begin

clkout<=1'd1;

cnt<=cnt+32'd1;

end

else if(cnt==32'd4*******)

begin

clkout<=1'b0;

cnt<=32'd0;

end

cnt<=cnt+32'd1;

end

always@(posedge clk) //产生1KHz信号begin

if(cnm== 32'd24000)

begin

clkout1k<=1'd1;

cnm<=cnm+32'd1;

end

else if(cnm==32'd48000)

begin

clkout1k<=1'b0;

cnm<=32'd0;

end

else

cnm<=cnm+32'd1;

end

always@(posedge clk) //产生500Hz信号begin

if(cnn== 32'd48000)

begin

clkout500<=1'd1;

cnn<=cnn+32'd1;

end

else if(cnn==32'd96000)

begin

clkout500<=1'b0;

cnn<=32'd0;

end

else

cnn<=cnn+32'd1;

end

always@(posedge clk) //产生2Hz信号begin

if(cmm== 32'd1*******)

begin

clkout2<=1'd1;

cmm<=cmm+32'd1;

end

else if(cmm==32'd2*******)

begin

clkout2<=1'b0;

cmm<=32'd0;

else

cmm<=cmm+32'd1;

end

always@(posedge clk) //产生6MHz信号

begin

if(caa== 32'd4)

begin

clkout6M<=1'd1;

caa<=caa+32'd1;

end

else if(caa==32'd8)

begin

clkout6M<=1'b0;

caa<=32'd0;

end

else

caa<=caa+32'd1;

end

always@(posedge clk) //产生4Hz信号

begin

if(cbb== 32'd6000000)

begin

clkout4<=1'd1;

cbb<=cbb+32'd1;

end

else if(cbb==32'd1*******)

begin

clkout4<=1'b0;

cbb<=32'd0;

end

else

cbb<=cbb+32'd1;

end

Endmodule

除了6MHz可以通过波形图直接观察,其他分频在程序设计原理上都可以确定是正确的,通过硬件可以作一定的观察(或者对仿真时间设定作相应调整)。

计数模块:

计数模块中包含三个校准模块和三个计数模块(分别对应着秒分时)。

(secondclka为秒脉冲输入信号1Hz,secondclkb为输入校准信号用频率2Hz,K5jiaomiao、K3jiaofen、K4jiaoshi分别为校秒、校分、校时输入信号,clkdff为D触发器输入信号(去开关抖动用),reset1K2为清零信号,start0K1为保持信号。输出分别对应秒分时的个位和十位)

--校准模块程序实现:

module xiaozhun( clka,clkb,cp,clko);

input clka,clkb,cp; //正常进位信号频率、校准频率、校准使能信号

output clko;

reg clko;

always

begin

if(!cp) clko=clka;

else clko=clkb;

end

Endmodule

--秒计数模块程序实现:

module second(clk,reset,start,SL,SH,co); input clk; //输入计数时钟

input reset,start;//清零信号、保持信号output co=1'b0; //进位信号

reg co;

output[3:0]SL,SH;

reg[3:0]SL,SH;

reg[7:0]cnt;

always@(posedge clk or negedge reset) begin

if( !reset)

begin

SL=4'd0;

SH=4'd0;

cnt<=8'd0;

end

else

begin

if(!start)

begin

if(cnt==8'd59)

begin

cnt<=8'd0;

SL<=4'd0;

SH<=4'd0;

co<=1'b1;

end

else

begin

co=1'b0;

cnt=cnt+8'd1;

SL<=cnt%10;

SH<=cnt/10;

end

end

end

end

endmodule

--分计数模块程序实现:

module minute(clk,reset,start,ML,MH,co);

input clk; //输入计数时钟

input reset,start; //清零信号、保持信号

output co=1'b0; //进位信号

reg co;

output[3:0]ML,MH;

reg[3:0]ML,MH;

reg[7:0]cnt;

always@(posedge clk or negedge reset)

begin

if( !reset)

begin

ML=4'd0;

MH=4'd0;

cnt<=8'd0;

end

else

begin

if(!start)

begin

if(cnt==8'd59)

begin

cnt<=8'd0;

ML<=4'd0;

MH<=4'd0;

co<=1'b1;

end

else

begin

co=1'b0;

cnt =cnt+8'd1;

ML <=cnt%10;

MH <=cnt/10;

end

end

end

end

endmodule

--时计数模块程序实现:

module hour(clk,reset,start,HL,HH);

input clk; //输入计数时钟

input reset,start; //清零信号、保持信号output[3:0]HL,HH;

reg[3:0]HL,HH;

reg[7:0]cnt;

always@(posedge clk or negedge reset)

begin

if( !reset)

begin

HL=4'd0;

HH=4'd0;

cnt<=8'd0;

end

else

begin

if(!start)

begin

if(cnt==8'd23)

begin

cnt<=8'd0;

HL<=4'd0;

HH<=4'd0;

end

else

begin

cnt=cnt+8'd1;

HL<=cnt%10;

HH<=cnt/10;

end

end

end

end

Endmodule

(计数秒脉冲设为48MHz时可以得到如下波形仿真,验证计数器功能基本正确)

计数模块内部子模块的连接示意图如下所示,3个D触发器的作用分别为去除开关抖动。

整点报时模块:

(输入分别为秒位和分位以及报时所需的两种频率,输出为驱动蜂鸣器的频率)

module baoshi(sl,sh,ml,mh,clk1k,clk500,clkbeep );

input[3:0] sl,sh,ml,mh;

input clk1k,clk500;

output clkbeep;

reg clkbeep;

always

begin

if(mh==8'd5&&ml==8'd9&&sh==8'd5&&sl==8'd3)

clkbeep=clk500;

else if(mh==8'd5&&ml==8'd9&&sh==8'd5&&sl==8'd5)

clkbeep=clk500;

else if(mh==8'd5&&ml==8'd9&&sh==8'd5&&sl==8'd7)

clkbeep=clk500;

else if(mh==8'd5&&ml==8'd9&&sh==8'd5&&sl==8'd9)

clkbeep=clk1k;

else

clkbeep=0;

end

endmodule

闹钟设定模块:

闹钟设定模块中包含2个校准模块,1个模60计数模块,1个模24计数模块和1个输出信号选择模块。(其中计数模块与前面的类似,只是不含进位输出信号)

闹钟调节模块程序实现:

module tiaonao( clka,cp,clko);

input clka,cp; //闹钟调节用频率、调节输入使能信号

output clko;

reg clko;

always

begin

if(cp) clko=clka;

else clko=0;

end

Endmodule

模24计数模块和模60计数模块的程序源码不再给出(与前面的计数模块程序基本类似,只是不输出进位信号,无清零保持信号)

输出信号选择模块程序实现:

(sl,sh,ml,mh,hl,hh为正常计数输入信号,iml,imh,ihl,ihh为闹钟输入信号,slo,sho,mlo,mho,hlo,hho为输出信号接译码显示模块,k为显示闹钟或正常计数选择信号,km为响铃判断信号)

module

naozhxuan(sl,sh,ml,mh,hl,hh,iml,imh,ihl,ihh,slo,sho,mlo,mho,hlo,hho,k,km);

input[3:0]sl,sh,ml,mh,hl,hh,iml,imh,ihl,ihh;

input k;

output[3:0]slo,sho,mlo,mho,hlo,hho;

reg[3:0]slo,sho,mlo,mho,hlo,hho,xx;

output km;

reg km;

initial

begin

km=0;

End

always

begin

if(!k)

begin

begin

slo=sl;

sho=sh;

mlo=ml;

mho=mh;

hlo=hl;

hho=hh;

end

if((mlo==iml)&&(mho==imh)&&(hlo==ihl)&&(hho==ihh)) begin

xx=mlo;

km=1;

end

else if(mlo==xx )

km=0;

end

else

begin

slo=4'd8;

sho=4'd8;

mlo=iml;

mho=imh;

hlo=ihl;

hho=ihh;

end

end

Endmodule

彩铃模块:

梁祝源码:(来自网络)

module song(clk_6MHz,clk_4Hz,speaker,high,med,low); input clk_6MHz, clk_4Hz;

output speaker;

output[3:0] high,med,low;

reg[3:0] high,med,low;

reg[13:0] divider,origin;

reg[7:0] counter;

reg speaker;

wire carry;

assign carry=(divider==16383);

always @(posedge clk_6MHz)

begin

if(carry) divider=origin;

else divider=divider+1;

end

always @(posedge carry)

begin

speaker=~speaker;

end

always @(posedge clk_4Hz)

begin

case({high,med,low})

'b1: origin=7281;

'b1: origin=8730;

'b0: origin=9565;

'b1: origin=10310;

'b0: origin=10647;

'b0: origin=11272;

'b0: origin=11831;

'b0: origin=12556;

'b0: origin=12974;

'b0: origin=13516;

'b0: origin=16383;

endcase

end

always @(posedge clk_4Hz)

begin

if(counter==63) counter=0; else counter=counter+1; case(counter)

0: {high,med,low}='b1;

1: {high,med,low}='b1;

2: {high,med,low}='b1;

3: {high,med,low}='b1;

4: {high,med,low}='b1;

5: {high,med,low}='b1;

6: {high,med,low}='b1;

7: {high,med,low}='b0;

8: {high,med,low}='b0;

9: {high,med,low}='b0;

10: {high,med,low}='b0;

11: {high,med,low}='b0;

12: {high,med,low}='b0;

13: {high,med,low}='b0;

14: {high,med,low}='b1;

15: {high,med,low}='b1;

16: {high,med,low}='b0;

17: {high,med,low}='b0;

18: {high,med,low}='b0;

19: {high,med,low}='b0;

20: {high,med,low}='b0;

21: {high,med,low}='b0;

22: {high,med,low}='b0;

23: {high,med,low}='b0;

24: {high,med,low}='b0;

25: {high,med,low}='b0;

26: {high,med,low}='b0;

27: {high,med,low}='b0;

28: {high,med,low}='b0;

29: {high,med,low}='b0;

30: {high,med,low}='b0;

31: {high,med,low}='b0;

32: {high,med,low}='b0;

33: {high,med,low}='b0;

34: {high,med,low}='b0;

35: {high,med,low}='b0;

36: {high,med,low}='b1;

37: {high,med,low}='b1;

38: {high,med,low}='b0;

39: {high,med,low}='b0;

40: {high,med,low}='b1;

41: {high,med,low}='b1;

42: {high,med,low}='b1;

43: {high,med,low}='b0;

44: {high,med,low}='b0;

45: {high,med,low}='b0;

46: {high,med,low}='b0;

47: {high,med,low}='b0;

48: {high,med,low}='b1;

49: {high,med,low}='b1;

50: {high,med,low}='b0;

51: {high,med,low}='b0;

52: {high,med,low}='b0;

53: {high,med,low}='b1;

54: {high,med,low}='b0;

55: {high,med,low}='b0;

56: {high,med,low}='b1;

57: {high,med,low}='b1;

58: {high,med,low}='b1;

59: {high,med,low}='b1;

60: {high,med,low}='b1;

61: {high,med,low}='b1;

62: {high,med,low}='b1;

63: {high,med,low}='b1;

endcase

end

endmodule

译码显示模块:

显示电路主要由数据选择器24选4MUX、译码器74138、显示译码器7447和数码显示管组成。显示电路示意图如下:因为实验要求只用一个显示译码器7447,所以考虑用动态扫描显示法进行数据显示,即每次只显示一位,按照一定的显示时间间隔轮流显示。每个显示位均为四位二进制数,所以需要数选器,要显示的位有时分秒6位(HH,HL,MH,ML,SH,SL)。数选器的选择信号有三位,所以要用一个模8循环计数器作为数选器的地址选择端,供轮流选择带显示的数据,此外,还要用一个3-8译码器来选择数码管(DIG位)来显示对应的数据。(这部分功能实现未采用Verilog语言,原因是用原理图现成的模块搭建十分方便)

24选4

MUX

8421

BCD

SL

SH

ML

MH

HL

HH

显示

译码器

7447

8421

BCD

a

b

c

d

e

f

g

A2 A1 A0

计数器

译码器

74138

DIG0

DIG1

DIG2

DIG3

DIG4

DIG5

DIG0

DIG1

DIG2

DIG3

DIG4

DIG5 CLK2

显示电路方框图

译码模块内部连接原理图:

万年历模块:

万年历实现程序设计思想:万年历显示一般为“”正好用到8个数码管。年、月、日分别对应3个模块。年月的输出除了连接译码显示外,还要输入到日的模块中,以供各种不同情形的进位判断(诸如大月、小月,平年闰年对应不同的日进位输出)。年月日的设定信号,初始化信号与前面的校分、清零信号实现原理基本类似。至于当前数码管的显示同样可以设计一个输出选择模块,选择当前显示(正常时分秒计数或闹钟设定界面或万年历显示界面),涉及开关不够用问题可通过对开关编码实现。

日计数模块程序设计:

module day(clk,reset,S1,S2,co,year,month);

input[15:0]year,month;//年、月作为输入供日进位判断使用

input clk; //每24小时的输出进位作为日的输入时钟

input reset; //重置信号,恢复到“”

output co=1'b0; //进位信号

reg co;

output[3:0]S1,S2;

reg[3:0]S1,S2;

reg[15:0]cnt;

always@(posedge clk or negedge reset)

begin

if(!reset)

begin

S1=4'd0;

S2=4'd1;

cnt<=16'd1;

end

else

begin

if((month==1)&&(cnt==31))

begin

cnt<=16'd1;

S1<=4'd0;

S2<=4'd1;

co<=1'b1;

end

else if(month==3&&cnt==31)

begin

cnt<=16'd1;

数字系统设计与verilog HDL课程设计

数字系统设计与verilog HDL课程设计 设计题目:实用多功能数字钟 专业:电子信息科学与技术 班级:0313410 学号:031341025 姓名:杨存智 指导老师:黄双林

摘要 本课程设计利用QuartusII软件Verilog VHDL语言的基本运用设计一个多功能数字钟,经分析采用模块化设计方法,分别是顶层模块、alarm、alarm_time、counter_time、clk50mto1、led、switch、bitel、adder、sound_ddd、sound_ddd_du模块,再进行试验设计和软件仿真调试,分别实现时分秒计时、闹钟闹铃、时分秒手动校时、时分秒清零,时间保持和整点报时等多种基本功能。 单个模块调试达到预期目标,再将整体模块进行试验设计和软件仿真调试,已完全达到分块模式设计功能,并达到设计目标要求。 关键字:多功能数字钟、Verilog、模块、调试、仿真、功能

目录 1.课程设计的目的及任务............................................................. 错误!未定义书签。 1.1 课程设计的目的 (3) 1.2 课程设计的任务与要求 (4) 2.课程设计思路及其原理 (4) 3.QuartusII软件的应用 (5) 3.1工程建立及存盘 (5) 3.2工程项目的编译 (5) 3.3时序仿真 (6) 4.分模块设计、调试、仿真与结果分析 (7) 4.1 clk50mto1时钟分频模块 (7) 4.2 adder加法器模块 (7) 4.3 hexcounter16 进制计数器模块 (7) 4.4 counter_time 计时模块 (8) 4.5 alarm闹铃模块 (8) 4.6 sound_ddd嘀嘀嘀闹铃声模块 (9) 4.7 sound_ddd_du嘀嘀嘀—嘟声音模块 (9) 4.8 alarm_time闹钟时间设定模块 (10) 4.9 bitsel将输出解码成时分秒选择模块 (10) 4.10 switch去抖模块 (11) 4.11 led译码显示模块 (11) 4.12 clock顶层模块 (12) 5.实验总结 (13) 5.1调试中遇到的问题及解决的方法 (13) 5.2实验中积累的经验 (14) 5.3心得体会 (14) 6.参考文献 (14) 1.1 课程设计的目的 通过课程设计的锻炼,要求学生掌握V erilog HDL语言的一般设计方法,掌握VerilogHDL语言的基本运用,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,基于实践、源于实践,实践出真知,实践检验真理,培养学生的

使用Quartus进行多功能数字钟设计

EDA设计 使用Quartus II进行多功能数字钟设计 院系:机械工程 专业:车辆工程 姓名:张小辉 学号: 指导老师:蒋立平、花汉兵 时间: 2016年5月25日

摘要 本实验是电类综合实验课程作业,需要使用到QuartusⅡ软件,(Quartus II 是Altera公司的综合性PLD/FPGA开发软件,原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware 支持Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程)。本实验需要完成一个数字钟的设计,进行试验设计和仿真调试,实验目标是实现计时、校时、校分、清零、保持和整点报时等多种基本功能,并下载到SmartSOPC实验系统中进行调试和验证。 关键字:电类综合实验 QuartusⅡ数字钟设计仿真

Abstract This experiment is electric comprehensive experimental course work and need to use the Quartus II software, Quartus II is Altera integrated PLD / FPGA development software, schematic and VHDL, Verilog HDL and AHDL (Altera hardware description language support) etc. a variety of design input form, embedded in its own synthesizer and simulator can complete hardware configuration complete PLD design process from design entry to). The need to complete the design of a digital clock, and debug the design of experiment and simulation, the experimental goal is to achieve timing, school, reset, keep and the whole point timekeeping and other basic functions, and then download to the smartsopc experimental system debugging and validation. Key words: Electric power integrated experiment Quartus II Digital clock design Simulation

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

湖北大学物电学院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;

多功能数字钟的VHDL设计

毕业设计论文 多功能数字钟的VHDL设计 系 xxxxxxxxxxxxxxxxx 专业 xxxxxxxxxxxxx 学号 xxxxxxxxxxx 姓名 xxxxxxx 班级 xxxxxxxxxxxx 指导老师 xxxxxxxxxx 职称 指导老师职称 毕业设计时间 2009年11月——2010年1月

摘要:应用VHDL语言编程,进行了多功能数字钟的设计,并在MAX PLUSⅡ环境下通过了编译、仿真、调试。 关键词:VHDL;EDA;数字钟;仿真图 0.引言 随着科学技术的迅猛发展,电子工业界经历了巨大的飞跃。集成电路的设计正朝着速度快、性能高、容量大、体积小和微功耗的方向发展。基于这种情况,可编程逻辑器件的出现和发展大大改变了传统的系统设计方法。可编程逻辑器件和相应的设计技术体现在三个主要方面:一是可编程逻辑器件的芯片技术;二是适用于可逻辑编程器件的硬件编程技术,三是可编程逻辑器件设计的EDA开发工具,它主要用来进行可编程逻辑器件应用的具体实现。在本实验中采用了集成度较高的FPGA 可编程逻辑器件, 选用了VHDL硬件描述语言和MAX + p lusⅡ开发软件。VHDL硬件描述语言在电子设计自动化( EDA)中扮演着重要的角色。由于采用了具有多层次描述系统硬件功能的能力的“自顶向下”( Top - Down)和基于库(L ibrary - Based)的全新设计方法,它使设计师们摆脱了大量的辅助设计工作,而把精力集中于创造性的方案与概念构思上,用新的思路来发掘硬件设备的潜力,从而极大地提高了设计效率,缩短 了产品的研制周期。MAX + p lusⅡ是集成了编辑器、仿真工具、检查/分析工具和优化/综合工具的这些所有开发工具的一种集成的开发环境,通过该开发环境能够很方便的检验设计的仿真结果以及建立起与可编程逻辑器件的管脚之间对应的关系。 1. EDA简介 20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。 EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL 完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。 这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。

#用Verilog语言编写的多功能数字钟

2009—2010学年第二学期 《数字电子技术课程设计》报告 专业班级:电气-08-1 姓名:曹操 学号:08051127 设计日期:2010年8月23日~27日 一.设计题目 多功能数字钟电路设计 二.设计任务及要求 多功能数字钟应该具有的功能有:显示时—分—秒、整点报时、小时和分钟可调等基本功能。整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围为0~23时。 在实验中为了显示的方便,由于分钟和秒钟显示的范围都是从0~59,所以可以用一个3位的二进制码显示十位,用一个四位的二进制码(BCD 码)显示个位,对于小时因为他的范围是从0~23,所以可以用一个2位的二进制码显示十位,用一个4位的二进制码(BCD码)显示个位。

实验中由于七段码管是扫描的方式显示,所以虽然时钟需要的是1Hz 时钟信号,但是扫描需要一个比较高频率的信号,因此为了得到准确的1Hz 信号,必须对输入的系统时钟50Mhz进行分频。 对于整点报时功能,本实验设计的是当进行正点的倒计时5秒时,让LED来闪烁进行整点报时的提示。 调整时间的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时;S2调整分钟,每按下一次,分钟增加一分钟。另外用S8按键作为系统时钟复位,复位后全部显示00—00—00。 管脚分配如下表: 端口名使用模块信号对应FPGA管脚说明 S1 按键开关S1 R16 调整小时 S2 按键开关S2 P14 调整分钟 RST 按键开关S8 M15 复位 LED LED模块D1 L14 整点倒计时 LEDAG0 数码管模块A段N4 时间显示 LEDAG1 数码管模块B段G4 LEDAG2 数码管模块C段H4 LEDAG3 数码管模块D段L5 LEDAG4 数码管模块E段L4 LEDAG5 数码管模块F段K4 LEDAG6 数码管模块G段K5 SEL0 数码管选择位1 M4 8个数码管

多功能数字钟电路设计

多功能数字钟电路设计 一、数字电子钟设计摘要 (2) 二、数字电子钟方案框图 (2) 三、单元电路设计及相关元器件的选择 (3) 1.6进制计数器电路的设计 (3) 2.10进制计数器电路的设计 (4) 3.60进制计数器电路的设计 (4) 4.时间计数器电路的设计 (5) 5.校正电路的设计 (6) 6.时钟电路的设计 (7) 7.整点报时电路设计 (8) 8. 译码驱动及单元显示电路 (9) 四、系统电路总图及原理 (9) 五、经验体会 (10) 六、参考文献 (10) 附录A:系统电路原理图 附录B:元器件清单

一、数字电子钟设计摘要 数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。 此次设计数字钟就是为了了解数字钟的原理,从而学会制作数字钟。而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。且由于数字钟包括组合逻辑电路和时叙电路。通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法。 二、数字电子钟方案框图 图1 数字电子钟方案框图

三、单元电路设计和元器件的选择 1. 6进制计数器电路的设计 现要设计一个6进制的计数器,采用一片中规模集成电路74LS90N芯片,先接成十进制,再转换成6进制,利用“反馈清零”的方法即可实现6进制计数,如图2所示。 图2

2. 10进制电路设计 图3 3. 60 进数器电路的设计 “秒”计数器与“分”计数器都是六十进制,它由一级十进制计数器和一级六进制计数器连接而成,如图4所示,采用两片中规模集成电路74LS90N串接起来构成“秒”“分”计数器。

EDA课程设计——多功能数字钟

哈尔滨工业大学(威海) 电子学课程设计报告带有整点报时的数字钟设计与制作 姓名: 蒋栋栋 班级: 0802503 学号: 080250331 指导教师: 井岩

目录 一、课程设计的性质、目的和任务 (3) 二、课程设计基本要求 (3) 三、设计课题要求 (3) 四、课程设计所需要仪器 (4) 五、设计步骤 (4) 1、整体设计框图 (4) 2、各个模块的设计与仿真 (4) 2.1分频模块 (4) 2.2计数器模块 (6) 2.3控制模块 (10) 2.4数码管分配 (13) 2.5显示模块 (14) 2.6报时模块 (16) 六、调试中遇到的问题及解决的方法 (18) 七、心得体会 (18)

一、课程设计的性质、目的和任务 创新精神和实践能力二者之中,实践能力是基础和根本。这是由于创新基于实践、源于实践,实践出真知,实践检验真理。实践活动是创新的源泉,也是人才成长的必由之路。 通过课程设计的锻炼,要求学生掌握电路的一般设计方法,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,培养学生的创新精神。 二、课程设计基本要求 掌握现代大规模集成数字逻辑电路的应用设计方法,进一步掌握电子仪器的正确使用方法,以及掌握利用计算机进行电子设计自动化(EDA)的基本方法。 三、设计课题要求 (1)构造一个24小时制的数字钟。要求能显示时、分、秒。 (2)要求时、分、秒能各自独立的进行调整。 (3)能利用喇叭作整点报时。从59分50秒时开始报时,每隔一秒报时一秒,到达00分00秒时,整点报时。整点报时声的频率应与其它的报时声频有明显区别。 #设计提示(仅供参考): (1)对频率输入的考虑 数字钟内所需的时钟频率有:基准时钟应为周期一秒的标准信号。报时频率可选用1KHz和2KHz左右(两种频率相差八度音,即频率相差一倍)。另外,为防止按键反跳、抖动,微动开关输入应采用寄存器输入形式,其时钟应为几十赫兹。 (2)计时部分计数器设计的考虑 分、秒计数器均为模60计数器。 小时计数为模24计数器,同理可建一个24进制计数器的模块。 (3)校时设计的考虑 数字钟校准有3个控制键:时校准、分校准和秒校准。 微动开关不工作,计数器正常工作。按下微动开关后,计数器以8Hz频率连续计数(若只按一下,则计数器增加一位),可调用元件库中的逻辑门建一个控制按键的模块,即建立开关去抖动电路(见书70页)。 (4)报时设计的考虑

多功能数字钟设计

摘要 本实验是利用QuartusII 7.0软件设计一个多功能数字钟,进行试验设计和仿真调试,实现了计时,校时,校分,清零,保持和整点报时等多种基本功能,并下载到SmartSOPC实验系统中进行调试和验证。此外还添加了显示星期,闹钟设定等附加功能,使得设计的数字钟的功能更加完善。 关键字:QuartusII、数字钟、多功能、仿真 Abstract This experiment is to design a digital clock which is based on Quartus software and in which many basic functions like time-counting,hour-correcting,minute-correcting,reset,time-holding and belling on the hour. And then validated the design on the experimental board. In addition, additional functions like displaying and resetting the week and setting alarm make this digital clock a perfect one. Key words: Quartus digital-clock multi-function simulate

目录 一.设计要求 (4) 二.工作原理 (4) 三.各模块说明 (5) 1)分频模块 (5) 2)计时模块 (7) 3)动态显示模块 (9) 4)校分与校时模块 (10) 5)清零模块 (11) 6)保持模块 (12) 7)报时模块 (12) 四.扩展模块 (12) 1)星期模块 (12) 2)闹钟模块 (13) 五.总电路的形成 (16) 六.调试、编程下载 (17) 七.实验感想 (17) 八.参考文献 (20)

数字电路时钟设计verilog语言编写--

电子线路设计与测试 实验报告 一、实验名称 多功能数字钟设计 二、实验目的 1.掌握可编程逻辑器件的应用开发技术 ——设计输入、编译、仿真和器件编程; 2.熟悉一种EDA软件使用; 3.掌握Verilog设计方法;

4.掌握分模块分层次的设计方法; 5.用Verilog完成一个多功能数字钟设计。 三、设计内容及要求 1.基本功能 具有“秒”、“分”、“时”计时功能,小时按24小时制计时。 具有校时功能,能对“分”和“小时”进行调整。 2.扩展功能 仿广播电台正点报时。在59分51秒、53秒、55秒、57秒发出低音512Hz 信号,在59分59秒时发出一次高音1024Hz信号,音响持续1秒钟,在1024Hz音响结束时刻为整点。 定时控制,其时间为23时58分。 3.选做内容 任意时刻闹钟(闹钟时间可设置)。 自动报整点时数。 四.系统框图与说明 数字钟框图

1.数字钟电路系统由主体电路和扩展电路两大部分所组成。 2.秒计数器计满60后向分计数器进位,分计数器计满60后向小时计数器进位,小时计数器按照“24进制”规律计数。 3.计数器的输出经译码器送显示器。 五.设计步骤 1.列写多功能数字钟设计--层次结构图 2.拟定数字钟的组成框图,在Max+Plus II软件中,使用Verilog语言输入,采用分层次分模块的方法设计电路; 3.设计各单元电路并进行仿真; 4.对数字钟的整体逻辑电路图,选择器件,分配引脚,进行逻辑综合; 5.下载到Cyclone II FPGA实验平台上,实际测试数字钟的逻辑功能。

六.Verilog代码 //24进制时钟, 具有计时、校时、仿广播电台正点报时、固定时刻定时,任意时刻闹钟等功能 module clock_main(LED_Hour,LED_Minute,LED_Second,Alarm,CP_1KHz,Jsh_Min_key,Jsh_Hour_ke y,Set_Hour_key,Set_Min_key,Show,Ctrl_Bell); input CP_1KHz;//定义输入时钟 input Jsh_Min_key,Jsh_Hour_key;//定义校时按键 input Set_Hour_key,Set_Min_key;//定义闹钟定时按键 input Show; //定义显示模式按键 input Ctrl_Bell;//定义闹钟铃声控制 output [7:0]LED_Hour,LED_Minute,LED_Second;//定义输出变量 wire [7:0]LED_Hour,LED_Minute,LED_Second;//定义输出变量类型 wire [7:0]Hour,Minute,Second; wire [7:0]Set_Hour_Out,Set_Min_Out; wire Out_1Hz,Out_500Hz;//定义分频模块输出变量类型 reg Alarm_Ring,Alarm_Clock_1KHz;//定义仿广播电台报时和固定时刻定时铃声 output Alarm;//蜂鸣器输入 supply1Vdd; wire Alarm_Clock;//任意时刻闹钟闹铃 wire MinL_EN,MinH_EN,Hour_EN;//定义中间变量类型 //分频 fre_dividerFD0(Out_1Hz,Out_500Hz,Vdd,Vdd,CP_1KHz); //正常计时 counter10 U1(.Q(Second[3:0]),.nCR(Vdd),.EN(Vdd),.CP(Out_1Hz)); counter6 U2(.Q(Second[7:4]),.nCR(Vdd),.EN(Second[3:0]==4'h9),.CP(Out_1Hz)); assignMinL_EN=Jsh_Min_key?Vdd:(Second==8'h59); assign MinH_EN=(Jsh_Min_key&&(Minute[3:0]==4'h9))||(Minute[3:0]==4'h9)&&(Second==8'h59 ); counter10 U3(.Q(Minute[3:0]),.nCR(Vdd),.EN(MinL_EN),.CP(Out_1Hz)); counter6 U4(.Q(Minute[7:4]),.nCR(Vdd),.EN(MinH_EN),.CP(Out_1Hz)); assign Hour_EN=Jsh_Hour_key?Vdd:((Minute==8'h59)&&(Second==8'h59)); counter24 U5(Hour[7:4],Hour[3:0],Vdd,Hour_EN,Out_1Hz); //仿广播电台正点报时 baoshi BS1(Alarm_Ring,Minute,Second,Out_500Hz,CP_1KHz);//在59分51秒、53秒、55秒、57秒发出低音512Hz信号,在59分59秒时发出一次高音1024Hz信号,音响持续1秒钟,在1024Hz音响结束时刻为整点 //固定时刻定时

多功能数字钟电路设计

课程设计任务书 学生姓名: XXX 专业班级: 指导教师:工作单位: 题目: 多功能数字钟电路设计 初始条件:74LS390,74LS48,数码显示器BS202各6片,74LS00 3片,74LS04,74LS08各 1片,电阻若干,电容,开关各2个,蜂鸣器1个,导线若干。 要求完成的主要任务: 用中、小规模集成电路设计一台能显示日、时、分秒的数字电子钟,要求如下: 1.由晶振电路产生1HZ标准秒信号。 2.秒、分为00-59六十进制计数器。 3.时为00-23二十四进制计数器。 4.可手动校正:能分别进行秒、分、时的校正。只要将开关置于手动位置。可分别对秒、分、时进行连续脉冲输入调整。 5.整点报时。整点报时电路要求在每个整点前鸣叫五次低音(500HZ),整点时再鸣叫一次高音(1000HZ)。 时间安排: 第20周理论设计、实验室安装调试,地点:鉴主15楼通信实验室一 指导教师签名:年月日 系主任(或责任教师)签名:年月日

多功能数字钟电路设计 摘要 (1) Abstract (2) 1系统原理框图 (3) 2方案设计与论证 (4) 2.1时间脉冲产生电路 (4) 2.2分频器电路 (6) 2.3时间计数器电路 (7) 2.4译码驱动及显示单元电路 (8) 2.5校时电路 (8) 2.6报时电路 (10) 3单元电路的设计 (12) 3.1时间脉冲产生电路的设计 (12) 3.2计数电路的设计 (12) 3.2.1 60进制计数器的设计 (12) 3.2.2 24进制计数器的设计 (13) 3.3译码及驱动显示电路 (14) 3.4 校时电路的设计 (14) 3.5 报时电路 (16) 3.6电路总图 (17) 4仿真结果及分析 (18) 4.1时钟结果仿真 (18) 4.2 秒钟个位时序图 (18) 4.3报时电路时序图 (19) 4.4测试结果分析 (19) 5心得与体会 (20) 6参考文献 (21) 附录1原件清单 (22) 附录2部分芯片引脚图与功能表 (23) 74HC390引脚图与功能表 (23)

基于VHDL的多功能数字钟设计报告

基于VHDL的多功能数字钟 设计报告 021215班 卫时章 02121451

一、设计要求 1、具有以二十四小时制计时、显示、整点报时、时间设置和闹钟的功能。 2、设计精度要求为1秒。 二、设计环境:Quartus II 三、系统功能描述 1、系统输入:时钟信号clk采用50MHz;系统状态及较时、定时转换的控制信号为k、set,校时复位信号为reset,均由按键信号产生。 2、系统输出:LED显示输出;蜂鸣器声音信号输出。 3、多功能数字电子钟系统功能的具体描述如下: (一)计时:正常工作状态下,每日按24h计时制计时并显示,蜂鸣器无声,逢整点报时。 (二)校时:在计时显示状态下,按下“k”键,进入“小时”待校准状态,若此时按下“set”键,小时开始校准;之后按下“k”键则进入“分”待校准状态;继续按下“k”键则进入“秒”待复零状态;再次按下“k”键数码管显示闹钟时间,并进入闹钟“小时”待校准状态;再次按下“k”键则进入闹钟“分”待校准状态;若再按下“k”键恢复到正常计时显示状态。若校时过程中按下“reset”键,则系统恢复到正常计数状态。 (1)“小时”校准状态:在“小时”校准状态下,显示“小时”的数码管以2Hz 闪烁,并按下“set”键时以2Hz的频率递增计数。 (2)“分”校准状态:在“分”校准状态下,显示“分”的数码管以2Hz闪烁,并按下“set”键时以2Hz的频率递增计数。 (3)“秒”校准状态:在“秒复零”状态下,显示“秒”的数码管以2Hz闪烁,并以1Hz的频率递增计数。 (4)闹钟“小时”校准状态:在闹钟“小时”校准状态下,显示“小时”的数码管以2Hz闪烁,并按下“set”键时以2Hz的频率递增计数。 (5)闹钟“分”校准状态:在闹钟“分”校准状态下,显示“分”的数码管以2Hz闪烁,并按下“set”键时以2Hz的频率递增计数。 (三)整点报时:蜂鸣器在“59”分钟的第“51”、“53”、“55”、“57”秒发频率为500Hz的低音,在“59”分钟的第“59”秒发频率为1000Hz的高音,结束时为整点。 (四)显示:采用扫描显示方式驱动4个LED数码管显示小时、分,秒由两组led灯以4位BCD 码显示。 (五)闹钟:闹钟定时时间到,蜂鸣器发出频率为1000Hz的高音,持续时间为60秒。 四、各个模块分析说明 1、分频器模块(freq.vhd) (1)模块说明:输入一个频率为50MHz的CLK,利用计数器分出 1KHz的q1KHz,500Hz的q500Hz,2Hz的q2Hz和1Hz的q1Hz。 (2)源程序: library ieee;

多功能数字时钟设计

课程设计报告 学生姓名:刘佳 学 号:2017307010102 学院:电气工程学院 班级:通信171 题目:多功能数字时钟设计 指导教师:刘晓峰职称: 高级实验师指导教师:杨修宇职称: 实验师 2018 年 12 月 28 日

目录 1. 设计要求 (3) 2. 设计原理及框图 (3) 2.1 模块组成 (3) 3. 器件说明 (4) 4. 设计过程 (8) 4.1显示电路模块设计 (8) 4.2时钟脉冲电路模块设计 (9) 4.3计时模块电路设计 (10) 4.4计时校时控制模块电路设计 (11) 4.5整点报时与定点报时模块电路设计 (12) 5. 仿真调试过程 (13) 6. 收音机原理及焊接调试 (14) 6.1收音机原理 (14) 6.2收音机焊接工艺要求 (16) 6.3收音机调试过程 (16) 7. 设计体会及收获 (17)

1. 设计要求 (1)以24小时为一个计时周期,稳定的显示时、分、秒。 (2)当电路发生走时误差时,可以对所设计的时钟进行校时。 (3)电路有整点报时功能。报时声响为四低一高,最后一响高音正好为整点。 (4)电路具有闹钟功能,当闹钟所设定时间与时钟计时相同时,发出提示音, 时长为一分钟。 2. 设计原理及框图 2.1 模块组成 多功能数字时钟由时钟脉冲电路模块、秒计时模块、分计时模块、时计时模块、显示模块、计时校时控制模块、定点报时模块与整点报时模块组。如图1所示。 图1 多功能数字时钟原理框图 多功能数字时钟由时钟脉冲电路模块、秒计时模块、分计时模块、时计时模块、显示模块、计时校时控制模块、定点报时模块与整点报时模块组成。时钟脉冲电路模块由振荡电路与分频电路组成,为数字时钟提供秒脉冲信号、定点整点报时信号以及调试信号。计时电路包括“秒”计时、“分”计时与“时”计时电

基于verilog数字秒表的设计实现--生产实习报告

生产实习报告 班级:通信13-2班 姓名:闫振宇 学号:1306030222 成绩: 电子与信息工程学院 信息与通信工程系

基于verilog 数字秒表的设计实现 1. 概述 硬件描述语言HDL ( HardwareDescription Langyage) 是一种用形式化方法来描述数字电路和系统的语言。数字电路系统的设计这里用这种语言可以从上层倒下层逐层描述自设计思想用一系列分层的模块来表示极其复杂的数字系统,然后用EDA 工具逐层验证,把其中需要为具体物理电路的模块组合由自动综合工具转换到门级电路网表。Verilog HDL 是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。使用VERILOG 进行系统设计时采用的是从顶至下的设计,自顶向下的设计是从系统机开始巴西同划分为若干个基本单元,然后再把每个单元划分为下一层的基本单元,这样下去直到可以直接用EDA 元件库中的基本元件来实现为止。 2. 设计目的及要求 a. 有源晶振频率:50MHZ ; b. 测试计时范围:00' 00” 00 ~ 59 ',59显”示9的9 最长时间为59 分59 秒; c. 数字秒表的计时精度是10ms; d. 显示工作方式:六位BCD 七段数码管显示读数,两个按钮开关(一个按钮使秒表复位,另一个按钮控制秒表的启动/暂停)。 3. 设计原理秒表的逻辑结构较简单,它主要由四进制计数器、十六进制计数器、分频器、数据选择器、和显示译码器等组成。在整个秒表中最关键的是如何获得一个精确的100HZ 计时脉冲,除此之外,整个秒表还需有一个启动信号和一个清零信号,以便秒表能随意停止、启动以及清零复位。 秒表有共有6个输出显示,其中6个显示输出数据,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有 6 个计数器与之相对应; 6 个计数器的输出全都为BCD 码输出,这样便与同显示译码器连接。 利用一块芯片完成除时钟源,按键和显示器之外的所有数字电路功能。所有数字逻辑功能都在CPLD 器件上用Verilog 语言实现。这样设计具有体积小,设计周期短,调试方 便,故障率地和修改升级容易等特点。 本设计采用依次采用以下设计方法: 1)按键输入缓存,键盘消抖设计;

推荐-基于多功能数字钟的课程设计报告 精品

EDA技术课程设计 多功能数字钟 学院:城市学院 专业、班级: 姓名: 指导老师: 20XX年12月

目录 1、设计任务与要求 (2) 2、总体框图 (2) 3、选择器件 (2) 4、功能模块 (3) (1)时钟记数模块 (3) (2)整点报时驱动信号产生模块 (6) (3)八段共阴扫描数码管的片选驱动信号输出模块 (7) (4)驱动八段字形译码输出模块 (8) (5)高3位数和低4位数并置输出模块 (9) 5、总体设计电路图 (10) (1)仿真图 (10) (2)电路图 (10) 6、设计心得体会 (11)

一、设计任务与要求 1、具有时、分、秒记数显示功能,以24小时循环计时。 2、要求数字钟具有清零、调节小时、分钟功能。 3、具有整点报时,整点报时的同时输出喇叭有音乐响起。 二、总体框图 多功能数字钟总体框图如下图所示。它由时钟记数模块(包括hour、minute、second 三个小模块)、驱动8位八段共阴扫描数码管的片选驱动信号输出模块(seltime)、驱动八段字形译码输出模块(deled)、整点报时驱动信号产生模块(alart)。 系统总体框图 三、选择器件 网络线若干、共阴八段数码管4个、蜂鸣器、hour(24进制记数器)、minute(60进制记数器)、second(60进制记数器)、alert(整点报时驱动信号产生模块)、 seltime(驱动4位八段共阴扫描数码管的片选 驱动信号输出模块)、deled(驱动八段字形译 码输出模块)。

四、功能模块 多功能数字钟中的时钟记数模块、驱动8位八段共阴扫描数码管的片选驱动信号输出模块、驱动八段字形译码输出模块、整点报时驱动信号产生模块。 (1) 时钟记数模块: <1.1>该模块的功能是:在时钟信号(CLK)的作用下可以生成波形;在清零信号(RESET)作用下,即可清零。 VHDL程序如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity hour24 is port( clk: in std_logic; reset:instd_logic; qh:BUFFER STD_LOGIC_VECTOR(2 DOWNTO 0); ql:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0)); end hour24; architecture behav of hour24 is begin process(reset,clk) begin if reset='1' then qh<="000"; ql<="0000"; elsif(clk'event and clk='1') then if (qh<2) then if (ql=9) then ql<="0000"; qh<=qh + 1; else ql<=ql+1; end if; else if (ql=3) then ql<="0000"; qh<="000"; else ql<=ql+1; end if; end if; end if; end process; end behav; 仿真波形如下:

多功能数字钟电路的设计与制作

多功能数字钟电路的设计与制作 一、设计任务与要求 设计和制作一个多功能数字钟,要求能准确计时并以数字形式显示时、分、秒的时间,能校正时间,准点报时。 二、方案设计与论证 1.数字钟设计原理 数字电子钟一般由振荡器、译码器、显示器等几部分电路组成,这些电路都是数字电路中应用最广的基本电路。振荡器产生的1Hz的方波,作为秒信号。秒信号送入计数器进行计数,并把累计的结果以“时”、“分”、“秒”的数字显示出来。“秒”的计数、显示由两级计数器和译码器组成的六十进制计数电路实现;“分”的计数、显示电路与“秒”的相同;“时”的计数、显示由两级计数器和译码器组成的二十四进制计数电路实现。所有计时结果由七段数码管显示器显示。用4个与非门构成调时电路,通过改变方波的频率,进行调时。最后用与非门和发光二极管构成整点显示部分。

2.总体结构框图如下: 图14 总体框图 三、单元电路设计与参数计算 1.脉冲产生电路 图15 晶振振荡器原理图 图16 555定时器脉冲产生电路原理图 振荡器可由晶振组成(如图15),也可以由555定时器组成。图16是由555定时器构成的1HZ 的自激振荡器,其原理是: 第一暂态2、6端电位为Vcc 3 1 ,则输出为高电平,三极管不导通,电容C 充电,此 时2、6端电位上升。当上升至大于Vcc 3 2 时,输出为低电平,三极管导通,电容C 放电, 11 21 C 1 R C 2 R O

此时2、6端电位下降,下降至Vcc 3 1 时,输出高电平,以此循环。根据公式C R R f )2(43.121+≈ 得,此时频率为0.991。 图17 555定时器波形关系 图18 555定时器产生1Hz 方波原理图 2.时间计数电路 图19 74LS161引脚图 74LS161功能表 v V 2 3 V 1 3 v U 1 74L S 161D Q A 14Q B 13Q C 12Q D 11R C O 15A 3B 4C 5D 6 E N P 7E N T 10 ~L O A D 9~C L R 1 C L K 2

多功能数字钟实验报告

《多功能数字钟电路的设计、制作》 课程设计报告 班级:(兴) 2008级自动化 姓名:胡荣 学号:2008960623 指导教师:刘勇 2010年11月13日

目录 一、设计目的.................................1 二、设计内容及要求...........................1 三、总设计原理...............................1 四、主要元件及设备...........................2 五、单元电路的设计...........................5 1、数字电子计时器组成原理.................5 2、用74LS160实现12进制计数器..............6 3、校时电路...............................7 4、时基电路设计...........................8 六、设计总电路图.............................8 七、设计结果及其分析.........................8 八、设计过程中的问题及解决方案...............9 九、心得体会.................................9 十、附录.....................................10

多功能数字钟电路设计 一、设计目的 通过课程设计要实现以下两个目标:一、初步掌握电子线路的设计、组装及调试方法。即根据设计要求,查阅文献资料,收集、分析类似电路的性能,并通过组装调试等实践活动,使电路达到性能要求;二、课程设计为后续的毕业设计打好基础。毕业设计是系统的工程设计实践,而课程设计的着眼点是让我们开始从理论学习的轨道上逐渐引向实际方面,运用已学过的分析和设计电路的理论知识,逐步掌握工程设计的步骤和方法,同时,课程设计报告的书写,为今后从事技术工作撰写科技报告和技术资料打下基础。 二、设计内容及要求 1、功能要求: ①基本功能: 以数字形式显示时、分、秒的时间,小时计数器的计时要求为“12翻1”,并要求能手动快校时、快校分或慢校时、慢校分。 ②扩展功能: 定时控制,其时间自定;仿广播电台正点报时—自动报正点时数。 2、设计步骤与要求: ①拟定数字钟电路的组成框图,要求先实现电路的基本功能,后扩展功能,使用的器件少,成本低; ②设计各单元电路,并用Multisim软件仿真; ③在通用电路板上安装电路,只要求显示时分; ④测试数字钟系统的逻辑功能; ⑤写出设计报告。设计报告要求:写出详细地设计过程(含数字钟系统的整机逻辑电路图)、调试步骤、测试结果及心得体会。 三、总设计原理 数字电子钟原理是一个具有计时、校时、报时、显示等基本功能的数字钟主要由振荡器、分频器、计数器、译码器、显示器、校时电路、报时电路等七部分组成。石英晶体振荡器产生的信号经过分频器得到秒脉冲,秒脉冲送入计数器计数,计数结果通过“时”、“分”、“秒”译码器译码,并通过显示器显示时间。 四、主要元件及设备 1、给定的主要器件: 74LS00(4片),74LS160(4片)或74LS161(4片),74LS04(2片),74LS20(2片),74LS48(4片),数码管BS202(4只),555(1片),开关(1个),电阻47k(2个)电容10uF(1个)10nF(1个) 各元件引脚图如下图:

相关主题