FPGA实验报告

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

电气技术实践

可编程逻辑器件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 开发流程。

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 count4 is

port(clk,d:in std_logic;

rst:in std_logic;

q:out std_logic_vector(3 downto 0));

end entity count4;

architecture bhv of count4 is

signal q1:std_logic_vector(3 downto 0);

begin

process(rst,clk,d)

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;

【实验操作】

输入信号clk时钟→Pin152;rst清零→Pin1;d启动控制→Pin2;输出信号q3→Pin43;q2→Pin44;q1→Pin45;q0→Pin46.

旋转位置在实验箱中部偏下部分SW7旋转分频开关、拨码开关对应位置在实验箱左下部分粉红色开关组左边开始第一个和第二个,显示位置在实验箱左上角第一、二、三、四个发光二极管

输入信号rst、d都为“1”、 SW7旋转到1Hz,输出结果信息为第一、二、三、四个发光二极管按照0000→0001→……→1111循环显示,符合实验要求。

(2)半加器

【实验原理图】

【实验操作】

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

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

接口信号与目标器件引脚连接:输入信号pin_name→Pin1、pin_name2→Pin2;输出信号pin_name4(和)→Pin44、pin_name3(进位)→Pin43.

可观察到通过输入得到的逻辑输出与上述的逻辑方程相符,符合半加器的逻辑要求。(3)LED静态显示

【实验代码】

library ieee;

use dec7s1 is

port(A:in std_logic_vector(3 downto 0); LED7S:out std_logic_vector(6 downto 0)); end;

architecture onr of dec7s1 is

begin

process(A)

begin

case A is

when "0000" => LED7S<="1111110"; when "0001" => LED7S<="0110000"; when "0010" => LED7S<="1101101"; when "0011" => LED7S<="1111001"; when "0100" => LED7S<="0110011"; when "0101" => LED7S<="1011011"; when "0110" => LED7S<="1011111"; when "0111" => LED7S<="1110000"; when "1000" => LED7S<="1111111"; when "1001" => LED7S<="1111011"; when others => null;

end case;

end process;

end;

【实验操作】

用开关A3,A2 ,A1,A0作为输入设置,组成一个高输入有效的基本组合逻辑器;从输出指示LED7S观察到数字随A3,A2 ,A1,A0设置值的变化而引起的相应变化。

真值表如图所示:

(4)38译码器

相关文档
最新文档