一.题目:设计一个4功能简单ALU :
数据输入信号有2路4bit无符号数输入A=A3—A0 ,B=B3—B0
控制输入信号S1S0决定ALU功能。
S1 S0 功 能
0 0 Z=A+B
0 1 Z=A-B
1 0 Z=A∧B
1 1 Z=A∨B 电路输出为Z(4bit)。
二.电路图原理:
1.图中共用一个74283(超前进位全加器),4个异或门,4个与门,4个或门,4个4位多路选择器。
2.在B输入进入74283之前,将它与M端进行异或运算,M端连用进位端 C和S0端,根据异或门真值表可知,当M置0时,所有的1输入将被置0,0输入将被置1,此时,传入超前进位全加器的实际上适合A做减运算,这时则可以通过控制M端使74283作加法或者减法运算。
3. 在右边,用4个与门和4个或门做按位与和按位或运算。
4.将74283的输出分别传入4个多路选择器的D3端,同时传入D2端,与输出分别接在D1,或输出分别接在D0上面
5.将每个多路选择器的S1,S0端分别用一根线连起来,进行统一控制。
6.将S0与M端相连。
7.此时:
当S1S0=00时,每个多路选择器的D3端作为输出,为加法。
当s1S0=01时,M=s0=1,74283做减法输出
当S1S0=10时,按位与输出,
当S1S0=11时,按位或输出。
三.逻辑电路图:
检验结果,
通过MAXPLUS检测,其结果见附页:
首先预设:A4A3A2A1=1010,B4B3B2B1=0101,当S1S0=00时,做加法运算,但是因为无法进位,所以统一输出为1,同样在S1S0=01时,做减法,因为无法借位,所以输出统一为1,当S1S0=10时,做与运算,可见输出为0000,正确,S1S0=11时做或运算,统一为1111,由于进行了两组相同的运算在400ns的时候,所以在第一次和第二次之间产生了冒险。