2016年北航FPGA实验报告

  • 格式:docx
  • 大小:476.37 KB
  • 文档页数:23

下载文档原格式

  / 23
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电气技术实践

可编程逻辑器件FPGA应用开发

实验报告

姓名

班级

学号

2016年12月

电气技术实践报告

目录

一、实验目的 (1)

二、实验要求 (1)

三、实验内容 (1)

四、实验代码及实验结果 (1)

1、4位二进制加法计数器 (1)

2、半加器 (3)

3、RS触发器 (3)

4、数码管十六进制计数器 (5)

5、跑马灯 (7)

6、键盘电路 (9)

7、LED点阵显示 (12)

8、多人抢答器 (18)

五、实验感想 (21)

一、实验目的

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、用LED点阵显示任意字符、图形等信息。

四、实验代码及实验结果

1、4位二进制加法计数器

(1)实验代码

library ieee;

use ieee.std_logic_1164.all;

1

use ieee.std_logic_unsigned.all;

entity erjinzhi is

port(clk,

rst:in std_logic;

q:out std_logic_vector(3 downto 0));

end entity erjinzhi;

architecture bhv of erjinzhi is

signal q1:std_logic_vector(3 downto 0);

begin

process(rst,clk)

begin

if(rst='0')then

q1<="0000";

elsif(clk'event and clk = '1')then

q1<=q1+1;

end if;

end process;

q<=q1;

end architecture bhv;

(2)管脚分配

(3)实验操作

①输入信号clk时钟→把FPGA_EA2_P6(Pin_P20)用导线与(FRQ_Q21 1Hz)连接、rst清零→N18(SW-1)、输出信号q3→U12(LED1)、q2→V12(LED2);q1→V15(LED3);q0→W13(LED4)。

②把输入信号rst设为“1”、clk时钟(FRQ_Q21 1Hz) 用导线与(FRQ_Q21 1Hz)连接。

2

(4)实验现象

输出结果信息为第一、二、三、四个发光二极管按照0000→0001→……→1111循环显示,符合实验要求。(该实验板上低电平为“1”)

2、半加器

(1)实验原理图

(2)管脚分配

(3)实验操作

逻辑分析:输入信号a、b;输出信号分别为sum(和)、carry(进位)。

逻辑方程:sum=a⊕b;carry=a * b。

输入信号a→N18(SW-1)、b→M20(SW-2)、输出信号sum(和)→U12(LED1)、carry(进位)→V12(LED2)

(4)实验现象

ⅰ输入信号a、b都为“0”,输出结果信息为两个发光二极管均为“灭”,说明和和进位都为0;ⅱ输入信号a为“1”,b为“0”,输出结果信息为第一个发光二极管“灭”,第二个发光二极管“亮”,说明和为“1”,进位为0;ⅲ输入信号a为“0”,b为“1”,输出结果信息为第一个发光二极管“灭”,第二个发光二极管“亮”。说明和为“1”,进位为“0”;ⅳ输入信号a、b都为“1”,输出结果信息为第一个发光二极管“亮”第二个发光二极管“灭”,说明和为“0”,进位为“1”.均符合设计要求

3、RS触发器

(1)实验代码

3

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity rs_clk is

port( s,r,res :in std_logic;

q,not_q:out std_logic);

end rs_clk;

architecture behav of rs_clk is

signal sel1,sel2: std_logic;

begin

process(res,sel1,sel2)

begin

if res='0' then sel1<='0';

sel2<='1';

elsif (S='1' and R='0') then sel1<='1';

sel2<='0';

elsif (S='0' and R='1') then sel1<='0';

sel2<='1';

elsif (S='0' and R='0') then sel1<=sel1;

sel2<=sel2;

end if;

Q<=sel1;

not_q<=sel2;

end process;

end behav;

(2)管脚分配

(3)实验操作

(3)实验现象

将实验现象总结为RS触发器特性表,其中X指0或1均可;输入为”1”指SW输入为高,输入为”0”指SW输入为低;输出为”1”指对应LED灯灭(实验台的LED 灯为高电平灭),输出为”0”指对应LED灯亮。

CLK触发输入S输入R原来的Q新的输出Q* 100X保持原状

4