diff options
author | Clifford Wolf <clifford@clifford.at> | 2015-07-01 21:20:31 +0200 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2015-07-01 21:20:31 +0200 |
commit | f6fe27ecbf6c759929cddef22b73625bc155d9e8 (patch) | |
tree | 79ed9b61bcf2fb17b8d583bba0cbfaea4750914f | |
parent | c22ea8fe0aa15dbe2156b00f62f510d448a5a849 (diff) | |
download | picorv32-f6fe27ecbf6c759929cddef22b73625bc155d9e8.tar.gz picorv32-f6fe27ecbf6c759929cddef22b73625bc155d9e8.zip |
After some profiling: one-hot FSM encoding
-rw-r--r-- | picorv32.v | 19 |
1 files changed, 10 insertions, 9 deletions
@@ -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; |