Die einzelnen Baugruppen der ALU liefern immer alle Ergebnisse ab, auch wenn diese nicht angefordert wurden. Damit am Ausgang immer nur das Ergebnis anliegt, was auch von den Steuerbefehlen angefordert wurde, habe ich diese Multiplexerplatine gebaut. Diese ist z.Zt. noch aus 4 IC vom Typ 74HC151 gebaut. Die Platine wird in einer späteren Version auch noch durch eine mit Transistoren ersetzt.
Als Input liegen die beiden 4-Bit Zahlen (A und B) und der 3-Bit Steuerbefehl an der ALU. Die Multiplexerplatine „sortiert“ die nicht angeforderten Ergebnisse aus und leitet nur das Ergebnis der Rechenoperation weiter, die mit dem Steuerbits angefordert wurde.
Operation | Steuerbits |
---|---|
A *) | 0-0-0 |
A + B | 0-0-1 |
A AND B | 0-1-0 |
NOT A | 0-1-1 |
Rotiere links | 1-0-0 |
Shift links | 1-0-1 |
Shift rechts | 1-1-0 |
A XOR B | 1-1-1 |
*) Es wird nur A zurückgegeben. Ich habe diese Funktion mit aufgenommen, falls die ALU später noch ein weiteren Befehl benötigt.
Die weiteren Bits des Volladdierers (Carry Out) und die des Comparators (größer-gleich-kleiner) werden nicht durch den Multiplexer geschickt, sondern liegen als Statusbits immer am Ausgang der ALU an.