FPGA实验报告26473.doc_第1页
FPGA实验报告26473.doc_第2页
FPGA实验报告26473.doc_第3页
FPGA实验报告26473.doc_第4页
FPGA实验报告26473.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

电气技术实践 可编程逻辑器件FPGA应用开发实验报告2016年12月目录一、实验目的 二、实验要求 三、实验内容 四、实验代码及实验结果 (1)4位二进制加法计数器 (2)半加器 (3)LED静态显示 (4)38译码器 (5)点阵扫描显示 (6)步进电机状态机 5、 实验感想6、 学习并使用FPGA的心得与体会7、 电气技术实践总结 一、实验目的1、熟悉使用可编程逻辑器件(Altera公司FPGA Cyclone系列EP1C6Q)。2、熟悉使用硬件描述语言VHDL。3、掌握FPGA集成环境(Altera公司FPGA QuartusII 9.0)开发流程。4、熟悉使用核心目标系统板与接口电路等工作原理及其功能模块绑定信息。5、熟悉并掌握下载线方式和下载文件的选择。二、实验要求1、学习并掌握文本、图形等输入和时序、功能仿真方法。2、学习并熟悉门电路、组合电路、时序电路等单一模块功能。3、学习并设计各种不同状态机逻辑功能。4、学习并设计由单一模块较多功能模块集成系统集成方法。5、学习并选择多种模式显示(发光二极管显示、米字型数码管显示、七段数码管动态扫描或静态扫描显示、LED点阵显示各种字符和图形或静止或移动等方式、LCD液晶显示各种字符和图形或静止或移动等方式)。6、根据自已的兴趣和愿望,可从以下给定的实验目录中选取或自已设定功能题目。7、实验数目没有要求,关键是看质量,是否是自已编写、调试、实现。三、实验内容1、按指导书集成开发环境章节操作实现文本编程实例1和图形编程实例2全过程。2、任选门电路、组合电路、时序电路实验各完成一个其逻辑功能,其实现方案自已规定。在进行FPGA目标器件输入和输出引脚绑定时,输入引脚绑定高/低电平、单脉冲、各种分频连续脉冲等多种信号,输出引脚可绑定发光二极管、七段数码管、LED点阵等显示模式。3、在完成1位十进制计数器的基础上,可增加完成2或3等多位十进制计数器逻辑功能并用多位七段数码管来显示。4、根据状态机工作特点,设计一个有一定功能效果的例程。5、利用4X4键盘设计显示对应的键字符信息。6、用LED点阵显示任意字符、图形信息。四、实验代码及实验结果(1)4位二进制加法计数器【实验代码】library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count4 isport(clk,d:in std_logic;rst:in std_logic;q:out std_logic_vector(3 downto 0);end entity count4;architecture bhv of count4 issignal q1:std_logic_vector(3 downto 0);beginprocess(rst,clk,d)beginif(rst=0)thenq1=0000;elsif(clkevent and clk = 1)thenq1=q1+1;end if;end process;q LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S null;end case;end process;end;【实验操作】用开关A3,A2 ,A1,A0作为输入设置,组成一个高输入有效的基本组合逻辑器;从输出指示LED7S观察到数字随A3,A2 ,A1,A0设置值的变化而引起的相应变化。真值表如图所示:(4)38译码器【实验代码】library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity encoder is port(a,b,c:in std_logic;y:out std_logic_vector(7 downto 0);end;architecture one of encoder is signal temp:std_logic_vector(2 downto 0);signal tt:std_logic_vector(7 downto 0);begintemptttttttttttttttt=10000000;end case;end process;y=tt;end one;【实验操作】三个拨码开关确定输入,由八个LED的亮暗完成译码。显示与真值表相同:输入端输出端A1A2A3Y0Y1Y2Y3Y4Y5Y6Y70001000000000101000000010001000000110001000010000001000101000001001100000001011100000001(5)点阵扫描显示【实验代码】library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity count4 isport (clk,d:in std_logic;-in bit;rst:in std_logic;q:out std_logic_vector(3 downto 0);p:out std_logic_vector(7 downto 0);m:out std_logic_vector(7 downto 0);end entity count4;architecture jsq of count4 issignal q1:std_logic_vector(3 downto 0);signal p1:std_logic_vector(7 downto 0);signal p2:std_logic_vector(7 downto 0);beginprocess(rst,clk)beginm=10000000;p1=00000000;p2=00000000;if(clkevent and clk=1) then if(rst=0)thenq1=0000;else if(d=1)thenif(q1=1111)thenq1=0000;elseq1=q1+1;end if;end if;end if;end if;qm=11111111;pm=11111111;pm=11111111;pm=11111111;pm=11111111;pm=11111111;pm=11111111;pm=11111111;pm=11111111;pm=11111111;pm=11111111;pm=11111111;pm=11111111;pm=11111111;pm=11111111;pm=11111111;p=11111110;end case;end process;end architecture jsq;【实验现象】可观察到点阵的一个亮行随时钟脉冲从上往下扫描,并周期循环。(6)步进电机状态机【实验原理】【实验代码】library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity state_stepper_b isport(clk,dir:in std_logic; q:out std_logic_vector(3 downto 0);end state_stepper_b;architecture arc of state_stepper_b istype state_type is (s0,s1,s2,s3);-定义状态机的四个状态signal state:state_type;beginprocess( clk)beginif (clkevent AND clk=1) then if (dir=1)then-正转时处理如下state state state state state=s0;end case;else -反转时处理如下state state state state state=s3;end case;end if;end if;end process;with state select-各状态对应的二进制数码 q = 0001 when s0, 0010 when s1, 0100 when s2, 1000 when s3, 0000 when others;end arc;【实验现象】输入信号:时钟clk 接10Hz 输入(SW7) P152;方向dir接拨动开关I01(拨码开关SW3 左1)P1 ;输出信号:4 位输出信号接LED 模块O25O28。P43P46;实验操作下载程序,将SW7 拨至第二段(10Hz),此时,LED 灯的前1 位会有规律的闪烁。改变方向开关的电平信号,指示灯的移动方向立即改变。五实验感想在数字电路的课程学习中,我们了解到,FPGA 是Field Programmable Gate Array(现场可编程门阵列)的缩写,它是在PAL、GAL、PLD 等可编程器件的基础上进一步发展的产物,是专用集成电路(ASIC)中集成度最高的一种。通过在电气实践中实际操作FPGA试验箱,亲自下载程序并观察实验现象,我更加认识到,FPGA 作为专用集成电路领域中的一种半定制电路,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。可以认为FPGA 能完成任何数字器件的功能,上至高性能CPU,下至简单的74、40 系列等集成电路。FPGA 内部由门电路和触发器以及系统时钟等阵列构成。我们可以通过原理图输入或硬件描述语言或混合编写方式任意、自由地设计一个数字系统,对设计方案进行时序仿真和功能仿真,来验证设计的正确性。尽管初次使用时有些苦难,特别是引脚不知如何连接。但通过实验例程的引导,就能迅速摸索出引脚的连接方法。FPGA可以应用到许多方面,通过搭载不同的内核,可以应用到不同系统中,完成多种任务设计。由此可见,对于相关专业的学习与工作来说,学好FPGA,学会运用它丰富的功能,是十分有必要的。短暂的课程之余,我们更应当加深对FPGA的学习与了解。六、学习并使用编程逻辑器件FPGA的心得和体会 在数字电路理论课程的学习中,在第八章里,我们了解了可编程逻辑器件的相关知识。从中,我对现在非常流行的FPGA产生过浓厚的兴趣,却遗憾于无法见识其庐山真面目。所以非常有幸,在本学期电气实践课程的最后,自己能够亲身体验简单设计的完整流程,对FPGA的认识不再仅局限于严谨却苍白的理论,而是真正地自己去实现了些以前要花很多精力连庞杂的线才能实现的功能,确实觉得收获良多。简明地讲,FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,其出现既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点,一经面世,就很快风靡整个行业。而通过动手实验,我对于FPGA的工作原理,也有了较之前更清楚明白的理解。它采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(161RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。而通过这两次的亲手操作FPGA实验,我真切感受到了它的神奇魅力。首先要说的是,本学期数字电路实验相较于上学期模拟电路的实验而言,调试部分很少,大部分都是保证连线正确就可以保证现象的产生以及功能上的实现。然而不得不承认的是,其连线的复杂程度经常让人瞠目结舌,而我们涉及的实验部分还仅仅是数字电路中比较简单的内容,实践设计电路中,这种单独芯片罗列的方式也显然不能满足当今用户需求,总让人觉得现在做的实验似乎并不适用于实际操作,所以,FPGA的实验让我体验到了比较靠近当前真实电路的设计方式,也初步掌握了QUARTUSII集成开发环境的基本操作。具体的讲,在本学期前面所做的实验中有一个电子顺序锁的实验,连线、各模块联合起来的调试都极为复杂,可以说是目前为止连线最麻烦的实验之一,而这还仅仅实现的是两位的密码设计,显然与实际中动辄多位的设计需求相差甚远。但是,用FPGA操作时,我们通过相关的编程,以及与之前相比简单了许多的连线,就能实现6位的密码设计,且通过改写程序变成更多位的密码,也比单独芯片的连线设计要简单许多,这就更让我们认识到了

温馨提示

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

评论

0/150

提交评论