hptw: Unified PageTableEntryM and PageTableEntryF outputs of pagetablewalker into PTE

This commit is contained in:
David Harris 2021-07-17 14:48:44 -04:00
parent ef03ec275c
commit d6b8a5e595
2 changed files with 9 additions and 6 deletions

View File

@ -118,7 +118,7 @@ module lsu
logic [`PA_BITS-1:0] MemPAdrM; // from mmu to dcache logic [`PA_BITS-1:0] MemPAdrM; // from mmu to dcache
logic DTLBMissM; logic DTLBMissM;
logic [`XLEN-1:0] PageTableEntryM; logic [`XLEN-1:0] PTE, PageTableEntryM;
logic DTLBWriteM; logic DTLBWriteM;
logic [`XLEN-1:0] HPTWReadPTE; logic [`XLEN-1:0] HPTWReadPTE;
logic HPTWStall; logic HPTWStall;
@ -157,8 +157,8 @@ module lsu
.ITLBMissF(ITLBMissF), .ITLBMissF(ITLBMissF),
.DTLBMissM(DTLBMissM), .DTLBMissM(DTLBMissM),
.MemRWM(MemRWM), .MemRWM(MemRWM),
.PageTableEntryF(PageTableEntryF), .PTE(PTE),
.PageTableEntryM(PageTableEntryM), // .PageTableEntryM(PageTableEntryM),
.PageType, .PageType,
.ITLBWriteF(ITLBWriteF), .ITLBWriteF(ITLBWriteF),
.DTLBWriteM(DTLBWriteM), .DTLBWriteM(DTLBWriteM),
@ -172,6 +172,9 @@ module lsu
.WalkerLoadPageFaultM(WalkerLoadPageFaultM), .WalkerLoadPageFaultM(WalkerLoadPageFaultM),
.WalkerStorePageFaultM(WalkerStorePageFaultM)); .WalkerStorePageFaultM(WalkerStorePageFaultM));
assign PageTableEntryM = PTE;
assign PageTableEntryF = PTE;
assign WalkerPageFaultM = WalkerStorePageFaultM | WalkerLoadPageFaultM; assign WalkerPageFaultM = WalkerStorePageFaultM | WalkerLoadPageFaultM;
// arbiter between IEU and pagetablewalker // arbiter between IEU and pagetablewalker

View File

@ -41,7 +41,7 @@ module pagetablewalker
input logic [1:0] MemRWM, input logic [1:0] MemRWM,
// Outputs to the TLBs (PTEs to write) // Outputs to the TLBs (PTEs to write)
output logic [`XLEN-1:0] PageTableEntryF, PageTableEntryM, output logic [`XLEN-1:0] PTE, //PageTableEntryM,
output logic [1:0] PageType, output logic [1:0] PageType,
output logic ITLBWriteF, DTLBWriteM, output logic ITLBWriteF, DTLBWriteM,
output logic SelPTW, output logic SelPTW,
@ -120,8 +120,8 @@ module pagetablewalker
// Assign specific outputs to general outputs // Assign specific outputs to general outputs
// *** try to eliminate this duplication, but attempts caused MMU to hang // *** try to eliminate this duplication, but attempts caused MMU to hang
assign PageTableEntryF = CurrentPTE; assign PTE = CurrentPTE;
assign PageTableEntryM = CurrentPTE; // assign PageTableEntryM = CurrentPTE;
assign SelPTW = (WalkerState != IDLE) & (WalkerState != FAULT); assign SelPTW = (WalkerState != IDLE) & (WalkerState != FAULT);
assign DTLBWriteM = (WalkerState == LEAF) & DTLBWalk; assign DTLBWriteM = (WalkerState == LEAF) & DTLBWalk;