计组实验5-刘文斌

更新时间:2024-01-20 15:10:10 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

武汉轻工大学

计算机组成原理实验报告(五)

姓名: 刘 文 斌 院系:数学与计算机 学院 班级:软件工程13 03班 学号: 13051100 50 老师:郭峰林

2015.11.22

实验五 加减器实验

【实验环境】

1. Windows 2000 或 Windows XP

2. QuartusII9.1 sp2、DE2-115计算机组成原理教学实验系统一台。

【实验目的】

本次实验要求掌握加法器、减法器的设计与实现。 【实验要求】

可以利用原理图设计并实现1位、8位和32位加法器,以及32位加减器。设计1位加法器,将加法器中加入减法功能,可以利用SUB(减)的控制信号;

【实验原理】

加减器是以二进制方式进行数字的加法或减法运算的器件,它能进行加法或减法运算,做减法运算时,是通过将减法运算转化为加法运算来实现的。它可以用全加器做成。(各种加减器的实验原理见后面具体描述)

【实验步骤】

5.1 1位加法器的原理图设计

5.1.1 实验原理 两个二进制数字A,B和一个进位输入C0相加,产生一个和输出S,以及一个进位输出C1,这种运算电路成为全加器(1位加法器)。1位加法器有两个输出S和C1,其中S为加法器的和,C1为进位位输出。下表中列出一位全加器进行加法运算的输入输出真值表:

表5-1 加法器的真值表

根据以上真值表,可以得到1位加法器的输入与输出逻辑关系。

S?(A?B)?C0 ;

C1?(A?B)?((A?B)?C0)?(A?B)?(B?C)?(A?C)

5.1.2 新建1位加法器的原理图文件

根据上面的逻辑关系式可以建立如下图的1位加法器的原理图:存盘文件名假定为add_1

图5.1.1 1位加法器的原理图

5.1.3 文件编译 5.1.4 功能仿真

仿真结果及结果分析:

图5.1.2 1位加法器的仿真波形图

在5-10ns时,A=1,B=0,C0=0,则C1=0,S=1; 在15-20ns时,A=1,B=1,C0=0,则C1=1,S=0; 在30-35ns时,A=0,B=1,C0=1,则C1=1,S=0; 在35-40ns时,A=1,B=1,C0=1,则C1=1,S=1; 5.1.5 生成原理图元器件

切换到原理图窗口,点击【File】-->【Create/Update】-->【Create Symbol Files for Current File】,完成元件封装,假定保存的文件名为add_1。这样就生成了1位全加器的元器件,为后续步骤提供基础。 1位加法器的封装图为:

图5.1.3 1位加法器封装图

5.2 8位加法器的原理图设计

在5.1生成的1位全加器基础上,实现8位全加器。 5.2.1 实验原理

8位加法器用于对两个8位二进制数进行加法运算,并产生进位。8位加法器真值表如下所示:

表5-2 8位加法器真值表

输 入 输 出

A[7..0] A B[7..0] B CIN 进位输入 S[7..0] A+B+CIN COUT 进位输出

表中A[7..0]表示A有8位输入端:A7-A0;B[7..0]表示B有8位输入端:B7-B0;S[7..0]表示S有8位输入端:S7-S0。8位加法器的A、B都有8个输入端,加上进位CIN,共有17个输入端。它有9个输出端,即S7-S0和COUT,因此8位加法器可由8个1位加法器构成。 5.2.2 建立8位加法器原理图文件

注意:建立新的8位全加器工程文件,在输入原理图之前,请将5.1中的1位全加器的原理图文件(add_1.bdf)和全加器元器件库文件(add_1.bsf)复制到当前的工程文件夹下,以便于使用自定义的加法器元器件。在原理图中使用红色框按钮选择add_1原件。

根据图中提示,完成8位加法器原理图的设计。

图5.2.1 8位加法器原理图

5.2.3 文件编译 5.2.4 功能仿真

仿真结果及结果分析:

图5.2.2(a) 8位加法器的仿真波形图

在10-20ns时,A=01,B=4B,C0=0,则C1=0,S=4C; 在60-70ns时,A=06,B=50,C0=1,则C1=0,S=57; 在110-120ns时,A=0B,B=55,C0=0,则C1=0,S=60;

图5.2.2(b) 8位加法器的仿真波形图

在880-890ns时,A=58,B=A2,C0=1,则C1=0,S=FB; 在920-930ns时,A=5C,B=A6,C0=0,则C1=1,S=02; 在960-970ns时,A=60,B=AA,C0=1,则C1=1,S=0B; 5.2.5 生成原理图元器件

点击【File】-->【Create/Update】-->【Create Symbol Files for Current File】,完成元件封装。

图5.2.3 8位加法器封装图

注:改变原理图中,输入/输出引脚的位置,就可以改变封装图中各个引脚的位置。另外点击

时,也可以改变封装图中,各引脚的位置。

5.3 32位加法器的原理图设计

5.3.1 实验原理

32位加法器用于对两个32位二进制数进行加法运算,并产生进位。 5.3.2 建立32位加法器原理图文件

根据级联描述创建32位加法器的原理图。

根据图中提示,完成32位加法器原理图的设计。

图5.3.1 32位加法器原理图

5.3.3 文件编译 5.3.4 功能仿真 仿真结果如图所示:

图5.3.2 32位加法器的仿真波形图

5.3.5 生成原理图元器件 32位加法器的封装图为:

图5.3.3 32位加法器封装图

5.4 1位加减器的原理图设计

5.4.1 1位加减器的实验原理

1位加减器能进行1位的加法和减法运算。减法器运算原理是将A-B运算转化成[A]补+[-B]补运算,求补过程由B+1来实现。 因此,SUB=0时,S=A+B;

SUB=1时,S=A - B=A+(-B)=A+B+1,相当于 A+B的同时在加法器的最低位上加1。 又因为B ○+ 0 =0; B ○+ 1=B,所以S = A+(B ○+ SUB)+ SUB;

1位加减器有两个输出S和C,其中S为加法器的和,C用于判断减法运算的结果是否为负数。有3个输入A、B、和SUB,其中SUB用于标记是否做减法运算。 5.4.2 建立1位加减器的原理图文件

根据以上实验原理中的逻辑关系式可以建立如下图所示的1位加减器的原理图:

图5.4.1 1位加减器原理图

5.4.3 文件编译 5.4.4 功能仿真 仿真结果如图所示:

图5.4.2 1位加减器仿真波形图

5.5 32位加减器的原理图设计

5.5.1 32位加减器的实验原理

32位加减器用于对两个32位二进制数进行加法或减法运算。它先由4个8位加法器级联成32加法器,然后像1位加法器变换成1位加减器那样,经过变换,最后实现。

32位加减器有两个输出S和COUT,其中S为加法器的和,COUT用于判断减法运算的结果是否为负数。有3个输入A、B、和SUB,其中SUB用于标记是否做减法运算。32位加减器真值表如下所示:

表三 32位加减器真值表

输 入 A[31..0] A B[31..0] B SUB 符号标记 输 出 S[31..0] COUT A+(B XOR SUB)+SUB 符号标记

5.5.2 建立32位加减器的原理图文件

根据级联描述和真值表可以建立如下图所示的32位加减器原理图:

图5.5.1 32位加减器原理图

5.5.3 文件编译 5.5.4 功能仿真

仿真结果及结果分析:

图5.5.2(a) 32位加减器仿真波形图

令B=00000012;

在10-20ns时,A=00000002,SUB=0,则COUT=0,S=00000014; 在20-30ns时,A=00000003,SUB=1,则COUT=0,S=FFFFFFF1; 在50-60ns时,A=00000006,SUB=0,则COUT=0,S=00000018;

图5.5.2(b) 32位加减器仿真波形图

令B=00000012;

在210-220ns时,A=00000016,SUB=0,则COUT=0,S=00000028; 在220-230ns时,A=00000017,SUB=1,则COUT=1,S=00000005; 在250-260ns时,A=0000001A,SUB=0,则COUT=0,S=0000002C; 5.5.5 生成原理图元器件 32位加减器的封装图为:

图5.5.3 32位加减器封装图

实验总结:

通过这次上机实验,我巩固了很多重要的知识,让我知道了自己在学习上还有很多不足之处,在今后的学习中,我要更加注重上机实践,不能只停留在课本层面上,在上机的过程中,有几处弄不懂的地方,通过请教老师和同学,我弄明白了那几个知识点,与同学交流知识点是促进学习的好方法!

本文来源:https://www.bwwdw.com/article/r6bo.html

Top