实现一个4位加减法与或运算选择器(作业)

一.题目:设计一个4功能简单ALU           

     数据输入信号有24bit无符号数输入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             
电路输出为Z4bit)。

二.电路图原理:

       1.图中共用一个74283(超前进位全加器)4个异或门,4个与门,4个或门,44位多路选择器。

       2.在B输入进入74283之前,将它与M端进行异或运算,M端连用进位端   CS0端,根据异或门真值表可知,当M0时,所有的1输入将被置00输入将被置1,此时,传入超前进位全加器的实际上适合A做减运算,这时则可以通过控制M端使74283作加法或者减法运算。

       3. 在右边,用4个与门和4个或门做按位与和按位或运算。

       4.74283的输出分别传入4个多路选择器的D3端,同时传入D2端,与输出分别接在D1,或输出分别接在D0上面

       5.将每个多路选择器的S1,S0端分别用一根线连起来,进行统一控制。

       6.S0M端相连。

       7.此时:

              S1S0=00时,每个多路选择器的D3端作为输出,为加法。

              s1S0=01时,M=s0=1,74283做减法输出

              S1S0=10时,按位与输出,

              S1S0=11时,按位或输出。

三.逻辑电路图:

实现一个4位加减法与或运算选择器(作业) - keysoul - keysoul

检验结果,

通过MAXPLUS检测,其结果见附页

 实现一个4位加减法与或运算选择器(作业) - keysoul - keysoul

 

 

首先预设:A4A3A2A1=1010B4B3B2B1=0101,S1S0=00时,做加法运算,但是因为无法进位,所以统一输出为1,同样在S1S0=01时,做减法,因为无法借位,所以输出统一为1,当S1S0=10时,做与运算,可见输出为0000,正确,S1S0=11时做或运算,统一为1111,由于进行了两组相同的运算在400ns的时候,所以在第一次和第二次之间产生了冒险。

posted @ 2013-09-09 14:39  SoulReaper  阅读(2411)  评论(0编辑  收藏  举报