In reply to tfitz:
Thanks for the info.
Regarding the fifo, I’m not sure what’s happening in my comparator’s fifo because it only compares the last expected transaction to all the observed transactions.
Here’s what’s happening:
I passed for addresses:
'h2821
'h2822
'h2823
'h2824
When the observed transactions came, here’s the report:
lhs = 'h2824 : rhs = 'h2821
lhs = 'h2824 : rhs = 'h2822
lhs = 'h2824 : rhs = 'h2823
lhs = 'h2824 : rhs = 'h2824
Only the last one matches. The frist 3 are miscompares.
This is how I passed the expected:
num = 0;
repeat(4) begin
exp_tr.addr = 15'h2821 + (num*1);
exp_export.write(exp_tr);
++num;
end
exp_export is an analysis_export in the scoreboard.
I connect it with the before_export of the comparator:
// In build_phase of scoreboard, comp_cmd is the in_order_comparator
exp_export = comp_cmd.before_export;