TLM Ports

Hi All,

I want to know the difference between a blocking and non-blocking TLM port. Why cant a non-blocking TLM port be used in the driver.

Thanks

In reply to srisid:
In a blocking TLM port, the requesting port blocks until the component servicing the request (the put() or get() implementation being exported) completes the request. In a non-blocking port, the requestor never blocks. The component servicing the request either completes it immediately returning true, or discards the request and returns false.

Typically, a driver uses the non-blocking try_get(). The driver is synchronized to a clock and may need to interact with the DUT even though it has no requests to initiate. If the driver used a blocking get(), then the driver process would be blocked an unable to interact with the DUT.