EDA数字时钟设计说明Word格式.docx

上传人:b****5 文档编号:20583192 上传时间:2023-01-24 格式:DOCX 页数:6 大小:15.47KB
下载 相关 举报
EDA数字时钟设计说明Word格式.docx_第1页
第1页 / 共6页
EDA数字时钟设计说明Word格式.docx_第2页
第2页 / 共6页
EDA数字时钟设计说明Word格式.docx_第3页
第3页 / 共6页
EDA数字时钟设计说明Word格式.docx_第4页
第4页 / 共6页
EDA数字时钟设计说明Word格式.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

EDA数字时钟设计说明Word格式.docx

《EDA数字时钟设计说明Word格式.docx》由会员分享,可在线阅读,更多相关《EDA数字时钟设计说明Word格式.docx(6页珍藏版)》请在冰豆网上搜索。

EDA数字时钟设计说明Word格式.docx

instd_logic;

reset:

sec2,sec1:

bufferstd_logic_vector(3downto0);

--秒的十位和个位

seco:

outstd_logic);

--秒计时器的进位输出

end;

architectureAofsecond1is

begin

process(clk1s,reset)

ifreset='

0'

then

sec2<

="

0000"

;

sec1<

--清零秒计时器

seco<

='

elsifclk1s'

eventandclk1s='

1'

if(sec1="

1001"

andsec2="

0101"

)then

sec1<

="

--在59秒时回零

--进位

elsif(sec1="

=sec2+1;

else

=sec1+1;

endif;

endprocess;

3.分计时器模块设计

entityminute1is

port(clkm,clk1s,setm:

--秒进位输入,1HZ校分时钟输入信号,校分控制信号

min2,min1:

--分计时器的十位和个位

minco:

outstd_logic);

architectureAofminute1is

signalclkx:

std_logic;

Pclkm:

process(clkm,clk1s,setm)

begin--根据是否校分选择计时时钟

ifsetm='

thenclkx<

=clk1s;

--利用clk1s信号对分的初值进行快速设置

elseclkx<

=clkm;

--利用秒的进位信号正常计时

Pcontm:

process(clkx)

ifclkx'

eventandclkx='

if(min1="

andmin2="

min1<

min2<

minco<

='

--59分时回零并进位

elsif(min1="

=min2+1;

minco<

=min1+1;

4.时计时器模块设计

entityhour1is

port(clkh,clk1s,seth:

hou2,hou1:

bufferstd_logic_vector(3downto0));

--时的十位和个位

architectureAofhour1is

signalclky:

Pclkh:

process(clkh,clk1s,seth)

Begin--根据是否校时选择计时时钟

ifseth='

thenclky<

=clk1s;

--利用clk1s信号对时的初值进行快速设置

elseclky<

=clkh;

--利用分的进位信号正常计时

endprocess;

Pconth:

process(clky)

ifclky'

eventandclky='

if(hou1="

0011"

andhou2="

0010"

)then

hou1<

hou2<

--23时回零

elsif(hou1="

hou2<

=hou2+1;

else

=hou1+1;

5.报时模块设计

entityalarm1is

port(clk1s,clk500,clk1k:

instd_logic;

sec2,sec1,min2,min1:

instd_logic_vector(3downto0);

alarm:

architectureAofalarm1is

process(clk1s)

variableflag500:

variableflag1k:

ifclk1s'

eventandclk1s='

if(min1="

andmin2="

andsec2="

)then--59分50秒时开始报时

casesec1is

when"

=>

flag500:

0100"

0110"

0111"

1000"

--50,52,54,56,58,59秒时低频率报时

whenothers=>

flag1k:

endcase;

elseflag500:

if(min1="

andsec1="

flag1k:

--整点时高频率报时

ifflag500='

thenalarm<

=clk500;

elsifflag1k='

=clk1k;

elsealarm<

endif;

三.仿真结果

1.秒计时器仿真结果

2.分计时器仿真结果

3.时计时器仿真结果

4.报时模块仿真结果

5.timer仿真结果

四.疑惑

1.仿真结果中,由于输出信号向量(比如sec1(0),sec1

(1),sec1

(2),sec1(3))变化的不同时,使得组合后的sec1,sec2,min1,min2均出现毛刺,尝试了引入中间变量,中间信号的方法,都不能解决问题。

怎么办才好?

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

当前位置:首页 > 工程科技 > 材料科学

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

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