To summarize the ideas, the main arguments of not sending data from driver to monitor are following
- Monitor should be able to function without driver. If driver is in off mode, or we change the driver than the monitor should be able to function.
- Assume there is some issue in driver when delivering data to interface. Than it would be much easy to catch such type of issues while monitor and driver are separate i.e. monitor is not getting the data from driver
- In case monitor gets DUT input data from driver, than each time we modify/update the driver we have to change the data sending part in driver also. Kind of some extra work.
→ So the best way to have separate monitor which will track DUT inputs.
The other suggestion was adding passive agent which will track DUT inputs. To be honest I don’t know what are the benefits of this solution? Why somebody needs to add some extra hierarchy in his code.
Please if you know some benefits of having passive agent in UVM, that would be great.
Thanks
Hayk