VHDL3Word文件下载.docx

上传人:b****2 文档编号:4510131 上传时间:2023-05-03 格式:DOCX 页数:19 大小:111.30KB
下载 相关 举报
VHDL3Word文件下载.docx_第1页
第1页 / 共19页
VHDL3Word文件下载.docx_第2页
第2页 / 共19页
VHDL3Word文件下载.docx_第3页
第3页 / 共19页
VHDL3Word文件下载.docx_第4页
第4页 / 共19页
VHDL3Word文件下载.docx_第5页
第5页 / 共19页
VHDL3Word文件下载.docx_第6页
第6页 / 共19页
VHDL3Word文件下载.docx_第7页
第7页 / 共19页
VHDL3Word文件下载.docx_第8页
第8页 / 共19页
VHDL3Word文件下载.docx_第9页
第9页 / 共19页
VHDL3Word文件下载.docx_第10页
第10页 / 共19页
VHDL3Word文件下载.docx_第11页
第11页 / 共19页
VHDL3Word文件下载.docx_第12页
第12页 / 共19页
VHDL3Word文件下载.docx_第13页
第13页 / 共19页
VHDL3Word文件下载.docx_第14页
第14页 / 共19页
VHDL3Word文件下载.docx_第15页
第15页 / 共19页
VHDL3Word文件下载.docx_第16页
第16页 / 共19页
VHDL3Word文件下载.docx_第17页
第17页 / 共19页
VHDL3Word文件下载.docx_第18页
第18页 / 共19页
VHDL3Word文件下载.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

VHDL3Word文件下载.docx

《VHDL3Word文件下载.docx》由会员分享,可在线阅读,更多相关《VHDL3Word文件下载.docx(19页珍藏版)》请在冰点文库上搜索。

VHDL3Word文件下载.docx

2、设计万年历的基本逻辑思路

3、创建工程,创建新文件,编写万年历的程序

4、编译程序,检查错误

5、添加管脚约束

6、波形仿真7、综合、实现、下载

8、完成实验报告与总结

四、实验原理

万年历原理

秒、分是60进制,时是24进制,日31天由月1.3.5.7.8.10.12控制,日28/29由2月和润年控制,日30由月4.6.9.11控制。

原理如下图:

图1万年历结构模块图

五、VHDL程序

1、主程序

libraryIEEE;

useIEEE.STD_LOGIC_1164.ALL;

useIEEE.NUMERIC_STD.ALL;

useIEEE.std_logic_unsigned.all;

entitymainis

Port(clk:

inSTD_LOGIC;

light:

outSTD_LOGIC_VECTOR(7downto0);

cpld_en:

outSTD_LOGIC_VECTOR(1downto0);

led_en:

outSTD_LOGIC_VECTOR(7downto0));

endmain;

architectureBehavioralofmainis

signalresult:

std_logic_vector(3downto0);

signalclknew:

std_logic;

signalclknew_s:

signalflag:

integerrange1to8;

signalCounter:

IntegerRANGE1TO50;

signalfenpin28s:

signalas:

signalbs:

signalcouts:

signalT1s:

signalT2s:

signalruns:

signalN1s:

signalN2s:

signaly1s:

signaly2s:

signalcout1s:

componentclk_devideris

Port(clkin:

clkout:

outSTD_LOGIC);

endcomponent;

componentdayIS

PORT(fenpin28:

instd_logic;

a,b:

T1,T2:

outstd_logic_vector(3downto0);

cout:

outstd_logic);

componentdevideris

port(clk:

instd_logic;

fenpin28:

outstd_logic);

componentledis

Port(key_in:

inSTD_LOGIC_VECTOR(3downto0);

light_out:

clk:

inSTD_LOGIC);

componentnianIS

PORT(COUT1:

INSTD_LOGIC;

N1,N2:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

run:

OUTSTD_LOGIC);

componentyueIS

PORT(cout,run:

Y1,Y2:

a,b:

OUTSTD_LOGIC;

COUT1:

begin

cpld_en<

="

01"

;

u1:

clk_deviderportmap(clk,clknew);

u2:

deviderportmap(clk,fenpin28s);

u3:

ledportmap(result,light,clknew_s);

u4:

dayportmap(fenpin28s,as,bs,T1s,T2s,couts);

u5:

nianportmap(COUT1s,N1s,N2s,runs);

u6:

yueportmap(couts,runs,Y1s,Y2s,as,bs,COUT1s);

process(clknew)

BEGIN

IF(clknew'

eventANDclknew='

1'

)THEN

IFCounter=10THEN

Counter<

=1;

clknew_s<

=NOTclknew_s;

ELSE

Counter<

=Counter+1;

ENDIF;

ENDIF;

ENDPROCESS;

process(clknew_s)

begin

if(clknew_s'

eventandclknew_s='

)then

caseflagis

when1=>

led_en<

01111111"

result<

0010"

flag<

=flag+1;

when2=>

10111111"

0000"

when3=>

11011111"

=N1s;

when4=>

11101111"

=N2s;

when5=>

11110111"

=Y1s;

when6=>

11111011"

=Y2s;

when7=>

11111101"

=T1s;

when8=>

11111110"

=T2s;

whenothers=>

flag<

=1;

endcase;

elsenull;

endif;

endprocess;

endBehavioral;

2、分频模块

(1)第一个分频模块

useIEEE.STD_LOGIC_ARITH.ALL;

useIEEE.STD_LOGIC_UNSIGNED.ALL;

----Uncommentthefollowinglibrarydeclarationifinstantiating

----anyXilinxprimitivesinthiscode.

--libraryUNISIM;

--useUNISIM.VComponents.all;

entityclk_devideris

endclk_devider;

architectureBehavioralofclk_devideris

IntegerRANGE1TO5000;

SIGNALClk:

std_logic;

PROCESS(clkin)

IF(clkin'

eventANDclkin='

IFCounter=5000THEN

Clk<

=NOTClk;

clkout<

=Clk;

(2)第二个分频模块

ENTITYdeviderIS

PORT(

clk:

ENDdevider;

ARCHITECTUREBehavioralOFdeviderIS

SIGNALtemp:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALtmp:

INTEGERRANGE0TO49999999;

SIGNALclk_out:

STD_LOGIC;

BEGIN

PROCESS(clk)

IFclk'

eventANDclk='

THEN

IFtmp=49999999THEN

tmp<

=0;

ELSE

=tmp+1;

ENDIF;

IFtmp<

=24999999THEN

clk_out<

='

0'

ENDPROCESS;

fenpin28<

=clk_out;

3、日模块

ENTITYdayIS

ENDday;

ArchitectureBehavioralofdayis

signalab:

STD_LOGIC_VECTOR(1DOWNTO0);

signalQ1,Q2:

STD_LOGIC_VECTOR(3DOWNTO0);

Begin

PROCESS(fenpin28,a,b)

ab<

=a&

b;

IFfenpin28'

EVENTANDfenpin28='

IFQ1=9THEN

Q1<

Q2<

=Q2+1;

elseQ1<

=Q1+1;

endif;

ifab="

00"

then

ifQ2=3ANDQ1=1THEN

Q2<

Q1<

0001"

cout<

elsecout<

endif;

elsifab="

then

ifQ2=3andQ1=0THEN

;

cout<

10"

ifQ2=2ANDQ1=8then

11"

ifQ2=2ANDQ1=9then

elsenull;

ENDIF;

T1<

=Q1;

T2<

=Q2;

ENDBehavioral;

4、月模块

ENTITYyueIS

PORT(cout,run:

ENDyue;

ARCHITECTUREBehavioralOFyueIS

signalQ2,Q1:

STD_LOGIC_VECTOR(3DOWNTO0);

signalQ2Q1:

STD_LOGIC_VECTOR(7DOWNTO0);

SIGNALa1,b1:

STD_LOGIC;

PROCESS(cout,run)

IFcout'

EVENTANDcout='

IFQ1=9THEN

IFQ2=1ANDQ1=2THEN

COUT1<

ELSECOUT1<

endPROCESS;

PROCESS(q2,q1)

Q2Q1<

=Q2&

Q1;

IFQ2Q1="

00000001"

OR

Q2Q1="

00000011"

00000101"

00001000"

00010000"

00010010"

THENa1<

b1<

ELSIFQ2Q1="

00000010"

THEN

IFrun='

a1<

elsea1<

ELSEa1<

Y1<

Y2<

a<

=a1;

b<

=b1;

5、年模块

ENTITYnianIS

PORT(COUT1:

ENDnian;

ARCHITECTUREBehavioralOFnianIS

signalQ1,Q2,Q3:

PROCESS(COUT1,Q1,Q2)

IFCOUT1'

EVENTANDCOUT1='

IFQ2=9THEN

ELSE

Q3<

=Q3+1;

IFQ3=3THEN

run<

ELSErun<

N1<

N2<

6、数码管动态显示模块

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

entityledis

endled;

architectureBehavioralofledis

process(clk)

if(clk'

eventandclk='

)then

case(key_in)is

when"

=>

light_out<

00111111"

00000110"

01011011"

0011"

01001111"

0100"

01100110"

0101"

01101101"

0110"

01111101"

0111"

00000111"

1000"

1001"

01101111"

whenothers=>

ZZZZZZZZ"

--whenothers=>

NULL;

endif;

endprocess;

六、仿真波形图

图2时钟分频模块仿真波形图

图3LED显示模块仿真波形图

七、管脚约束

管脚约束文件如下:

八、心得体会

万年历的大作业,让我从中收获很多,感触也很多。

通过完成大作业,我对ISE又有了更深的理解。

以前有很多不知道的东西,在完成作业的过程中大部分的问题都得到了解决。

这次实训,我不仅仅在知识上得到很大程度的提升,对VHDL的编程操作更加熟悉,而且,分析问题和解决问题的能力得到很大的提升。

最后,很感谢我的指导老师。

感谢她对我的悉心指导,在遇到瓶颈,止步不前时能给我们指明方向,帮忙解决问题。

谢谢老师!

九、参考文献

[1]肖特著.《VHDL大学实用教程》电子工业出版社2010年

[2]潘松黄继业著.《EDA技术实用教程》科学出版社2010年

[3]张丕状著.《基于VHDL的CPLD\FPGA开发与应用》电子工业出版社2009年

[4]邢建平著.《VHDL程序设计高等学校教材》清华大学出版社2008年

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

当前位置:首页 > 医药卫生 > 基础医学

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

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