FPGA试验报告.docx

上传人:scccc 文档编号:14769509 上传时间:2022-02-19 格式:DOCX 页数:14 大小:22.46KB
返回 下载 相关 举报
FPGA试验报告.docx_第1页
第1页 / 共14页
FPGA试验报告.docx_第2页
第2页 / 共14页
FPGA试验报告.docx_第3页
第3页 / 共14页
FPGA试验报告.docx_第4页
第4页 / 共14页
FPGA试验报告.docx_第5页
第5页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《FPGA试验报告.docx》由会员分享,可在线阅读,更多相关《FPGA试验报告.docx(14页珍藏版)》请在三一文库上搜索。

1、电气技术实践可编程逻辑器件 FPGA 应用开发实验报告2016 年 12 月目录一、实验目的二、实验要求三、实验内容四、实验代码及实验结果(1)4 位二进制加法计数器(2)半加器(3) LED静态显示(4) 38 译码器( 5)点阵扫描显示( 6)步进电机状态机五、实验感想六、学习并使用FPGA的心得与体会七、电气技术实践总结一、实验目的1、熟悉使用可编程逻辑器件 (Altera 公司 FPGA Cyclone 系列 EP1C6Q)。2、熟悉使用硬件描述语言 VHDL 。3、掌握 FPGA 集成环境 (Altera 公司 FPGA QuartusII 9.0) 开发流程。4、熟悉使用核心目标系

2、统板与接口电路等工作原理及其功能模块绑定信息。5、熟悉并掌握下载线方式和下载文件的选择。二、实验要求1、学习并掌握文本、图形等输入和时序、功能仿真方法。2、学习并熟悉门电路、组合电路、时序电路等单一模块功能。3、学习并设计各种不同状态机逻辑功能。4、学习并设计由单一模块 t较多功能模块集成 t系统集成方法。5、学习并选择多种模式显示(发光二极管显示、米字型数码管显示、七段数码管t动态 扫描或静态扫描显示、LED点阵显示各种字符和图形或静止或移动等方式、 LCD液晶显 示各种字符和图形或静止或移动等方式 )。6、根据自已的兴趣和愿望,可从以下给定的实验目录中选取或自已设定功能题目。7、实验数目没

3、有要求,关键是看质量,是否是自已编写、调试、实现。三、实验内容1、 按指导书集成开发环境章节操作实现文本编程实例1 和图形编程实例 2全过程。2、任选门电路、组合电路、时序电路实验各完成一个其逻辑功能,其实现方案自已规定。在进行 FPGA 目标器件输入和输出引脚绑定时, 输入引脚绑定高 /低电平、 单脉冲、 各种分频连续脉冲等多种信号,输出引脚可绑定发光二极管、七段数码管、LED 点阵等显示模式。3、在完成 1位十进制计数器的基础上,可增加完成 2或3等多位十进制计数器逻辑功 能并用多位七段数码管来显示。4、根据状态机工作特点,设计一个有一定功能效果的例程。5、利用 4X4 键盘设计显示对应的

4、键字符信息。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

5、 downto 0);beginprocess(rst,clk,d)beginif(rst=0)thenq1=0000;elsif(clkevent and clk = 1)then q1=q1+1;end if;end process;q=when 0000 = LED7S LED7S LED7S LED7S=1111001; when 0100 LED7SLED7S=1011011;whe n0110LED7SLED7S=1110000;whe n1000LED7S LED7S null;end case;end process;en d;【实验操作】用开关A3, A2 , A1, A0作

6、为输入设置,组成一个高输入有效的基本组合逻辑器; 从输出指示LED7S观察到数字随A3,A2,A1, A0设置值的变化而引起的相应变化。真值表如图所示:(4) 38译码器【实验代码】library ieee;use ieee.std_logic_1164.all;use ieee.stden tity en coder is输人输diA3 A2 Al AGa b t d e f t0 0 0 011111100 0 0 1a i i o o a o0 0 10i i o i 1 o 10 0 1111110010 10 00 110 0 110 1 0 110 110 110 11010 11

7、111ill? 1 1 11 ; 1 ? 3 0 01 0 0 0111111110 0 L11110 11port( a,b,c:in stdo gic;y:out std_logic_vector(7 dow nto 0);end;architecture one of en coder is sig nal temp:std_logic_vector(2 dow nto 0);sig nal tt:std_logic_vector(7 dow nto 0);begi n tempv=c&b&a;process(temp) begi ncase temp iswhen 000 =ttv=O

8、OOOOOO1;when 001 =ttv=OOOOOO1O;whe n 010 =ttv=OOOOO1OO;whe n 011 =ttv=OOOO1OOO;whe n 100 =tttttt=01000000;end case;end process;yv=tt;end one;【实验操作】三个拨码开关确定输入,由八个LED的亮暗完成译码显示与真值表相同:输入端输出端A1A2A3Y0Y1Y2Y3Y4Y5Y6Y70001000000000101000000010001000000110001000010000001000101000001001100000001011100000001(5)点

9、阵扫描显示【实验代码】library IEEE;use IEEE.STD_L0GIC_116 4A LL;use IEEE.STD_LOGIC_UNSIGNED.ALL;en tity count4 isport (clk,d:in std_logic;-in bit;rst: in std_logic;q:out std_logic_vector(3 dow nto 0);p:out std_logic_vector(7 dow nto 0); m:out std_logic_vector(7 dow nto 0);end en tity coun t4;architecture jsq o

10、f count4 issig nal q1:std_logic_vector(3 dow nto 0);sig nal p1:std_logic_vector(7 dow nto 0);sig nal p2:std_logic_vector(7 dow nto 0);begi nprocess(rst,clk)begi np1=00000000;p2=00000000;if(clkevent and clk=1) thenif(rst=0)thenq1=0000;else if(d=1)thenif(q1=1111)thenq1=0000;elseq1=q1+1;end if;end if;e

11、nd if;end if;q=q1;case q1 isend 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_ste

12、pper_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) thenif (dir=1)then-正转时处理如下state state state state state=s0;end case;else - 反转时处理如下state state state state state=s3;end case;end if;end if;en

13、d process;with state select-各状态对应的二进制数码q = 0001 when s0,0010 when s1,0100 when s2,1000 when s3,0000 when others;end arc;【实验现象】输入信号:时钟elk接10Hz输入(SW7) P152;方向dir接拨动开关101 (拨码开关SW3左1) P1 ;输出信号:4位输出信号接LED模块O25- O28 P43P46;实验操作下载程序,将SW7拨至第二段(10Hz),此时,LED灯的前1位会有规律的闪烁。 改变方向开关的电平信号,指示灯的移动方向立即改变。五实验感想在 数 字 电

14、路 的 课 程 学 习 中 , 我 们 了 解 到 , FPGA 是 FieldProgrammable Gate Array (现场可编程门阵列)的缩写,它是在PALGAL、PLD 等可编程器件的基础上进一步发展的产物,是专用集成电路(ASIC)中集成度最高的一种。通过在电气实践中实际操作 FPGA式验箱,亲自下载程序并观察 实验现象,我更加认识到,FPGA作为专用集成电路领域中的一种半 定制电路, 既解决了定制电路的不足, 又克服了原有可编程器件门电 路数有限的缺点。可以认为FPGA能完成任何数字器件的功能,上至 高性能CPU下至简单的74、40系列等集成电路。FPGA内部由门电 路和触发

15、器以及系统时钟等阵列构成。我们可以通过原理图输入或硬件描述语言或混合编写方式任意、 自由地设计一个数字系统, 对设计方案进行时序仿真和功能仿真, 来 验证设计的正确性。 尽管初次使用时有些苦难, 特别是引脚不知如何 连接。但通过实验例程的引导,就能迅速摸索出引脚的连接方法。FPGA可以应用到许多方面,通过搭载不同的内核,可以应用到 不同系统中,完成多种任务设计。由此可见,对于相关专业的学习与 工作来说,学好FPG A学会运用它丰富的功能,是十分有必要的。 短暂的课程之余,我们更应当加深对 FPGA勺学习与了解。六、学习并使用编程逻辑器件 FPGA勺心得和体会在数字电路理论课程的学习中, 在第八

16、章里, 我们了解了可编程 逻辑器件的相关知识。从中,我对现在非常流行的FPGA产生过浓厚的兴趣,却遗憾于无法见识其庐山真面目。所以非常有幸,在本学期 电气实践课程的最后,自己能够亲身体验简单设计的完整流程,对 FPGA的认识不再仅局限于严谨却苍白的理论,而是真正地自己去实 现了些以前要花很多精力连庞杂的线才能实现的功能, 确实觉得收获良多 简明地讲, FPGA(Field Programmable Gate Array ),即现场可编 程门阵列,它是在PAL GAL CPLD等可编程器件的基础上进一步发 展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路 而出现的, 其出现既解决

17、了定制电路的不足, 又克服了原有可编程器 件门电路数有限的缺点,一经面世,就很快风靡整个行业。而通过动手实验,我对于 FPGA勺工作原理,也有了较之前更清楚明 白的理解。它采用了逻辑单元阵列 LCA ( Logic Cell Array )这样一 个概念,内部包括可配置逻辑模块 CL (B Configurable Logic Block ) 、 输入输出模块 IO(B Input Output Block )和内部连线( Interconnect ) 三个部分。 现场可编程门阵列(FPGA是可编程器件,与传统逻辑 电路和门阵列(如PAL GAL及CPLD器件)相比,FPGA具有不同的 结构。

18、FPGA利用小型查找表(16X1RAM来实现组合逻辑,每个查 找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或 驱动 I/O ,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能 的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到 I/O模块。FPGA勺逻辑是通过向内部静态存储单元加载编程数据来实 现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模 块之间或模块与I/O间的联接方式,并最终决定了 FPGA所能实现的 功能,FPGA允许无限次的编程。而通过这两次的亲手操作FPGA实验,我真切感受到了它的神奇魅力 首先要说的是,本学期数字电路实验相较于上学期模拟电路的

19、实验而 言,调试部分很少, 大部分都是保证连线正确就可以保证现象的产生 以及功能上的实现。 然而不得不承认的是, 其连线的复杂程度经常让 人瞠目结舌,而我们涉及的实验部分还仅仅是数字电路中比较简单的 内容,实践设计电路中, 这种单独芯片罗列的方式也显然不能满足当 今用户需求, 总让人觉得现在做的实验似乎并不适用于实际操作, 所 以,FPGA的实验让我体验到了比较靠近当前真实电路的设计方式, 也初步掌握了 QUARTUSI集成开发环境的基本操作。具体的讲, 在本学期前面所做的实验中有一个电子顺序锁的实验, 连 线、各模块联合起来的调试都极为复杂, 可以说是目前为止连线最麻 烦的实验之一, 而这还

20、仅仅实现的是两位的密码设计, 显然与实际中 动辄多位的设计需求相差甚远。但是,用FPGA操作时,我们通过相关的编程, 以及与之前相比简单了许多的连线, 就能实现 6 位的密码 设计,且通过改写程序变成更多位的密码, 也比单独芯片的连线设计 要简单许多,这就更让我们认识到了 FPGA可多次重复编程的优越性。总的来讲,FPGA的这两次实验,让我对于可编程逻辑器件的相关理 论有了更深刻的理解与掌握, 且锻炼了自己熟悉新软件能力, 并且初 步掌握了 VHDL语言,对当前电子电路的设计有了直观的体验,收获 很大,感谢学校所提供的这样的机会。七、电气技术实践( 1)(2)的收获、想法与建议光阴荏苒,日月如

21、梭,时间毕竟如滚滚长江东逝水,就算心里还有留恋,仿佛转瞬之间,这门与我们专业结合最为紧密、持续时间也 最长的实验课就要结束了,心里还是有感慨良多的。两个学期的跨度,从偏僻却充满青春活力的沙河到繁华且富于历史内 涵的学院路,从对电气实验各种仪器、元件的陌生无措到能够比较熟 练地根据实验内容进行相关操作,我们在老师的悉心教导、严格督促、 耐心陪伴中走过了这一年,有成长,更有收获。在此期间,我们有过 怎么也调不出现象的慌乱与崩溃,有过整个实验如行云流水的轻松与 高兴,更有互帮互助共同解决问题的贴心与温暖, 整个电气实践伴随 着我们主要专业课的学习而进行,对于我们理论的学习有着不可估量 的实践上的指导意义。通过实验,我们能够验证理论,当然这点在初 级理论学习阶段显得不太明显,但是,能够将课本上讲的东西用自己 亲手搭建的电路实现,已经很让自己开心了。更重要的是,我们从中 认识到了作为工科学生所应具备的良好动手能力是需要培养和锻炼 的,也认识到了多年来应试教育所带来的不足, 让我们有意识地去弥 补自己这方面的缺陷,做一名合格的电子人。

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1