I have a UVM test bench (limited random check) for my equipment model. My golden model is written in systemC and C ++. I have cases where the result of my equipment will not match the result of the software, but both of them can be potentially correct.
As an example, my HW does some memory management (allocation, freeing resources), and this leads to some other logic in the pipeline. Depending on the "when", the HW receives a alloc or dealloc request and some temporary arbitration policy, it produces some results. There is no concept of time in the gold model, and in some cases the output will not correspond to HW, but both the HW and the gold model can be potentially correct.
What is the standard way to test this kind of scenario? When both the gold model and the HW outputs are correct, but they differ in value, I’m not quite sure if a landing score can help verify the correctness. I am new to this area. So any tips / pointers would be much appreciated.
source
share