华中科技大学转计算机,[转]华中科技大学 计算机组成原理 上机实验2 2018

notice : 这篇文章仅仅具有上机实验的参考作用,并且需要配套的文件

Logisim学习 ?

隧道 ?

相当于局部变量

复用器-Bit-Selector?

把(West edge)输入数据从最低位开始,平均分成n组,n由输出位宽决定;

另一个输入(South egde)决定选择第i组数据

用到的组件总结 ?

Wiring→Bit Extender,Constant,Tunnel,Probe

Gates→…

Plexers→Multiplexer,Decoder,Bit Selector

Arithmetic→Adder/Substractor*,Multiplier,Divider,Comparator,Shifter

Anchor

构建 32 位运算器。利用封装好的 32 位加法器以及 logisim 平台中现有运算部件(禁用系统自带的加法器,减法器)构建一个32 位运算器,可支持算术加、减、乘、除,逻辑与、或、非、异或运算、逻辑左移、逻辑右移,算术右移运算,支持常用程序状态标志(有符号溢出OF、无符号溢出 CF,结果相等 Equal),运算器功能以及输入输出引脚见下表,在主电路中详细测试自己封装的运算器,在报告中分析该运算器的优缺点。

8位串行可控加法器 ?

见课本P69,不同之处就是这里有cin

eg. X + YSub=0时,Cin 就是进位

Sub=1时

,Cin=0 时, Sub xor Cin = 1,表示对Y的补码运算

,Cin=1 时,Sub xor Cin = 0,Cin表示借位,因此Y-1,与补码的+1抵消

abeafc8eeaa5ae9705c4bc561b821404.png

CLA74182先行进位电路 ?

串行进位加法器一级一级的进位延迟大,

所以可以想办法提前得到当前位的进位输入

以4位为例,设二进制加法器第i位输入为xi,yi,输出为si,进位输入是ci,进位输出Ci+1

cc4cd7cf6c2556d1bef1a1477f1bd3ae.png

递归的展开有

56be2787cf1259f3692f70fec38919a3.png

8e50fab10fe8a0961c4e993f37b959c8.png

6db6095dea3b96c3fd13afadb7f4e629.png

22cc6cf6087f7931c9ed268491d0a282.png

b2e7cd398589c7e5896300c5b4d16694.png

这里可以发现各级的进位与其他进位无关

5bb1314b0b2fa25ddbb07cf3734e0054.png

G*,P*再按 "文件" 所给提示连接即可

G*,P*作用 ?

到下面会提到

CLA..作用 ?

10e32b0aafb5beb37f800ab976bed219.png

a400227e3a298603dc2b89748cfd7e56.png

部分1:由以上产生的Gi,Pi,输入到CLA,G*,P*

部分2:由Gi,Pi,C0能产快速生各个位的进位

cdfd4cffda1c2b0e47ec2194ef36ed71.png

4位快速加法器 ?

这个比较简单,如果画好了CLA74182,G*,P*作用仍不明

f0d5442712475e24de49a2103429e833.png

notice ?

上面GP index从1开始

9d42d01755405b14a735188d082ce1f2.png

作用 ?

输入Xi,Yi,C0

4c6236b8aa0de7a5f454d46b870d8c9b.png

ccadf7cc0b1c7de57e39da5648cfb0bb.png

由以上产生Gi,Pi,输入到CLA,能产快速生各个位的进位和

15befe2766b7811713dbb0fda465a93d.png

得到Si,Ci,G*,P*

输出(需要的)(高亮最后的输出)

各结果的产生次序

Xi,Yi,C0

0

Gi,Pi(Xi,Yi)

1

G*P*(Gi,Pi),Ci(Gi,Pi,C0)

2

Si(Ci,Xi,Yi)

3

notice ?

这里用了隧道G1,G2,…

16位快速加法器 ?

成组进位 ?

25f57e69736c6b71719daa393752b589.png

023c738e3c3bd27cf4f047860c57e006.png

18bb331c48d04d909fafdaec37b54224.png

1e1879d0d080db973e6a73d9d55d4663.png

e4620ebde916caaa575f8ea2bf00eee2.png

dfa4efa3c2a13b9093a1cd01684476b2.png

而只把xi,yi丢向4位快速加法器,就能得到G*,P*,输入CLA74182,得到各个进位,再输回4位快速加法器,得到Si

输出(需要的)(高亮最后的输出)

各结果的产生次序

Xi,Yi,C0

0

Gi*,Pi*

1

Ci(Gi*,Pi*,C0),GAll*,PAll*

2

Si(Ci,Xi,Yi)

3

fcf5ff6bd5a640377bd1a26ce9f39a21.png

32位快速加法器 ?

同16位加法器,只不过多了个溢出检测↓

_溢出检测 ?

第一种 ?

相加两数X,Y符号相同,且与结果S的符号不同

5efef0ac6fca11e66f345b7fe330d997.png

第二种 ?

最高数据位的进位与符号位的进位是否一致,不一致表示溢出

例如 -111+(-110

补码是1001 + 1010

所以溢出了

这里用第一种溢出检测即可;可以用复用器-Bit-Selector分离出符号位(比Splitter简单)

ALU ?

equal&&op=1011?

logisim运算器→比较器

Signed OverFlow ?

只需要处理有符号加减的

Unsigned Overflow ?

加法和小于加数,减法差大于被减数

特别的:加法:无符号加法,溢出即是进位,32位加法器的一个输出cout就是此变量

alu operation ?

logisim→复用器→数据选择器multiplexer

a1454908bc640df02131408267dde350.png

0

自带移位器

1

自带移位器

2

自带移位器

3

自带乘法器

4

自带除法器

5

32位加法器

6

32位加法器

7

自带逻辑门

8

自带逻辑门

9

自带逻辑门

10

自带逻辑门

11

具体电路不再给出

其他 ?

^运算器测试电路 ?

把☆ALU 从左侧的栏目中拖到运算器测试电路上,完成运算器测试电路

---------------------

作者: migeater

来源:CNBLOGS

原文:https://www.cnblogs.com/migeater/p/9102195.html

版权声明:本文为作者原创文章,转载请附上博文链接!

内容解析By:CSDN,CNBLOG博客文章一键转载插件

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值