FPGA VHDL4位全加器

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

《FPGA原理及应用》

实验报告书

(4)

用例化语句设计4位全加器题目

学院专业

姓名学号

指导教师

2015年 10-12月

1.实验目的

(1)进一步熟悉和掌握Qartus II的使用方法;

(2)进一步掌握FPGA实验箱使用方法;

(3)学习和掌握电路原理图的设计流程;

(4)深化理解顶层设计的概念和构建电路的方法

2.实验内容

使用Qartus II的元件库,通过元件图的方式设计具有4位全加器功能的程序,并使用FPGA实验箱对程序进行硬件下载,验证。

3.实验条件

开发软件:Qartus II 8.0

实验设备:FPGA实验箱

拟用芯片:Altera EP3C55F484C8

4.实验设计

1)系统原理

多位加法器的构成有两种方式:并行进位和串行进位方式。并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。

四位全加器可对两个多位二进制数进行加法运算,同时产生进位。当两个二进制数相加时,较高位相加时必须加入较低位的进位项(Ci),以得到输出为和(S)和进位(C0)。

其中CIN表示输入进位位,COUT表示输出进位位,输入A和B分别表示加数和被加数。输出SUM=A+B+CIN,当SUM大于255时,COUT置‘1’。

图4-1 4位全加器原理图

2)程序代码

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY adder1 IS --1位全加器设计

PORT(a,b,cin:IN STD_LOGIC;

s,cout:OUT STD_LOGIC);

END adder1;

ARCHITECTURE dataflow OF adder1 IS --用数据流方式设计1位全加器SIGNAL tmp:STD_LOGIC; --用tmp表示a⊕b

BEGIN

tmp<=a XOR b AFTER 10 ns;

s<=tmp XOR cin AFTER 10 ns;

cout<=(a AND b)OR(tmp AND cin) AFTER 20 ns;

END dataflow;

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY adder4 IS --4位全加器设计

PORT(a,b:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

cin:IN STD_LOGIC;

s:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

cout:OUT STD_LOGIC);

END adder4;

ARCHITECTURE structural OF adder4 IS --用结构化描述风格设计4位全加器COMPONENT adder1

PORT(a,b,cin:IN STD_LOGIC;

s,cout:OUT STD_LOGIC);

END COMPONENT;

SIGNAL x,y,z:STD_LOGIC;

FOR u1,u2,u3,u4:adder1 USE ENTITY WORK.adder1(dataflow);

BEGIN

u1:adder1 PORT MAP(a(0),b(0),cin,s(0),x);

u2:adder1 PORT MAP(a(1),b(1),x,s(1),y);

u3:adder1 PORT MAP(a(2),b(2),y,s(2),z);

u4:adder1 PORT MAP(a(3),b(3),z,s(3),cout);

END structural;

3)电路波形图

工程编译完成后,必须对其功能和时序性质进行仿真测试。下图就是实现仿真后的波形,满足原设计要求。如图3-4所示。

图4-2 4位全加器仿真后的波形

4)引脚锁定和硬件测试

为了能够对全加器进行硬件验证,应将其输入信号锁定在芯片确定的引脚上,编译下载。其锁定输入信号、输出信号。

图3-5 全加器器引脚锁定

5)编译文件下载

编译文件下载结果如图3-6所示。

图3-6 全加器编译文件下载

5. 实验结果

使用实验箱L8~L1八个开关做输入信号的高低电平,通过FPGA实验箱上的LED显示模块的1个二极管的明灭来测试进位信号,LED数码管显示个位加法最终值。

实验箱演示示意图如图3-7所示。

图3-7 实验箱进行试验

6.心得体会

通过这次实验,让我学习到了如何在Qartus II中使用原理图的方式做出所需要的功能器件,以及顶层设计的方法与优点。也学会了如何使用FPGA实验箱。

相关文档
最新文档