From 48d11484cc6e0b26627af6259e238fe29421962c Mon Sep 17 00:00:00 2001 From: uvok Date: Thu, 22 Jan 2026 19:37:00 +0100 Subject: Implement STA --- eater_cpu/eater_decoder.sv | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'eater_cpu/eater_decoder.sv') diff --git a/eater_cpu/eater_decoder.sv b/eater_cpu/eater_decoder.sv index ad0fd52..fea00e0 100644 --- a/eater_cpu/eater_decoder.sv +++ b/eater_cpu/eater_decoder.sv @@ -29,6 +29,7 @@ function CpuState insdep_state; LDA: insdep_state = LDA_INS_to_MAR; ADD: insdep_state = ADD_INS_to_MAR; SUB: insdep_state = SUB_INS_to_MAR; + STA: insdep_state = STA_INS_to_MAR; OUT: insdep_state = OUT_A_to_OUT; HALT_op: insdep_state = HALT_st; @@ -61,6 +62,9 @@ always @(posedge clk_i) begin SUB_MEM_to_B: next_state = SUB_ALU_to_A; SUB_ALU_to_A: next_state = PC_to_MAR; + STA_INS_to_MAR: next_state = STA_A_to_MEM; + STA_A_to_MEM: next_state = PC_to_MAR; + OUT_A_to_OUT: next_state = PC_to_MAR; HALT_st: next_state = HALT_st; @@ -139,6 +143,16 @@ always_comb begin internal_flags.A_in = 1; end + STA_INS_to_MAR: begin + internal_flags.INS_out = 1; + internal_flags.MAR_in = 1; + end + + STA_A_to_MEM: begin + internal_flags.RAM_in = 1; + internal_flags.A_out = 1; + end + OUT_A_to_OUT: begin internal_flags.A_out = 1; internal_flags.OUT_in = 1; -- cgit v1.2.3