mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Simplified MTVAL logic
This commit is contained in:
parent
14f9f41d2d
commit
072c464dc1
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user