7410 based ALU


Q = A XOR B: T=1, S=1, X=1, Y=1.
The previous page already told you, why.

Q = 1: S=0, it's simple.

Q = 0: X=0, Y=0, S=1.


With T=0 and S=1, things will look like this:

Q = A     : T=0, S=1, X=1, Y=0
Q = B     : T=0, S=1, X=0, Y=1
Q = A | B : T=0, S=1, X=1, Y=1
Q = 0     : T=0, S=1, X=0, Y=0

Q = A & /B: T=1, S=1, X=1, Y=0
Our half adder cell would behave like this:

Since we would have to add some circuitry to invert B
for being able to use the adder as a subtractor,
this would do for implementing Q = A & B.


In a similar way: T=1, S=1, X=0, Y=1
would give us Q = /A & B.


Now to build a one Bit ALU slice:

The blue marked box contains our modified half adder.

Left side:
/HIB=0 sets B' to 1, we need this for decrementing A.
INVB=1 sets B' to /B, needed for Q=A-B.
Else, B'=B.

Right side:
The second half adder.
CEN=0 disables the carry input of said half adder,
when the ALU isn't arithmetic mode.


Shifting left or right will take some additional circuitry,
and I'm not sure how useful this design really could be
when building your own CPU.

But I wanted to share this idea...
and now we are ready to dig into more complicated things.


[HOME] [UP]/ [BACK] [1] [2] [3] [4] [5] [6] [7] [8] [NEXT]

(c) Dieter Mueller 2012