北航电气技术实践FPGA报告_第1页
北航电气技术实践FPGA报告_第2页
北航电气技术实践FPGA报告_第3页
北航电气技术实践FPGA报告_第4页
北航电气技术实践FPGA报告_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

FPGA实验报告141717一、实验目的1、 熟悉使用可编程逻辑器件一Altera公司FPGACyclone山系列EP3C55F2、 熟悉使用硬件描述语言--VHDL3、 熟悉FPGA集成环境--Altera公司FPGAQuartus9或10开发流程4、 熟悉并掌握核心目标系统板与接口电路等工作原理及功能模块绑定新信息5、 熟悉并掌握下载线方式和下载文件的选择二、实验要求1、 学习并掌握文本编辑、图形编辑等输入和时序、功能仿真方法。2、 学习并掌握门电路、组合电路、时序电路等单一模块功能。3、 学习并设计各种不同状态机逻辑功能的电路。4、 学习并设计有单一模块--较多功能模板集成--系统集成的方法。5、 学习并将系统及成功逐一拆分成一个个子功能模块的方法。6、 学习并选择多种模式显示(发光二极管显示、七段数码管--动态扫描或静态扫描显示、LED点阵显示各种字符和图形或静止或移动等方式、LCD字符液晶显示各种字符和图形或静止或移动、TFT-LCD触摸液晶屏显示各种信息等方式)。7、 根据自己的兴趣和愿望,可从给定的实验题目中选取或自己设定功能题目。8、 同组实验者应轮流操作实例实验流程,并实施源程序编写、编译、调试、下载程序和验证实验结果实践环节。9、 利用元件例化语句调用,至少涉及一个有内容、功能较复杂稍大的主、子程序综合应用例程。10、 实验数目不仅要求有简单、一般设计验证、综合、提高等不同层次(难度)功能内容,关键是看质量。三、实验设备1、 可编程逻辑EDA/SOPC实验箱一台。2、 计算机及开发软件Quartus一台套。四、实验内容1、 按指导书7.6集成开发环境使用章节操作顺序实现文本编程实例1和图形编程实例2全过程。2、 分析并运行指导书5.2综合实例,掌握其编程技巧和输入及输出显示方法。3、 任选门电路、组合电路、时序电路实验各完成一个其逻辑功能,其实现方案自拟定。在运行FPGA目标器件输入和输出引脚绑定时,输入引脚可绑定高/低电平、单脉冲、各种分频连续脉冲等多种信号,输出引脚可绑定发光二极管、七段数码管、LED点阵等显示模式。如玉门、或门、非门、或非门、异或门、三态门、单向总线缓冲器、双向总线缓冲器、编码器(8-3编码器或优先编码器)、译码器(3-8译码器、BCD-7段显示译码器)、数据选择器(4-1、8-1)、数据分配器、数值比较器(A,B)、加法器(半加器、全加器、4位全加器)、减法器(半减器、全减器、4位全减器)、RS触发器、JK触发器、D触发器、T触发器、同步计数器、异步计数器、减法计数器、可逆计数器、可变模计数器(无置数端、有置数端)、寄存器、锁存器、移位寄存器、顺序脉冲发生器、序列信号发生器、分频器、格雷码计数器、只读存储器(ROM)、随机存储器(RAM)、堆栈、FIFO。4、 在完成一位十进制计数器的基础上,可增加完成两或三等多位十进制计数器逻辑功能并用多位七段数码管来显示。也可完成8位十进制数字频率计,被测时钟来自外部引针组“CLK_DIV”,有复位、启动等功能。5、 根据状态机工作特点,设计一个你认为有一定功能效果的例程。如步进电机双向双拍、6位密码电子顺序锁、A/D转换器控制等。也可完成多人抢答器、彩灯控制、交通信号灯控制。6、 利用4x4键盘电路,设计一个按下键(如“F”)并用七段数码管或LED点阵对应显示的键字符信息(显示“F”字符)。扩展是否能显示多位字符信息,如计算显示结果功能(计算器)。7、 用LED点阵显示任意字符、图形等信息。8、 用元件例化语句调用方式,设计一个具有一定功能的例程。如模拟控制电梯上、下、停止、显示楼层等功能。9、 用LCD液晶屏显示任意字符、图形等信息。五、实验代码此处只附综合性实验的代码,其余代码参照实验指导书。4x4键盘电路此程序实现按下键盘上一个键(如“F”)并用七段数码管显示对应键的字符信息(如显示“F”字样)的功能。LIBRARYieee;USEieee.std_logic_1164.ALL;USEieee.std_logic_unsigned.ALL;USEieee.std_logic_arith.all;entitycn7isport(clk:instd_logic;start:instd_logic;KBCol:instd_logic_vector(3downto0);KBRow:outstd_logic_vector(3downto0);seg7:outstd_logic_vector(6downto0);scan:outstd_logic_vector(7downto0));end;architecturebevofcn7issignalcount:std_logic_vector(1downto0);signalsta:std_logic_vector(1downto0);beginscan<="11111110";a:process(clk)beginifclk'eventandclk='1'thencount<=count+1;endif;endprocessa;b:process(clk)beginif(clk'eventandclk='1')thencasecount(1downto0)iswhen"00"=>KBRow<="0111";sta<="00";when"01"=>KBRow<="1011";sta<="00";when"10"=>KBRow<="1101";sta<="00";when"11"=>KBRow<="1110";sta<="00";whenothers=>KBRow<="1111";endcase;endif;endprocessb;c:process(clk,start)beginifstart='0'thenseg7<="0000000";elsif(clk'eventandclk='1')thencasestaiswhen"00"=>caseKBColiswhen"1110"=>seg7<="1001110";when"1101"=>seg7<="0111101";when"1011"=>seg7<="1001111";when"0111"=>seg7<="1000111";endcase;when"01"=>caseKBColiswhen"1110"=>seg7<="1111111";when"1101"=>seg7<="1110011";when"1011"=>seg7<="1110111";when"0111"=>seg7<="1011011";whenothers=>seg7<="0000000";endcase;when"10"=>caseKBColiswhen"1110"=>seg7<="0110011";when"1101"=>seg7<="1011011";when"1011"=>seg7<="1011111";when"0111"=>seg7<="1110000";whenothers=>seg7<="0000000";endcase;when"11"=>caseKBColiswhen"1110"=>seg7<="1111110";when"1101"=>seg7<="0110000";when"1011"=>seg7<="1101101";when"0111"=>seg7<="1111001";whenothers=>seg7<="0000000";endcase;whenothers=>seg7<="0000000";endcase;endif;endprocessc;endbev;LED显示程序实现了16x16LED点阵滚动显示字样“大辣条怪”。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityltisport(enable,clk:instd_logic;sel:outstd_logic_vector(3downto0);h0,h8:outstd_logic_vector(7downto0));endlt;architecturecountofltissignallie:std_logic_vector(3downto0);signalnext1:std_logic_vector(1downto0);begina1:process(clk,enable)beginIfclk'eventandclk='1'thenIfenable='1'thenIflie>"0000"thenLie<=lie-"0001";ElseLie<="1111";Endif;Endif;Endif;Sel<=lie;Endprocess;a2:process(enable,clk)beginIfclk'eventandclk='1'thenIfenable='1'thenCasenext1isWhen"00"=>--大CaselieisWhen"0000"=>h0<="00000000";h8<="00000000";When"0001"=>h0<="00000000";h8<="00000000";When"0010"=>h0<="00000000";h8<="00000000";When"0011"=>h0<="00000001";h8<="00000000";When"0101"=>h0<="00000001";h8<="00000000";When"0110"=>h0<="00111111";h8<="11111000";When"0111"=>h0<="00000001";h8<="00000000";When"1000"=>h0<="00000001";h8<="00000000";When"1001"=>h0<="00000010";h8<="10000000";When"1010"=>h0<="00000100";h8<="01000000";When"1011"=>h0<="00001000";h8<="00100000";When"1100"=>h0<="00010000";h8<="00010000";When"1101"=>h0<="00100000";h8<="00001000";When"1110"=>h0<="00000000";h8<="00000000";When"1111"=>h0<="00000000";h8<="00000000";Endcase;When"01"=>--辣CaselieisWhen"0000"=>h0<="00000000";h8<="00000000";When"0001"=>h0<="00010000";h8<="00100000";When"0010"=>h0<="00010000";h8<="00100000";When"0011"=>h0<="01111101";h8<="11111100";When"0100"=>h0<="00101000";h8<="00100000";When"0101"=>h0<="00101001";h8<="11111100";When"0110"=>h0<="01111101";h8<="00100100";When"0111"=>h0<="00010001";h8<="11111100";When"1000"=>h0<="00010000";h8<="00100000";When"1001"=>h0<="00111000";h8<="01110000";When"1010"=>h0<="00010000";h8<="10101000";When"1011"=>h0<="00010001";h8<="00100100";When"1100"=>h0<="00100010";h8<="00100010";When"1101"=>h0<="01000000";h8<="00100000";When"1110"=>h0<="00000000";h8<="00000000";When"1111"=>h0<="00000000";h8<="00000000";Endcase;When"10"=>--条CaselieisWhen"0000"=>h0<="00000000";h8<="00000000";When"0001"=>h0<="00000001";h8<="00000000";When"0010"=>h0<="00000010";h8<="00000000";When"0011"=>h0<="00000111";h8<="11000000";When"0100"=>h0<="00001000";h8<="00100000";When"0101"=>h0<="00000000";h8<="01000000";When"0110"=>h0<="00000010";h8<="10000000";When"0111"=>h0<="00000001";h8<="00000000";When"1000"=>h0<="00001110";h8<="11100000";When"1001"=>h0<="00110001";h8<="00011000";When"1010"=>h0<="00000111";h8<="11000000";When"1011"=>h0<="00000001";h8<="00000000";When"1100"=>h0<="00000101";h8<="01000000";When"1101"=>h0<="00011001";h8<="00110000";When"1110"=>h0<="00000011";h8<="00000000";When"1111"=>h0<="00000000";h8<="00000000";Endcase;When"11"=>--怪CaselieisWhen"0000"=>h0<="00000000";h8<="00000000";When"0001"=>h0<="00010000";h8<="00000000";When"0010"=>h0<="00010001";h8<="11111000";When"0011"=>h0<="00010000";h8<="00000100";When"0100"=>h0<="00010000";h8<="10001000";When"0101"=>h0<="00010000";h8<="01010000";When"0110"=>h0<="00110000";h8<="00100000";When"0111"=>h0<="01011001";h8<="11011100";When"1000"=>h0<="00010100";h8<="00000000";When"1001"=>h0<="00010000";h8<="00100000";When"1010"=>h0<="00010000";h8<="11111000";When"1011"=>h0<="00010000";h8<="00100000";When"1100"=>h0<="00010000";h8<="00100000";When"1101"=>h0<="00010011";h8<="11111110";When"1110"=>h0<="00010000";h8<="00000000";When"1111"=>h0<="00000000";h8<="00000000";Endcase;Whenothers=>h0<="00000000";h8<="00000000";Endcase;Endif;Endif;Endprocess;a3:process(clk)variableint:integerrange0to10000;beginifclk'eventandclk='1'thenifint<10000thenint:=int+1;elseint:=0;ifnext1="11"thennext1<="00";elsenext1<=next1+'1';endif;endif;endif;endprocess;endcount;步进电机libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycn3isport(clk,dir:instd_logic;q:outstd_logic_vector(3downto0));endcn3;architecturearcofcn3istypestate_typeis(s0,s1,s2,s3);signalstate:state_type;beginprocess(clk)beginif(clk'eventANDclk='1')thenif(dir='1')then--正转state<=s0;casestateiswhens0=>state<=s1;whens1=>state<=s2;whens2=>state<=s3;whens3=>state<=s0;endc

温馨提示

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

评论

0/150

提交评论