diff options
Diffstat (limited to 'eater_cpu/eater_decoder.sv')
| -rw-r--r-- | eater_cpu/eater_decoder.sv | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/eater_cpu/eater_decoder.sv b/eater_cpu/eater_decoder.sv index fea00e0..20e3e0b 100644 --- a/eater_cpu/eater_decoder.sv +++ b/eater_cpu/eater_decoder.sv @@ -30,6 +30,7 @@ function CpuState insdep_state; ADD: insdep_state = ADD_INS_to_MAR; SUB: insdep_state = SUB_INS_to_MAR; STA: insdep_state = STA_INS_to_MAR; + LDI: insdep_state = LDI_INS_to_A; OUT: insdep_state = OUT_A_to_OUT; HALT_op: insdep_state = HALT_st; @@ -65,6 +66,8 @@ always @(posedge clk_i) begin STA_INS_to_MAR: next_state = STA_A_to_MEM; STA_A_to_MEM: next_state = PC_to_MAR; + LDI_INS_to_A: next_state = PC_to_MAR; + OUT_A_to_OUT: next_state = PC_to_MAR; HALT_st: next_state = HALT_st; @@ -153,6 +156,11 @@ always_comb begin internal_flags.A_out = 1; end + LDI_INS_to_A: begin + internal_flags.INS_out = 1; + internal_flags.A_in = 1; + end + OUT_A_to_OUT: begin internal_flags.A_out = 1; internal_flags.OUT_in = 1; |
