EDA数字秒表课程设计Word文档格式.docx

上传人:b****8 文档编号:21916300 上传时间:2023-02-01 格式:DOCX 页数:12 大小:50.51KB
下载 相关 举报
EDA数字秒表课程设计Word文档格式.docx_第1页
第1页 / 共12页
EDA数字秒表课程设计Word文档格式.docx_第2页
第2页 / 共12页
EDA数字秒表课程设计Word文档格式.docx_第3页
第3页 / 共12页
EDA数字秒表课程设计Word文档格式.docx_第4页
第4页 / 共12页
EDA数字秒表课程设计Word文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

EDA数字秒表课程设计Word文档格式.docx

《EDA数字秒表课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《EDA数字秒表课程设计Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

EDA数字秒表课程设计Word文档格式.docx

=COUNT+1;

0'

ENDIF;

ENDPROCESS;

ENDART;

 

(2)控制模块的VHDL源程序(

USECTRLIS

PORT(CLR,CLK,SP:

EN:

——CLR:

清零信号

CLK:

脉冲输入端

SP:

计数输入端

EN:

输出端

END;

ARCHITECTUREBEHAVEOFCTRLIS

CONSTANTS0:

STD_LOGIC_VECTOR(1DOWNTO0):

00"

CONSTANTS1:

01"

CONSTANTS2:

10"

CONSTANTS3:

11"

TYPESTATESIS(S0,S1,S2,S3);

——表达四个状态的位矢量

SIGNALCURRENT_STATE,NEXT_STATE:

STATES;

COM:

PROCESS(SP,CURRENT_STATE)——决定转换状态的进程

CASECURRENT_STATEIS

WHENS0=>

EN<

——选中状态为S0、EN='

IFSP='

NEXT_STATE<

=S1;

=S0;

WHENS1=>

——选中状态为S1、EN='

=S2;

WHENS2=>

——选中状态为S2、EN='

=S3;

WHENS3=>

——选中状态为S3、EN='

ENDCASE;

SYNCH:

PROCESS(CLK)——时序进程

IFCLR='

CURRENT_STATE<

ELSIFCLK'

EVENTANDCLK='

THEN

=NEXT_STATE;

ENDBEHAVE;

(3)计时模块的VHDL源程序

①十进制计数器的VHDL源程序——

USEcdu10IS

PORT(CLK:

——时钟信号

CLR:

——清零信号

——计数使能信号

CN:

OUTSTD_LOGIC;

——计数输出信号

COUNT10:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

——计数值

ENDcdu10;

ARCHITECTUREARTOFcdu10IS

SIGNALSCOUNT10:

BEGIN

COUNT10<

=SCOUNT10;

PROCESS(CLK,CLR,EN)

IF(CLR='

)THEN

SCOUNT10<

="

CN<

='

ELSIFRISING_EDGE(CLK)THEN——脉冲为上跳沿触发

IF(EN='

)THEN

IFSCOUNT10="

ELSE

=SCOUNT10+'

ENDIF;

ENDPROCESS;

②六进制计数器的VHDL源程序——

USEcdu6IS

COUNT6:

ENDcdu6;

ARCHITECTUREARTOFcdu6IS

SIGNALSCOUNT6:

COUNT6<

=SCOUNT6;

SCOUNT6<

ELSIFRISING_EDGE(CLK)THEN

IFSCOUNT6="

0101"

=SCOUNT6+'

③计时器的VHDL源程序——

USEcountIS

S_1MS:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

——毫秒计数值

S_10MS:

——十毫秒计数值

S_100MS:

——百毫秒计数值

S_1S:

——秒计数值

S_10S:

——十秒计数值

M_1MIN:

——分计数值

M_10MIN:

——十分计数值

HOUR:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

——小时计数值

ENDcount;

ARCHITECTUREARTOFcountIS

COMPONENTcdu10——元件例化

CLR:

EN:

CN:

COUNT10:

ENDCOMPONENTcdu10;

COMPONENTcdu6——元件例化

COUNT6:

ENDCOMPONENTcdu6;

SIGNALA,B,C,D,E,F,G,H:

STD_LOGIC;

U1:

cdu10PORTMAP(CLK,CLR,EN,A,S_1MS);

U2:

cdu10PORTMAP(A,CLR,EN,B,S_10MS);

U3:

cdu10PORTMAP(B,CLR,EN,C,S_100MS);

U4:

cdu10PORTMAP(C,CLR,EN,D,S_1S);

U5:

cdu6PORTMAP(D,CLR,EN,E,S_10S);

U6:

cdu10PORTMAP(E,CLR,EN,F,M_1MIN);

U7:

cdu6PORTMAP(F,CLR,EN,G,M_10MIN);

U8:

cdu10PORTMAP(G,CLR,EN,H,HOUR);

(4)显示模块的VHDL源程序

数据选择器的VHDL源程序(

USEMULXIS

PORT(CLK,CLR,EN:

INSTD_LOGIC_VECTOR(3DOWNTO0);

——毫秒计数器

——十毫秒计数器

——百毫秒计数器

——秒计数器

——十秒计数器

——分计数器

——十分计数器

——小时计数器

OUTBCD:

——BCD码输出

SEG:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

——七段译码输出

ENDMULX;

ARCHITECTUREARTOFMULXIS

PROCESS(CLK)

1111"

ELSIFRISING_EDGE(CLK)THEN

IFEN='

IFCLK'

THEN——时钟上升沿触发输出各位数据

CASECOUNTIS

WHEN"

=>

OUTBCD<

=S_1MS;

SEG<

"

0001"

=S_10MS;

0010"

=S_100MS;

0011"

=S_1S;

0100"

=S_10S;

=M_1MIN;

0110"

=M_10MIN;

0111"

=HOUR;

01111111"

1000"

WHENOTHERS=>

00000000"

BCD七段译码驱动器的VHDL源程序

USEBCD7IS

PORT(BCD:

INSTD_LOGIC_VECTOR(3DOWNTO0);

——输入为4位二进制数,范围从0到9

LED:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

——7段译码输出

ENDBCD7;

ARCHITECTUREARTOFBCD7IS

LED<

1111110"

WHENBCD="

ELSE——0的7段译码(以下类推)

"

0110000"

1101101"

1111001"

0110011"

1011011"

1011111"

1110000"

1111011"

0000000"

——其他情况的输出

(5)顶层设计的的VHDL源程序

USEmbIS

PORT(SP:

CLK:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDmb;

ARCHITECTUREARTOFmbIS

COMPONENTCTRL

ENDCOMPONENT;

COMPONENTCB10

COMPONENTcount

CLR:

S_1MS:

S_10MS:

S_100MS:

S_1S:

S_10S:

M_1MIN:

M_10MIN:

HOUR:

ENDCOMPONENT;

COMPONENTBCD7

LED:

COMPONENTMULX

OUTBCD:

SEG:

SIGNALC,E:

SIGNALMS1_S,MS10_S,MS100_S:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALS1S_S,S10_S:

SIGNALMIN1_S,MIN10_S:

SIGNALH:

SIGNALBCD_S:

U0:

CTRLPORTMAP(CLR,CLK,SP,E);

CB10PORTMAP(CLK,C);

countPORTMAP(C,CLR,E,MS1_S,MS10_S,MS100_S,S1S_S,S10_S,MIN1_S,MIN10_S,H);

MULXPORTMAP(CLR,CLK,E,MS1_S,MS10_S,MS100_S,S1S_S,S10_S,MIN1_S,MIN10_S,H,BCD_S,SEG);

BCD7PORTMAP(BCD_S,LED);

CO<

=C;

EN<

=E;

OUTBCD<

=BCD_S;

设计原理图:

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

当前位置:首页 > 初中教育 > 语文

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

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