SET Command
Forces signals to values for a single test or modifies delays, decays, and timing check parameters.
| Command | SET |
|---|---|
| Abbreviation | SE |
| Category | Circuit Modification |
Function
The SET command can be used to force signals to remain at specified values for a single test.
The SET command can be used to modify the delays of specified signals at run time.
The SET command can be used to modify decays at specified signals at run time.
The SET command can be used to modify timing check parameters at supported elements.
Forcing Signal Values
Signals may be forced to logic-0, logic-1, X (unknown), or Z (floating unknown) with the respective commands:
SET ZERO=<signals> TNUM=<tnum>
SET ONE=<signals> TNUM=<tnum>
SEt X=<signals> TNUM=<tnum>
SET HIZ=<signals> TNUM=<tnum>
The specified signals will be forced to the specified value at the start of the specified test. If the TNUM keyword option is omitted, the signals will be forced to the specified value at the start of the next test, after simulation is resumed. At the end of the test, the forced signals are released to assume consistent states.
Values to be SET at specified signals are scheduled in a queue. The NO prefix may be used to cancel specific SET operations. The LIST keyword, with either a list of signals or its colon form, may be additionally used to release signals regardless of forced value. For example:
NO SET ONE=a,b TNUM=50
cancels a previous SET command forcing signals a and b to logic-1 at test 50 (but does nothing if they are not forced to this value). The command:
NO SET ONE: TNUM=50
cancels all SETs forcing signals to logic-1 at test 50, while:
NO SET LIST: TNUM=50
cancels all SET commands that force any values at test 50. If the TNUM keyword option is omitted in the NO SET command, the next test is implied.
Modifying Signal Delays
The FALL keyword option allows modification of the specified signal's fall delays, without affecting their rise delays. The RISE keyword option allows modification of the specified signals' rise delays, without affecting their fall delays. The CHANGE keyword option sets both the rise and fall delays of the specified signals to the specified value:
SET FALL=<delay spec> LIST=<signals>
SET RISE=<delay spec> LIST=<signals>
SET CHANGE=<delay spec> LIST=<signals>
The LIST keyword's colon form can also be used to specify "all signals".
The delay specification <delay spec> can either be an integer or an integer percentage; an integer between 0 and 100, inclusive, followed by a percent sign (%), and optionally preceded by a plus (+) or minus(-) sign.
An integer specifies an absolute value. For example,
SET RISE=20 FALL=15 LIST=a,b
sets the rise delays of signals a and b to 20 and their fall delays to 15, while:
SET CHANGE=1 LIST:
sets all rise and fall delays to one time-unit.
An integer percentage specifies a change relative to the current delay value.
For example:
SET CHANGE=10% LIST: or SET CHANGE=+10% LIST:
increases all rise and fall delays by 10%, while:
SET RISE=-20% FALL=-15% LIST=a,b
decreases the rise delays of signals a and b by 20%, and their fall delays by 15%.
If a signal has been specified that has multiple drivers (wire-tie), then all drivers will be modified accordingly.
Modifying Signal Decays
The DECAY keyword option allows modification of the specified signal's decay times. The command form is:
SET DECAY=<decay spec> LIST=<signals>
The LIST keyword's colon form can also be used to specify "all signals".
The decay specification, <decay spec>, can be an integer or an integer percentage; an integer between 0 and 100, inclusive, followed by a percent sign (%), and optionally preceded by a plus (+) or minus(-) sign. Additionally, this decay specification can be any valid prefix of the word INFINITE:
SET DECAY=INFINITE LIST=<signals>
An integer specifies an absolute value. For example,
SET DECAY=500 LIST=a,b
sets the decay time at signals a and b to 500.
An integer percentage specifies a change relative to the current delay value.
For example:
SET DECAY=10% LIST: or SET DECAY=+10% LIST:
increases the decay at all signals by 10%, while
SET DECAY=-10% LIST:
decreases the decay at all signals by 10%.
The INFINITE value sets the specified signals' decay times to infinite: For example:
SET DECAY=INFINITE LIST:
sets all decays to infinite.
Modifying Functional Timing Check Parameters
The SET command can be used to modify timing-check parameter values.
The run command form:
SET PARTS: <timing-check>=<delay spec>
modifies the specified timing check parameter values in all parts, and
SET PARTS=<parts_ff> <timing-check>=<delay spec>
does so for the selected parts.
The keyword, <timing-check>, is the designated timing-check name (e.g., SETUP, HOLD, etc.), and <delay spec> is the specified value, which can either be an integer or an integer percentage; an integer between 0 and 100, inclusive, followed by a percent sign (%), and optionally preceded by a plus (+) or minus(-) sign.
An integer specifies an absolute value. For example:
SET PART=F1 PW.C.L=10
assigns the value 10 time-units to the pulsewidth check parameter for low clock.
An integer percentage specifies a change relative to the current delay value.
For example:
SET PART: SETUP=+30% HOLD=-20%
increases all setup timing checks by 30% and decrease all hold timing checks by 20%.