计算机组成原理-用logisim设计ALU(8位算术/逻辑运算)

时间:2024-04-06 21:55:36

用logisim设计ALU

这个是大多学生会有的一个作业,只是不同学校形式不同,有的是软件实现,有的则是硬件电路箱实现

设计要求

(1)设计两个控制端S1和S0,完成相应的算术逻辑运算。

S1 S0 逻辑功能
0 0 AND
0 1 OR
1 0 ADD
1 1 SUB

(2)输入:两个8位二进制数。输出:C、O以及Z(判断是否有进位、溢出、结果是否为0)。

实现步骤:

(一)设计思路:
(1) 看到这个题,题目给了各种S0S1的取值对应各种输出情况,我们很容易想到要用到选择器
(2) 首先与或以S0一个量决定,于是我打算封装一个可以通过一个输入接口控制选择做8位与、或运算的电路部件,如图所示:

计算机组成原理-用logisim设计ALU(8位算术/逻辑运算)
计算机组成原理-用logisim设计ALU(8位算术/逻辑运算)

具体封装部件时为了后续方便使用,我将输入A八位与B八位分开上下放置
(3) 加减方面直接可以设计一个有进位、溢出输出的可控八位加减电路,同时可以通过一个变量S0同时控制与或里的筛选变量和加减里的变量sub
加减电路如图:
计算机组成原理-用logisim设计ALU(8位算术/逻辑运算)

(4) 最后由于要通过S2对与或、加减做进一步筛选,我选择设计一个8位选择器,并进行封装(为了图里面方便使用,毕竟线比较多,我设计成了方形,两块输入分别位于正方形两条边)
如图:
计算机组成原理-用logisim设计ALU(8位算术/逻辑运算)
计算机组成原理-用logisim设计ALU(8位算术/逻辑运算)

(5) 我们这个时候想到需要有一个是否结果为0的判断,可是这个加在主线路会显得不够整洁,所以我决定将其加在上面那个选择器里,使其多一个输出Z
如图:
计算机组成原理-用logisim设计ALU(8位算术/逻辑运算)

(6) 最后将几部分组合起来即可

(二)逻辑电路图展示:
计算机组成原理-用logisim设计ALU(8位算术/逻辑运算)

(三)测试:
让我们分别测试一下各种情况
A7到A0分别固定为:1111 1110
B7到B0分别固定为:0000 0001
S1S0:00,即“与”运算(正确结果应该为0000 0000)
计算机组成原理-用logisim设计ALU(8位算术/逻辑运算)

S1S0:01,即“或”运算(正确结果应该为0111 1111)
计算机组成原理-用logisim设计ALU(8位算术/逻辑运算)

S1S0:10,即“加”运算(正确结果应该为:1111 1111)
计算机组成原理-用logisim设计ALU(8位算术/逻辑运算)

S1S0:11即“减”运算(正确结果应该为1111 1101)

计算机组成原理-用logisim设计ALU(8位算术/逻辑运算)