基于FPGA地全加器地设计.pdf
文本预览下载声明
实验二 全加器设计
一、 验目的
1 设计并实现一个一位全加器。
2 、编写testbench 并仿真。
二、 验原理
计算机中的加法器一般就是全加器,它实现多位带进位加法。下面以一位全加器介绍。
一位全加器有三个输入、两个输出,见图2-1 。
(被加数)Ai (全加和)Si
(被加数)Bi 全加器
(进位入)Ci- 1 (进位出)Ci
图2- 1 一位全加器示意图
图中的 进位入”Ci-1 指的是低位的进位输出, 进位出”Ci 即是本位的进位输出。一位全
加器的真值表见表2-1 。
表2-1 :
输入 输出
Ci-1 Bi Ai Si Ci
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
根据表2-1 便可写出逻辑函数表达式:
Si Ai Bi C Ai Bi C Ai Bi C Ai Bi C
i1 i1 i1 i1
Ci Ai Bi Ai C Bi C
i1 i1
全加功能的硬件实现方法有多种,例如:可以把全加和看作是Ai 与Bi 的半加和Hi 与
进位输入Ci-1 的半加和来实现。
多位全加器就是在一位的原理上扩展而成的。集成电路全加器有7480 7481 7483 等。
实验源程序 件名是fulladder.vhd 。
三、 验代码 (含TESTBENCH )
1 全加器代码
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY fulladder IS
PORT(a,b,cin:IN STD_LOGIC;
s,co:OUT STD_LOGIC
M : out std_logic_vector(3 downto 0));-- 4 位功能选择位M[3:0],设置状态为0001,
即16 位拨码开关接到 16 位数据总线上。
END fulladder;
ARCHITECTURE half2 of fulladder IS
signal temp: STD_LOGIC_VECTOR(1 DOWNTO 0);
BEGIN
M = 0001;
temp=(0a) + b+cin;
s=temp(0);
显示全部