Hello all,
I have DUT which generates certain combination on two outputs. My idea is to use keyed list, somehow fill the values in and somehow implement the coverage on that keyed list.
struct dut_output {
out1: uint(bits:6);
out2 : uint(bits:6);
};
struct scoreboard_s {
!dut_out : list (key:out1) of dut_output;
// fill the scoreboard list
fill_scboard () is {
dut_out.add( {2;15}); // how to do that correctly here ???
dut_out.add( {5;11}); // how to do that correctly here ???
dut_out.add( {7;5}); // how to do that correctly here ???
};
// check outputs
check_outputs( res:dut_output) is {
var temp_out : dut_output = dut_out.key(res.out1);
if (temp_out.out2 != res.out2) {
dut_error("Wrong OUT2 value!");
};
};
};
How do you fill the scoreboard ? And how to do the coverage is this case ?
Thank you for ideas.