Hello all
I was trying to connect the port and export of TLM 1.0 and I was getting the following errors. It was working fine for imp port.
Errors:
UVM_ERROR @ 0: uvm_test_top.env.comp_b.trans_in [Connection Error] connection count of 0 does not meet required minimum of 1
UVM_ERROR @ 0: uvm_test_top.env.comp_a.trans_out [Connection Error] connection count of 0 does not meet required minimum of 1
UVM_FATAL @ 0: reporter [BUILDERR] stopping due to build errors
You can’t connect a uvm_blocking_put_port with an uvm_blocking_put_export. For details see the UVM Standard chapter 5.5.2.14 connect.
A uvm_blocking_put_port can be connected only to a uvm_put_export or a uvm_blocking_put_imp. The imp provides the put task.
In reply to Malai_21:
**The real issue is that *_port and _export NEED to be Ultimately connected to an _imp type
In your code you have connected a port to an export so these these 2 are NEVER Connected to
an imp Ultimately . Refer_this_modified_Code_which_works
Hello
why do we need to connect *_export to *_imp port? you mean to say port and export can’t be connected?
port & export can be connected , but again export should be connected to implementation port. Finally the port connection should be terminated with an implementation port which implements the methods defined by a port.
To clarify: I did not say uvm_put_export is working in this case. In this case it is working only with the imp, because the imp has to provide the put method.
With my earlier statement I was refering to the UVM Standard 5.5.2.14 connect. There you can read:
b) The provider’s interface type (blocking, non-blocking, analysis, etc.) shall be compatible, e.g., an
uvm_blocking_put_port #(T) is compatible with an uvm_put_export #(T) and
uvm_blocking_put_imp #(T) because the export and imp provide the interface required
by the uvm_blocking_put_port.
In reply to shanthi:
To clarify: I did not say uvm_put_export is working in this case. In this case it is working only with the imp, because the imp has to provide the put method.
With my earlier statement I was refering to the UVM Standard 5.5.2.14 connect. There you can read:
b) The provider’s interface type (blocking, non-blocking, analysis, etc.) shall be compatible, e.g., an
uvm_blocking_put_port #(T) is compatible with an uvm_put_export #(T) and
uvm_blocking_put_imp #(T) because the export and imp provide the interface required
by the uvm_blocking_put_port.
Hello
Then, what should be done in order to connect uvm_blocking_put_port#(T) and uvm_put_export#(T)?
port & export can be connected , but again export should be connected to implementation port. Finally the port connection should be terminated with an implementation port which implements the methods defined by a port.
Hello
It was working fine. I just wanna connect uvm_blocking_put_port#(T) and uvm_put_export#(T) as mentioned in LRM.