计算机组成原理快速加法器与32位ALU设计实验报告(8位可控加减法电路设计、CLA182四位先行进位电路设计、4...
时间:2023-12-23 10:07:01
实验二 32位快速加法器ALU设计实验
本实验分别进行了8个可控加减法电路设计的五个实验CLA1824位先进位电路设计、4位快速加法器设计、16位快速加法器设计、32位快速加法器设计。本实验报告参考了老师给出的实验方案设计大纲。至于电路中遇到的问题,我会在最后整合。
1 可控加减法电路设计8位
1.1设计原理
在 Logisim 打开模拟器 alu.circ 文件,在相应的子电路中设计了8个串行可控加减电路,电路引脚定义如图所示,用户可以直接在电路中使用相应的隧道标签 X,Y 为两输入数,Sub 加减控制信号,S 输出计算结果,Cout 进位输出,OF 有符号运算溢出。因为我的想法是串联一个全加器,我想介绍一下全加器的原理:全加器是一个二进制加法电路,可以计算低位进位。因为我的想法是串联一个全加器,所以我想介绍一下全加器的原理:全加器是一个二进制加法电路,可以计算低位进位。与半加器相比,全加器不仅考虑本位计算结果是否有进位,还考虑上一个本位进位,可以将多个全加器级联成多个全加器.
为了实现8个可控加减法器,加法可以通过实验给出的8个全加器串行实现,然后通过可控反向异或门按位取反,使Sub减法时减少的补码通过放置0置1来实现 即X Y = X Y 0 , X - Y = X ~Y 1。 不同或门可以实现Y和~Y,同时也可以做Cin输入0、1信号。 Overflow(OF)通过最高位位检测运算符号溢出Cn与符号位进位Cf异或:若相同,则无溢出为0;若不同,则溢出为1。
8位全加器包括8位1位全加器,串联8位全加器,低进位输出Cout连接到高位进位输入Cin实现从右向左逐位传输,如下图所示。
1.2 方案设计
1.2.1 设计思路
我的设计思路是用全加器串联八个一个全加器。具体实验原理如1.1所示
1.2.2 实验图片
1.3 实验步骤
1)下载实验所需的实验包和实验文件,了解老师给出的文件中对实验的解释
2)明确实验原理,绘制电路设计图
3)根据实验电路设计图连接电路
4)连接改进连接错误,修改错误电路
1.4故障与调试
1.4.1出现红线
故障现象:根据草图连接后,出现红线,无法正常运行,存在错误
原因分析:红线出现了。搜索后,由于布线错误和冲突,需要检查图上的连接
解决方案:通过检查,发现问题出现在右侧第二个逻辑门的连接上,多余线的两点会出现粗连接点
2 32位加法功能的原理和设计
2.1设计原理
利用logisim平台上现有的计算部件构建了一个32位计算器,其他位数较小的加法器以特殊的方式连接32位计算器。因此,介绍原理实际上是介绍其他小型加法器的原理。我用四个快速加法器来实现它。因此,这里介绍四个快速加法器的原理,高进位输出可以有一致的变量Gi,Pi以及C0通过四个先进位电路和生成Gi,Pi与门不同或门电路,加上4个不同或门可以构成4个快速加法器
2.2 方案设计
2.2.1 设计思路
在这个问题上,我的设计理念是以一定的方式将四个快速加法器连接起来,并与四个先进进位器结合起来,使其形成32个快速加法器,共使用8个四个快速加法器和两个四个先进进位器X0-X7,Y0-Y7,C0输入引脚区,S,C32,C31是输出引脚区,S=X Y(二进制),最后X,Y,S分别由X0-X7,Y0-Y7,S0-S7来决定。
2.2.2 实验图片
2.3 实验步骤
1)下载实验所需实验包以及实验文件,理解老师所给文件当中对于实验的讲解,自己先画出实验电路图
2)正确连接实验初始部件,了解输出和输入引脚
3)调试错误,改正错误
2.4故障与调试
2.4.1接口处数据不匹配问题
故障现象:接口宽度问题大
原因分析:在设计32位加法器时,首先需要连接4位先进位,但在连接过程中,接口尺寸和值分配不成功
解决方案:根据数据接口的大小逐一调整到电路。这个错误很容易解决。只需调整接口即可ok
2.4.2 出现蓝线
故障现象:第四个加法器的连接有问题,输出引脚是蓝线
原因分析:在网上搜索,搜索结果显示,在布线时,如果线变蓝,则表示该值未知,
解决方案:线段重连仍然是蓝色的。最后,选择重启实验电路,解决问题。错误的原因仍然不太清楚
3 加减法溢出检测设计
3.1溢出概念
当存储的数量超过二进制(固定长度)所能表示的值的范围时, 二进制所表示的数值出现错误, 这种现象叫溢出. 溢出并全是坏处, 溢出的特性用于将减法转换为加法(由补码完成).
溢出分为正溢出和负溢出两种, 当两个正数相加超过进制表示范围时,称为正溢出。 两个负数的运算超进制表示范围称为负溢出.
3.2有符号位溢出的设计
使用符号位,当最高值的进位与符号位的进位不同时,就会发生溢出;同样,没有溢出
用异或表示时,结果为1表示溢出,结果为0表示无溢出
3.3无符号溢出设计
计算机用补码操作,无符号数:左右移动为0(逻辑移位)
4 AluOP控制原理与设计
4.1 AluOP的控制原理
AluOP:4位
1、 最低位控制加减法以及前导0还是前导1
2、 倒数第二位控制是否有符号判断,是否有符号数量判断每个人都有不同的逻辑
3、 比较两个符号位数,V异或S 的结果为less
4、 比较两个无符号位,C的结果为less
4.2 AluOP的设计