# Command Line Debug

Debug command line plusargs that are available in the Accellera reference implementation but not documented in the IEEE UVM 1800.2-2020 LRM

Summary

Command Line Debug
Debug command line plusargs that are available in the Accellera reference implementation but not documented in the IEEE UVM 1800.2-2020 LRM
Variables |
+UVM_DUMP_CMDLINE_ARGS | +UVM_DUMP_CMDLINE_ARGS allows the user to dump all command line arguments to the reporting mechanism.
+UVM_PHASE_TRACE | +UVM_PHASE_TRACE turns on tracing of phase executions.
+UVM_OBJECTION_TRACE | +UVM_OBJECTION_TRACE turns on tracing of objection activity.
+UVM_RESOURCE_DB_TRACE | +UVM_RESOURCE_DB_TRACE turns on tracing of resource DB accesses.
+UVM_CONFIG_DB_TRACE | +UVM_CONFIG_DB_TRACE turns on tracing of configuration DB accesses.

### Variables

### +UVM_DUMP_CMDLINE_ARGS

+UVM_DUMP_CMDLINE_ARGS allows the user to dump all command line arguments to the reporting mechanism. The output in is tree format.

@uvm-accellera The details of this API are specific to the Accellera implementation, and are not being considered for contribution to 1800.2

### +UVM_PHASE_TRACE

+UVM_PHASE_TRACE turns on tracing of phase executions.

@uvm-accellera The details of this API are specific to the Accellera implementation, and are not being considered for contribution to 1800.2

### +UVM_OBJECTION_TRACE

+UVM_OBJECTION_TRACE turns on tracing of objection activity.

@uvm-accellera The details of this API are specific to the Accellera implementation, and are not being considered for contribution to 1800.2

### +UVM_RESOURCE_DB_TRACE

+UVM_RESOURCE_DB_TRACE turns on tracing of resource DB accesses.

@uvm-accellera The details of this API are specific to the Accellera implementation, and are not being considered for contribution to 1800.2

### +UVM_CONFIG_DB_TRACE

+UVM_CONFIG_DB_TRACE turns on tracing of configuration DB accesses.

@uvm-accellera The details of this API are specific to the Accellera implementation, and are not being considered for contribution to 1800.2

## Command line configuration

The following argument is provided in addition to those required by IEEE UVM 1800.2-2020.

Summary

Command line configuration | The following argument is provided in addition to those required by IEEE UVM 1800.2-2020.
Variables |
+uvm_set_config_bitstream | +uvm_set_config_bitstream=<comp>,<field>,<value> works like its procedural counterpart <uvm_config_db#(uvm_bitstream_t)::set()>.

### Variables

### +uvm_set_config_bitstream

+uvm_set_config_bitstream=<comp>,<field>,<value> works like its procedural counterpart <uvm_config_db#(uvm_bitstream_t)::set()>. The string value is processed as:

>     [sign][radix]value

Where `[sign]` is an optional sign character, either “+” or “-”, and `[radix]` is an optional radix specifier.

#### The following radix specifiers are supported

”’b”, “0b”: Binary “’o”: Octal “’d”: Decimal “’h”, “’x”, “0x”: Hexidecimal

If the optional radix is omitted, then the value shall be treated as decimal.

As the <uvm_bitstream_t> is a 4-state value, the characters “X”, “x”, “Z”, “z”, and “?” are legal within the value string. Additionally, the underscore character (“_”) is ignored.

Note that unlike <+uvm_set_config_int>, the Accellera implementation of +uvm_set_config_bitstream is capable storing values that exceed 32 bits in size. This means the two yield different results for 32 bit values when bit 32 is set, as <+uvm_set_config_int> treats bit 32 as the sign bit.

#### For example

>     // +uvm_set_config_int=uvm_test_top.soc_env,valA,'hFFFF_FFFF
>     // +uvm_set_config_bitstream=uvm_test_top.soc_env,valB,'hFFFF_FFFF

>     longint valA, valB;
>     uvm_config_int::get(uvm_test_top.soc_env, "", "valA", valA); // 64'hFFFF_FFFF_FFFF_FFFF
>     uvm_config_int::get(uvm_test_top.soc_env, "", "valB", valB); // 64'h0000_0000_FFFF_FFFF

Additionally, note that if the value passed on the command line is larger than the maximum value that can be stored in a <uvm_bitstream_t> then truncation without warning may occur.