New coverage file format for VM which supports all modes
I have combined RV32 & RV64 VM_CBO coverage files into a single file. With this new coverage file we can either select a single mode of our choice from RV64 (SV39, SV48, SV57) or test coverage for all of them by explicitly defining it in some header file preferably coverage.svh in cvw. This wasn't possible with the old coverpoints.
As we plan to add SV57, we would've needed to add the following ignore bins to almost every coverpoint
`ifdef SV39 ignore_bins ig1 = binsof(mode.sv39) && binsof(PageType_d.tera); `endif
`ifdef SV39 ignore_bins ig2 = binsof(mode.sv39) && binsof(PageType_d.peta); `endif
`ifdef SV48 ignore_bins ig3 = binsof(mode.sv48) && binsof(PageType_d.peta); `endif
Therefore, I've integrated modes into PageType_d to reduce the number of ignore bins. misaligned_PPN_d was using a function check_misalignment which was working fine, but I came up with a different approach which allows coverage collection of misaligned_PPN without the help of the function.
The previous coverage file despite having ifdef sv48 wasn't able to collect coverage for sv39 only. But this new coverage file enables us to do that. These changes can be applied to all VM coverage files.