Controls the values being saved to a database. You can
- Create probes (
-create)
- Delete probes (
-delete)
- Disable probes (
-disable)
- Enable previously disabled probes (
-enable)
- Create a Tcl script that you can execute to recreate the current databases and probes (
-save)
- Display information about probes (
-show)
You cannot use the probe command to probe VHDL objects to a VCD database. You can create a VCD database for VHDL objects by using the call command to call predefined CFC routines, which are part of the NC VHDL simulator C interface. See call for details on the call command. See Appendix B, "VCD Format Output," in NC VHDL Simulator Help for information on VCD files.
With an SHM database, you can probe all VHDL signals, ports, and variables that are not declared inside subprograms unless their type falls into one of the following categories:
- Non-standard integer types whose bounds require more than 32 bits to represent
- Physical types
- Access and file types
- Any composite type that contains one of the above types
You can create probes for digital objects only if the objects have read access. (Analog objects have read access by default.) If you specify a digital object as an argument to the probe command, and that object does not have read access, the software reports an error. If you specify a scope as an argument to the probe command, the software excludes from the probe any digital objects within that scope that do not have read access and reports a warning.
probe Command Syntax
probe_command ::= probe probe_params
probe_params ::= [-create] ports_to_probe | object create_params ... db_format |-delete { probe_name | pattern } ... |-disable { probe_name | pattern } ... |-enable { probe_name | pattern } ... |-save [ filename ] |-show [{ probe_name | pattern } ...] [-database dbase_name ] |-emptyok
ports_to_probe ::=
-all [depth] [{-flow | domain}] [-variables] [-vspice_cell] |-inputs [depth] [{-flow | domain}] |-outputs [depth] [{-flow | domain}] |-ports [depth] [{-flow | domain}]
depth ::= -depth { n | all | to_cells}
domain ::= -domain {analog | digital}
object ::= instance_name [{-flow | domain}] | port_name [{-flow | domain}]
create_params ::= |-aicms |-noaicms |-inhconn_signal global_signal |-rnmnets
|-nettype nettype |-name probe_name |-screen [-format format_string ] [-redirect filename ] objects |-variables |-waveform
db_format::= -shm |-vcd |-evcd |-database dbase_name
For detailed syntax information for the probe Tcl command, see "probe Command Syntax" in the section of in the Xcelium Simulator Tcl Command Reference.
probe Command Options
This section describes the options that you can use with the Tcl probe command.
|
Places the values of the specified simulation objects in a database. The simulation objects must have read access. You can only probe simulation objects that have read access. You can also probe signals inside the SPICE scope. For the list of probe options that are supported in SPICE, see Probe Options Supported in SPICE Scope. If you are probing an SHM or VCD database, you can add an argument to the
If you do not specify an argument, the software uses the current debug scope. However, you must include an option that specifies the objects to include in the trace. For more information, see If more than one database is open, you must use one of the following options to specify the database into which you want the software to dump the values:
You can specify the following options for the
|
|
Probes automatically-inserted connect module (AICM) scopes exclusively. By default, You cannot use the following options when you specify
Here are some examples: The following command probes inputs of all AICM scopes relative to the current scope:
Specifying
The following command probes inputs of all AICM scopes relative to the scope
Again, you could use the following command instead, because specifying
|
|
Uses the
Currently, the |
|
Indicates a current probe. You can probe current in Verilog-A and Verilog-AMS modules that are behavioral or that instantiate Spectre subcircuits, Spectre primitives supporting calculated currents, or other Verilog-A or Verilog-AMS modules. You can also probe current in Spectre subcircuit and built-in primitive instances in Verilog-AMS modules. The probed object must be a port or an instance when you use the Use Use
You cannot probe currents in
If you create a current probe after the simulation starts, the value of the current becomes available only after the next time period. |
-inhconn_signal |
Specifies the
You must use the |
|
Uses the
When you specify the Using the You cannot use the following options when you specify
|
|
Prunes the selection of probes by selecting only a specific nettype. The command configures the simulator to probe a net only when the net belongs to the specified nettype. When you specify To probe multiple nettypes, multiple probe commands must be specified. |
|
Deletes the probe(s) specified by the argument. The argument can be a probe name or a list of probe names. You can use the two wildcard characters ( |
|
Disables the probe(s) specified by the argument. The argument can be a probe name or a list of probe names. You can use the two wildcard characters ( |
|
Resumes the probe(s) specified by the argument. The argument can be a probe name or a list of probe names. You can use the two wildcard characters ( |
|
Creates a Tcl script that you can execute to re-create the current databases and probes. If you do not specify a |
|
Outputs information about the probe(s) specified in the argument. The argument can be a probe name or a list of probe names. You can use the two wildcard characters ( Add the |
probe Command Examples
The following command creates a probe on all objects in the current debug scope. All objects have read access. Data is sent to the default SHM database. If no default SHM database exists, a default database called xcelium.shm in the file xcelium.shm is created. The -create modifier is not required. The -all option (or -inputs, -outputs, or -ports) is required because no object or scope_name argument is specified.
xcelium> probe -create -shm -all
The following command creates a probe on all nets of type mynettype; and, mynettype must be a nettype.
xcelium> probe -create -shm -nettype mynettype -depth all
The following command creates a probe on all nets of type mynettype at scope top.I1.I2 and the level below.
xcelium> probe -create -shm -nettype mynettype -depth 2 top.I1.I2
The following command creates a probe on all nets of type mynettype at the top level.
xcelium> probe -create -shm -nettype mynettype
The following command creates a probe on all inputs in the current debug scope. Data is sent to the default VCD database. If no default VCD database exists, a default database called xcelium.vcd in the file xcelium.vcd is created. The -inputs option (or -all, -outputs, or -ports) is required because no object or scope_name argument is specified.
Probing analog objects to a VCD database is not supported, so the following command should not be used for such objects.
xcelium> probe -vcd -inputs
The following command creates a probe on all ports in the current debug scope. Data is sent to the database waves. This database must already exist. The -ports option (or -all, -outputs, or -inputs) is required because no object or scope_name argument is specified.
xcelium> probe -database waves -ports
The following command creates a probe on the signal sum in the current debug scope and sends data to the default SHM database (creating one called xcelium.shm in the file xcelium.shm, if necessary).
xcelium> probe -shm sum
The following command creates a probe on sum and c_out in the current debug scope and sends data to the default SHM database (creating one called xcelium.shm in the file xcelium.shm , if necessary).
xcelium> probe -shm sum c_out
The following command creates a probe on sum in scope u1, sending data to the default SHM database (creating one called xcelium.shm in the file xcelium.shm, if necessary).
xcelium> probe -shm u1.sum
The following command creates a probe on all objects in scope u1.
xcelium> probe -shm u1
The following command creates a probe on all objects in scopes u1 and u2.
xcelium> probe -shm u1 u2
The following command creates a probe on all ports in scope u1.
xcelium> probe -shm u1 -ports
The following command creates a probe on all ports in scope u1 and its subscopes.
xcelium> probe -shm u1 -ports -depth 2
The following command creates a probe on all ports in scope u1 and all scopes below u1.
xcelium> probe -shm u1 -ports -depth all
The following command creates a probe on every signal inside spice instance spice_A1.
xcelium> probe -create -shm top.spice_A1.* -depth all
The following command creates a probe on all ports in scope u1 and all scopes below u1, stopping at modules with a `celldefine directive.
xcelium> probe -shm u1 -ports -depth to_cells
The following command creates a probe called peek.
xcelium> probe -shm sum -name peek
The following command monitors value changes on the digital signals clock and count, and an analog signal, analogsig. When either of the digital signals changes value, output for all the signals displays on the screen.
xcelium> probe -screen clock count analogsig
Created probe 1
xcelium> run 10 ns
Time: 5 NS: board.clock = 1'h1 : board.count = 4'hx
Ran until 10 NS + 0
The following command probes all the port currents of instance top.A.
probe -create -flow -shm -ports top.A
The following command probes a single port current. The command specifies, as it must, the formal port name of the instance being probed.
probe -create -shm -flow top.A1.b1
The following command probes the current drawn by the top.A instance from the \vdd! global net through inherited connections. Notice how full hierarchical names are specified for both the instance and the net. The original name of the net is cds_globals.\vdd! but preserving that name through the Tcl shell requires a second backslash, the space at the end of the name, and quotation marks.
probe -create -shm -flow top.A -inhconn_signal "cds_globals.\\vdd! "
In the following command, the -format option is included to format the output of probe -screen.
xcelium> probe -screen -format "clock = %d \ncount = %b" clock count
Created probe 1
xcelium> run 10 ns
clock = 1'd1count = 4'bxxxx
Ran until 10 NS + 0
The following example illustrates the simulator output when you use probe -screen to monitor signal value changes, and then disable the probe at some later time.
xcelium> probe -screen clock count
Created probe 1
xcelium> probe -disable 1
xcelium> run 10 ns
Time: 5 NS: board.clock = <disabled> : board.count = <disabled>
Ran until 10 NS + 0
The following command displays the state of all probes.
xcelium> probe -show
The following command displays the state of the probe called peek.
xcelium> probe -show peek
The following command disables the probe called peek.
xcelium> probe -disable peek
The following command enables the probe called peek , which was disabled in the previous command.
xcelium> probe -enable peek
The following command deletes all probes beginning with the characters pe.
xcelium> probe -delete pe*
The following command deletes all probes beginning with the characters v and w.
xcelium> probe -delete {[vw]}
The following command shows the error message that is displayed if you run in regression mode and then probe an object that does not have read access.
xcelium> probe -shm d
xmsim: *E,RDACRQ: Object does not have read access: hardrive.h1.d.
The following command produces a warning message for attempting to probe an analog object to a VCD database.
xcelium> probe -create -vcd top.analogResult -waveform
The error message is
xmsim: *W,PRALOB: Cannot probe analog object:
top.analogResult. This object ignored.
xmsim: *E,PRWHAT: no items specified in probe -create command.
