Net definition
TABLE(' sig_list, [$IOS] ');
Object type Pascal procedure
Status Base code
User level 0
Description
Used to define signals for table display from the simulator. Any signal
in the design may be displayed including signals down the hierarchy. A
special key word "$IOS" allows all the top level signals defined in the
top level DEFIN/OUT/IO statements to be displayed in order. Signals may be
inserted in the TABLE statement more than once. TABLE statements are
additive; that is if there are too many signals for one TABLE statement
more than one may be used.
Constraints
Must appear immediately after NETEND. Signals must exist in netlist. The
TABLE statement must appear before the first SIM statement. In release
mode the argument must be '$IOS'.
Examples
1) TABLE('$IOS'); {table top level ios}
2) table(' a,b,c, $IOS'); {table a,b,c and top ios}
3) table(' ml.xl.a, ml.x2.a '); {table sigs in the hierarchy}
Typical errors
1) TABLE('$ios'); {"$ios" lower case}
2) table(' strange"); {signal not found}
See also
DEFIN, DEFOUT, sig_list, RELEASE
L2I v0r1 Draft copy Page 2.1
Simulator commands
SET_SIGNALS(' sig_list', 'value_list');
Object type : Pascal procedure
Status : Base code
User level : 0
Description
This command is one way of changing signal values during simulation. The
SS or SET-SIGNALS statement takes a signal list and sets them to values
contained in value_list IN ORDER at the current-time. The current-time
will normally be at the start of the static cycle. The name of the
SET_SIGNALS procedure may be shortened to SS. This procedure is additive
in effect, ie if a lot of signals need to be set more than one SS
statement may be used. Since a SIM statement often follows an SS statement
to two are combined in an SSS statement.
The state of input signals can be changed at any time during the
simulation cycle (rather than at its start) by using the DELTA_TIME
statement.
Constraints
Normally used at any time after NETEND. Signals must exist and the number
of values in the value-list must equal to the number of signals. This
statement should not normally be used to set internal signals or outputs.
Only input or bidirectional signals may be set in release mode.
Examples
1) SS('a,b,c,d', ' 00 11'); { a := 0, b := 0, c := 1, d := 1 }
2) set_signals('a ', 'l');
Typical errors
1) SS('data clock', 01); missing quotes for "Ol" 1
2) SS('a b c d',' 00 '); 4 signals but 3 values 1
3) SS('a b c',' 1010'); 3 signals but 4 values I
4) SSS('a b c','1010'); same as SS('a b c','1010'); SIM;
See also
SIM, sig_list, value_list, DELTA_TIME, SETVECTOR
L2I v0r1 Draft copy Page 2.2
Simulator commands
SIM;
Object type Pascal procedure
Status Base code
User level 0
Description
This command causes the simulation to run with the current values of
input signals until the simulation activity stops. If the simulation time
is greater than the cycle time (is non static patterns) a warning is
printed. If the output_enable variable is true (the default) the values of
the signals defined in the TABLE statements are output at the end of the
cycle. If TRACE is active the trace outputs are also printed during
simulation. (see TRACE).
SIM normally increments the time to the beginning of the next cycle after
simulation activity stops.
Constraints
Normally used at any time after NETEND.
Examples
1) SIM;
2) for x := 1 to 64 {64 clocks} do
begin SS('clock','O'); SIM;
SS('clock','1'); SIM;
end;
Typical errors
See Constraints.
See also
SET_SIGNALS, TRACE, TABLE
L2I v0r1 Draft copy Page 2.3
Simulator commands
DEFVECTOR('sig_list');
Object type Pascal procedure
Status from vlrl
User level 2
Description
Defines a vector of signals for setting using the SETVECTOR statement.
This statement is useful when a lot of the same signals are frequently set
during the simulation and saves a lot of re-typing of signal names which
would be necessary if the SET_SIGNALS statement was used. DEFVECTOR is
additive in effect and up to 80 vector signals may be defined with any
number of DEFVECTORS,
Constraints
Normally used at any time after NETEND.
Examples
1) DEFVECTOR('A b c d'); DEFVECTOR('e f g'); SETVECTOR('0101010');
Typical errors
1) Signals do not exist in netlist.
2) One of both quotes missing.
See also
SET-SIGNALS, SETVECTOR
L2I v0r1 Draft copy Page 2.4
Simulator commands
SETVECTOR('value_list');
Object type Pascal procedure
Status Available from vlrl
User level 2
Description
This statement is used to set signals in a vector defined with DEFVECTOR
statements. Its function is rather similar to SET-SIGNALS except that the
sig_list is predefined. This saves having to re-type the signals each time
they are set. It also allows patterns to be read in directly from a
pattern file as strings. SETVECTOR may be shortened to "SV".
Constraints
May not appear before first DEFVECTOR.
May not appear before NETEND.
Number of values in value-list must equal the total number of signals
defined in preceding DEFVECTOR statements.
Examples
1) SETVECTOR('01010 1010001010000001011 111110 0111111111100010101');
2) while not eof(patfile) do
begin
readln(patfile, s);
SV( s);
end;
Typical errors
1) Wrong number of values.
2) Vector not defined using DEFVECTOR(S)
See also
SET_SIGNALS, DEFVECTOR
L2I v0r1 Draft copy Page 2.5
Simulator commands
SETBUS('bus-name','hex-value');
Object type Pascal procedure
Status Available from v1r1
User level 2
Description
This statement is used to set signals in a bus defined with one of the
DEFBUS statements. Its effect is similar to the SET-SIGNALS statement
except that is acts on busses and has a hex value rather than a value
list. It aligns the least significant bit of the hex_value with the
lower_bound bit of the bus.
Constraints
As for SET_SIGNALS.
Examples
1) SETBUS('a', 'FF');
2) SETBUS('address','F0F0F0F0');
Typical errors
1) SETBUS('abo FF'); {must be two strings}
2) SETBUS('abo','xyz'); {non hex chars in hex parameters}
See also
SET-SIGNALS, DEFINBUS
L2I v0r1 Draft copy Page 2.6
Simulator commands
TRACE;
Object type Pascal procedure.
Status Base code
User level 2
Description
TRACE is a procedure used to switch the simulation into and out of a
tracing mode. One line is written each time a signal defined in the TABLE
statement changes value. The time at which changes occur are also output.
TRACE has a toggle function and so a second TRACE turns tracing off and so
on. The default is for trace to be off.
Constraints
TRACE is legal anywhere but will normally be placed in the simulate
statements. May not be used in release mode.
Examples
1) TRACE;
See also
TABLE, SIM
L2I v0r1 Draft copy Page 2.7
Simulator commands
LIST_FANOUTS( max_fanout );
Object type Pascal procedure.
Status only counts instances till vl.
User level 3
Description
This statement may be used to list loading on each net. A parameter
allows the user to filter nets which have a loading of less than
max_fanout. This may also be set to 0 to list fanout on all nets.
Constraints
Legal anywhere after the NETEND statement.
Examples
1) LIST_FANOUTS( 0 ); {list loading on all nets}
2) LIST_FANOUTS(20); {list nodes with 20 or more effective loads}
See also
XREF, READ_NET_LOADS
L2I v0r1 draft copy Page 2.8
Simulator commands
CYCLE( positive_integer_number );
Object type Pascal procedure.
Status Base code.
User level 1
Description
This statement can be used to modify the default pattern to pattern cycle
time. The time given as a parameter must be in whole nanoseconds. The
default cycle time is 1000nS. If the cycle time is set below that of the
slowest path in the circuit the patterns become non static and a warning
will be generated by the SIM statement.
Constraints
Only one cycle statement is permitted and must appear before the first
SIM statement.
Examples
1) CYCLE(100); { change cycle time to 100nS }
Typical errors
1) CYCLE(100.0); {time may not be a real number}
2) CYCLE(-30); {time may not be negative}
3) CYCLE('200'); {number should not be in quotes}
See also
SIM
L2I v0r1 Draft copy Page 2.9
Simulator commands
SAVE_STATE('save_file_name');
Object type Pascal procedure.
Status base code.
User level 3
Description
Used to save the state of the simulator so that another simulation can be
run from the current state. All the internal states are saved. The state
file created is only valid for loading into another simulation with an
IDENTICAL netlist. Any number of SAVE_STATEs may be used. The file name is
written with an extension of '.sav'. It is an ascii file.
SAVE-STATE is normally used to avoid rerunning early parts of the
simulation during design debug. SAVE_STATE may be used to save several
states within the simulation.
Constraints
May only be used after NETEND.
Examples
1) SAVE_STATE('stateOO1'); {writes a file called stateOO1.sav}
See also
LOAD-STATE, RELEASE
L2I v0rl Draft copy Page 2.10
Simulator commands
LOAD_STATE('save_file_name');
Object type Pascal procedure.
Status Base code.
User level 3
Description
Used to load a previously saved save file LOAD-STATE sets all the states
in the netlist to the values that they had when the corresponding
SAVE-STATE was done. SAVE-STATE and LOAD-STATE can be used to split up
simulations during debugging but neither are valid in release mode. A
extension of '.sav' is added to the file name before it is read.
LOAD-STATE may be used more than once.
Constraints
May only be used after NETEND.
The save file must exist and be valid.
Examples
1) LOAD-STATE('stateOO1'); {reads a file called stateOO1.sav}
See also
SAVE_STATE, RELEASE
L2I v0r1 Draft copy Page 2.11
Simulator commands
OUTPUT_ENABLE
Object type : Pascal variable of type boolean
Status : Base code
User level : 4
Description
It is very useful in some simulations to be able to turn off the
simulation Output. OUTPUT_ENABLE can reduce simulation time and save
generating pages of repetitive output. Note that it is a boolean variable
that can only be set to the values "true" or "false". The default value is
true but can be changed at any time by the user. Only pattern output data
is effected by this variable, warning and error messages are printed
normally.
Constraints
None.
Examples
1) OUTPUT_ENABLE := true; {enable the output}
2) OUTPUT_ENABLE := false; {turn off the output}
Typical errors
1) output_enable true; { missing ':' }
2) output_enable -1; { -1 is not a valid value }
See also
GET_VALUE, SIM
L2I v0r1 Draft copy Page 2.12
Simulator commands
GET_VALUE('sig_name');
Object type Pascal function of type char
Status Available
User level 4
Description
Sometimes it is useful to be able to access the state of the circuit from
the test sequence itself. This makes conditional simulation possible.
GET-VALUE is a Pascal function that returns that current value of the
given signal as the character 'X', 'I', or 'O'. GET_VALUE should not be
used too frequently in each test sequence since it may get difficult to
follow the control flow.
Constraints
sig-name must be defined in the netlist,
May not be used before NETEND.
Examples
1) while GET_VALUE('q9') <> '1' do {clock till q9 is high}
begin SS('clock','l'); SIM; SS('clock','O'); SIM end;
2) if (( GET_VALUE('a') = 'O') and ( GET-VALUE('b') = '1')) then
OUTPUT_ENABLE := false;
Typical Errors
1) if GET_VALUE(testl) = 1 then ...... {value '1' must have quotes}
2) if GET_VALUE('strange') = 'O' then.... { 'strange' not found }
See also
OUTPUT_ENABLE
L2I v0r1 Draft copy Page 2.13
Simulator commands
DELTA_TIME( time );
Object type Pascal procedure
Status Base code.
User level 4
Description
Used to space input signal changes from the start of the cycle and from
each other this command can be used to model the real timings the device
will experience in its application. Since this type of timing test is not
supported for sample units the DELTA_TIME command may not be used in
release mode. DELTA_TIME is used to change the time at which the
SS,SETARRAY, and SETVECTOR statements modify signal values. The SIM
command always resets the delta time.
Constraints
Time must be positive and less than cycle time. May not be used in
release mode.
Examples
SS('data,clock','00');
DELTA_TIME( 105);
SS ('data','1');
DELTA_TIME( 110);
SS('clock','1'); {check setup of 5nS is OK}
SIM;
Typical Errors
See also
CYCLE, SIM
L2I v0r1 Draft Copy Page 2.14
Simulator commands
LIST_UNTOGGLED;
Object type Pascal procedure
Status Available vlrl
User level 4
Description
Used to make a list of all the nodes in the netlist that have not been
toggled high or toggled low. It is normally used after the last SIM
statement.
Constraints
None
Examples
1) LIST_UNTOGGLED;
Typical Errors
If used before the simulation is finished it list the nodes untoggled
at that point and not by the whole simulation.
See also
RELEASE
L2I v0rl Draft copy Page 2.15
Simulator commands
READ_NET_LOADS('load_file_name');
Object type : Pascal procedure
Status : Available vlrl
User level : 4
Description
Reads net loads from a file. Normally this statement is used to read in
load data generated from a vendors layout program giving a much more
accurate simulation.
The file is an ascii file with a net name followed by an integer on each
line. Users can write their own load files if they wish to try the effects
of loading. The file does not need to contain all the nets. The file name
assumes a .lda extension.
Constraints
Must appear after NETEND. May appear anywhere in the simulation but it is
only effective for simulation statements which appear after it. It is not
allowed in release mode.
Examples
1) READ_NET_LOADS('layout_loads'); {load the file layout_loads.loa}
Typical Errors
File does not exist.
data in file not valid.
See also
LIST_FANOUTS
Draft copy Page 2.16
Simulator commands
SETARRAY('sig_list', integer ); HEXINT('hex_string');
Object type Pascal procedure
Status Available vlrl
User level 4
Description
This procedure is similar to SET_SIGNALS except that the sig_list is set
to values specified by a single integer rather than a value_list. The
order of sig_list is significant and the first signal represent the most
significant bit in the integer. This procedure is useful for setting
signals within loops. The User function HEXINT may be used in place of the
integer to set the array of signals directly to a HEX variable.
Constraints
May not appear before NETEND.
Examples
1) for x := 0 to 15 do {do all 16 combinations}
begin
SETARRAY('s3, s2, sl, sO', x ); SIM;
end;
2) SETARRAY('a7,a6,a5,a4,a3,a2,al,aO', HEXINT('A3'));
Typical Errors
SETARRAY('a b c', 15); {cannot set 3 bits to 15}
See also
SET_SIGNALS, SETVECTOR
Draft copy Page 2.17
Page created by: heaton@home.com
Changes last made on: Wed Jun 12 10:09:54 1996