Control Signals and their Uses
PCWriteCond – 
The condition for which the PC will be written to, ANDed with zero from the ALU, used for Branch equals statments.

PCWrite – 
Another condition for which the PC will be written to, ORed with PCWriteCond, so that if either one is true, the PC is written to.

IorD – 
Used to determine if we're getting the memory address of the function (from the PC), or if we're getting the address from our temporary register C

MemRead –
Used to tell if the memory is being read from

MemWrite – 
Used to tell if the memory is being written to

MemToReg – 
Used to determine if either the Memory Register Data or temporary register C is written to the write register

IRWrite – 
Allows the Instruction Register to be written to

IorB – 
Tells the program to pass either bits 11-8 (in the case of a B-type instruction)  or bits 11-4 (in the case of an I-type instruction) as the immediate for the i=nstruction

PCSource – 
Determines what value is to be written to the PC, either temporary register C, the Jump Address determined (J-type instructions), or directly the result from the ALU

ALUOp – 
Tells the ALU what oeration to preform (add, subtract, depends, or don't care)

 ALUSrcA – 
Determines the first source for the ALU, either temporary register A or the PC

ALUSrcB – 
Determines the second source for the ALU, either temporary register B, 2, or the result from IorB shift left and sign extended

RegWrite – 
Used to tell if a register is to be written to

RegDst – 
Selects the register to be written to, either the register $ra or the register referred to by bits 3-0 in the instrustion register