FPGA实验报告内容_第1页
FPGA实验报告内容_第2页
FPGA实验报告内容_第3页
FPGA实验报告内容_第4页
FPGA实验报告内容_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《FPGA与硬件描述语言》实验报告PAGE武汉工程大学电气信息学院《FPGA与硬件描述语言》实验报告[1]专业班级13电信01班实验时间2015年10月12日学生学号1304201426实验地点4B315学生姓名曾维颖指导教师曹新莉实验项目闪烁的LED实验类别基础实验实验学时4学时实验目的及要求掌握QuartusII设计电路的基本流程,熟悉VHDL程序,分别设计分频电路,LED闪烁延时计数程序。将设计好的LED闪烁电路程序下载到DEII开发板上进行实物测试。成绩评定表类别评分标准分值得分合计上机表现按时出勤、遵守纪律认真完成各项实验内容30分报告质量程序代码规范、功能正确填写内容完整、体现收获70分说明:评阅教师:

日期:2015年月日实验内容(说明:此部分应包含:实验内容、实验步骤、实验数据与分析过程等)一、实验内容1.用VHDL语言设计分频器,得到0.1Hz——1Hz的时钟信号;2.设计闪烁延时程序,控制发光二极管的闪烁。二、实验方法与步骤分频电路的产生1.分频原理:(50MHz晶振信号怎样分频成你所需要的低频信号。)50MHz=50×100×100×100Hz,这样就需要1个50Hz分频器,3个100Hz分频器 2.50分频器:源程序如下(记作cnt50)libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycnt50isport(clk:instd_logic;en:instd_logic;clr:instd_logic;cout:outstd_logic;q:bufferstd_logic_vector(5downto0));endcnt50;architectureoneofcnt50isbeginprocess(clk,clr)beginifclr='1'thenq<="000000";elsifclk'eventandclk='1'thenifen='1'thenifq="110001"thenq<="000000";elseq<=q+1;endif;endif;endif;ifq="110001"thencout<='1';elsecout<='0';endif;endprocess;endone; 3.100分频器:(记作cnt100)源程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycnt100isport(clk:instd_logic;en:instd_logic;clr:instd_logic;cout:outstd_logic;2.cnt100波形图实验总结(说明:总结实验认识、过程、效果、问题、收获、体会、意见和建议。)武汉工程大学电气信息学院《FPGA与硬件描述语言》实验报告[2]专业班级13电信01班实验时间2015年10月19日学生学号1304201426实验地点4B315学生姓名曾维颖指导教师曹新莉实验项目从左到右的流水灯实验类别基础实验实验学时4学时实验目的及要求1.接在fpga的8个LED从左到右循环依次点亮,产生走马灯效果2.深入掌握晶振分频的原理,并实现;3.通过设计计数器的不同计数值,来控制若干个发光二极管的逐次点亮。成绩评定表类别评分标准分值得分合计上机表现按时出勤、遵守纪律认真完成各项实验内容30分报告质量程序代码规范、功能正确填写内容完整、体现收获70分说明:评阅教师:

日期:2015年月日实验内容(说明:此部分应包含:实验内容、实验步骤、实验数据与分析过程等)一、实验内容1.接在fpga的8个(或者更多个)LED从左到右循环依次点亮,产生流水灯效果2.深入掌握晶振分频的原理,并实现;3.通过设计计数器的不同计数值,来控制若干个发光二极管的逐次点亮。二、实验方法与步骤1.深入掌握晶振分频的原理,并实现;分频就是将晶振的高频率分频成所需要的频率,例如用50MHz晶振分频成1Hz,1Hz就是所说的秒信号,可以作为各种电子设备的时钟信号。2.通过设计计数器的不同计数值,来控制若干个发光二极管的逐次点亮。①50分频器:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycnt50isport(clk:instd_logic;en:instd_logic;clr:instd_logic;cout:outstd_logic;q:bufferstd_logic_vector(5downto0));endcnt50;architectureoneofcnt50isbeginprocess(clk,clr)beginifclr='1'thenq<="000000";elsifclk'eventandclk='1'thenifen='1'thenifq="110001"thenq<="000000";elseq<=q+1;endif;endif;endif;ifq="110001"thencout<='1';elsecout<='0';endif;endprocess;endone; ②100分频器:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycnt100isport(clk:instd_logic;en:instd_logic;clr:instd_logic;cout:outstd_logic;q:bufferstd_logic_vector(6downto0));endcnt100;architectureoneofcnt100isbeginprocess(clk,clr)beginifclr='1'thenq<="0000000";elsifclk'eventandclk='1'thenifen='1'thenifq="1100011"thenq<="0000000";elseq<=q+1;endif;endif;endif;ifq="1100011"thencout<='1';elsecout<='0';endif;endprocess;endone;三、实验数据与结果分析1、从右向左LED流水灯点亮的电路,源程序如下libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityliushuidengisport(clk,CLR:instd_logic;y:outstd_logic_vector(7downto0));endentityliushuideng;architecturebevofliushuidengissignaln:integerrange0to7;typestatetypeis(a,b,c,d,e,f,g,h);signalnextstate,presentstate:statetype;beginfsm:process(presentstate)begincasepresentstateiswhena=>y<="00000001";whenb=>y<="00000010";whenc=>y<="00000100";whend=>y<="00001000";whene=>y<="00010000";whenf=>y<="00100000";wheng=>y<="01000000";whenh=>y<="10000000";endcase;endprocessfsm;tim:process(clk,clr,n)beginifclr='1'thenn<=0;presentstate<=a;elsifrising_edge(clk)thenifn=7thenn<=0;elsen<=n+1;endif;endif;caseniswhen0=>presentstate<=a;when1=>presentstate<=b;when2=>presentstate<=c;when3=>presentstate<=d;when4=>presentstate<=e;when5=>presentstate<=f;when6=>presentstate<=g;when7=>presentstate<=h;endcase;endprocesstim;endbev;2、顶层文件建立3、引脚锁定:Clk:PIN_N2En:PIN_N25Clr:PIN_N26y[0]-y[7]依次为:PIN_AE23,PIN_AF23,PIN_AB21,PIN_AC22,PIN_AD22,PIN_AD23,PIN_AD21,PIN_AC21,4、测试结果:流水灯每隔一秒,从右向左点亮,当复位开关掰下时,led灯自动跳回最右边。实验总结(说明:总结实验认识、过程、效果、问题、收获、体会、意见和建议。)

武汉工程大学电气信息学院《FPGA与硬件描述语言》实验报告[3]专业班级13电信01班实验时间2015年10月26日学生学号1304201426实验地点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。2.设计共阴极和共阳极七段数码管的显示原理,编写驱动译码VHDL代码①共阳极数码管是指八段数码管的八段LED的阳极都连在一起,而阴极对应的各段可分别控制②共阴极数码管是指八段数码管的八段LED的阴极都连在一起,而阳极对应的各段可分别控制3.通过时序控制,令单只数码管循环显示,形成流水灯的效果,并可以改变显示的时间。4.8只数码管动态显示多个不同字符,数码管动态扫描显示0~7。实验数据与结果分析单只数码管循环显示0~FLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYshumaguanISPORT(inp:INSTD_LOGIC_vector(3downto0);q:OUTSTD_LOGIC_VECTOR(6downto0));ENDshumaguan;ARCHITECTUREbhvOFshumaguanISBEGINPROCESS(inp)BEGINCASEinpISWHEN"0000"=>q<="0111111";WHEN"0001"=>q<="0000110";WHEN"0010"=>q<="1011011";WHEN"0011"=>q<="1001111";WHEN"0100"=>q<="1100110";WHEN"0101"=>q<="1101101";WHEN"0110"=>q<="1111101";WHEN"0111"=>q<="0000111";WHEN"1000"=>q<="1111111";WHEN"1001"=>q<="1101111";WHEN"1010"=>q<="1110111";WHEN"1011"=>q<="1111100";WHEN"1100"=>q<="0111001";WHEN"1101"=>q<="1011110";WHEN"1110"=>q<="1111001";WHEN"1111"=>q<="1110001";WHENOTHERS=>NULL;ENDCASE;ENDPROCESS;ENDbhv;8只数码管动态显示多个不同字符libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityshuma8isport(clk:instd_logic;q0,q1,q2,q3,q4,q5,q6,q7:outstd_logic_vector(6downto0));endshuma8;architectureoneofshuma8issignalnum:integerrange7downto0;beginprocess(clk)beginifclk'eventandclk='1'thenifnum<7thennum<=num+1;elsenum<=0;endif;endif;endprocess;process(num)begincasenumiswhen0=>q0<="0111111";q1<="0000000";q2<="0000000";q3<="0000000";q4<="0000000";q5<="0000000";q6<="0000000";q7<="0000000";when1=>q0<="0111111";q1<="0000110";q2<="0000000";q3<="0000000";q4<="0000000";q5<="0000000";q6<="0000000";q7<="0000000";when2=>q0<="0111111";q1<="0000110";q2<="1011011";q3<="0000000";q4<="0000000";q5<="0000000";q6<="0000000";q7<="0000000";when3=>q0<="0111111";q1<="0000110";q2<="1011011";q3<="1001111";q4<="0000000";q5<="0000000";q6<="0000000";q7<="0000000";when4=>q0<="0111111";q1<="0000110";q2<="1011011";q3<="1001111";q4<="1100110";q5<="0000000";q6<="0000000";q7<="0000000";when5=>q0<="0111111";q1<="0000110";q2<="1011011";q3<="1001111";q4<="1100110";q5<="1101101";q6<="0000000";q7<="0000000";when6=>q0<="0111111";q1<="0000110";q2<="1011011";q3<="1001111";q4<="1100110";q5<="1101101";q6<="1111101";q7<="0000000";when7=>q0<="0111111";q1<="0000110";q2<="1011011";q3<="1001111";q4<="1100110";q5<="1101101";q6<="1111101";q7<="0000111";whenothers=>null;endcase;endprocess;endone;其仿真波形如图所示实验总结(说明:总结实验认识、过程、效果、问题、收获、体会、意见和建议。)武汉工程大学电气信息学院《FPGA与硬件描述语言》实验报告[4]专业班级13电信01班实验时间2015年11月2日学生学号1304201426实验地点4B315学生姓名曾维颖指导教师曹新莉实验项目100计数器并数码管显示实验类别基础实验实验学时4学时实验目的及要求1.掌握晶振芯片的分频过程及原理。2.设计100计数器的时序电路,编写VHDL代码。3.通过时序控制,用三个数码管显示100计数器的计数值4.下载到开发板上进行验证。成绩评定表类别评分标准分值得分合计上机表现按时出勤、遵守纪律认真完成各项实验内容30分报告质量程序代码规范、功能正确填写内容完整、体现收获70分说明:评阅教师:

日期:2015年12月1日实验内容(说明:此部分应包含:实验内容、实验步骤、实验数据与分析过程等)一、实验内容1.掌握晶振芯片的分频过程及原理。2.设计100计数器的时序电路,编写VHDL代码。3.通过时序控制,用两个数码管显示100计数器的计数值4.下载到开发板上进行验证。二、实验方法与步骤1.掌握晶振芯片的分频过程及原理。分频就是将晶振的高频率分频成所需要的频率,例如实验采用的50MHz晶振分频成1Hz,1Hz就是所说的秒信号,由3个100计数器和1个50计数器级联而成。2.设计100计数器的时序电路,编写VHDL代码。3.通过时序控制,用三个数码管显示100计数器的计数值4.下载到开发板上进行验证。三、实验数据与结果分析Cnt10的源程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycnt10isport(clk:instd_logic;clr_ge,clr_shi,clk_ge,clk_shi:outstd_logic;gewei,shiwei:bufferstd_logic_vector(3downto0));endcnt10;architecturebhvofcnt10isbeginprocess(clk)beginifclk'eventandclk='1'thenifgewei<"1001"thengewei<=gewei+1;clk_ge<='1';elsifgewei="1001"thenclr_ge<='1';gewei<="0000";ifshiwei<"1001"thenshiwei<=shiwei+1;clk_shi<='1';elseshiwei<="0000";endif;endif;endif;clk_ge<='0';clk_shi<='0';clr_ge<='0';clr_shi<='0';endprocess;endbhv;Cnt10的仿真波形图如下所示Cnt50源程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycounter50isport(clk_50,en_50,clr_50:instd_logic;cout_50:outstd_logic;data:bufferstd_logic_vector(5downto0));endcounter50;architecturebhvofcounter50isbeginprocess(clk_50,clr_50)beginifclr_50='1'thendata<="000000";elsifclk_50'eventandclk_50='1'thenifen_50='1'thenifdata="110001"thendata<="000000";elsedata<=data+1;endif;endif;endif;ifdata="110001"thencout_50<='1';elsecout_50<='0';endif;endprocess;endbhv;Cnt50的仿真波形图Cnt100的源程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycounter100isport(clk_100,en_100,clr_100:instd_logic;cout_100:outstd_logic;data:bufferstd_logic_vector(6downto0));endcounter100;architecturebhvofcounter100isbegin process(clk_100,clr_100)begin ifclr_100='1'thendata<="0000000"; elsifclk_100'eventandclk_100='1'then ifen_100='1'then ifdata="1100011"thendata<="0000000"; elsedata<=data+1; endif; endif; endif; ifdata="1100011"thencout_100<='1'; elsecout_100<='0'; endif; endprocess; endbhv;Cnt100的仿真波形图Jishu100的源程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityyangjiisport(clk,en,clr:instd_logic;data:bufferstd_logic_vector(3downto0);a,b,c,d,e,f,g,h:outstd_logic);endyangji;architecturebhvofyangjiisbeginprocess(clk,clr,en)beginifclr='1'thendata<="0000";elsifclk'eventandclk='1'thenifen='1'thenifdata="1001"thendata<="0000";elsedata<=data+1;endif;endif;endif;casedataiswhen"0000"=>a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论