aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2015-07-01 21:20:31 +0200
committerClifford Wolf <clifford@clifford.at>2015-07-01 21:20:31 +0200
commitf6fe27ecbf6c759929cddef22b73625bc155d9e8 (patch)
tree79ed9b61bcf2fb17b8d583bba0cbfaea4750914f
parentc22ea8fe0aa15dbe2156b00f62f510d448a5a849 (diff)
downloadpicorv32-f6fe27ecbf6c759929cddef22b73625bc155d9e8.tar.gz
picorv32-f6fe27ecbf6c759929cddef22b73625bc155d9e8.zip
After some profiling: one-hot FSM encoding
-rw-r--r--picorv32.v19
1 files changed, 10 insertions, 9 deletions
diff --git a/picorv32.v b/picorv32.v
index bda9da3..6ebfc5b 100644
--- a/picorv32.v
+++ b/picorv32.v
@@ -487,15 +487,16 @@ module picorv32 #(
// Main State Machine
- localparam cpu_state_trap = 0;
- localparam cpu_state_fetch = 1;
- localparam cpu_state_ld_rs1 = 2;
- localparam cpu_state_ld_rs2 = 3;
- localparam cpu_state_exec = 4;
- localparam cpu_state_shift = 5;
- localparam cpu_state_stmem = 6;
- localparam cpu_state_ldmem = 7;
- reg [2:0] cpu_state;
+ localparam cpu_state_trap = 8'b10000000;
+ localparam cpu_state_fetch = 8'b01000000;
+ localparam cpu_state_ld_rs1 = 8'b00100000;
+ localparam cpu_state_ld_rs2 = 8'b00010000;
+ localparam cpu_state_exec = 8'b00001000;
+ localparam cpu_state_shift = 8'b00000100;
+ localparam cpu_state_stmem = 8'b00000010;
+ localparam cpu_state_ldmem = 8'b00000001;
+
+ reg [7:0] cpu_state;
reg [1:0] irq_state;
reg set_mem_do_rinst;