I have just migrated to UVM-1.2 in my bench.I am getting the following warnings from uvm_traversal.svh
the name “observed_wr_data_collected_port;” of the component “uvm_test_top.tb.strDMA_wr_mon[0].observed_wr_data_collected_port;” violates the uvm component name constraints
This warning was not coming when my bench was in uvm-1.1d
Can someone pleaae help me out on this.Why this is coming ? Also How to remove it or just to ignore it.
You have a semi-colon in the name of your component. This function is checking that your component name consists of an allowable character set, of which the semi-colon is not a member of. If you remove the semi-colon from your name, the error will go away.
And the warning is coming ONLY for observed_wr_data_collected_port (which is of uvm_blockin_transport type . There are multiple other types of TLM ports I have added in my environment, but this warning is coming for this port only.
Where do you think the semi colon is causing these warnings.
Why this check was enabled in uvm 1.2 , is there any use of it ? Please assist ?
In reply to pk_94:
Since the UVM is being designed by committee, there will be many opinions ab out warning versus error. I think warnings are noise. You can promote this warning to an error.
I am getting the same warning : -
UVM_WARNING /pkg/cadence-incisiv-/15.22.041/i686-linux/tools/methodology/UVM/CDNS-1.2/sv/src/base/uvm_traversal.svh(267) @ 0 ns: reporter [UVM/COMP/NAME] the name “put_trans_to_mstr_mon_port[&0d] 0” of the component “uvm_test_top.tb.axi_arb_tb.axi_slv_monitor.put_trans_to_mstr_mon_port[&0d] 0” violates the uvm component name constraints
The ‘&0d’ seems very close to “%0d”. Are you sure that the format string in new() is correct? Is there another new() call somewhere that you are overlooking? Are you looking in the right place?
Is the array declaration correct? What is ‘i’ declared as? Can you show the full loop where everything is initialized?
Without seeing the actual code, I’m going to assume that you have a mal-formed string in your code which is causing issues. Try re-writing the new() call, or create a different format string to see if you can determine a pattern.
Hello,
I got the same warning for the following, and couldn’t figure out the regexp
soc_tb.u_soc_ti.cfi_bfm1_hw_collector.genblk2[0].cfi_bfm_rsp_transmit.cfi_cmd_port
But the class description says this
//------------------------------------------------------------------------------
//
// CLASS: uvm_component_name_check_visitor
//
// This specialized visitor analyze the naming of the current component. The established rule set
// ensures that a component.get_full_name() is parsable, unique, printable to order to avoid any ambiguities
// when messages are being emitted.
//
// ruleset a legal name is composed of
// - allowed charset "A-z:_0-9{}-: "
// - whitespace-as-is, no-balancing delimiter semantic, no escape sequences
// - path delimiter not allowed anywhere in the name
//
// the check is coded here as a function to complete it in a single function call
// otherwise save/restore issues with the used dpi could occur
//------------------------------------------------------------------------------
From the description it looks like it should allow the square brackets in the component name. I mean , how otherwise can one create unique names for associative arrays/arrays/dynamic arrays of classes.
Is there a way I could override something in uvm code to avoid this warning.