武汉工程大学FPGA实验报告.docx

上传人:b****5 文档编号:14807431 上传时间:2023-06-27 格式:DOCX 页数:28 大小:370.75KB
下载 相关 举报
武汉工程大学FPGA实验报告.docx_第1页
第1页 / 共28页
武汉工程大学FPGA实验报告.docx_第2页
第2页 / 共28页
武汉工程大学FPGA实验报告.docx_第3页
第3页 / 共28页
武汉工程大学FPGA实验报告.docx_第4页
第4页 / 共28页
武汉工程大学FPGA实验报告.docx_第5页
第5页 / 共28页
武汉工程大学FPGA实验报告.docx_第6页
第6页 / 共28页
武汉工程大学FPGA实验报告.docx_第7页
第7页 / 共28页
武汉工程大学FPGA实验报告.docx_第8页
第8页 / 共28页
武汉工程大学FPGA实验报告.docx_第9页
第9页 / 共28页
武汉工程大学FPGA实验报告.docx_第10页
第10页 / 共28页
武汉工程大学FPGA实验报告.docx_第11页
第11页 / 共28页
武汉工程大学FPGA实验报告.docx_第12页
第12页 / 共28页
武汉工程大学FPGA实验报告.docx_第13页
第13页 / 共28页
武汉工程大学FPGA实验报告.docx_第14页
第14页 / 共28页
武汉工程大学FPGA实验报告.docx_第15页
第15页 / 共28页
武汉工程大学FPGA实验报告.docx_第16页
第16页 / 共28页
武汉工程大学FPGA实验报告.docx_第17页
第17页 / 共28页
武汉工程大学FPGA实验报告.docx_第18页
第18页 / 共28页
武汉工程大学FPGA实验报告.docx_第19页
第19页 / 共28页
武汉工程大学FPGA实验报告.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

武汉工程大学FPGA实验报告.docx

《武汉工程大学FPGA实验报告.docx》由会员分享,可在线阅读,更多相关《武汉工程大学FPGA实验报告.docx(28页珍藏版)》请在冰点文库上搜索。

武汉工程大学FPGA实验报告.docx

武汉工程大学FPGA实验报告

武汉工程大学

电气信息学院

《FPGA与硬件描述语言》实验报告[1]

专业班级

14通信03班

实验时间

2016年10月12日

学生学号

1404201114

实验地点

4B315

学生姓名

秦重双

指导教师

曹新莉

实验项目

闪烁的LED

实验类别

基础实验

实验学时

4学时

实验目的及要求

1.掌握QuartusII设计电路的基本流程,熟悉VHDL程序,分别设计分频电路,LED闪烁延时计数程序。

2.将设计好的LED闪烁电路程序下载到DEII开发板上进行实物测试。

成绩评定表

类别

评分标准

分值

得分

合计

上机表现

按时出勤、遵守纪律

认真完成各项实验内容

30分

报告质量

程序代码规范、功能正确

填写内容完整、体现收获

70分

说明:

评阅教师:

日期:

2015年12月1日

实验内容

(说明:

此部分应包含:

实验内容、实验步骤、实验数据与分析过程等)

一、实验内容

1.用VHDL语言设计分频器,得到0.1Hz——1Hz的时钟信号;

2.设计闪烁延时程序,控制发光二极管的闪烁。

二、实验方法与步骤

分频电路的产生

1.分频原理:

(50MHz晶振信号怎样分频成你所需要的低频信号。

晶振信号经过一次50分频得到1MHz信号,再经过三次100分频可得到1Hz信号,0.1Hz信

号可由1Hz信号经10分频得到

2.50分频器:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT50IS

PORT(CLK,RST,EN:

INSTD_LOGIC;

DOUT:

OUTSTD_LOGIC_VECTOR(5DOWNTO0);

COUT:

OUTSTD_LOGIC);

ENDCNT50;

ARCHITECTUREbehavOFcnt50IS

BEGIN

PROCESS(CLK,RST,EN)

VARIABLEQ:

STD_LOGIC_VEcTOR(5DOWNTO0);

BEGIN

IFRST='0'THENQ:

=(OTHERS=>'0');

ELSIFCLK'EVENTANDCLK='1'THEN

IFEN='1'THEN

IFQ<49THENQ:

=Q+1;

ELSEQ:

=(OTHERS=>'0');

ENDIF;

ENDIF;

ENDIF;

IFQ="110001"THENCOUT<='1';

ELSECOUT<='0';

ENDIF;

DOUT<=Q;

ENDPROCESS;

ENDbehav;

3.100分频器:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT100IS

PORT(CLK,RST,EN:

INSTD_LOGIC;

DOUT:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);

COUT:

OUTSTD_LOGIC);

ENDCNT100;

ARCHITECTUREbehavOFcnt100IS

BEGIN

PROCESS(CLK,RST,EN)

VARIABLEQ:

STD_LOGIC_VEcTOR(6DOWNTO0);

BEGIN

IFRST='0'THENQ:

=(OTHERS=>'0');

ELSIFCLK'EVENTANDCLK='1'THEN

IFEN='1'THEN

IFQ<99THENQ:

=Q+1;

ELSEQ:

=(OTHERS=>'0');

ENDIF;

ENDIF;

ENDIF;

IFQ="1100011"THENCOUT<='1';

ELSECOUT<='0';

ENDIF;

DOUT<=Q;

ENDPROCESS;

ENDbehav;

4.LED闪烁定时电路:

LIBRARY ieee; 

USE ieee.std_logic_1164.all; 

USE ieee.std_logic_unsigned.all;  

ENTITY cnt5 IS PORT ( clk:

IN STD_LOGIC; 

en:

IN STD_LOGIC; 

clr:

IN STD_LOGIC; 

cout:

OUT STD_LOGIC; 

q:

buffer STD_LOGIC_VECTOR(2 DOWNTO 0) ); 

END cnt5;   

ARCHITECTURE SYN OF cnt5 IS 

BEGIN 

process(clk,clr)

 begin 

if clr='1' then q<="000"; 

elsif clk'event and clk='1' then 

if en='1' then

 if q="100" then q<="000"; 

else q<=q+1; 

end if;

end if;

end if; 

if q="100" then cout<='1';

else cout<='0';

 end if; 

end process; 

END SYN;

5.顶层文件,将所有底层原件集成为顶层设计文件:

三、实验数据与结果分析

测试结果:

 

LED灯每隔一定时间闪烁一次。

 

实验总结

(说明:

总结实验认识、过程、效果、问题、收获、体会、意见和建议。

 

武汉工程大学

电气信息学院

《FPGA与硬件描述语言》实验报告[2]

专业班级

14通信03班

实验时间

2016年10月19日

学生学号

1404201114

实验地点

4B315

学生姓名

秦重双

指导教师

曹新莉

实验项目

从左到右的流水灯

实验类别

基础实验

实验学时

4学时

实验目的及要求

1.接在fpga的8个LED从左到右循环依次点亮,产生走马灯效果

2.深入掌握晶振分频的原理,并实现;

3.通过设计计数器的不同计数值,来控制若干个发光二极管的逐次点亮。

成绩评定表

类别

评分标准

分值

得分

合计

上机表现

按时出勤、遵守纪律

认真完成各项实验内容

30分

报告质量

程序代码规范、功能正确

填写内容完整、体现收获

70分

说明:

评阅教师:

日期:

2015年月日

实验内容

(说明:

此部分应包含:

实验内容、实验步骤、实验数据与分析过程等)

一、实验内容

1.接在fpga的8个(或者更多个)LED从左到右循环依次点亮,产生流水灯效果

2.深入掌握晶振分频的原理,并实现;

3.通过设计计数器的不同计数值,来控制若干个发光二极管的逐次点亮。

二、实验方法与步骤

1.深入掌握晶振分频的原理,并实现;

由于实验开发板上使用的是50MHz的晶振,所以先将晶振分频的到1Hz的信号供后来使用,同样采用一个50分频和三个100分频。

2.通过设计计数器的不同计数值,来控制若干个发光二极管的逐次点亮。

CNT50源程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT50IS

PORT(CLK,RST,EN:

INSTD_LOGIC;

DOUT:

OUTSTD_LOGIC_VECTOR(5DOWNTO0);

COUT:

OUTSTD_LOGIC);

ENDCNT50;

ARCHITECTUREbehavOFcnt50IS

BEGIN

PROCESS(CLK,RST,EN)

VARIABLEQ:

STD_LOGIC_VEcTOR(5DOWNTO0);

BEGIN

IFRST='0'THENQ:

=(OTHERS=>'0');

ELSIFCLK'EVENTANDCLK='1'THEN

IFEN='1'THEN

IFQ<49THENQ:

=Q+1;

ELSEQ:

=(OTHERS=>'0');

ENDIF;

ENDIF;

ENDIF;

IFQ="110001"THENCOUT<='1';

ELSECOUT<='0';

ENDIF;

DOUT<=Q;

ENDPROCESS;

ENDbehav;

CNT100源程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT100IS

PORT(CLK,RST,EN:

INSTD_LOGIC;

DOUT:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);

COUT:

OUTSTD_LOGIC);

ENDCNT100;

ARCHITECTUREbehavOFcnt100IS

BEGIN

PROCESS(CLK,RST,EN)

VARIABLEQ:

STD_LOGIC_VEcTOR(6DOWNTO0);

BEGIN

IFRST='0'THENQ:

=(OTHERS=>'0');

ELSIFCLK'EVENTANDCLK='1'THEN

IFEN='1'THEN

IFQ<99THENQ:

=Q+1;

ELSEQ:

=(OTHERS=>'0');

ENDIF;

ENDIF;

ENDIF;

IFQ="1100011"THENCOUT<='1';

ELSECOUT<='0';

ENDIF;

DOUT<=Q;

ENDPROCESS;

ENDbehav;

CNT8源程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT8IS

PORT(CLK,RST,EN:

INSTD_LOGIC;

COUT:

BUFFERSTD_LOGIC_VECTOR(2DOWNTO0);

CO:

OUTSTD_LOGIC);

ENDCNT8;

ARCHITECTUREBEHOFCNT8IS

BEGIN

PROCESS(CLK,RST,EN)

BEGIN

IFRST='1'THENCOUT<="000";

ELSIFCLK'EVENTANDCLK='1'THEN

IFEN='1'THEN

IFCOUT<"111"THENCOUT<=COUT+1;

ELSECOUT<="000";

ENDIF;

ENDIF;

ENDIF;

IFCOUT="111"THENCO<='1';

ELSECO<='0';

ENDIF;

ENDPROCESS;

ENDBEH;

3-8译码器源程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYSANBAYIMAQI38IS

PORT(A:

INSTD_LOGIC_VECTOR(2DOWNTO0);

COUT:

OUTBIT_VECTOR(7DOWNTO0));

ENDSANBAYIMAQI38;

ARCHITECTUREBEHOFSANBAYIMAQI38IS

BEGIN

COUT(0)<='1'WHENA="000"ELSE'0';

COUT

(1)<='1'WHENA="001"ELSE'0';

COUT

(2)<='1'WHENA="010"ELSE'0';

COUT(3)<='1'WHENA="011"ELSE'0';

COUT(4)<='1'WHENA="100"ELSE'0';

COUT(5)<='1'WHENA="101"ELSE'0';

COUT(6)<='1'WHENA="110"ELSE'0';

COUT(7)<='1'WHENA="111"ELSE'0';

ENDBEH;

三、实验数据与结果分析

测试结果:

 

流水灯每隔一秒,从右向左点亮,当复位开关掰下时,led灯自动跳回最右边。

实验总结

(说明:

总结实验认识、过程、效果、问题、收获、体会、意见和建议。

 

武汉工程大学

电气信息学院

《FPGA与硬件描述语言》实验报告[3]

专业班级

14通信03班

实验时间

2016年10月26日

学生学号

1404201114

实验地点

4B315

学生姓名

秦重双

指导教师

曹新莉

实验项目

单只数码管循环显示0~F;8只数码管动态显示多个不同字符。

实验类别

基础实验

实验学时

4学时

实验目的及要求

1.掌握晶振芯片的分频过程及原理。

2.设计共阴极和共阳极七段数码管的显示原理,编写驱动译码VHDL代码。

3.通过时序控制,令单只数码管循环显示,形成流水灯的效果,并可以改变显示的时间。

4.8只数码管动态显示多个不同字符,数码管动态扫描显示0~7。

成绩评定表

类别

评分标准

分值

得分

合计

上机表现

按时出勤、遵守纪律

认真完成各项实验内容

30分

报告质量

程序代码规范、功能正确

填写内容完整、体现收获

70分

说明:

评阅教师:

日期:

2015年月日

实验内容

(说明:

此部分应包含:

实验内容、实验步骤、实验数据与分析过程等)

一、实验内容

1.掌握晶振芯片的分频过程及原理。

2.设计共阴极和共阳极七段数码管的显示原理,编写驱动译码VHDL代码。

3.通过时序控制,令单只数码管循环显示0——F,并可以改变显示的时间。

4.8只数码管动态显示多个不同字符,数码管动态扫描显示0~7。

二、实验方法与步骤

1.对晶振芯片进行分频:

从50MHZ分频到1Hz。

CNT16源程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT16IS

PORT(CLK,RST,EN:

INSTD_LOGIC;

DOUT:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

COUT:

OUTSTD_LOGIC);

ENDCNT16;

ARCHITECTUREbehavOFcnt16IS

BEGIN

PROCESS(CLK,RST,EN)

VARIABLEQ:

STD_LOGIC_VEcTOR(3DOWNTO0);

BEGIN

IFRST='0'THENQ:

=(OTHERS=>'0');

ELSIFCLK'EVENTANDCLK='1'THEN

IFEN='1'THEN

IFQ<15THENQ:

=Q+1;

ELSEQ:

=(OTHERS=>'0');

ENDIF;

ENDIF;

ENDIF;

IFQ="1111"THENCOUT<='1';

ELSECOUT<='0';

ENDIF;

DOUT<=Q;

ENDPROCESS;

ENDbehav;

CNT50源程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT50IS

PORT(CLK,RST,EN:

INSTD_LOGIC;

DOUT:

OUTSTD_LOGIC_VECTOR(5DOWNTO0);

COUT:

OUTSTD_LOGIC);

ENDCNT50;

ARCHITECTUREbehavOFcnt50IS

BEGIN

PROCESS(CLK,RST,EN)

VARIABLEQ:

STD_LOGIC_VEcTOR(5DOWNTO0);

BEGIN

IFRST='0'THENQ:

=(OTHERS=>'0');

ELSIFCLK'EVENTANDCLK='1'THEN

IFEN='1'THEN

IFQ<49THENQ:

=Q+1;

ELSEQ:

=(OTHERS=>'0');

ENDIF;

ENDIF;

ENDIF;

IFQ="110001"THENCOUT<='1';

ELSECOUT<='0';

ENDIF;

DOUT<=Q;

ENDPROCESS;

ENDbehav;

CNT100源程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT100IS

PORT(CLK,RST,EN:

INSTD_LOGIC;

DOUT:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);

COUT:

OUTSTD_LOGIC);

ENDCNT100;

ARCHITECTUREbehavOFcnt100IS

BEGIN

PROCESS(CLK,RST,EN)

VARIABLEQ:

STD_LOGIC_VEcTOR(6DOWNTO0);

BEGIN

IFRST='0'THENQ:

=(OTHERS=>'0');

ELSIFCLK'EVENTANDCLK='1'THEN

IFEN='1'THEN

IFQ<99THENQ:

=Q+1;

ELSEQ:

=(OTHERS=>'0');

ENDIF;

ENDIF;

ENDIF;

IFQ="1100011"THENCOUT<='1';

ELSECOUT<='0';

ENDIF;

DOUT<=Q;

ENDPROCESS;

ENDbehav;

2.设计共阴极和共阳极七段数码管的显示原理,编写驱动译码VHDL代码:

共阴极

ARCHITECTUREoneOFDECL7SIS

BEGIN

PROCESS(A)BEGIN

CASEAIS

WHEN"0000"=>LED7S<="1000000";

WHEN"0001"=>LED7S<="1111001";

WHEN"0010"=>LED7S<="0100100";

WHEN"0011"=>LED7S<="0110000";

WHEN"0100"=>LED7S<="0011001";

WHEN"0101"=>LED7S<="0010010";

WHEN"0110"=>LED7S<="0000010";

WHEN"0111"=>LED7S<="1111000";

WHEN"1000"=>LED7S<="0000000";

WHEN"1001"=>LED7S<="0010000";

WHEN"1010"=>LED7S<="0001000";

WHEN"1011"=>LED7S<="0000011";

WHEN"1100"=>LED7S<="1000110";

WHEN"1101"=>LED7S<="0100001";

WHEN"1110"=>LED7S<="0000110";

WHEN"1111"=>LED7S<="0001110";

WHENOTHERS=>NULL;

ENDCASE;

ENDPROCESS;

END;

3.通过时序控制,令单只数码管循环显示,形成流水灯的效果,并可以改变显示的时间。

4.8只数码管动态显示多个不同字符,数码管动态扫描显示0~7。

三、实验数据与结果分析

 

实验总结

(说明:

总结实验认识、过程、效果、问题、收获、体会、意见和建议。

 

武汉工程大学

电气信息学院

《FPGA与硬件描述语言》实验报告[4]

专业班级

14通信03班

实验时间

2016年11月02日

学生学号

1404201114

实验地点

4B315

学生姓名

秦重双

指导教师

曹新莉

实验项目

100计数器并数码管显示

实验类别

基础实验

实验学时

4学时

实验目的及要求

1.掌握晶振芯片的分频过程及原理。

2.设计100计数器的时序电路,编写VHDL代码。

3.通过时序控制,用三个数码管显示100计数器的计数值

4.下载到开发板上进行验证。

成绩评定表

类别

评分标准

分值

得分

合计

上机表现

按时出勤、遵守纪律

认真完成各项实验内容

30分

报告质量

程序代码规范、功能正确

填写内容完整、体现收获

70分

说明:

评阅教师:

日期:

2015年月日

实验内容

(说明:

此部分应包含:

实验内容、实验步骤、实验数据与分析过程等)

一、实验内容

1.掌握晶振芯片的分频过程及原理。

2.设计100计数器的时序电路,编写VHDL代码。

3.通过时序控制,用三个数码管显示100计数器的计数值

4.下载到开发板上进行验证。

二、实验方法与步骤

1.掌握晶振芯片的分频过程及原理。

分频就是将晶振的高频率分频成所需要的频率,

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

当前位置:首页 > 农林牧渔 > 林学

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

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