用Verilog语言编写的多功能数字钟docxWord文档下载推荐.docx

上传人:b****4 文档编号:14306436 上传时间:2022-10-21 格式:DOCX 页数:13 大小:253.44KB
下载 相关 举报
用Verilog语言编写的多功能数字钟docxWord文档下载推荐.docx_第1页
第1页 / 共13页
用Verilog语言编写的多功能数字钟docxWord文档下载推荐.docx_第2页
第2页 / 共13页
用Verilog语言编写的多功能数字钟docxWord文档下载推荐.docx_第3页
第3页 / 共13页
用Verilog语言编写的多功能数字钟docxWord文档下载推荐.docx_第4页
第4页 / 共13页
用Verilog语言编写的多功能数字钟docxWord文档下载推荐.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

用Verilog语言编写的多功能数字钟docxWord文档下载推荐.docx

《用Verilog语言编写的多功能数字钟docxWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《用Verilog语言编写的多功能数字钟docxWord文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。

用Verilog语言编写的多功能数字钟docxWord文档下载推荐.docx

对应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个数码管

SEL1

数码管选择位2

F3

的选择位

SEL2

数码管选择位3

F4

CP

脉冲源

J3

50Mhz脉冲

三.基于VerilogHDL语言的电路设计、仿真与综合

(一)顶层模块

本程序采用结构化设计方法,将其分为彼此独立又有一定联系的三个模块,

如图1所示:

图1:

顶层结构框图

(二)子模块

1.分频器

分频器的作用是对50Mhz的系统时钟信号进行分频,得到频率为1000hz的信

源程序如下:

modulefenpin(inputCP,outputCPout);

regCPout;

reg[31:

0]Cout;

regCP_En;

always@(posedgeCP)//将50MHz分频为1kHz

begin

Cout<

=(Cout==32'

d50000)?

32'

dO:

(Cout+32'

d1);

CP_En<

1'

d1:

d0;

CPout<

=CP_En;

end

endmodule

功能仿真波形如图2所示(以五分频为例):

B0

AnnnnmnfmnonmjWLrLrLrLnrLnnnnjmnnjmnnR

°

■rr—Pr—r

a

CFont

i—|:

:

i—ii—ii—Ii—I:

l

JJ■1■■■1'

I'

l'

'

iiiIIiIIl1■1■iii■1■1■ii■1

iiiiiiiiIi■1i1i・iii■■■■■■h%“iiIaiiii1ru

2.控制器和计数器

控制器的作用是,调整小时和分钟的值,并能实现清零功能。

计数器的

作用是实现分钟和秒钟满60进1,小时则由23跳到00。

当到达59分55秒的时

候,LED灯会闪烁来进行报时。

因为控制器和计数器的驱动信号频率均为1Hz,

故从分频器输出的信号进入控制器后,要进行二次分频,由1Khz变为1Hz

源程序如下:

modulekongzhiqi(CPout,S1,S2,RET,Hour,Minute,Second,LED);

inputCPout,S1,S2,RET;

output[5:

0]Hour;

output[5:

0]Minute;

0]Second;

outputLED;

reg[5:

reg[5:

regR1;

regR2,R8,LED;

reg[10:

regClk_En;

always@(posedgeCPout)

begin

if(S1==0)

R1=1;

if(S2==0)

R2=1;

if(RET==0)

R8=1;

Cout=(Cout==32'

d1000)?

32'

d0:

(Cout+32'

Clk_En=(Cout==32'

1'

d1:

if(Clk_En)

if(R1==1)

if(Hour<

24)Hour=Hour+1;

if(Hour==24)

Hour=0;

R1=0;

if(R2==1)

if(Minute<

60)

Minute=Minute+1;

if(Minute==60)

Minute=0;

24)

Hour=Hour+1;

if(Hour==24)begin

R2=0;

if(Second<

Second=Second+1;

if(Second==60)

Second=0;

if((Minute==59)&

&

(Second>

55))//整点倒计时begin

if(LED==1)

LED=0;

else

LED=1;

if(R8==1)〃清零

R8=0;

endmodule

功能仿真波形如图3所示:

3.显示器

显示器的作用是将时一分一秒的值在数码管上依次显示出来。

从分频器输出的1Khz的信号作为数码管的扫描信号。

SEL表示三个数码管选择位,它的取值表示八个数码管,从左至右依次是111~000。

LEDGA表示七段数码管,它的取值

决定特定位数上显示的数字。

■i・・

...B

Aiarishi

■i・b

z.__

__

CPfiutSLL[2..0)

irrAtiifnm

SU——J)注

_.jAUWAUMUWUKMM-MMLUlUUUUUUULMMaUMWUWU&

BHMMWWUWUMMUi

^*r>

LJ7F.rri、i可亦■需ii

1Hour[s..-Jj

「1

iWinutBlL.q

r■■

Lua

'

S&

c&

rKj[5..0i]

--

i

i…

1…

i…•

inst

modulexianshi(CPout,Hour,Minute,Second,SEL,LEDAG);

inputCPout;

inputHour,Minute,Second;

outputSEL,LEDAG;

reg[2:

0]SEL;

reg[6:

0]Led;

reg[3:

0]shi1,ge1,shi2,ge2,shi3,ge3;

always@(posedgeCPout)begin

shiwei1=Hour/10;

gewei仁Hour%10;

shiwei2=Minute/10;

gewei2=Minute%10;

shiwei3=Second/10;

gewei3=Second%10;

if(SEL==3'

b110)case(shiwei1)

//判断位选SEL勺值,并将此位上的值输出到数码管

4'

b0000:

b0001:

b0010:

b0011:

b0100:

b0101:

b0110:

b0111:

b1000:

b1001:

default:

endcase

Led=7'

b0111_111;

b0000_110;

b1011_011;

b1001_111;

b1100_110;

b1101_101;

b1111_101;

b0000_111;

b1111_111;

b1101_111;

b0000_000;

if(SEL==3'

b101)

case(gewei1)

b100)

Led=7'

b1000_000;

b011)

case(shiwei2)

Led=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1