Simplified MTVAL logic

This commit is contained in:
David Harris 2022-05-12 21:36:13 +00:00
parent 14f9f41d2d
commit 072c464dc1

View File

@ -150,6 +150,13 @@ module trap (
/////////////////////////////////////////// ///////////////////////////////////////////
always_comb always_comb
case (CauseM)
12, 1, 3: NextFaultMtvalM = PCM; // Instruction page/access faults, breakpoint
2: NextFaultMtvalM = {{(`XLEN-32){1'b0}}, InstrM}; // Illegal instruction fault
0, 4, 6, 13, 15, 5, 7: NextFaultMtvalM = IEUAdrM; // Instruction misaligned, Load/Store Misaligned/page/access faults
default: NextFaultMtvalM = 0; // Ecall, interrupts
endcase
/* always_comb
if (InstrPageFaultM) NextFaultMtvalM = PCM; if (InstrPageFaultM) NextFaultMtvalM = PCM;
else if (InstrAccessFaultM) NextFaultMtvalM = PCM; else if (InstrAccessFaultM) NextFaultMtvalM = PCM;
else if (IllegalInstrFaultM) NextFaultMtvalM = {{(`XLEN-32){1'b0}}, InstrM}; else if (IllegalInstrFaultM) NextFaultMtvalM = {{(`XLEN-32){1'b0}}, InstrM};
@ -162,5 +169,5 @@ module trap (
else if (StoreAmoPageFaultM) NextFaultMtvalM = IEUAdrM; else if (StoreAmoPageFaultM) NextFaultMtvalM = IEUAdrM;
else if (LoadAccessFaultM) NextFaultMtvalM = IEUAdrM; else if (LoadAccessFaultM) NextFaultMtvalM = IEUAdrM;
else if (StoreAmoAccessFaultM) NextFaultMtvalM = IEUAdrM; else if (StoreAmoAccessFaultM) NextFaultMtvalM = IEUAdrM;
else NextFaultMtvalM = 0; else NextFaultMtvalM = 0; */
endmodule endmodule