XPROPAGATE Command
Controls X-pulse creation and propagation for hazards and timing violations.
| Command | XPROPAGATE |
|---|---|
| Abbreviation | XP |
| Category | Simulation Control |
Function
The XPROPAGATE command is used to globally enable or disable X-pulse creation/propagation for spike hazards and near hazards.
The XPROPAGATE command is used to selectively enable or disable X-pulse creation/propagation for timing check violations at SIMIC D latches and edge-triggered flip-flop primitives.
The XPROPAGATE command is used to selectively modify the filter and liberal spike control parameters.
Usage
SIMIC, by default, propagates an X whenever a spike, or part timing violation (setup, hold, or pulse-width) occurs. X-propagation is controlled by the XPROPAGATE command.
Globally Enabling And Disabling X-Propagation For Hazards
The SPIKE keyword option globally controls whether X-propagation is performed for spike hazards. The command:
NO XPROPAGATE SPIKE:
globally disables X-propagation for spike hazards, while the command:
XPROPAGATE SPIKE:
globally re-enables it.
The NEAR keyword option globally controls whether X-propagation performed for near hazards. The command:
XPROPAGATE NEAR:
enables X-propagation for near hazards, while the command:
NO XPROPAGATE NEAR:
disables it.
By default, X-propagation is disabled for near hazards.
Controlling X-Propagation For Functional Timing Violations
The PART keyword option, combined with individual timing check specifications, allow X-propagation for timing check violations to be controlled on a per-instance, per-check basis. The command:
NO XPROPAGATE PARTS=<parts_ff> <timing-check>:
disables X-propagation for the specified timing check violations and parts, while the command:
NO XPROPAGATE PARTS: <timing-check>:
disables X-propagation for the specified timing checks for all parts. Different timing checks may be specified in the same command.
For example, assuming part f1 is a DCF primitive, the command:
NO XPROPAGATE PART=f1 HOLD: SETUP.NR:
would disable X-propagation for all hold-time violations and for setup-time violations between the NR and CLK pins at this flip-flop.
Subsequently, X-propagation can be re-enabled with the same commands, except the NO prefix would be omitted. For example:
XPROPAGATE PART=f1 HOLD: SETUP.NR:
re-enables X-propagation for all hold-time violations and for setup-time violations between the NR and CLK pins at flip-flop f1 of the previous example.
Modifying Spike Control Parameters
The liberal and filter spike control parameters can be modified independently with the XPROPAGATE run command. The commands:
XPROPAGATE FILTER=<filt_lib> LIST=<signals>
XPROPAGATE LIBERAL=<filt_lib> LIST=<signals>
change the filter and liberal parameters, respectively, to the value <filt_lib> for the selected signals in <signals>. The commands:
XPROPAGATE FILTER=<filt_lib> LIST:
XPROPAGATE LIBERAL=<filt_lib> LIST:
change the filter and liberal parameters, respectively, for all signals.
The <filt_lib> value is a percentage from 0 to 100, and is specified as an integer, optionally followed by a percentage sign (e.g. 50 or 50%).