ALU设计与实现

该实验通过Logisim平台设计了一位ALU和八位ALU的电路,涵盖了按位与、或、补码加法和减法运算。ALU的输入包括操作数、操作类型和进位信号,输出为计算结果和进位输出。八位ALU由多位一位ALU组成,低位ALU处理进位的特殊方式。实验还讨论了如何判断溢出,特别是在有符号和无符号运算中的差异。
摘要由CSDN通过智能技术生成
  1. 实验要求

通过 Logisim 平台上的实验,掌握 ALU 的基本原理与实现。

  1. 实验结果与分析

  1. 在 Logisim 上实现一位 ALU 的电路设计,并测试不同输入的输出,列出一位 ALU 的真值表

本实验中设计了两种一位ALU电路,均包括输入a、b、Binvert、Operation和输出Result、CarryOut。具体地,最低位ALU将反转信号(Binvert)作为Cin输入加法器,构造补码(取反后最低位加1);其他位ALU反转信号和Cin进位信号单独输入。

图表 SEQ 图表 \*ARABIC 1最低位ALU

a

b

Operation

Binvert

CarryOut

Result

0

0

00

(AND)

0

0

1

0

1

0

0

1

1

1

0

0

01

(OR)

0

0

1

1

1

0

1

1

1

1

0

0

10

(ADD)

0

0

0

0

1

0

0

1

1

0

0

0

1

1

1

0

1

0

0

0

10

(SUB)

1

1

0

0

1

1

0

1

1

0

1

1

1

1

1

1

1

0

图表 2最低位ALU真值表

图表 3其他位ALU

a

b

Operation

Binvert

Cin

CarryOut

Result

0

0

00

(AND)

0

0

1

0

1

0

0

1

1

1

0

0

01

(OR)

0

0

1

1

1

0

1

1

1

1

0

0

10

(ADD)

0

0

0

0

0

1

0

1

1

0

0

1

1

1

1

0

0

0

10

(ADD)

0

1

0

1

0

1

1

0

1

0

1

0

1

1

1

1

0

0

10

(SUB)

1

0

1

0

0

1

0

1

1

0

1

1

1

1

1

0

0

0

10

(SUB)

1

1

1

0

0

1

0

1

1

0

1

1

1

1

1

0

图表 4其他位ALU真值表

  1. 在一位 ALU 电路的基础上,设计实现八位 ALU,使其能够进行按位与、按位或、补码加法、补码减法运算

封装ALU如下图。

图表 5分别封装最低位ALU(上)和其他位ALU(下)

设计实现8位ALU,如下图所示(从上到下,数位由低到高,上方第一个1位ALU为最低位ALU,其余1位ALU为其他位ALU)。

图表 6 8位ALU电路图

  1. 实验小结

本实验中设计的8位ALU能够实现基本的按位与、按位或、补码加法和补码减法运算,其中按位与、或操作直接按位独立进行即可,加法利用加法器不同输入及进位对应不同输出,补码减法需要取反后最低位加1。但如果要进行负数加负数的操作需要将其中一位提前处理为补码再进行运算。

完成实验要求后,考虑如何判断溢出,带符号运算时利用单符号法进行判断即可,无符号运算时需要单独考虑,因为总位数相同,有符号数运算的正溢出情况之一(“Cf=0,C0=1”)在无符号运算中是正常运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值