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:
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:
I think the connection is not done between port & export. Show the code where you are connecting port & export.
In reply to shanthi:
I think the connection is not done between port & export. Show the code where you are connecting port & export.
Hello Shanthi
I have connected port and export in the environment. Here is a snippet of it
function void connect_phase(uvm_phase phase);
comp_a.trans_out.connect(comp_b.trans_in);
endfunction : connect_phase
In reply to Malai_21:
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:
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 .
In reply to chr_sue:
I believe this would an error !!
You can’t connect a uvm_blocking_put_port to a uvm_put_export .
In reply to ABD_91:
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?
In reply to ABD_91:
In reply to chr_sue:
I believe this would an error !!
You can’t connect a uvm_blocking_put_port to a uvm_put_export .
Yes, the uvm_blocking_put_pot and uvm_put_export connection is not working. Getting the same error as before.
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.
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.
In reply to chr_sue:
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)?
In reply to shanthi:
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.