From d4cad6096651774485723551336bce1d08402b6e Mon Sep 17 00:00:00 2001 From: Nick McKinney Date: Sun, 18 Dec 2016 16:22:03 -0600 Subject: add simple control unit --- control_unit.v | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 control_unit.v (limited to 'control_unit.v') diff --git a/control_unit.v b/control_unit.v new file mode 100644 index 0000000..00ebd4f --- /dev/null +++ b/control_unit.v @@ -0,0 +1,36 @@ +module control_unit ( + input clk, + + input fetch_ready, + + output fetch_en, + output decode_en, + output alu_en, + + output incr_pc, + + output [9:0] dbg_state +); + + reg [9:0] current_state; + + initial begin + current_state = 10'b1; + end + + assign fetch_en = current_state[0]; + assign decode_en = current_state[1]; + assign alu_en = current_state[2]; + + assign incr_pc = current_state[1]; + + always @(posedge clk) begin + case(current_state) + 10'b1: if(fetch_ready) current_state <= 10'b10; + 10'b10: current_state <= 10'b100; + 10'b100: current_state <= 10'b1; + endcase + end + + assign dbg_state = current_state; +endmodule -- cgit v1.2.3