forked from Github_Repos/cvw
Merged coverage exclusions for PMP
This commit is contained in:
commit
d5c350c597
@ -153,6 +153,8 @@ set line [GetLineNum ../src/mmu/mmu.sv "PMAInstrAccessFaultF \\|"]
|
||||
coverage exclude -scope /dut/core/lsu/dmmu/dmmu -linerange $line-$line -item e 1 -fecexprrow 2,4,5,6
|
||||
set line [GetLineNum ../src/mmu/pmpchecker.sv "EnforcePMP & ExecuteAccessF"]
|
||||
coverage exclude -scope /dut/core/lsu/dmmu/dmmu/pmp/pmpchecker -linerange $line-$line -item e 1 -fecexprrow 1,2,4,5,6
|
||||
set line [GetLineNum ../src/mmu/pmpchecker.sv "EnforcePMP & ExecuteAccessF"]
|
||||
coverage exclude -scope /dut/core/ifu/immu/immu/pmp/pmpchecker -linerange $line-$line -item e 1 -fecexprrow 3
|
||||
|
||||
|
||||
## The IFU has ReadAccess = WriteAccess = 0 and ExecuteAccess = 1 hardwired, so exclude alternatives
|
||||
@ -206,3 +208,7 @@ coverage exclude -scope /dut/core/priv/priv/pmd/wfi/wficountreg -linerange $line
|
||||
# TLB not recently used never has all RU bits = 1 because it will then clear all to 0
|
||||
# This is a blunt instrument; perhaps there is a more graceful exclusion
|
||||
coverage exclude -srcfile priorityonehot.sv
|
||||
|
||||
# Excluding pmpadrdecs[0] coverage case for PAgePMPAdrIn being hardwired to 1
|
||||
coverage exclude -scope /dut/core/ifu/immu/immu/pmp/pmpchecker/pmp/pmpadrdecs[0] -linerange [GetLineNum ../src/mmu/pmpadrdec.sv "exclusion-tag: PAgePMPAdrIn"] -item e 1 -fecexprrow 1
|
||||
coverage exclude -scope /dut/core/lsu/dmmu/dmmu/pmp/pmpchecker/pmp/pmpadrdecs[0] -linerange [GetLineNum ../src/mmu/pmpadrdec.sv "exclusion-tag: PAgePMPAdrIn"] -item e 1 -fecexprrow 1
|
||||
|
@ -63,7 +63,7 @@ module pmpadrdec (
|
||||
assign CurrentAdrFull = {PMPAdr, 2'b00};
|
||||
assign PAltPMPAdr = {1'b0, PhysicalAddress} < {1'b0, CurrentAdrFull}; // unsigned comparison
|
||||
assign PAgePMPAdrOut = ~PAltPMPAdr;
|
||||
assign TORMatch = PAgePMPAdrIn & PAltPMPAdr;
|
||||
assign TORMatch = PAgePMPAdrIn & PAltPMPAdr; // exclusion-tag: PAgePMPAdrIn
|
||||
|
||||
// Naturally aligned regions
|
||||
logic [`PA_BITS-1:0] NAMask, NABase;
|
||||
|
@ -63,7 +63,8 @@ string tvpaths[] = '{
|
||||
"pmp",
|
||||
"pmpcfg",
|
||||
"pmpcfg1",
|
||||
"pmpcfg2"
|
||||
"pmpcfg2",
|
||||
"pmpadrdecs"
|
||||
};
|
||||
|
||||
string coremark[] = '{
|
||||
|
22
tests/coverage/pmpadrdecs.S
Normal file
22
tests/coverage/pmpadrdecs.S
Normal file
@ -0,0 +1,22 @@
|
||||
// pmpadrdecs
|
||||
// Liam Chalk, lchalk@hmc.edu, 4/27/2023
|
||||
// Setting AdrMode to 2 or 3 for pmpadrdecs[0-4]
|
||||
|
||||
#include "WALLY-init-lib.h"
|
||||
main:
|
||||
|
||||
# Writing values to pmpcfg0 to change AdrMode to 2 or 3
|
||||
# pmpadrdec[0]
|
||||
li t0, 0x0000000010
|
||||
csrw pmpcfg0, t0
|
||||
# pmpadrdec[1]
|
||||
li t0, 0x0000001800
|
||||
csrw pmpcfg0, t0
|
||||
# pmpadrdec[2]
|
||||
li t0, 0x0000180000
|
||||
csrw pmpcfg0, t0
|
||||
# pmpadrdec[4]
|
||||
li t0, 0x1000000000
|
||||
csrw pmpcfg0, t0
|
||||
|
||||
j done
|
Loading…
Reference in New Issue
Block a user