forked from Github_Repos/cvw
removed mmustall and finished port annotations on ptw and lsuArb.
This commit is contained in:
parent
043f1e10c5
commit
9f16d08d0d
@ -53,13 +53,6 @@ module ahblite (
|
|||||||
input logic [1:0] MemSizeM,
|
input logic [1:0] MemSizeM,
|
||||||
//output logic DataStall,
|
//output logic DataStall,
|
||||||
// Signals from MMU
|
// Signals from MMU
|
||||||
/* -----\/----- EXCLUDED -----\/-----
|
|
||||||
input logic MMUStall,
|
|
||||||
input logic [`XLEN-1:0] MMUPAdr,
|
|
||||||
input logic MMUTranslate,
|
|
||||||
output logic [`XLEN-1:0] MMUReadPTE,
|
|
||||||
output logic MMUReady,
|
|
||||||
-----/\----- EXCLUDED -----/\----- */
|
|
||||||
// Signals from PMA checker
|
// Signals from PMA checker
|
||||||
input logic DSquashBusAccessM, ISquashBusAccessF,
|
input logic DSquashBusAccessM, ISquashBusAccessF,
|
||||||
// Signals to PMA checker (metadata of proposed access)
|
// Signals to PMA checker (metadata of proposed access)
|
||||||
@ -158,8 +151,6 @@ module ahblite (
|
|||||||
-----/\----- EXCLUDED -----/\----- */
|
-----/\----- EXCLUDED -----/\----- */
|
||||||
|
|
||||||
|
|
||||||
//assign #1 InstrStall = ((NextBusState == INSTRREAD) || (NextBusState == INSTRREADC) ||
|
|
||||||
// MMUStall);
|
|
||||||
|
|
||||||
// bus outputs
|
// bus outputs
|
||||||
assign #1 GrantData = (ProposedNextBusState == MEMREAD) || (ProposedNextBusState == MEMWRITE) ||
|
assign #1 GrantData = (ProposedNextBusState == MEMREAD) || (ProposedNextBusState == MEMWRITE) ||
|
||||||
|
@ -64,11 +64,6 @@ module pagetablewalker
|
|||||||
output logic HPTWRead,
|
output logic HPTWRead,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Stall signal
|
|
||||||
output logic MMUStall,
|
|
||||||
|
|
||||||
// Faults
|
// Faults
|
||||||
output logic WalkerInstrPageFaultF,
|
output logic WalkerInstrPageFaultF,
|
||||||
output logic WalkerLoadPageFaultM,
|
output logic WalkerLoadPageFaultM,
|
||||||
@ -190,7 +185,6 @@ module pagetablewalker
|
|||||||
PRegEn = 1'b0;
|
PRegEn = 1'b0;
|
||||||
TranslationPAdr = '0;
|
TranslationPAdr = '0;
|
||||||
HPTWRead = 1'b0;
|
HPTWRead = 1'b0;
|
||||||
MMUStall = 1'b1;
|
|
||||||
PageTableEntry = '0;
|
PageTableEntry = '0;
|
||||||
PageType = '0;
|
PageType = '0;
|
||||||
DTLBWriteM = '0;
|
DTLBWriteM = '0;
|
||||||
@ -209,7 +203,6 @@ module pagetablewalker
|
|||||||
end else begin
|
end else begin
|
||||||
NextWalkerState = IDLE;
|
NextWalkerState = IDLE;
|
||||||
TranslationPAdr = '0;
|
TranslationPAdr = '0;
|
||||||
MMUStall = 1'b0;
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -271,14 +264,12 @@ module pagetablewalker
|
|||||||
|
|
||||||
LEAF: begin
|
LEAF: begin
|
||||||
NextWalkerState = IDLE;
|
NextWalkerState = IDLE;
|
||||||
MMUStall = 1'b0;
|
|
||||||
end
|
end
|
||||||
FAULT: begin
|
FAULT: begin
|
||||||
NextWalkerState = IDLE;
|
NextWalkerState = IDLE;
|
||||||
WalkerInstrPageFaultF = ~DTLBMissMQ;
|
WalkerInstrPageFaultF = ~DTLBMissMQ;
|
||||||
WalkerLoadPageFaultM = DTLBMissMQ && ~MemStore;
|
WalkerLoadPageFaultM = DTLBMissMQ && ~MemStore;
|
||||||
WalkerStorePageFaultM = DTLBMissMQ && MemStore;
|
WalkerStorePageFaultM = DTLBMissMQ && MemStore;
|
||||||
MMUStall = 1'b0;
|
|
||||||
end
|
end
|
||||||
|
|
||||||
// Default case should never happen, but is included for linter.
|
// Default case should never happen, but is included for linter.
|
||||||
@ -293,8 +284,6 @@ module pagetablewalker
|
|||||||
assign VPN1 = TranslationVAdrQ[31:22];
|
assign VPN1 = TranslationVAdrQ[31:22];
|
||||||
assign VPN0 = TranslationVAdrQ[21:12];
|
assign VPN0 = TranslationVAdrQ[21:12];
|
||||||
|
|
||||||
//assign HPTWRead = (WalkerState == IDLE && MMUTranslate) ||
|
|
||||||
// WalkerState == LEVEL2 || WalkerState == LEVEL1;
|
|
||||||
|
|
||||||
|
|
||||||
// Capture page table entry from data cache
|
// Capture page table entry from data cache
|
||||||
@ -335,7 +324,6 @@ module pagetablewalker
|
|||||||
PRegEn = 1'b0;
|
PRegEn = 1'b0;
|
||||||
TranslationPAdr = '0;
|
TranslationPAdr = '0;
|
||||||
HPTWRead = 1'b0;
|
HPTWRead = 1'b0;
|
||||||
MMUStall = 1'b1;
|
|
||||||
PageTableEntry = '0;
|
PageTableEntry = '0;
|
||||||
PageType = '0;
|
PageType = '0;
|
||||||
DTLBWriteM = '0;
|
DTLBWriteM = '0;
|
||||||
@ -358,7 +346,6 @@ module pagetablewalker
|
|||||||
end else begin
|
end else begin
|
||||||
NextWalkerState = IDLE;
|
NextWalkerState = IDLE;
|
||||||
TranslationPAdr = '0;
|
TranslationPAdr = '0;
|
||||||
MMUStall = 1'b0;
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -499,7 +486,6 @@ module pagetablewalker
|
|||||||
|
|
||||||
LEAF: begin
|
LEAF: begin
|
||||||
NextWalkerState = IDLE;
|
NextWalkerState = IDLE;
|
||||||
MMUStall = 1'b0;
|
|
||||||
end
|
end
|
||||||
|
|
||||||
FAULT: begin
|
FAULT: begin
|
||||||
@ -507,7 +493,6 @@ module pagetablewalker
|
|||||||
WalkerInstrPageFaultF = ~DTLBMissMQ;
|
WalkerInstrPageFaultF = ~DTLBMissMQ;
|
||||||
WalkerLoadPageFaultM = DTLBMissMQ && ~MemStore;
|
WalkerLoadPageFaultM = DTLBMissMQ && ~MemStore;
|
||||||
WalkerStorePageFaultM = DTLBMissMQ && MemStore;
|
WalkerStorePageFaultM = DTLBMissMQ && MemStore;
|
||||||
MMUStall = 1'b0;
|
|
||||||
end
|
end
|
||||||
|
|
||||||
// Default case should never happen
|
// Default case should never happen
|
||||||
|
@ -129,7 +129,6 @@ module wallypipelinedhart
|
|||||||
logic ICacheStallF;
|
logic ICacheStallF;
|
||||||
logic DCacheStall;
|
logic DCacheStall;
|
||||||
logic [`XLEN-1:0] MMUPAdr, MMUReadPTE;
|
logic [`XLEN-1:0] MMUPAdr, MMUReadPTE;
|
||||||
logic MMUStall;
|
|
||||||
logic MMUTranslate, MMUReady;
|
logic MMUTranslate, MMUReady;
|
||||||
logic HPTWRead;
|
logic HPTWRead;
|
||||||
logic HPTWReadyfromLSU;
|
logic HPTWReadyfromLSU;
|
||||||
@ -199,19 +198,18 @@ module wallypipelinedhart
|
|||||||
.PageTableEntryF(PageTableEntryF), // add to lsu port
|
.PageTableEntryF(PageTableEntryF), // add to lsu port
|
||||||
.PageTableEntryM(PageTableEntryM), // already on lsu port convert to internal
|
.PageTableEntryM(PageTableEntryM), // already on lsu port convert to internal
|
||||||
.PageTypeF(PageTypeF), // add to lsu port connects to ifu
|
.PageTypeF(PageTypeF), // add to lsu port connects to ifu
|
||||||
.PageTypeM(PageTypeM),
|
.PageTypeM(PageTypeM), // already on lsu port convert to internal
|
||||||
.ITLBWriteF(ITLBWriteF),
|
.ITLBWriteF(ITLBWriteF), // add to lsu port connects to ifu
|
||||||
.DTLBWriteM(DTLBWriteM),
|
.DTLBWriteM(DTLBWriteM), // already on lsu port convert to internal
|
||||||
.MMUReadPTE(MMUReadPTE),
|
.MMUReadPTE(MMUReadPTE), // from lsu arb convert to internal
|
||||||
.MMUReady(MMUReady),
|
.MMUReady(MMUReady), // to lsu arb, convert to internal
|
||||||
.HPTWStall(HPTWStall),
|
.HPTWStall(HPTWStall), // from lsu arb convert to internal
|
||||||
.MMUPAdr(MMUPAdr),
|
.MMUPAdr(MMUPAdr), // to lsu arb, convert to internal
|
||||||
.MMUTranslate(MMUTranslate),
|
.MMUTranslate(MMUTranslate), // to lsu arb, convert to internal
|
||||||
.HPTWRead(HPTWRead),
|
.HPTWRead(HPTWRead), // to lsu arb, convert to internal
|
||||||
.MMUStall(MMUStall),
|
.WalkerInstrPageFaultF(WalkerInstrPageFaultF), // add to lsu port
|
||||||
.WalkerInstrPageFaultF(WalkerInstrPageFaultF),
|
.WalkerLoadPageFaultM(WalkerLoadPageFaultM), // add to lsu port (to privilege)
|
||||||
.WalkerLoadPageFaultM(WalkerLoadPageFaultM),
|
.WalkerStorePageFaultM(WalkerStorePageFaultM)); // add to lsu port (to privilege)
|
||||||
.WalkerStorePageFaultM(WalkerStorePageFaultM));
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user