算术运算单元ALU的设计__实现几种基本功能
温柔似野鬼°
994次浏览
2021年01月30日 12:31
最佳经验
本文由作者推荐
-
算术运算单元
ALU
的设计
设计要求:
(
1
)设计
4
位
ALU
,可实现
8
种算术逻辑运算。
a.
进行两个四位二进制数的运算。
b.
算术运算:
A+B,A-B,A+1,A-1
c.
逻辑运算:
A and B,A or B,A not, A xor B < br>(
2
)
4
位输入
A3
—
A0
、B3---B0
用开关设置输入。
(
3
)
8
种算术逻辑运算通过
3
位功能选择开关选择某一种功能。
(
4)运算结果用两个数码管显示和
2
个发光管显示(有一个显示进借位、有
一个显示 溢出)
。
系统框图:
设计结构:
设计分为输入控制模块、输出选择模块、加减运算模块及逻辑运算模块等部分。
在输 入控制部分,利用锁存器,使
A
和
B
信号通过脉冲控制同时送入运算电路。< br>
在输出控制模块,选择需要输出的显示信号。加减运算电路实现加减运算功能。
逻辑运算电路实现逻辑运算功能。
输入控制
加减运算
加减输出显示
输出选择控制
逻辑电路
逻辑显示
(总电路图)
功能的实现原理:
该电路是是实现四种 算术运算和四种逻辑运算功能的算术运算单元电路。
主
要是由算术运算模块、
逻辑运算 模块、
输入控制模块和输出控制模块几部分组成。
通过时序输入控制实现信号
A,B< br>同时送入到运算电路中进行运算,
这样能解决非
时序信号先后输入进行运算时产生的错误 。
信号送入运算单元后,
逻辑运算和算
术运算是同时进行的,
只是在不同的模 块中进行的而已。
而四种算术运算则是通
过控制端来进行先后选择运算的。在输出时只显示一种 功能则是通过
5
片
74LS244
(三态门芯片)
和一些门电路通过 控制信号
f3,f2,f1
置不同的数进行控
制的选择输出的,
数码显示管显 示的算术运算的结果,
小灯泡则是用来显示逻辑
运算的结果。
f3f2f1
置 数
111
、
000
、
001
、
010
、< br>011
、
100
、
101
、
110
分别控制
的输出显示是
A+B,A-B,A
与
B,A
或
B,A
异或
B
,
非
A
,
A+1
,
A-1.运算结果是同时
被送出的,当
f3f2f1
被置某一个数时,对应的芯片
244
的使能端有效,那么相
应的功能就被出去显示。当
f3f2f1
被置< br>111
、
000
,
101
、
110
时第一片
244
始终
有效,
此时输出的是哪一种功能则取决于这几个数所控制的算术运 算电路在进行
的是哪一种功能了,它们都是经过一定的门器件进行控制的。输出除了显示这
8< br>中功能外,还显示了算术运算中的溢出与进借位显示。
器件清单:
74LS183
8
片
74LS244
5
片
74LS373 2
片
74LS161 1
片
74LS157 1
片
74LS04 74LS08 74LS32
74LS136 2
片
74LS11 2
片
74LS47 3
片
数码管
3
个
二极管
若干
电阻若干
导线若干
各部分功能:
(输入时序控制)
输入时序控制:
通过两片
74LS3 73
(锁存器)
、一片
74LS161
(计数器)和
相应的门器件来 实现使输入信号
A
、
B
能同时送入运算单元电路进行运算,
避免了一些不必要错误的发生。当第一个脉冲输入时,计数器的输出端输出的是
00
信号,该信 号通过门器件作用使第一片
373ENG
有效,使信号
A
送入锁存器里
面锁存不输出,当第二个脉冲到来时,
161
输出端输出
01
,此时使信号
B
送入
锁存器锁存不输出,当第三个脉冲到来时,两片
373
的的< br>~OC
有效,锁存在锁
存器里面的信号
A,B
同时被送入运算电路进行 运算,同时
161
被置零,若再来
一个脉冲时输出端又从
00
开始计 数控制
373
了。
这个的目的是使
计数器当输出端输出
10
时时输入端的信号重新置零开始计数控制锁存器。
00
、
01
、
10
这三种情况分别控制两片
373
的状态,分别代表锁存
A,
锁存
B
和同时输出
A,B.
脉冲信号由一个开关在总电路中控制 。
输出选择
输出选择:
该模块 是用门器件通过控制
f3f2f1
的置数来选择哪一端输出为
1
,
从 而控制哪一片
74LS244
有效,选择输出哪一种功能所对应的结果显示出来。
其中
and,or,xor,r
分别对应逻辑运算结果对应的
244
芯片的使能端 的有效性,而
account
对应算术运算,
EN
对应选择
A+1< br>,
A-1
功能,
E
对应选择
A+B,A-B
功能。< br>这些端口对应的都是高电平,
在外面加了一个非门后就能直接控制
244
的使能 端
了。该模块的真值表如下:
f3f2f1
account
E
EN
and
or
xor
r
111
1
0
0
0
0
0
0
000
1
1
0
0
0
0
0
001
0
0
0
1
0
0
0
010
0
0
0
0
1
0
0
011
0
0
0
0
0
1
0
100
0
0
0
0
0
0
1
101
1
0
1
0
0
0
0
110
1
1
1
0
0
0
0
当输出为
1< br>时对应的端口处于有效状态。
f3f2f1
置数
111
、
00 0
、
001
、
010
、
011
、
100< br>、
101
、
110
分别对应的功能是
A+B,A-B,A与
B,A
或
B,A
异或
B
,非
A
,< br>A+1
,
A-1
(
运算部分)
(选择输出部分)
算术运算
算术运算:
该部分由两个小部分组成,一部分是做加减运算的,另 一部分是用作选择输
出的。
因为只有一个数码管,
要用该数码管既显示加的结果也显示 减的结果,
就选用了一个
子电路来对其进行操作。
E2
为
0
时输出是加的结果,为
1
时输出减的结果。运算电路中运
用了
8
个< br>72LS183,1
个
74LS157
和异或门组成了这个算术运算电路
(可以实现被减数小于减
数的运算)
。
157
是一个数据选择器,
-G
始终为低电平选择器才处在工作状态,选择器的上
部分与信号
B
连接,< br>下部分置
1
,当
-A/B
端置
1
时做自加减运算,< br>置
0
时做加减运算。
具体
是加还是减则取决于
E
端的 置数,这些控制端都是用一定门器件通过
f3f2f1
来控制的。
仿真电路图:
逻辑运算模块:
运算功能:
①加法功能
电
路
图
仿
真
1110+1101=1011
产生进位,进位端有显示
硬
件
搭
建
电
路
分
析
2+3=5
,进位端和益出端均无显示