• Signals to toggle multiplexers across the datapath to perform different operations.
  • Generated either using logic synthesis or ROM-based control.

ROM based Control

  • We feed in certain bits of the instruction and the controller generates the appropriate control signals for each mux.

  • We feed in Inst[30], Inst[14:12], Inst[6:2]

  • Inst[6:2] is part of the opcode field.

  • Inst[14:12] - funct3

  • Inst[30] - one of the bits of funct7, useful in distinguishing between certain instructions of the same type.

  • Simple and easy to implement.

  • More space.

  • Potentially slower.

Combinational Logic Gates

  • Exactly what it sounds like.

  • Instead of storing controls in ROM, generate them using instruction’s bits.

  • Faster.

  • More cumbersome.