Whether to use TLM ports or class object set in the uvm_config_db

Hi Could you please clarify the following?

there is some result which I need to pass from monitor to driver based on processsing done on transaction collected by monitor.
for the above requirement , do I need to use config_db to pass information between these two as only little information needs to be communicated to driver from monitor. or Do I need to use analasys ports to pass information to driver.

one point is driver consumes transaction in zero time given by monitor.

Thanks

1 Like

The answer is neither. You should never have any communication between a driver and a monitor. Both the driver and monitor have access to the same interface, and the driver should be able to reproduce the same information as the monitor. While this may result in some information being duplicated in both components, this is required to maintain portability.

Hi cgales .Thanks for input.here monitor is getting the response from dut(like packet) and it will come to know which packet it is (like ack or nack packet) and it needs to send that information of whether it is ack or nack to the driver(it doesnt need to send the entire packet to driver).Please let me know what approach we need to follow.

You would need to provide more information about your design architecture to provide an appropriate answer. Your driver/monitor should be connected to a single protocol interface. This interface should provide protocol-specific information if the packet was sent correctly or should be re-tried by the driver.

If the ack/nack is on a different interface (agent), then you should co-ordinate the behavior at the virtual sequence level.

Hi cgales,

we are using uvm layered architecture. in pcie we have three layers . transaction layer ,data link layer and physical layer. in data link layer we have associated driver and minitor together present in one componemt.but driver is for transmission of packets to physical layer.and monitor is for receiving the packets from physical layer.now in some scenarios we need to pass information bwteen monitor and driver present in data link layer. could you please what would be the better approach to pass communication between these two componemts. can it be done using uvm_config_db ?