Design the control unit of the TinyMicro.
module control_unit (Instruction, Instruction_Address, EnA, EnB, Op,
ReadWrite, MemConst, MemALU, Zero, Positive, Const,
clk, rst);
input [7:0] Instruction;
output [5:0] Instruction_Address;
output [1:0] Op;
output [7:0] Const;
output EnA, EnB, ReadWrite, MemConst, MemALU;
input Zero, Positive;
input clk, rst;Instruction is the instruction coming from the
instruction memory.
Zero is the signal that is asserted when the
zero condition for a jump is true.
Positive is the signal that is asserted when the
positive condition for a jump is true.
clk is the clock signal of the circuit.
rst is the reset signal of the circuit.
Instruction_Address is the address sent to the
instruction memory (program counter).
Op indicates the type of operation for ALU
instructions.
Const is the constant encoded in instruction
register (sign-extended up to 8 bits).
EnA and EnB are the signals that enable
writing into registers RA ad RB, respectively.
ReadWrite is the signal the indicates whether to
read (0) from or write (1) into data memory.
MemConst is the signal that controls the datapath
multiplexer selecting between data memory (0) and constant from the
instruction register (1).
MemALU is the signal that controls the datapath
multiplexer selecting between memory/constant (0) and the ALU output
(1).