mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Simplified VPN case statement
This commit is contained in:
parent
25450bd7c1
commit
989bb7c01b
@ -101,7 +101,7 @@ module pagetablewalker
|
|||||||
assign SelPTW = (WalkerState != IDLE) & (WalkerState != FAULT);
|
assign SelPTW = (WalkerState != IDLE) & (WalkerState != FAULT);
|
||||||
assign DTLBWriteM = (WalkerState == LEAF) & DTLBWalk;
|
assign DTLBWriteM = (WalkerState == LEAF) & DTLBWalk;
|
||||||
assign ITLBWriteF = (WalkerState == LEAF) & ~DTLBWalk;
|
assign ITLBWriteF = (WalkerState == LEAF) & ~DTLBWalk;
|
||||||
assign UseTranslationVAdr = (NextWalkerState == LEAF) || (WalkerState == LEAF);
|
assign UseTranslationVAdr = (NextWalkerState == LEAF) || (WalkerState == LEAF); // ***explain this logic
|
||||||
|
|
||||||
// Raise faults. DTLBMiss
|
// Raise faults. DTLBMiss
|
||||||
assign WalkerInstrPageFaultF = (WalkerState == FAULT) & ~DTLBWalk;
|
assign WalkerInstrPageFaultF = (WalkerState == FAULT) & ~DTLBWalk;
|
||||||
@ -131,14 +131,9 @@ module pagetablewalker
|
|||||||
logic [`PPN_BITS-1:0] PPN;
|
logic [`PPN_BITS-1:0] PPN;
|
||||||
always_comb
|
always_comb
|
||||||
case (WalkerState) // select VPN field based on HPTW state
|
case (WalkerState) // select VPN field based on HPTW state
|
||||||
LEVEL3_SET_ADR: VPN = TranslationVAdr[47:39];
|
LEVEL3_SET_ADR, LEVEL3_READ: VPN = TranslationVAdr[47:39];
|
||||||
LEVEL3_READ: VPN = TranslationVAdr[47:39];
|
LEVEL3, LEVEL2_SET_ADR, LEVEL2_READ: VPN = TranslationVAdr[38:30];
|
||||||
LEVEL3: VPN = TranslationVAdr[38:30];
|
LEVEL2, LEVEL1_SET_ADR, LEVEL1_READ: VPN = TranslationVAdr[29:21];
|
||||||
LEVEL2_SET_ADR: VPN = TranslationVAdr[38:30];
|
|
||||||
LEVEL2_READ: VPN = TranslationVAdr[38:30];
|
|
||||||
LEVEL2: VPN = TranslationVAdr[29:21];
|
|
||||||
LEVEL1_SET_ADR: VPN = TranslationVAdr[29:21];
|
|
||||||
LEVEL1_READ: VPN = TranslationVAdr[29:21];
|
|
||||||
default: VPN = TranslationVAdr[20:12];
|
default: VPN = TranslationVAdr[20:12];
|
||||||
endcase
|
endcase
|
||||||
assign PPN = ((WalkerState == LEVEL3_SET_ADR) | (WalkerState == LEVEL3_READ) |
|
assign PPN = ((WalkerState == LEVEL3_SET_ADR) | (WalkerState == LEVEL3_READ) |
|
||||||
|
Loading…
Reference in New Issue
Block a user