目录
1.一些在开始的约定
2.七大逻辑门电路
1、 与门
2、 或门
3、 非门
5、 或非门
6、 异或门
7、 同或门
3.半加器
4.全加器
5.ALU
1.一些在开始的约定
| 相同的概念: | 相同的概念: | 
| 高电平 | 低电平 | 
| 逻辑真 | 逻辑假 | 
| 开关的开 
 | 开关的关 
 | 
| 灯的亮 
 | 灯的不亮 
 | 
| 二进制的:1 | 二进制的:0 | 
2.七大逻辑门电路
七种常见的逻辑门真值表
1、 与门
:所有输入为高时,才会有输出高。逻辑函数表示为F=A*B。
| 输入A | 输入B | 输出Y | 图示 | 
| 0 | 0 | 0 |  | 
| 0 | 1 | 0 |  | 
| 1 | 0 | 0 |  | 
| 1 | 1 | 1 |  | 
2、 或门
:所有输入为低时,才会有输出低。逻辑函数表示为F= A + B。
| 输入A | 输入B | 输出Y | 图示 | 
| 0 | 0 | 0 |  | 
| 0 | 1 | 1 |  | 
| 1 | 0 | 1 |  | 
| 1 | 1 | 1 |  | 
3、 非门
:逆转输入的高低状态。逻辑函数表示为F=A’。
| 输入A | 输出Y | 图示 | 
| 0 | 1 |  | 
| 1 | 0 |  | 
 
 4、 与非门
:所有输入为高时,才会有输出低。逻辑函数表示为F=(A*B)’。
| 输入A | 输入B | 输出Y | 图示 | 
| 0 | 0 | 1 |  | 
| 0 | 1 | 1 |  | 
| 1 | 0 | 1 |  | 
| 1 | 1 | 0 |  | 
5、 或非门
:所有输入为低时,才会有输出高。逻辑函数表示为F=(A + B)’。
| 输入A | 输入B | 输出Y | 图示 | 
| 0 | 0 | 1 |  | 
| 0 | 1 | 0 |  | 
| 1 | 0 | 0 |  | 
| 1 | 1 | 0 |  | 
6、 异或门
:输入相同时输出为低,否则为高。逻辑函数表示为F=A’B + AB’。
| 输入A | 输入B | 输出Y | 图示 | 
| 0 | 0 | 0 |  | 
| 0 | 1 | 1 |  | 
| 1 | 0 | 1 |  | 
| 1 | 1 | 0 |  | 
7、 同或门
:与异或门相反。输入相同时输出为高,否则为低。逻辑函数表示为F= A*B + A’*B’。
| 输入A | 输入B | 输出Y | 图示 | 
| 0 | 0 | 1 |  | 
| 0 | 1 | 0 |  | 
| 1 | 0 | 0 |  | 
| 1 | 1 | 1 |  | 
3.半加器
我们来用表格模拟一下两个二进制数相加的过程:
| 输入A | 输入B | 进位位 | 加法位 | 
| 0 | 0 | 0 | 0 | 
| 0 | 1 | 0 | 1 | 
| 1 | 0 | 0 | 1 | 
| 1 | 1 | 1 | 0 | 
我们先看输入和加法位的关系:和异或门的的输入输出结果是一样的!
| 输入A | 输入B | 输出 | 
| 低 | 低 | 低 | 
| 低 | 高 | 高 | 
| 高 | 低 | 高 | 
| 高 | 高 | 低 | 
接着看输入和进位位的关系:和与门的输入输出结果是一样的!
| 输入A | 输入B | 输出 | 
| 低 | 低 | 低 | 
| 低 | 高 | 低 | 
| 高 | 低 | 低 | 
| 高 | 高 | 高 | 
所以我们用异或门来表示两个二进制数加法中的加法位结果,用与门来表示进位位的结果,二者组合在一起就能完成两个二进制数的加法了。
 
当然用MC中的红石电路展示就是这样了:
0+0

 1+0
0+1

 1+1
以上就是,一个半加器的完整演示了。其是异或门和与门的组合。
4.全加器
由于上述的半加器只能接收两个输入,如果此时有两个半加器(一个计算高位,一个计算低位),需要计算两个二位二进制数的加法,低位在进行加法运算时需要进位怎么办呢?另外一个半价器并没有一个可以用于接收进位的接收端。

所以我们需要给半加器增加一个接收进位输入的输入端!
| 输入A | 输入B | 进位输入 | 加法位输出 | 进位位输出 | 
| 0 | 0 | 0 | 0 | 0 | 
| 0 | 0 | 1 | 1 | 0 | 
| 1 | 0 | 0 | 1 | 0 | 
| 1 | 0 | 1 | 0 | 1 | 
| 0 | 1 | 0 | 1 | 0 | 
| 0 | 1 | 1 | 0 | 1 | 
| 1 | 1 | 0 | 0 | 1 | 
| 1 | 1 | 1 | 1 | 1 | 
 根据以上的真值表,可以用以下的电路组合来表示上述的过程:
就像这样,将两个半加器组合起来,再组合上一个或门就完成了一个有A,B,进位输入和加法位输出和进位位输出的全加器了。
用MC中的红石电路展示就是这样了:

示例:
进位输入1,A:1,B:1,
加法位输出:1,进位位输出:1。
逻辑正确。

像这样的,将N个全加器串联在一起,就可以构成计算机中的最基础的运算部件——N位加法器:



像这个,每层串联4个全加器,共八层,层层串联,可知如下就是一个32位加法器,可以用来计算结果在2^32-1之内的加法。

5.ALU
计算机组成原理中的算术逻辑单元(Arithmetic Logic Unit,简称ALU)是中央处理器(CPU)中的一个核心组件。它负责执行所有算术和逻辑操作,如加法、减法、乘法、除法、与(AND)、或(OR)、非(NOT)以及异或(XOR)等。ALU是CPU进行数据处理和计算的主要部分。
 具体来说,ALU执行以下几类操作:
 算术运算:包括整数加法、减法、乘法和除法。
 逻辑运算:包括与、或、非、异或等逻辑操作。
 移位操作:包括算术左移、算术右移、逻辑左移、逻辑右移等。
 比较操作:用于比较两个操作数的大小,生成相应的标志位(如大于、小于、等于等)。
 ALU通过接收控制单元(Control Unit)发出的指令,并根据操作码(Opcode)和操作数进行相应的计算,最后将结果返回给寄存器或存储器。这使得计算机能够执行各种复杂的计算任务。
一个典型的 ALU 通常由以下几个部分组成:
-  操作数寄存器 (Operand Registers):存储待处理的数据操作数。ALU 需要从寄存器或内存中读取这些操作数。 
-  运算控制单元 (Control Unit):决定 ALU 执行的操作类型,如加法、减法、逻辑与、逻辑或等。它接收来自 CPU 控制单元的操作码,并生成相应的控制信号来驱动 ALU 执行特定的运算。 
-  算术单元 (Arithmetic Unit):执行各种算术操作,如加法、减法、乘法、除法等。它通常包括加法器 (Adder)、减法器 (Subtractor) 等电路。 
-  逻辑单元 (Logic Unit):执行各种逻辑操作,如与 (AND)、或 (OR)、非 (NOT)、异或 (XOR) 等。 
-  移位单元 (Shifter Unit):执行位移操作,如左移 (Left Shift)、右移 (Right Shift)、循环移位 (Rotate) 等。 
-  状态寄存器 (Status Register) 或 标志寄存器 (Flag Register):存储运算结果的状态信息,如进位 (Carry)、溢出 (Overflow)、零 (Zero)、负数 (Negative) 等标志位。 
-  多路复用器 (Multiplexer, MUX):选择输入数据和运算结果的输出路径,使得 ALU 可以处理不同类型的操作。 
ALU 的设计和复杂度可能因计算机体系结构和应用需求的不同而有所不同,但上述这些部分通常是一个典型 ALU 的基本组成部分。
























