ALU Design: 8-bit Arithmetic Unit
In the last post I introduced the design for the 1-bit Arithmetic Unit. This post covers connecting eight of these units together to make an 8-bit Arithmetic Unit along with result gating and increment functionality.
So, diving straight in, here is what eight of the 1-bit Arithmetic Units look like all together on the usual 55 x 40 hole pad board (excluding wire lines):
Next up is the connections to other parts of the computer. There is the two 8-bit inputs B and C, the 8-bit data bus, power connections and finally the control signals to select whether the unit is adding or incrementing. This is the same layout that the Logic Unit uses so that ribbon cable can be passed through all the sockets (or I can use another pad board as a backbone for connecting several cards together). The diagram of the connectors look like this:
- B/C Connector (B + C ALU Input)
- B0-B7 ... 8-bit B ALU Input
- C0-C7 ... 8-bit C ALU Input
- D-Bus (Data Bus + Control Lines)
- D0-D7 ... 8-bit Data Bus
- F0-F2 ... ALU Function Code (ALU Control Card [to be covered in a later post])
- SN ... Sign Condition Register (ALU Control Card [to be covered in a later post])
- CY ... Carry Condition Register (as above)
- EZ ... Zero Condition Register (as above)
- NZ ... Non-Zero Condition Register (as above)
- CL ... Condition Register Load (as above)
- Ctrl-Z (Control Line Bus)
- ADD ... ALU Add Output Enable
- INC ... ALU Increment Output Enable
- AND ... ALU AND Output Enable
- ORR ... ALU OR Output Enable
- XOR ... ALU XOR Output Enable
- NOT ... ALU NOT Output Enable
- SHL ... ALU Shift Left Output Enable
- ICY ... ALU Internal Carry Result (produced by this card)
The last signal there (ICY) is produced by the last 1-bit Arithmetic Unit's Carry Out signal and is passed down the Control Bus back to the Control Card where it can be used to set the Carry Condition Register. This differs to the CY signal on the Data Bus which is the output from the Carry Condition Register itself.
So, finally, wiring everything together we get the following jumble:
Google Docs as a PDF (so you can zoom in and out as you wish). Hopefully the diagram reads OK but if not let me know in the comments.
In the next post I'll cover the final parts of the ALU: the zero detect circuit, the function decoder and the condition registers ... the three of these combining to form the final ALU Card: the Control Unit.