UVM Connect with TLM1 transport interfaces

Has the UVM Connect library been used for TLM1 transport interfaces? There appear to be a bunch of places in uvmc_ports.h where the request/response types are incorrectly interchanged.

For example:
[cpp]
template <class T1, class T2=T1,
class CVRT_T1=uvmc_converter,
class CVRT_T2=uvmc_converter >
class uvmc_tlm1_port_proxy : public uvmc_proxy_base
{
T1 req;
T2 rsp;

virtual void x_put (const bits_t *bits) {
m_packer->init_unpack(bits);
CVRT_T2::do_unpack(req,*m_packer); // NOTE: req is T1 but using CVRT_T2?
notify_blocking_sync_process(PUT);
}
};
[/cpp]

I’m using the 2.2 release of UVM Connect. After correcting a handful of lines I’m able to compile and use transport interfaces.

I would upload a full diff file but the user-contribution link referred to in another post:
http://verificationacademy.com/verification-methodology/ovmworld/ovm-user-contributions
…appears to be 404’d.

-Matt

Hi Matt,

Thank you for reporting this problem. We do test the transport connection itself, but apparently the REQ and RSP are the same. The bug only fails for TLM1 transport because all other interface functions take a single type, and T2 defaults to T1 (and T2’s converter defaults to T1’s.

I will fix and add tests for next release, which should be by the end of the month.

We’ve informed web support about your upload issue and so that should be fixed soon.

Regards,
Adam Erickson

In reply to Adam:

Thanks Adam! UVM Connect has saved me a lot of tedious DPI effort; keep up the good work!

-Matt