mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Removed old code from interlockfsm.
This commit is contained in:
parent
0f077012c3
commit
c3bd396bdb
@ -96,32 +96,9 @@ module interlockfsm(
|
|||||||
endcase
|
endcase
|
||||||
end // always_comb
|
end // always_comb
|
||||||
|
|
||||||
// *** change test to not propagate xs so that we can return to excluded code
|
assign InterlockStall = (InterlockCurrState == STATE_T0_READY & (DTLBMissOrDAFaultM | ITLBMissOrDAFaultF) & ~TrapM) |
|
||||||
// might have changed name to WALLY-MMU-SV39?
|
(InterlockCurrState == STATE_T3_DTLB_MISS) | (InterlockCurrState == STATE_T4_ITLB_MISS) |
|
||||||
|
(InterlockCurrState == STATE_T5_ITLB_MISS) | (InterlockCurrState == STATE_T7_DITLB_MISS);
|
||||||
// signal to CPU it needs to wait on HPTW.
|
|
||||||
/* -----\/----- EXCLUDED -----\/-----
|
|
||||||
// this code has a problem with imperas64mmu as it reads in an invalid uninitalized instruction. InterlockStall becomes x and it propagates
|
|
||||||
// everywhere. The case statement below implements the same logic but any x on the inputs will resolve to 0.
|
|
||||||
// Note this will cause a problem for post synthesis gate simulation.
|
|
||||||
assign InterlockStall = (InterlockCurrState == STATE_T0_READY & (DTLBMissOrDAFaultM | ITLBMissOrDAFaultF)) |
|
|
||||||
(InterlockCurrState == STATE_T3_DTLB_MISS) | (InterlockCurrState == STATE_T4_ITLB_MISS) |
|
|
||||||
(InterlockCurrState == STATE_T5_ITLB_MISS) | (InterlockCurrState == STATE_T7_DITLB_MISS);
|
|
||||||
|
|
||||||
-----/\----- EXCLUDED -----/\----- */
|
|
||||||
|
|
||||||
always_comb begin
|
|
||||||
InterlockStall = 1'b0;
|
|
||||||
case(InterlockCurrState)
|
|
||||||
STATE_T0_READY: if((DTLBMissOrDAFaultM | ITLBMissOrDAFaultF) & ~TrapM) InterlockStall = 1'b1;
|
|
||||||
STATE_T3_DTLB_MISS: InterlockStall = 1'b1;
|
|
||||||
STATE_T4_ITLB_MISS: InterlockStall = 1'b1;
|
|
||||||
STATE_T5_ITLB_MISS: InterlockStall = 1'b1;
|
|
||||||
STATE_T7_DITLB_MISS: InterlockStall = 1'b1;
|
|
||||||
default: InterlockStall = 1'b0;
|
|
||||||
endcase
|
|
||||||
end
|
|
||||||
|
|
||||||
assign SelReplayMemE = (InterlockCurrState == STATE_T1_REPLAY & DCacheStallM) |
|
assign SelReplayMemE = (InterlockCurrState == STATE_T1_REPLAY & DCacheStallM) |
|
||||||
(InterlockCurrState == STATE_T3_DTLB_MISS & DTLBWriteM) |
|
(InterlockCurrState == STATE_T3_DTLB_MISS & DTLBWriteM) |
|
||||||
(InterlockCurrState == STATE_T5_ITLB_MISS & ITLBWriteF);
|
(InterlockCurrState == STATE_T5_ITLB_MISS & ITLBWriteF);
|
||||||
|
Loading…
Reference in New Issue
Block a user