mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
hptw: Unified PageTableEntryM and PageTableEntryF outputs of pagetablewalker into PTE
This commit is contained in:
parent
ef03ec275c
commit
d6b8a5e595
@ -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
|
||||||
|
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user