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

运算器组成实验

一、 实验目的

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

二、 实验环境

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

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

三、实验内容

  • 八位串行可控加减法器
  • 四位先行进位电路CLA74182
  • 四位快速加法器
  • 十六位快速加法器
  • 32位快速加法器
  • 32位MIPS运算器

1.八位串行可控加减法器

1) 电路图

image-20201201103423562

计算机组成原理:运算器组成实验(.八位串行可控加减法器等)
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-20201203155148467

计算机组成原理:运算器组成实验(.八位串行可控加减法器等)
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)和输出。

五、实验中碰到的问题和解决的方法

  1. 线路连接过程中遇到电路逻辑完全正确,但点路线却显示蓝色

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

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

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

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

来源:SweetWiner

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月11日
下一篇 2020年11月11日

相关推荐