Hello,

Is there a easier way in SV to define coverpoint to do a toggle coverage on every bit of a 32 bit vector. Meaning If I have a 32-bit interrupt mask vector and I just want to see if each interrupt was either masked or unmasked , I usually have to code 32 lines of code. for instance

cp_interrupting_csrmask0 : coverpoint m_csr_intr_mask.interrupting_csrmask[0];

cp_interrupting_csrmask1 : coverpoint m_csr_intr_mask.interrupting_csrmask[1];

cp_interrupting_csrmask2 : coverpoint m_csr_intr_mask.interrupting_csrmask[2];

cp_interrupting_csrmask3 : coverpoint m_csr_intr_mask.interrupting_csrmask[3];

cp_interrupting_csrmask4 : coverpoint m_csr_intr_mask.interrupting_csrmask[4];

cp_interrupting_csrmask5 : coverpoint m_csr_intr_mask.interrupting_csrmask[5];

cp_interrupting_csrmask6 : coverpoint m_csr_intr_mask.interrupting_csrmask[6];

cp_interrupting_csrmask7 : coverpoint m_csr_intr_mask.interrupting_csrmask[7];

cp_interrupting_csrmask8 : coverpoint m_csr_intr_mask.interrupting_csrmask[8];

cp_interrupting_csrmask9 : coverpoint m_csr_intr_mask.interrupting_csrmask[9];

cp_interrupting_csrmask10 : coverpoint m_csr_intr_mask.interrupting_csrmask[10];

cp_interrupting_csrmask11 : coverpoint m_csr_intr_mask.interrupting_csrmask[11];

cp_interrupting_csrmask12 : coverpoint m_csr_intr_mask.interrupting_csrmask[12];

cp_interrupting_csrmask13 : coverpoint m_csr_intr_mask.interrupting_csrmask[13];

cp_interrupting_csrmask14 : coverpoint m_csr_intr_mask.interrupting_csrmask[14];

cp_interrupting_csrmask15 : coverpoint m_csr_intr_mask.interrupting_csrmask[15];

cp_interrupting_csrmask16 : coverpoint m_csr_intr_mask.interrupting_csrmask[16];

cp_interrupting_csrmask17 : coverpoint m_csr_intr_mask.interrupting_csrmask[17];

cp_interrupting_csrmask18 : coverpoint m_csr_intr_mask.interrupting_csrmask[18];

cp_interrupting_csrmask19 : coverpoint m_csr_intr_mask.interrupting_csrmask[19];

cp_interrupting_csrmask20 : coverpoint m_csr_intr_mask.interrupting_csrmask[20];

cp_interrupting_csrmask21 : coverpoint m_csr_intr_mask.interrupting_csrmask[21];

cp_interrupting_csrmask22 : coverpoint m_csr_intr_mask.interrupting_csrmask[22];

cp_interrupting_csrmask23 : coverpoint m_csr_intr_mask.interrupting_csrmask[23];

cp_interrupting_csrmask24 : coverpoint m_csr_intr_mask.interrupting_csrmask[24];

cp_interrupting_csrmask25 : coverpoint m_csr_intr_mask.interrupting_csrmask[25];

cp_interrupting_csrmask26 : coverpoint m_csr_intr_mask.interrupting_csrmask[26];

cp_interrupting_csrmask27 : coverpoint m_csr_intr_mask.interrupting_csrmask[27];

cp_interrupting_csrmask28 : coverpoint m_csr_intr_mask.interrupting_csrmask[28];

cp_interrupting_csrmask29 : coverpoint m_csr_intr_mask.interrupting_csrmask[29];

cp_interrupting_csrmask30 : coverpoint m_csr_intr_mask.interrupting_csrmask[30];

cp_interrupting_csrmask31 : coverpoint m_csr_intr_mask.interrupting_csrmask[31];

Is there a neater way to do a toggle functional coverage bitwise for a vector.

Regards,

Nisreen