VHDL秒表计时器Word下载.docx

上传人:b****3 文档编号:6469683 上传时间:2023-05-06 格式:DOCX 页数:9 大小:15.70KB
下载 相关 举报
VHDL秒表计时器Word下载.docx_第1页
第1页 / 共9页
VHDL秒表计时器Word下载.docx_第2页
第2页 / 共9页
VHDL秒表计时器Word下载.docx_第3页
第3页 / 共9页
VHDL秒表计时器Word下载.docx_第4页
第4页 / 共9页
VHDL秒表计时器Word下载.docx_第5页
第5页 / 共9页
VHDL秒表计时器Word下载.docx_第6页
第6页 / 共9页
VHDL秒表计时器Word下载.docx_第7页
第7页 / 共9页
VHDL秒表计时器Word下载.docx_第8页
第8页 / 共9页
VHDL秒表计时器Word下载.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

VHDL秒表计时器Word下载.docx

《VHDL秒表计时器Word下载.docx》由会员分享,可在线阅读,更多相关《VHDL秒表计时器Word下载.docx(9页珍藏版)》请在冰点文库上搜索。

VHDL秒表计时器Word下载.docx

设置复位和启/停开关

复位开关用来使计时器清0,并作好清0准备。

启/停开关的使用方法与传统的机械计时器相同,即按一下启/停开关,启动计时器开始计时,再按一下启/停开关计时终止。

复位开关可以在任何情况下使用,即使在计时过程中,只要按一下复位开关,计时进程应立即终止,并对计时器清零。

设计方案:

为了便于描述,将整个计时控制芯片分成5个子模块:

键输入子模块(keyin),时钟产生子模块(clkgen),控制子模块(ctrl),定时计数子模块(cntclk)和显示子模块(disp),各模块之间信号连接关系的方框图如下:

芯片设计:

各模块程序及生成的符号文件如下:

keyin模块设计

该模块的描述是为了产生单个复位脉冲res和启停脉冲stst.整个功能模块用两个进程语句描述。

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitykeyinis

port(reset,start_stop,clk:

instd_logic;

res,stst:

outstd_logic);

endentity;

architectureaofkeyinis

signalres0,res1,stst0,stst1:

std_logic;

begin

process(clk)

if(clk'

eventandclk='

0'

)then

res1<

=res0;

res0<

=reset;

stst1<

=stst0;

stst0<

=start_stop;

endif;

endprocess;

process(res0,res1,stst0,stst1)

res<

=clkandres0and(notres1);

stst<

=clkandstst0and(notstst1);

enda;

clkgen模块设计

该模块的功能是产生100Hz的计时允许信号cntclk和25Hz的宽度为1ms的键输入时钟信号keycek.

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYcnt10IS

PORT(reset,en,clk:

INSTD_LOGIC;

carry:

OUTSTD_LOGIC;

:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDCNT10;

ARCHITECTURErtlOFcnt10IS

SIGNALqs:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALca:

STD_LOGIC;

BEGIN

PROCESS(clk)

BEGIN

IF(clk'

EVENTANDclk='

1'

)THEN

IF(reset='

qs<

="

0000"

;

ELSIF(en='

)THEN

IF(qs="

1001"

="

ca<

='

ELSIF(qs="

1000"

=qs+1;

ELSE

ENTITYcnt4IS

carry 

OUTSTD_LOGIC_VECTOR(1DOWNTO0));

ENDCNT4;

ARCHITECTURErtlOFcnt4IS

STD_LOGIC_VECTOR(1DOWNTO0);

00"

ELSIF(EN='

11"

10"

=qs+1;

ENDIF;

ENDPROCESS;

PROCESS(ca)

q<

=qs;

carry<

=caANDen;

ENDrtl;

ctrl子模块

该模块的功能是产生计时计数模块的计数允许信号cnten

useieee.std_logic_arith.all;

entityctrlis

port(sysres,res,stst,cntclk:

instd_ulogic;

centen:

outstd_ulogic);

endctrl;

architecturertlofctrlis

signalenb1:

std_ulogic;

process(stst,sysres,res)

if(sysres='

orres='

)then

enb1<

elsif(stst'

eventandstst='

=notenb1;

centen<

=enb1andcntclk;

endrtl;

cntblk模块设计

该模块的功能是实现计时计数,它由四个十进制计数器和两个六进制计数器串结而成。

PROCESS(ca,en)

ENTITYcnt6IS

ENDCNT6;

ARCHITECTURErtlOFcnt6IS

0101"

0100"

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2