FPGA VHDL4位全加器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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实验箱。