计算机组成原理:运算器组成实验(.八位串行可控加减法器等)

您所在的位置:网站首页 进制逻辑运算器是什么 计算机组成原理:运算器组成实验(.八位串行可控加减法器等)

计算机组成原理:运算器组成实验(.八位串行可控加减法器等)

2024-07-14 04:24| 来源: 网络整理| 查看: 265

运算器组成实验 一、 实验目的 熟悉 Logisim软件平台。掌握运算器基本工作原理掌握运算溢出检测的原理和实现方法;理解有符号数和无符号数运算的区别;理解基于补码的加/减运算实现原理;熟悉运算器的数据传输通路。 二、 实验环境

Logisim是一款数字电路模拟的教育软件,用户都可以通过它来学习如何创建逻辑电路,方便简单。它是一款基于 Java 的应用程序,可运行在任何支持 JAVA 环境的平台,方便学生来学习设计和模仿数字逻辑电路。Logisim中的主要组成部分之一就在于设计并以图示来显示 CPU。当然 Logisim中还有其他多种组合分析模型来对你进行帮助,如转换电路,表达式,布尔型和真值表等等。同时还可以重新利用小规模的电路来作为大型电路的一部分。

http://www.cburch.com/logisim/docs.html

三、实验内容 八位串行可控加减法器四位先行进位电路CLA74182四位快速加法器十六位快速加法器32位快速加法器32位MIPS运算器 1.八位串行可控加减法器 1) 电路图

2) 设计分析与说明: 将8个一位全加器FA的进位链串联即可得到8位加法器,由于补码符号位也可以参与运算,所以此电路既可以用于有符号数运算,也可以用于无符号数运算,但二者在溢出检测上有一定区别,这里OF的判定以有符号数加法运算是否溢出为标准。溢出检测:根据运算过程中,最高数据位的进位与符号位的进位位是否一致进行检测。V= Cd xor Cf。sub = 0,执行减法操作。0和二进制数异或运算得到其本身,然后通过一位全加器FA执行加法运算。sub = 1,执行减法操作。1和二进制数异或运算相当于对二进制数进行取反操作,然后将sub = 1,传入FA进行+1操作。(由[y]补求[-y]补,全部位取反后加一)。高位进位的产生依赖于低位进位的输入,串行进位加法器的速度较慢。

输入:操作数1X的8位数据X7-X0,操作数2Y的八位数据Y7-Y0。最低位进位Cin,加减法控制项Sub。 输出:运算结果S的八位数据S7-S0,最高位进位Cout,有符号运算溢出判断OF。

3) 实验结果的记录与分析: x=0000 0000,y=0000 0001,sub=0;s=0000 0001,Cout=0,OF=0x=0000 1000,y=0000 0101,sub=1;s=0000 0011,Cout=1,OF=0x=0100 1000,y=0100 0001,sub=0;s=1000 1001,Cout=0,OF=1x=0000 0111,y=1000 0111,sub=1;s=1000 0000,Cout=0,OF=1

分析第1个输出结果 :

sub = 0 ,两个正数执行x + y操作。输出结果为s=0000 0001,没有发生溢出,最高位的进位为0。

4) 操作步骤及顺序:

根据sub确定是执行减法操作还是加法操作。将操作数的8位数据的每一分别送入一位全加器FA中执行加法操作。得出结果 2.四位先行进位电路CLA74182 1) 电路图

TODO(上传图片的时候名字重复,导致文章的图片混了)

2) 设计分析与说明:

image-20201201103423562

image-20201201103435488

A3-A0,B3-B0分别是操作数1A和操作数2B的四位数据,C1、C2、C3、C4分别是从低至高位的进位数据,C0是低位进位输入,可以以此代入展开。因此C1,C2,C3,C4的计算便不需要彼此依赖,而是可以独立地根据A3-A0,B3-B0以及C0计算出来。根据这样的思路,便可以实现“四位先行进位电路”。Gi=Ai-1 Bi-1 Pi=Ai-1 + Bi-1 G=G4 + P4G3 + P4P3G2 + P4P3P2G1 P=P4P3P2P1如C2 = G2 +P2G1 + P2P1C0。先P2P1C0进行AND运算,P2G1进行AND运算,再将它们的结果与G2进行OR运算。

输入:进位产生函数G4、G3、G2、G1,进位传递函数P4、P3、P2、P1以及低位进位Cin

输出:四个进位C4、C3、C2、C1,进位产生函数G,进位传递函数P

3) 实验结果的记录与分析:

输入序列G4 P4 G3 P3 G2 P2 G1 P1 Cin,输出序列C4 C3 C2 C1 G* P* 1.输入:0000 0001 1 输出:0001 00 2.输入:0000 0111 0 输出:0011 00 3.输入:1111 0000 0 输出:1100 10 4.输入:1111 1110 0 输出:1111 10

分析输出结果 :

C1,C2,C3, C4的计算不需要彼此依赖,而是可以独立地根据A3-A0,B3-B0以及C0计算出来。

4) 操作步骤及顺序:

输入序列G4 P4 G3 P3 G2 P2 G1 P1 Cin根据公式分别算出C4 C3 C2 C1 G* P*。以C2 = G2 +P2G1 + P2P1C0为例:先P2P1C0进行AND运算,P2G1进行AND运算,再将它们的结果与G2进行OR运算。输出结果C4 C3 C2 C1 G* P* 3.四位快速加法器 1) 电路图 2) 设计分析与说明: 需要一个CLA74182作为来并行计算进位值,然后只需要4个一位全加器FA实现加法运算即可。

**输入:**X3X2X1X0, Y3Y2Y1Y0, Cin

**输出:**运算结果S的四位数据S3-S0,最高位进位Cout,p*,G*。

3) 实验结果的记录与分析:

输入:x = 1000 , y = 0100, Cin = 0 ; 输出:s = 1100, Cout = 0,p* = 0, G* = 0

分析:先对Xn、Yn分别进行AND和OR运算,送入CLA74182,再由此算出S3-S0

4) 操作步骤及顺序:

先求Gi=Xi Yi, Pi=Xi + Yi根据CLA74182得出的C4 C3 C2 C1作为进位位, 分别与对应的每一位X和Y使用FA进行加法操作得出运算结果四位数据S3-S0,以及最高位进位Cout,p*,G*。 4.十六位快速加法器 1) 电路图

TODO(上传图片的时候名字重复,导致文章的图片混了)

2) 设计分析与说明:

需要一个CLA74182作为来并行计算进位值,然后只需要4个四位快速加法器实现4位数的运算即可。

3) 实验结果的记录与分析:

输入:X = 0000 1100 0000 1100, Y = 1000 0100 1000 0100, Cin = 0;

输出:S = 1001 0000 1001 0000, Cout = 0, p* = 0, G* = 0

分析:将输入的32位数据分成4个4位数据分别送入,利用4位加法器分别算出S0-S3,利用CLA74182算出p* 和G*,结果正确,与预期相 符合。

4) 操作步骤及顺序:

将输入的32位数据分成4个4位数据分别送入4位快速加法器中结合Cin的值得出S0-S3将每一个4位快速加法器产生的p* 和G*送入CLA74182,算出最终的p* 和G*得出最终结果 5.32位快速加法器 1)电路图

TODO(上传图片的时候名字重复,导致文章的图片混了)

2) 设计分析与说明: 需要一个CLA74182作为来并行计算进位值,然后只需要2个十六位快速加法器实现16位数的运算即可。溢出检测方法1:根据操作数和运算结果的符号位是否一致来进行检测

设Xf,Yf分别为两个操作数的符号位,Sf为结果的符号位,V为溢出标志位,V=1时即表示溢出,

那么就有逻辑表达式:image-20201203131745312

这个逻辑表达式表明,有符号加法运算溢出的条件是:两个操作数都是正数结果却为负数,或者 两个运算数都是负数结果却是正数。

3) 实验结果的记录与分析:

输入输出见32位快速加法器图

分析 :将输入数据分为高十六位和低十六位,分别送入2个十六位快速加法器中进行计算。由2个操作数的符号位和运算结果的符号位可计算出是否溢出。

4) 操作步骤及顺序:

输入数据分为高十六位和低十六位,分别送入2个十六位快速加法器中将2个十六位快速加法器的P*,G*送入CLA74182中,并得出S0和S1由由2个操作数的符号位和运算结果的符号位计算是否溢出由S0和S1推出运算结果S 6.32位MIPS运算器 0) 芯片引脚与功能描述.

image-20201203155148467

image-20201203155206670

1) 电路图 2) 设计分析与说明: 逻辑右移、逻辑左移、算术右移:X表示操作数,Y表示移动的位数乘法运算:R1低32位,R2高32位除法运算:R1为商,R2为余数加减法运算(0加1减):运算结果存在R1,R2 = 0,区分有符号溢出和无符号溢出 无符号数溢出判断:当最高为向更高位有进位(或借位)时产生溢出。有符号数溢出判断:最高数据位的进位与符号位的进位位是否一致进行检测 按位与,按位或,按位异或,按位或非使用相应器件完成运算符号比较无符号比较

**输入:**32位操作数1X,32位操作数2Y,AluOP运算器功能控制码S。 **输出:**结果1Result,结果2Result2,有符号运算溢出判断OF,无符号数溢出判断UOF,两操作数是否相等判断Equal

3) 实验结果的记录与分析: AluOP控制运算符功能,实现相应的运算。(功能较多,不一一举例)

分析:结合各功能的实际原理,分析结果是否正确,验证运算

4) 操作步骤及顺序:

输入操作数,根据运算符功能表选择AluOP的对应功能输出运算结果 四、实验收获和体会

1、片选信号可以不连接即不做处理,或者接常量1,或者接译码器验证都是正确的。

2、可以通过电路中线的颜色判断哪里除了问题。常见的颜色判断:蓝色表示位置状态;红色表示信号冲突;亮绿色表示高电平

布线时,蓝色表示该点值未知,灰色表示未连接到任何东西。在布线过程中,出现蓝色和灰色都是正常的。但是布线完成后就不应该出现了。

仿真时,不应出现蓝灰,戳工具点Pin使其值改变。值为1的线浅绿,0为深绿。如果多位线路传输,则为黑色。出现绿色黑色都是正常的。

但是出现红色代表:布线错误,产生冲突

3、解复用器有一个输入、选择(定义哪个输出端输出输入数据)、输出,而译码器只有选择(选择哪个输出为1)和输出。

五、实验中碰到的问题和解决的方法 线路连接过程中遇到电路逻辑完全正确,但点路线却显示蓝色

​ 解决方法:在电路正确的前提下,重启logism,重启后就不会出现蓝色。若仍出现蓝色的线,则需要重新检查电路。

Pin使其值改变。值为1的线浅绿,0为深绿。如果多位线路传输,则为黑色。出现绿色黑色都是正常的。

但是出现红色代表:布线错误,产生冲突

3、解复用器有一个输入、选择(定义哪个输出端输出输入数据)、输出,而译码器只有选择(选择哪个输出为1)和输出。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3