logsim实现补码器电路和三位加法器实现原理

一、1bit半加器

、1bit半加器使用一个异或门和一个与门组成,异或门表示两个数相加后的数,与门表示其进制

二、1bit全加器

全加器可看作是两个半加器的叠加,与半加器相比还可接收一个低位进位输入信号

三、4bit二进制补码器

根据补码的规则,若输入的数位正数则补码和原码相同,若为负数则除符号位其余的全部取反再加1。因此,可将每位数同符号位用异或门进行计算,

补码原理

(1)正数与原码相同;
(2) 负数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1。 同一个数字在不同的补码表示形式中是不同的。比如10进制数值-15的二进制原码是10001111,其补码在8位二进制中是11110001,然而在16位二进制补码表示中,不足位数要用符号位补全,也就是1111111111110001。因为正数和负数的补码运算规则不一样,取决与输入二进制数的最高位(符号位)。从简单入手,你可以先只考虑输入为负数情况的补码运算。补码运算中有一个加1运算,需要用全加器实现。 4位全加器可以用4个1位(bit)全加器级联得到。

四。三位加法器

采取封装的形式,如下

将全加器包装后利用

就实现了三位二进制数加法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,我们需要确定 ALU 的输入和输出。通常,ALU 的输入包括两个操作数和一个操作码,输出为计算结果和一些标志位。在这个例子中,我们将设计一个简单的 8 位 ALU,它可以执行四种操作:加法、减法、与运算和或运算。输出将包括计算结果、进位标志位、借位标志位和零标志位。 接下来,我们将使用 Logisim 工具来实现这个 ALU。以下是详细步骤: 1. 打开 Logisim 工具,创建一个新的电路。 2. 在工具栏中选择“Elementary”,然后从下拉菜单中选择“Pin”来添加输入和输出引脚。我们需要 3 个输入引脚(两个 8 位操作数和一个 2 位操作码)和 4 个输出引脚(一个 8 位计算结果、一个进位标志位、一个借位标志位和一个零标志位)。 3. 在工具栏中选择“Gates”,然后从下拉菜单中选择“Adder-Subtractor”来添加加法器/减法。将两个 8 位操作数输入到加法器的 A 和 B 输入上,并将操作码的第 0 位连接到减法的 S 输入上,以实现减法操作。将加法器/减法的输出连接到一个 8 位选择,这样我们就可以根据操作码的第 1 位选择加法器或减法的输出。 4. 在工具栏中选择“Gates”,然后从下拉菜单中选择“AND”和“OR”门来实现与运算和或运算。将两个 8 位操作数分别连接到与门和或门的输入上,并将操作码的第 2 位连接到门的控制输入上。将与门和或门的输出连接到 8 位选择,这样我们就可以根据操作码的第 2 位选择与运算或或运算的输出。 5. 实现标志位: - 进位标志位:将加法器/减法的进位输出连接到一个 1 位选择,将其输出连接到进位标志位的引脚上。 - 借位标志位:将减法的借位输出连接到一个 1 位选择,将其输出连接到借位标志位的引脚上。 - 零标志位:将计算结果连接到一个 8 位选择,将其输出连接到一个 8 位比较的 A 输入上。将比较的 B 输入连接到一个 8 位全为零的常量,将比较的输出连接到零标志位的引脚上。 6. 最后,将所有组件连接起来,并保存电路。 现在,我们已经成功地实现了一个简单的 8 位 ALU,它可以执行加法、减法、与运算和或运算,并产生计算结果、进位标志位、借位标志位和零标志位。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值