| Multi-cycle datapath | |||||||||||||
| MUX example 1: | |||||||||||||
| One memory is used for instructions and data, so we need a MUX to select between: | |||||||||||||
| PC (instruction) | |||||||||||||
| ALUout (data) | |||||||||||||
| for address to access in memory | |||||||||||||
| Where else? (Hint: Consider ALU) | |||||||||||||
| MUX example 2: | |||||||||||||
| One ALU is used to perform all arithmetic and logic operations, so we need a MUX | |||||||||||||
| to select first operand between | |||||||||||||
| PC | |||||||||||||
| Data register A | |||||||||||||
| Also, for second operand: | |||||||||||||
| Data register B | |||||||||||||
| Sign-extended immediate | |||||||||||||
| Sign-extended/shifted immediate (offset for branch) | |||||||||||||
| Constant 4 (incrementing PC) | |||||||||||||