Some instructions, such as branches, jumps, and stores, do not write to a register. For the instructions that do write to a register, the destination register can be one of the following.
- The register specified by the rd field (R-type instructions)
- The register specified by the rt field (I-type instructions)
- $ra (jal instruction)
The MIPS single-cycle implementation diagram does not include signal handling for $ra.
The value to be written to the register can come from the following places.
- The ALU (arithmetic and logical instructions)
- Memory (load instructions)
- The incremented PC (jal and jalr instructions)
The MIPS single-cycle implementation diagram does not include signal handling for the incremented PC.