Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/mmu/hptw.sv
Original file line number Diff line number Diff line change
Expand Up @@ -156,13 +156,13 @@ module hptw import cvw::*; #(parameter cvw_t P) (
flopenr #(P.XLEN) PTEReg(clk, reset, PRegEn, NextPTE2, PTE); // Capture page table entry from data cache

// Assign PTE descriptors common across all XLEN values
// For non-leaf PTEs, D, A, U bits are reserved and ignored. They do not cause faults while walking the page table
// For non-leaf PTEs, D, A, U bits are reserved and cause faults while walking the page table
assign {PTE_U, Executable, Writable, Readable, Valid} = PTE[4:0];
assign LeafPTE = Executable | Writable | Readable;
assign ValidPTE = Valid & ~(Writable & ~Readable);
assign ValidLeafPTE = ValidPTE & LeafPTE;
assign ValidNonLeafPTE = Valid & ~LeafPTE;
if(P.XLEN == 64) assign PBMTFaultM = ValidNonLeafPTE & (|PTE[62:61]);
if(P.XLEN == 64) assign PBMTFaultM = ValidNonLeafPTE & (|PTE[63:54]);
else assign PBMTFaultM = 1'b0;
assign DAUFaultM = ValidNonLeafPTE & (|PTE[7:6] | PTE[4]);
Comment thread
flaviens marked this conversation as resolved.

Expand Down