欢迎光临
我们一直在努力

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

1. 引言

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

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

2. 半加器(HalfAdder)

2.1 真值表

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

ABSum(和)Carry(进位)
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

2.2 逻辑化简

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

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

2.3 Logisim 原理图实现

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

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

    Logisim:

    3. 全加器(FullAdder)

    3.1 真值表

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

    ABCin(低位进位)Sum(和)Cout(进位)
    0 0 0 0 0
    0 0 1 1 0
    0 1 0 1 0
    0 1 1 0 1
    1 0 0 1 0
    1 0 1 0 1
    1 1 0 0 1
    1 1 1 1 1

    3.2 逻辑化简

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

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

    3.3 Logisim 原理图实现

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

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

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

    Logisim:

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

    5. 总结

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

    赞(0)
    未经允许不得转载:171主机测评 » 【Logisim】半加器、全加器与 8 位加法器的详细教程
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址