Jump to content

`uvm_field_queue_object macro cause compiler error


Recommended Posts

Hi,

 

I am trying to port my uvm code from UVM 1.1d to UVM-IEEE.

 

Having the following line in my code:

      `uvm_field_queue_object(p_ext_agents,             UVM_ALL_ON | UVM_REFERENCE)

where 

uvm_component p_ext_agents[$];

cause the following compile error:

      `uvm_field_queue_object(p_ext_agents,             UVM_ALL_ON | UVM_REFERENCE)
                                                                                 |
xmvlog: *E,DBITNS (sia/lib/sv/cdn_iwb/sv/cdn_iwb_routing_model.sv,172|98): The argument of the system function call was not of bit-stream type.

Investigating the reason of this error, seems like the error comes from the following code inside the above macro:

 

`define uvm_compare_named_int(NAME, LVALUE, RVALUE, RADIX, COMPARER=comparer) \
  `m_uvm_compare_begin(LVALUE, RVALUE, COMPARER) \
     if ($bits(LVALUE) <= 64) \
       void'(COMPARER.compare_field_int(NAME , LVALUE, RVALUE, $bits(LVALUE), RADIX)); \
     else \
       void'(COMPARER.compare_field(NAME , LVALUE, RVALUE, $bits(LVALUE), RADIX)); \
  `m_uvm_compare_end 

 

the problematic line is:

if ($bits(LVALUE) <= 64)

 

Indeed, queue of uvm_component is not of bit-stream type.

 

Any advice here?

 

Thanks,

Yacov

 

 

Link to comment
Share on other sites

  • 1 year later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...