summaryrefslogtreecommitdiff
path: root/eater_cpu/eater_decoder.sv
diff options
context:
space:
mode:
authoruvok2026-01-19 19:43:58 +0100
committeruvok2026-01-19 19:43:58 +0100
commit1f0fc1edcea04e5c1f04803f0bdda337c2245f09 (patch)
tree141020efd019d5524b1714c940d4a473826c01b0 /eater_cpu/eater_decoder.sv
parentf127505b779dcb134fa48bcf2bf59810b60348c5 (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.sv10
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