Fixed minor issues in PMP coverpoints that caused coverage drops
-
READ_ZERO_MASKto put G-1 zeros in pmpaddr when G>=1 and pmpcfg.A[1] is clear. Supposed to put all 1s in pmpaddr0 in cppmp_addr_for_tor_nonoverlap3, but bin wasn't hitting because for G=4, it was reading [3:0] as zeros. -
A bit of renaming of coverpoint
csrw_to_pmpaddr0. -
Since,
(0x0000000020000804_0000000020000800) != (0x20000804_20000800), and beacuse of this, binpmp_addr_for_tor_botwasn't getting hit for XLEN64. So, I update the logic to(0x0000000020000804 == 0x20000804) && (0x0000000020000800 == 0x20000800). Same logic for cppmp_addr_for_tor_nonoverlap1,pmp_addr_for_tor_nonoverlap2, andpmp_addr_for_tor_nonoverlap3. -
Placed na4 coverpoints inside
ifdef G_IS_0. -
Refactor
addr_for_misaligned_straddling_endtoaddr_standard_region_straddling_endandaddr_non_standard_region_straddling_endbecause for G=0, the end will be based ong_tor/g_napot. -
Fixed the hit logic for the
cp_pmp64the requires 64 pmp writable registers.