EDA技术与实践Word文件下载.docx

上传人:b****7 文档编号:22848465 上传时间:2023-02-05 格式:DOCX 页数:16 大小:251.22KB
下载 相关 举报
EDA技术与实践Word文件下载.docx_第1页
第1页 / 共16页
EDA技术与实践Word文件下载.docx_第2页
第2页 / 共16页
EDA技术与实践Word文件下载.docx_第3页
第3页 / 共16页
EDA技术与实践Word文件下载.docx_第4页
第4页 / 共16页
EDA技术与实践Word文件下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

EDA技术与实践Word文件下载.docx

《EDA技术与实践Word文件下载.docx》由会员分享,可在线阅读,更多相关《EDA技术与实践Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。

EDA技术与实践Word文件下载.docx

sec1【3·

0】表示秒十位

sec0【3·

min1【3·

min0【3·

hour1【3·

hour0【3·

(2)con1模块:

实现对按键数的统计,按键一次1,如果大于9时,自动回零。

con1模块的VHDL源代码如下。

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYcon1IS

PORT(s,rst:

INSTD_LOGIC;

q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

END;

ARCHITECTUREbehavOFcon1IS

SIGNALq1:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

PROCESS(s,rst)

BEGIN

IFrst='

1'

thenq1<

="

0000"

;

ELSIFs'

EVENTANDs='

THEN

IFq1<

"

1001"

q1<

=q1+1;

else

ENDIF;

ENDPROCESS;

q<

=q1;

End;

(3)sst模块:

为整点报时提供控制信号,当58min,妙为52,54,56,58时,q500输出“1”;

妙为00时,q1K输出“1”。

这两个信号经过逻辑门实现报时功能。

ENTITYsstIS

PORT(clk:

m1,m0,s1,s0:

INSTD_LOGIC_VECTOR(3DOWNTO0);

q500,q1k:

OUTSTD_LOGIC);

ARCHITECTUREoneOFsstIS

PROCESS(clk)

IFclk'

EVENTANDclk='

IFm1="

0101"

ANDm0="

ANDs1="

IFs0="

0001"

ors0="

0011"

0111"

q500<

='

ELSE

0'

ENDIF

ANDs0="

q1k<

(4)ccc模块:

对系统时钟clk输入的4MHz频率信号进行分频,产生频率分别为1000Hz、500Hz和1Hz的时钟信号。

ccc模块的VHDL源代码如下。

ENTITYcccIS

q500,q1k,q1sec:

ARCHITECTUREoneOFcccIS

SIGNALx,y,z:

STD_LOGIC;

PROCESS(CLK)

VARIABLEcnt:

INTEGERRANGE0TO1999;

THEN

IFcnt<

1999THEN

cnt:

=cnt+1;

=0;

x<

=notx;

ENDPROCESS;

=x;

PROCESS(x)

begin

IFx'

EVENTANDx='

y<

=noty;

=y;

PROCESS(y)

INTEGERRANGE0TO499;

IFY'

EVENTANDY='

499THEN

z<

=notz;

q1sec<

=z;

(5)hour模块:

小时计数电路是由IC5和IC6组成的24进制计数电路

hour模块的VHDL源代码如下。

LIBRARYIEEE;

ENTITYhourIS

PORT(clk,clr,rst:

hour0,hour1:

hour11,hour00:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

co:

ENDhour;

ARCHITECTUREbehavOFhourIS

SIGNALclk1:

SIGNALq:

SIGNALp:

BEGIN

A:

PROCESS(clk,clr,rst)

THENq<

ELSIF(clk'

)andclr='

IFhour0="

IFq="

clk1<

=q+1;

=hour0;

ENDPROCESSA;

B:

PROCESS(RST,CLR,CLK1)

THENp<

ELSIF(clk1'

EVENTANDclk1='

IFhour1="

IFp="

0010"

p<

=p+1;

=hour1;

ENDPROCESSB;

C:

PROCESS(CLK,CLK1)

IFclk'

ANDq="

0100"

CO<

P=”0000”;

Q=”0000”;

ENDPROCESSC;

hour00<

=q;

hour11<

=p;

ENDbehav;

hour模块儿为一个二十四进制计数器。

其外部接口功能如下:

clk为触发信号输入端口,clr为清零端,rst为复位端,hour0和hour1为时间调控输入端,hour00和hour11为计时输出端(hour00为个位、hour11为十位)。

本模块儿基本逻辑功能如下:

当hour0和hour1端无时间调控信号输入时,其计数功能不变。

输入一个触发信号计数一次,个位十次一循环然后十位进一。

直到十位为二、个位为四时计数器清零,然后计数器再从零开始计数,依次循环。

当hour0和hour1端有时间调控信号输入时,则hour00和hour11端输出时间调控信号。

(6)min模块

Min源代码如下:

ENTITYminIS

PORT(rst,clr,clk:

min0,min1:

inSTD_LOGIC_VECTOR(3DOWNTO0);

min00,min11:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

cout:

ENDmin;

ARCHITECTUREbehavOFminIS

SIGNALcnt0:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALcnt1:

STD_LOGIC_VECTOR(2DOWNTO0);

A:

PROCESS(rst,clr,clk)

THENcnt0<

)ANDclr='

IFcnt0="

cnt0<

=cnt0+1;

B:

PROCESS(rst,clr,clk1)

THENcnt1<

110"

IFcnt1="

cnt1<

000"

=cnt1+1;

PROCESS(clk,clk1)

100"

ANDcnt0="

cout<

min00(3DOWNTO0)<

=cnt0;

min11(2DOWNTO0)<

=cnt1;

(7)sec模块

sec源代码如下:

ENTITYsecIS

sec0,sec1:

sec00,sec11:

ENDsec;

ARCHITECTUREbehavOFsecIS

sec00(3DOWNTO0)<

sec11(2DOWNTO0)<

三、系统仿真

3.1数字钟仿真图

3.2数字钟编译报告

四:

实验总结

(1)各个模块之间的链接修改了很多次,提前没有整体构思好,单个模块设计好以后总是会在模块间的组合上出现接口不对应的情况。

在24/12小时制模块chg的设计中,不同的时间转换考虑的不周全(例如下午1~7点和下午8~11点的变化不一样)自己对知识的掌握还是不够好,有许多模块设计了很长的时间(无论是构思还是具体编程)。

(2)对课程的建议EDA课程上完以后,我感觉这门课程实际应用很强。

非常锻炼动手能力,与其他的课程很不一样。

希望学校增加该课的课时。

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

当前位置:首页 > 初中教育 > 其它课程

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

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