一位全加器元件例化四位全加器

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

相关文档
最新文档