浏览代码

fpga/picorv32: fix decoding of sw/sw.u

Fix a typo in the instruction decoding of the sw/sw.u instructions,
with obviously catastrophic consequences.
H. Peter Anvin 2 月之前
父节点
当前提交
cd1183b125
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      fpga/picorv32.v

+ 1 - 1
fpga/picorv32.v

@@ -1158,7 +1158,7 @@ module picorv32 #(
 
 			instr_sb    <= is_sb_sh_sw && mem_rdata_q[14:12] == 3'b000;
 			instr_sh    <= is_sb_sh_sw && mem_rdata_q[14:12] == 3'b001;
-			instr_sw    <= is_sb_sh_sw && mem_rdata_q[14:12] == 2'b01; // Includes sw.u
+			instr_sw    <= is_sb_sh_sw && mem_rdata_q[14:13] == 2'b01; // Includes sw.u
 			instr_addi  <= is_alu_reg_imm && mem_rdata_q[14:12] == 3'b000;
 			instr_slti  <= is_alu_reg_imm && mem_rdata_q[14:12] == 3'b010;
 			instr_sltiu <= is_alu_reg_imm && mem_rdata_q[14:12] == 3'b011;