VLSI DV Interview Puzzles · All levels
intersect filter removes one tuple
Compute final cross percentage when one tuple is explicitly ignored via intersect.
Puzzle
Difficulty: Hard · Puzzle 4 of 6 · Topic: Cross Coverage Puzzles
Compute final cross percentage when one tuple is explicitly ignored via intersect.
Code
systemverilog
covergroup cg with function sample(bit [1:0] cmd, bit [1:0] resp);
cp_cmd: coverpoint cmd {
bins c[] = {[0:3]};
}
cp_resp: coverpoint resp {
bins ok = {0};
bins retry = {1};
bins err = {2};
}
x_cmd_resp: cross cp_cmd, cp_resp {
ignore_bins cmd0_err = binsof(cp_cmd) intersect {0} && binsof(cp_resp.err);
}
endgroup
initial begin
cg c = new();
c.sample(0,0);
c.sample(1,1);
c.sample(2,2);
c.sample(3,0);
c.sample(0,2);
c.sample(1,2);
endHint
Auto space is 4x3 before ignore. Then remove exactly one scored tuple.
Step-by-step solution
diagram
1) Base auto cross bins = 4 * 3 = 12.
2) ignore_bins removes tuple (cmd=0,resp=err), so scored denominator = 11.
3) Hit scored tuples are (0,ok), (1,retry), (2,err), (3,ok), (1,err) -> 5 bins.
4) sample(0,2) is ignored and does not count.
5) Coverage = 5/11 = 45.45%.Answer
Answer: Scored bins = 11 and achieved coverage = 45.45%.
Why candidates get it wrong
Candidates often subtract ignored hits from numerator but forget to subtract ignored tuples from denominator.
Interviewer follow-up
How many additional unique scored tuples are needed to cross 80%?