一位全加器元件例化四位全加器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第组
西华大学实验报告
.
西华大学实验报告(计算机类)
开课学院及实验室:机械学院实验室实验时间:年月日学生姓名学号成绩
学生所在学院电气与电子信息学院年级/专业/班
课程名称EDA技术课程代码106004689 实验项目名称四位加法器设计项目代码
指导教师项目学分
一、实验目的
学习加法器的功能与定义,学习VHDL,学习用元件例化方法设计多层次结构的VHDL设计。
二、内容与实验原理
内容:编写一个一位全加器和一个四位全加器的VHDL代码,用元件例化方法建立一个四位全加器并编译,仿真。
实验原理:
算术运算式数值系统的基本功能,更是计算机中不可缺少的组成单元。
1、全加器
全加法是算术运算电路中的基本单元,它们是完成1位二进制相加的一种组合逻辑电路。一位加法器的真值表见下表;由表3-1中可以看见,这种加法考虑低位来的进位,所以称为全加。一位全加器就是实现下表中逻辑关系的电路。
表3-1 一位半加器真值表
被加数A 加数B 低位进位Ci 和数S 进位Co
0 0 0 0 0
0 1 0 1 0
1 0 0 1 0
1 1 0 0 1
0 0 1 1 0
0 1 1 0 1
1 0 1 0 1
1 1 1 1 1
2、四位全加器
按照串行进位方式,采用四个一位全加器级联可以得到四位加法器。
三、使用环境
计算机、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 <= a OR b;
d <= a NAND b;
u0_Co <= NOT d;
u0_s <= c AND d;
e <= u0_s OR cin;
f <= u0_s NAND cin;
u1_c0 <= NOT f;
sum <= e and f;
Co <= u0_Co OR u1_c0;
end rtl;
(2)
full
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 <= a OR b;
d <= a NAND b;
u0_Co <= NOT d;
u0_s <= c AND d;
e <= u0_s OR cin;
f <= u0_s NAND cin;
u1_c0 <= NOT f;
s <= e and f;
Co <= u0_Co OR u1_c0;
end rtl;
--sifull
LIBRARY IEEE;
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<=temp4;
END struct;
1、按照真值表编写一位全加器VHDL代码,并采用元件例化语句编写四位加法器VHDL代码。
2、利用仿真软件进行编译仿真,给出电路的时序逻辑波形。
3、分析仿真时序波形。
五、实验结果分析及问题讨论
图1