计算机组成原理:运算器组成实验(.八位串行可控加减法器等) |
您所在的位置:网站首页 › 进制逻辑运算器是什么 › 计算机组成原理:运算器组成实验(.八位串行可控加减法器等) |
运算器组成实验
一、 实验目的
熟悉 Logisim软件平台。掌握运算器基本工作原理掌握运算溢出检测的原理和实现方法;理解有符号数和无符号数运算的区别;理解基于补码的加/减运算实现原理;熟悉运算器的数据传输通路。
二、 实验环境
Logisim是一款数字电路模拟的教育软件,用户都可以通过它来学习如何创建逻辑电路,方便简单。它是一款基于 Java 的应用程序,可运行在任何支持 JAVA 环境的平台,方便学生来学习设计和模仿数字逻辑电路。Logisim中的主要组成部分之一就在于设计并以图示来显示 CPU。当然 Logisim中还有其他多种组合分析模型来对你进行帮助,如转换电路,表达式,布尔型和真值表等等。同时还可以重新利用小规模的电路来作为大型电路的一部分。 http://www.cburch.com/logisim/docs.html 三、实验内容 八位串行可控加减法器四位先行进位电路CLA74182四位快速加法器十六位快速加法器32位快速加法器32位MIPS运算器 1.八位串行可控加减法器 1) 电路图输入:操作数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) 设计分析与说明:输入:进位产生函数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) 电路图![]() **输入:**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时即表示溢出, 那么就有逻辑表达式: 这个逻辑表达式表明,有符号加法运算溢出的条件是:两个操作数都是正数结果却为负数,或者 两个运算数都是负数结果却是正数。 3) 实验结果的记录与分析:输入输出见32位快速加法器图 分析 :将输入数据分为高十六位和低十六位,分别送入2个十六位快速加法器中进行计算。由2个操作数的符号位和运算结果的符号位可计算出是否溢出。 4) 操作步骤及顺序: 输入数据分为高十六位和低十六位,分别送入2个十六位快速加法器中将2个十六位快速加法器的P*,G*送入CLA74182中,并得出S0和S1由由2个操作数的符号位和运算结果的符号位计算是否溢出由S0和S1推出运算结果S 6.32位MIPS运算器 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 |