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