Hi,
I am trying to connect uvm_analysis_port#(transaction) ap; ( in monitor of a bfm )to analysis fifo in scoreboard in my top tb env ( uvm_tlm_analysis_fifo #(transaction) fifo[int];).
In my top env, i have bfm env instance, and i am connecting the port-fifo using the code below
bfm_env.monitor.ap.connect(scoreboard.fifo['h00].analysis_export);
I am hitting this error
Error-[ICTTFC] Incompatible complex type usage
Incompatible complex type usage in task or function call.
The following expression is incompatible with the formal parameter of the
function. The type of the actual is ‘class
uvm_pkg::uvm_analysis_imp#(transaction,class uvm_pkg::uvm_tlm_analysis_fifo#(class transaction))’, while the type of the formal is ‘class uvm_pkg::uvm_port_base#(class uvm_pkg::uvm_tlm_if_base#(transaction,transaction))’.
Any suggestion on what could be wrong ?
Thanks
In reply to vbabusr:
How many uvm_analysis_fifos do you have in your scoreboard?
To which line of code does the error message point?
In reply to vbabusr:
Check whether the analysis port & analysis FIFOs are parametrized with the same transaction type
In reply to chr_sue:
Hi,
The error points to
bfm_env.monitor.ap.connect(scoreboard.fifo['h00].analysis_export); ← line
Thanks
In reply to shanthi:
Hi,
Yes. They are of same type → transaction
Thanks
In reply to vbabusr:
In reply to chr_sue:
Hi,
The error points to
bfm_env.monitor.ap.connect(scoreboard.fifo['h00].analysis_export); ← line
Thanks
You are declaring your fifo as an associative array. Why you are doing this?
In reply to chr_sue:
Hi,
No specific reason actually. Would it affect ?
Thanks
In reply to vbabusr:
The associative array is an array ‘on demand’. How do you construct it?
During build_phase you might not know which indices you want to use.