Solve last issue to allow doExeMem and doFinishMem.

This commit is contained in:
Jonathan Woodruff
2024-01-09 17:12:39 +00:00
parent 2f6a0980d9
commit 2c3c1da5c3
2 changed files with 5 additions and 5 deletions

View File

@@ -98,7 +98,7 @@ BSC_COMPILATION_FLAGS += \
-suppress-warnings G0020 -steps-max-intervals 10000000 \
-steps-warn-interval 1000000 \
-promote-warnings T0054 \
+RTS -K128M -RTS -show-range-conflict
+RTS -K128M -RTS -show-range-conflict -show-schedule
# -D NO_SPEC_TRAINING -D NO_SPEC_REDIRECT -D NO_SPEC_STRAIGHT_PATH -D SPEC_RSB_FIXUP -D NO_SPEC_RSB_PUSH -D NO_SPEC_STL -D RVFI

View File

@@ -181,8 +181,8 @@ module mkDTlb#(
RWire#(void) wrongSpec_doPRs_conflict <- mkRWire;
RWire#(void) wrongSpec_procReq_conflict <- mkRWire;
Integer req_port = 1;
Integer resp_port = 0;
Integer req_port = 0;
Integer resp_port = 1;
let pendValid_noMiss = getVEhrPort(pendValid, 0);
let pendValid_wrongSpec = getVEhrPort(pendValid, 0);
@@ -208,7 +208,7 @@ module mkDTlb#(
let pendSpecBits_correctSpec = getVEhrPort(pendSpecBits, 2);
// free list of pend entries, to cut off path from procResp to procReq
Fifo#(DTlbReqNum, DTlbReqIdx) freeQ <- mkCFFifo;
Fifo#(TAdd#(DTlbReqNum,1), DTlbReqIdx) freeQ <- mkCFFifo;
Reg#(Bool) freeQInited <- mkReg(False);
Reg#(DTlbReqIdx) freeQInitIdx <- mkReg(0);
@@ -628,7 +628,7 @@ module mkDTlb#(
// poison entries
for(Integer i = 0 ; i < valueOf(DTlbReqNum) ; i = i+1) begin
if(kill_all || pendSpecBits_wrongSpec[i][x] == 1'b1) begin
pendPoisoned_Resp[i] <= True;
pendPoisoned_Req[i] <= True;
end
end
// make conflicts with procReq, doPRs, procResp