I’m creating a coverage for signals timing skew.
I’m using cover property to account for timing skew of 0, 1, 2 clock cycles between two signals. (Let say 3 cover property here)
Then I created a excel sheet with 3 coverage requirements.
The Questasim generated ucdb coverage will link to the excel sheet and a html report will show the details of the coverage.
define skew(signal_req, signal_ack, delay, clk=clkin, rst_n=rstin_n) \ cover property (@(posedge clk) disable iff (!rst_n) $rose(signal_ack) |-> ##delay $fell(signal_req));* * SKEW_COV:
skew(aa_req, aa_ack, 0);
skew(aa_req, aa_ack, 1);
skew(aa_req, aa_ack, 2);
The above flow apply for small set of signals.
I’m trying to create coverage for large group of signals (aa to zz). The problem with the above flow is with the growing number of cover property, I need to create a lot more coverage requirements in the excel sheet. I’m also susceptible to missing a few cover property or coverage requirement.
Is there any recommended coding style or strategy to eliminate the risk of missing cover property or coverage requirement?