【Logisim】半加器、全加器与 8 位加法器的详细教程

1. 引言

Logisim 是一款开源的数字电路仿真与设计工具,非常适合用于学习计算机组成原理、数字逻辑等课程。本教程将教你使用 Logisim 设计三种加法器组件:半加器全加器8 位加法器。每种组件的教程都将包含三个核心部分:真值表逻辑化简Logisim 原理图实现。通过本教程,你将掌握从逻辑分析到电路实现的全过程。

原理图部分,将使用Logisim Evolution 3.9.0Logisim 2.7.1两个版本演示。

2. 半加器(HalfAdder

2.1 真值表

半加器用于计算两个一位二进制数的和,并产生一个进位。它有两个输入(A 和 B)和两个输出(Sum 和 Carry)。

ABSum(和)Carry(进位)
0000
0110
1010
1101

2.2 逻辑化简

根据真值表,我们可以写出 Sum 和 Carry 的逻辑表达式:

  • Sum = A ⊕ B(异或)
  • Carry = A · B(与)

2.3 Logisim 原理图实现

在 Logisim 中实现半加器的步骤如下:

  1. 打开 Logisim,点击左上角绿色加号,新建一个电路(Adder circuit),命名为“HalfAdder”
  2. 从左侧工具栏“逻辑门(Gates)” 库(或顶部工具栏)中拖入一个“异或门(XOR Gate)”和一个“与门(AND Gate)”
  3. 若两个门的输入引脚数量不为2,可单击该部件,在左下角属性卡片更改:
  4. “线路(Wiring)” 库(或顶部工具栏)中拖入两个“输入引脚(Pin)”,分别命名(原版在属性卡片的“标签”栏命名,Evolution版可双击该引脚命名)为“A”“B”
  5. “线路(Wiring)” 库(或顶部工具栏)中拖入两个“输出引脚”,分别命名为“Sum”“Carry”
  6. 使用“导线(Wire)”连接电路:
    • AB连接到异或门的两个输入端异或门输出端连接到Sum 引脚
    • AB连接到与门的两个输入端与门输出端连接到Carry 引脚
  7. 完成后的半加器原理图如下:

Logisim Evolution:

Logisim:

3. 全加器(FullAdder

3.1 真值表

全加器在计算两个一位二进制数的和时,还会考虑来自低位的进位(Cin)。它有三个输入(A、B、Cin)和两个输出(Sum、Cout)。

ABCin(低位进位)Sum(和)Cout(进位)
00000
00110
01010
01101
10010
10101
11001
11111

3.2 逻辑化简

根据真值表,我们可以写出 Sum 和 Cout 的逻辑表达式:

  • Sum = A ⊕ B ⊕ Cin
  • Cout = C1 ​+ C2​ = A ⋅ B + ( A ⊕ B ) ⋅ Cin​

3.3 Logisim 原理图实现

在 Logisim 中实现全加器的步骤如下:

  1. 新建一个电路,命名为“FullAdder”
  2. 使用两个半加器一个或门构建全加器是一种经典方法:
    • 第一个半加器计算 A 和 B 的和(S1)与进位(C1)。
    • 第二个半加器计算 S1 和 Cin 的和(即最终的 Sum)与进位(C2)。
    • 最终的进位Cout = C1 + C2(使用一个或门)。
  3. 具体操作:
    1. 拖入三个输入引脚,命名为“A”“B”“Cin”
    2. 拖入两个输出引脚,命名为“Sum”“Cout”
    3. 法1:从“逻辑门(Gates)” 库拖入两个“异或门(XOR Gate)”“与门(AND Gate)”和一个“或门(OR Gate)”
      法2:你也可以直接拖拽使用之前创建的 “HalfAdder” 子电路来简化布线。
    4. 按上述逻辑连接导线。
  4. 完成后的全加器原理图如下:

Logisim Evolution:

Logisim:

4. 8 位加法器(BitAdder_8

4.1 真值表

8 位加法器由8 个全加器级联构成,每一位处理一个二进制位。由于规模较大,我们通常不为其绘制完整的真值表(2^9=512 行),而是基于全加器的逻辑进行构建。

其核心逻辑是:将8 个全加器串联低位全加器的 Cout连接到相邻高位全加器的 Cin。第一个全加器的 Cin 通常接地(为0)或作为整个加法器的进位输入。

4.2 逻辑化简

  • Sum[i] = A[i] ⊕ B[i] ⊕ C[i]

  • C[i+1] = A[i] ⋅ ​B[i]​ + ( A[i] ​⊕ B[i]​ ) ⋅ C[i​]

其中C[0]=Cin=0,C[7]=Cout,循环代入即可得到所有输出。

4.2 Logisim 原理图实现

在 Logisim 中构建 8 位加法器的步骤如下:

  1. 新建一个电路,命名为“BitAdder_8”
  2. 拖入16 个1 位输入引脚,分别命名为“A0”~“A7”“B0”~“B7”(或2 个8 位输入引脚,左下角属性卡片设置数据位宽为 8,分别命名为“A7_0”“B7_0”)。
  3. 拖入11 位输入引脚,命名为“Cin”,作为整个加法器的低位进位输入。
  4. 拖入8 个1 位输出引脚,分别命名为“S0~S7”(或1 个8 位输出引脚,数据位宽为 8,命名为“S7_0”),用于输出和。
  5. 拖入1 个1 位输出引脚,命名为“Cout”,用于输出最高位的进位。
  6. 法1:使用8 个之前创建的“FullAdder” 子电路组成 8 位加法器。
    法2:从“运算器(Arithmetic)” 库中直接找到“加法器(Adder)”组件,把1 个加法器拖入画布,将其位宽设置为 8(内置加法器通常已默认为 8 位,不用额外调整)。这是 Logisim 内置的加法器,内部已实现全加器级联逻辑。
  7. 按上述逻辑连接导线,完成后的 8 位加法器原理图如下:

Logisim Evolution:

Logisim:

*注:如果出现连线正确不知道什么原因报错保存重新打开即可。

5. 总结

本教程详细介绍了使用 Logisim 设计半加器、全加器和 8 位加法器的完整流程,涵盖了从真值表分析、逻辑化简到原理图实现的每一步。掌握这些基础组件的设计,是理解更复杂算术逻辑单元(ALU)和 CPU 数据通路的关键。建议读者在 Logisim 中亲手搭建并测试每个电路,以巩固学习成果。