Hello Everyone,
I need your help for an unusual situation: I used to develop verification environments in which the DUTs could work “alone”, so I used to provide the same stimuli both to the DUT and the (un-timed) reference model I implemented (in the scoreboard or close to it) and then I used to compare the output transation from the DUT with respect to the ones from the golden model.
But now the situation is totally different: I have to verify a CODEC to be used as one of the two ends of a full-duplex, bi-directional, serial data link and I have no idea of how and where to implement it!
In other words, the DUT need to interact with the reference model as if the golden model were another DUT which participates to the initial handshake needed to establish the link and then, which decoded received data coming from the DUT, if any, and, when required by the test-case, sent encoded data to the DUT, which will decode that.
I would like to adopt an architectural solution which will allow to reuse the reference model, its drivers/monitors/sequences, and the DUT ones as Verification IP from block through chip to system level simulation.
Any idea?
Maybe, starting from the UVMF approach and scripts, I should create an agent and modify its driver (proxy and BFM) to make it a kind of reference model? Or, ignoring UVMF, I could implement the golden model extending the uvm_component or the uvm_driver? What do you think about that? Other/better solutions?
Thank you so much!