Error-[ICTTFC] Incompatible complex type usage

Hi All,

I have a performance model (perf_mon.sv) which I have instantiated inside the base test. I am generating some values inside the model and I want to pass these generated values to my sequence. For this what I am doing is that I am generating the integer in my model and setting it to the config_db and then trying to get the same inside my sequence. But I am getting the following 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.
uvm_config_db#(integer)::get(this, “*”, “rvalid_delay”,
this.rvalid_delay)

This is how I am trying to get the integer value. Please give some solution for the problem.

Regards
Ritesh

In reply to rijosh:

What kind of model do you have? Is it a module?
Why do you instantiate it in the test and not in the topltvtl module?

In reply to rijosh:

Few things to note:

  1. Verilog/SV integer is 4-state and perhaps you wanted int
  2. Assuming you are doing the ::get inside a sequence, use null as context as Sequences do not have a fixed hierarchy. Kind of a namespace in global and both set and get will use that.

Good Luck
Srini
www.go2uvm.org

In reply to rijosh:

To use configuration database get method in sequence, syntax is

uvm_config_db#(TYPE)::get(null, this.get_full_name(), "field", field);

Hi rijosh,

If you are creating your model in base test only once, then use following set and get methods.

uvm_config_db#(integer)::set(null, “*”, “rvalid_delay”,this.rvalid_delay) //In model
uvm_config_db#(integer)::get(null, “”, “rvalid_delay”,this.rvalid_delay) //In sequence

Regards
Basavaraj Patil