实验三 加法器的设计与仿真 实验报告
实验三 加法器的设计与仿真
一、实验内容
1.用VHDL 语言设计全加器; 2.利用设计的全加器组成串行加法器; 3.用VHDL 语言设计并行加法器。 二、
1.全加器
a. 用途:实现一位全加操作 b.
逻辑图:
c. 真值表
d. VHDL 程序
library ieee;
use ieee.std_logic_1164.all; entity f_adder is port( x,y,cin:in std_logic; s,cout :out std_logic );
end entity f_adder;
architecture bhv of f_adder is begin s
e. 波形图:
2.四位串行加法器
a. 逻辑图
b.
VHDL 描述
LIBRARY ieee;
USE ieee.std_logic_1164.ALL; ENTITY adder4 IS PORT (
c0: IN STD_LOGIC;
a,b : IN STD_LOGIC_VECTOR(3 DOWNTO 0); s : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); c4 : OUT STD_LOGIC);
END adder4;
ARCHITECTURE arc2 OF adder4 IS COMPONENT adder PORT (
a, b,cin : IN STD_LOGIC; s, co : OUT STD_LOGIC );
END COMPONENT;
SIGNAL carry : STD_LOGIC_VECTOR(3 DOWNTO 1);
BEGIN u1 : adder PORT MAP (a=>a(0),
b=>b(0),cin=>c0,s=>s(0),co=>carry (1));
u2 : adder PORT MAP (a=>a(1),
b=>b(1),cin=>carry(1),s=>s(1),co=>carry (2));
u3 : adder PORT MAP (a=>a(2),
b=>b(2),cin=>carry(2),s=>s(2),co=>carry (3));
u4 : adder PORT MAP
(a=>a(3),b=>b(3),cin=>carry(3),s=>s(3),co=>c4);
END arc2;
c. 波形图
3.74283:4位先行进位全加器(4-Bit Full Adder)
a. 逻辑框图
b. 逻辑功能表
注:1、输入信号和输出信号采用两位对折列表,节省表格占用的空间,如:[A1/A3]对应的列取值相同,结果和值[Σ1/Σ3]对应的运算是Σ1=A1+B1和Σ3=A3+B3。请自行验证一下。
2、C2是低两位相加产生的半进位,C4是高两位相加后产生的进位输出,C0是低位级加法器向本级加法器的进位输入。
c.VHDL 描述:
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity xianxing is port(
cin: in std_logic;
a,b: in std_logic_vector(3 downto 0); s: out std_logic_vector(3 downto 0); cout: out std_logic );
end xianxing;
architecture bhv of xianxing is signal x,y,z:
std_logic_vector(4 downto 0); begin x
y
s(3 downto 0)
end bhv; d. 波形图