一位全加器元件例化四位全加器
.
西华大学实验报告(计算机类)
开课学院及实验室: 机械学院实验室 实验时间 : 年 月 日
一、实验目的
学习加法器的功能与定义,学习VHDL ,学习用元件例化方法设计多层次结构的VHDL 设计。
二、内容与实验原理
内容 :编写一个一位全加器和一个四位全加器的VHDL 代码,用元件例化方法建立一个四位全加器并编译,仿真。 实验原理:
算术运算式数值系统的基本功能,更是计算机中不可缺少的组成单元。 1、全加器
全加法是算术运算电路中的基本单元,它们是完成1位二进制相加的一种组合逻辑电路。一位加法器的真值表见下表;由表3-1中可以看见,这种加法考虑低位来的进位,所以称为全加。一位全加器就是实现下表中逻辑关系的电路。
表3-1 一位半加器真值表
被加数A 0 0 1 1 0 0
加数B 0 1 0 1 0 1
低位进位Ci 和数S
0 0 0 0 1 1
0 1 1 0 1 0
进位Co 0 0 0 1 0 1
1 1
2、四位全加器
0 1
1 1
0 1
1 1
按照串行进位方式,采用四个一位全加器级联可以得到四位加法器。
三、使用环境
计算机、Modelsim 软件。
四、核心代码及调试过程 (1) library IEEE;
USE IEEE.std_logic_1164.all; ENTITY full IS
PORT (a,b,cin:IN STD_LOGIC; sum,Co: OUT STD_LOGIC); END full ;
architecture rtl of full is
SIGNAL u0_Co,u0_s,u1_c0,c,d,e,f:STD_LOGIC; BEGIN
c
library IEEE;
USE IEEE.std_logic_1164.all; ENTITY full IS
PORT (a,b,cin:IN STD_LOGIC; s,Co: OUT STD_LOGIC); END full ;
architecture rtl of full is
SIGNAL u0_Co,u0_s,u1_c0,c,d,e,f:STD_LOGIC; BEGIN
c
Co
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY sifull IS
PORT( X,Y:IN STD_LOGIC_VECTOR(3 DOWNTO 0); C:IN STD_LOGIC;
SUM:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); Co1:OUT STD_LOGIC); END sifull;
ARCHITECTURE struct OF sifull IS COMPONENT full
PORT(a,b,cin:IN STD_LOGIC; s,Co:OUT STD_LOGIC); END COMPONENT;
SIGNAL temp1,temp2,temp3,temp4:STD_LOGIC; BEGIN
U1:full PORT MAP(X(0),Y(0),C,SUM(0),temp1);
U2:full PORT MAP(a=>X(1),b=>Y(1),cin=>temp1,s=>SUM(1),Co=>temp2); U3:full PORT MAP(a=>X(2),b=>Y(2),cin=>temp2,s=>SUM(2),Co=>temp3); U4:full PORT MAP(a=>X(3),b=>Y(3),cin=>temp3,s=>SUM(3),Co=>temp4); Co1
1、按照真值表编写一位全加器VHDL 代码,并采用元件例化语句编写四位加法器VHDL 代码。 2、利用仿真软件进行编译仿真,给出电路的时序逻辑波形。 3、分析仿真时序波形。
五、实验结果分析及问题讨论
图1
图2