diff options
| author | uvok | 2026-01-19 19:43:58 +0100 |
|---|---|---|
| committer | uvok | 2026-01-19 19:43:58 +0100 |
| commit | 1f0fc1edcea04e5c1f04803f0bdda337c2245f09 (patch) | |
| tree | 141020efd019d5524b1714c940d4a473826c01b0 /eater_cpu/eater_decoder.sv | |
| parent | f127505b779dcb134fa48bcf2bf59810b60348c5 (diff) | |
eater: Combine counting in prev. state
save 1 cycle, as explained in video.
also, only print lo->hi clk states to term.
Diffstat (limited to 'eater_cpu/eater_decoder.sv')
| -rw-r--r-- | eater_cpu/eater_decoder.sv | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/eater_cpu/eater_decoder.sv b/eater_cpu/eater_decoder.sv index d2ea9cc..78d4e6c 100644 --- a/eater_cpu/eater_decoder.sv +++ b/eater_cpu/eater_decoder.sv @@ -41,11 +41,9 @@ always @(posedge clk_i) begin INIT: next_state = PC_to_MAR; - PC_to_MAR: next_state = MEM_to_INS; + PC_to_MAR: next_state = MEM_to_INS_and_PC_inc; - MEM_to_INS: next_state = PC_inc; - - PC_inc: next_state = insdep_state(); + MEM_to_INS_and_PC_inc: next_state = insdep_state(); LDA_INS_to_MAR: next_state = LDA_MEM_to_A; LDA_MEM_to_A: next_state = PC_to_MAR; @@ -81,11 +79,9 @@ always_comb begin internal_flags.PC_out = 1; internal_flags.MAR_in = 1; end - MEM_to_INS: begin + MEM_to_INS_and_PC_inc: begin internal_flags.RAM_out = 1; internal_flags.INS_in = 1; - end - PC_inc: begin internal_flags.PC_count = 1; end |
