1IRSIM(1)                     IRSIM Users's Manual                     IRSIM(1)
2
3
4

NAME

6       irsim - An event-driven logic-level simulator for MOS circuits
7

SYNOPSIS

9       irsim [-s] prm_file sim_file ... [+hist_file] [-cmd_file ...]
10

DESCRIPTION

12       IRSIM  is  an event-driven logic-level simulator for MOS (both N and P)
13       transistor circuits.  Two simulation models are available:
14
15       switch Each transistor is modeled as a voltage-controlled switch.  Use‐
16              ful  for  initializing  or  determining the functionality of the
17              network.
18
19       linear Each transistor is modeled as a resistor in series with a  volt‐
20              age-controlled switch; each node has a capacitance.  Node values
21              and transition times are computed from the resulting RC network,
22              using  Chorng-Yeoung Chu's model.  Chris Terman's original model
23              is not supported any more.
24
25       If the -s switch is specified, 2 or more transistors of the  same  type
26       connected  in  series,  with  no  other  connections  to  their  common
27       source/drain will be stacked into a compound transistor  with  multiple
28       gates.
29
30       The  prm_file  is  the  electrical  parameters  file that configure the
31       devices to be simulated.  It defines the  capacitance  of  the  various
32       layers,   transistor   resistances,  threshold  voltages,  etc...  (see
33       presim(1)).
34       If prm_file does not specify an absolute path then  IRSIM  will  search
35       for the prm_file as follows (in that order):
36
37            1) ./<prm_file> (in the current directory).
38            2) ${CAD_ROOT}/irsim/<prm_file>
39            3) ${CAD_ROOT}/irsim/<prm_file>.prm
40
41       The  default search directory (nominally /usr/local/lib) can be overri‐
42       den by setting the environment variable  CAD_ROOT  to  the  appropriate
43       directory prior to running IRSIM (i.e. setenv CAD_ROOT /cad/lib).
44
45       IRSIM first processes the files named on the command line, then (assum‐
46       ing the exit command has not been processed) accepts commands from  the
47       user, executing each command before reading the next.
48
49       File  names  NOT  beginning with a '-' are assumed to be sim files (see
50       sim(5)), note that this version does not require to run the  sim  files
51       through  presim.   These  files are read and added to the network data‐
52       base.  There is only a single name space for nodes,  so  references  to
53       node  "A" in different network files all refer to the same node.  While
54       this feature allows one to modularize a large circuit into several net‐
55       work  files,  care must be taken to ensure that no unwanted node merges
56       happen due to an unfortunate clash in names.
57
58       File names prefaced with a '-' are assumed to be  command  files:  text
59       files  which  contain command lines to be processed in the normal fash‐
60       ion.  These files are processed line by line; when  an  end-of-file  is
61       encountered,  processing  continues  with  the next file. After all the
62       command files have been processed, and if an  "exit"  command  has  not
63       terminated  the simulation run, IRSIM will accept further commands from
64       the user, prompting for each one like so:
65
66       irsim>
67
68       The hist_file is the name of a file created with the dumph command (see
69       below).   If  it  is  present,  IRSIM will initilize the network to the
70       state saved in that file.  This file is different from the ones created
71       with  the  ">"  command  since it saves the state of every node for all
72       times, including any pending events.
73
74       This version supports changes to the network through  the  update  com‐
75       mand.  Also, the capability to incrementally re-simulate the network up
76       to the current time is provided by the isim command.
77
78
79

COMMAND SUMMARY

81          @ filename            take commands from command file
82          ? wnode...            print info about node's  source/drain  connec‐
83                                tions
84          ! wnode...            print info about node's gate connections
85          < filename            restore network state from file
86          > filename            write current network state to file
87          << filename           same as "<" but restores inputs too
88          | comment...          comment line
89          activity from [to]    graph circuit activity in time interval
90          ana wnode...          display nodes in analyzer window
91          analyzer wnode...     display nodes in analyzer window
92          assert wnode [m] val  assert that wnode equals value
93          assertWhen nodeT valT node val
94                                assert when a condition is met
95          back [time]           move back to time
96          c [n]                 simulate for n clock cycles (default:1)
97          changes from [to]     print nodes that changed in time interval
98          clock [node [val]]    define value sequence for clock node
99          clear                 clear analyzer window (remove signals)
100          d [wnode]...          print display list or specified node(s)
101          debug [debug_level...]
102                                set debug level (default: off)
103          decay [n]             set charge decay time (0 => no decay)
104          display [arg]...      control what gets displayed when
105          dumph filename...     write net history to file
106          hist [on|off]         turn history on or off
107          exit [status]         return to system
108          flush [time]          flush out history up to time (default: now)
109          h wnode...            make node logic high (1) input
110          has_coords            print YES if transistor coordinates are avail‐
111                                able
112          inputs                print current list of input nodes
113          ires [n]              set incremental resolution to n ns
114          isim [filename]       incrementally resimulate changes form filename
115          l wnode...            make node logic low (0) input
116          logfile [filename]    start/stop log file
117          model [name]          set simulation model to name
118          p                     step clock one simulation step (phase)
119          path wnode...         display critical path for last transition of a
120                                node
121          powlogfile [filename] start/stop power logfile
122          powtrace -[node]...   start/stop   power   tracing    of   specified
123                                node(s)/vector(s)
124          powstep               toggle the display of power estimate for  each
125                                timestep
126          print comment...      print specified text
127          printp                print a list of all pending events
128          printx                print all undefined (X) nodes
129          q                     terminate input from current stream
130          R [n]                 simulate   for   n   cycles   (default:longest
131                                sequence)
132          readh filename        read history from filename
133          report[level]         set/reset reporting of decay events
134          s [n]                 simulate for n ns. (default: stepsize)
135          stepsize [n]          set simulation step size to n ns.
136          set vector value      assign value to vector
137          setlog[file|off]      log net changes to file (off -> no log)
138          setpath               set search path for cmd files
139          stats                 print event statistics
140          sumcap                print out the sum of the  capacitance  of  all
141                                nodes
142          t [-]wnode...         start/stop tracing of specified nodes
143          tcap                  print list of shorted transistors
144          time [command]        print resource utilization summary
145          until wnode [mask] value count
146                                delayed assert based on the clock count.
147          u wnode...            make node undefined (X) input
148          unitdelay [n]         force transitions to take n ns. (0 disables)
149          update filename       read net changes from file
150          V [node [value...]]   define sequence of inputs for a node
151          vector label node...  define bit vector
152          vsupply voltage       set   supply  voltage  for  calculating  power
153                                (default 5V)
154          w [-]wnode...         add/delete nodes from display list
155          wnet [filename]       write network to file
156          x wnode...            remove node from input lists
157          Xdisplay [host:n]     set/show X display (for analyzer)
158
159
160
161       COMMAND DESCRIPTIONS
162
163       Commands have the following simple syntax:
164
165       cmd arg1 arg2 ... argn <newline>
166
167       where cmd specifies the command to be performed and the argi are  argu‐
168       ments to that command.  The arguments are separated by spaces (or tabs)
169       and the command is terminated by a <newline>.
170
171       If cmd is not one of the  built-in  commands  documented  below,  IRSIM
172       appends  ".cmd"  to  the  command name and tries to open that file as a
173       command file (see "@" command).  Thus the command "foo"  has  the  same
174       effect as "@ foo.cmd".
175
176       Notation:
177
178
179       ...    indicates zero or more repetitions
180
181       [ ]    enclosed arguments are optional
182
183       node   name of node or vector in network
184
185       wnode  name  of  node  or  vector  in network, can include '*' wildcard
186              which matches any sequence of zero or more characters.  The pair
187              of  characters  '{'  and  '}'  denote  iteration over the limits
188              enclosed by it, for example: name{1:10} will expand into  name1,
189              name2  ... name10.  A 3rd optional argument sets the stride, for
190              example: name{1:10:2} will expand into name1, name3, ...  name7,
191              name9.
192
193       | comment...
194              Lines  beginning  with  vertical bar are treated as comments and
195              ignored -- useful for comments or temporarily disabling  certain
196              commands in a command file.
197
198       Most  commands  take  one  or more node names as arguments.  Whenever a
199       node name is acceptible in a command line, one can also use the name of
200       a  bit  vector.  In this case, the command will be applied to each node
201       of the vector (the "t" and "d" treat vectors specially, see below).
202
203       vector label node...
204              Define a bit vector named "label" which includes  the  specified
205              nodes.   If you redefine a bit vector, any special attributes of
206              the old vector (e.g., being on the display or  trace  list)  are
207              lost.   Wild  cards  are  not accepted in the list of node names
208              since you would have no control over the order in which matching
209              nodes would appear in the vector.
210
211       The simulator performs most commands silently.  To find out what's hap‐
212       pened you can use one of the following commands to examine the state of
213       the network and/or the simulator.
214
215       set vector value
216              Assign  value to vector.  For example, the following sequence of
217              commands:
218
219                   vector BUS bit.1 bit.2 bit.3
220                   set BUS 01x
221
222              The first command will define BUS to be  a  vector  composed  of
223              nodes  bit.1,  bit.2, and bit.3.  The second command will assign
224              the following values:
225
226                 bit.1 = 0
227                 bit.2 = 1
228                 bit.3 = X
229
230              Value can be any sequence of [0,1,h,H,l,L,x,X], and must  be  of
231              the same length as the bit vector itself.
232
233       d [wnode]...
234              Display.   Without  arguments  displays the values all nodes and
235              bit vectors currently on the display list (see w command).  With
236              arguments,  only  displays  the  nodes or bit vectors specified.
237              See also the "display" command if you wish to have  the  display
238              list  printed out automatically at the end of certain simulation
239              commands.
240
241       w [-]wnode...
242              Watch/unwatch one or more nodes.   Whenever  a  "d"  command  is
243              given, each watched node will displayed like so:
244
245              node1=0 node2=X ...
246
247              To  remove a node from the watched list, preface its name with a
248              '-'.  If wnode is the name of a bit vector, the  values  of  the
249              nodes which make up the vector will be displayed as follows:
250
251              label=010100
252
253              where  the  first  0 is the value of first node in the list, the
254              first 1 the value of the second node, etc.
255
256       assert wnode [mask] value
257              Assert that the boolean value of the node  or  vector  wnode  is
258              value.   If  the  comparison fails, an error message is printed.
259              If mask is given then only those bits corresponding to zero bits
260              in  mask take part in the comparison, any character other than 0
261              will skip that bit.  The format of the error message is the fol‐
262              lowing:
263
264                 (tty, 3): assertion failed on 'name' 10X10 (1010X)
265
266              Where  name  is  the  name of the vector, followed by the actual
267              value and the expected value enclosed in parenthesis.  If a mask
268              is  specified,  then  bits that were not compared are printed as
269              '-'.
270
271       until wnode [mask] value count
272              Acts just like the assert command except it  requires  an  addi‐
273              tional  argument <count> which is the max number of clock cycles
274              to run. Instead of just testing the current state, like  assert,
275              until  tests  for  true  and if false it runs clock cycles until
276              condition becomes true or count runs out.
277
278       ana wnode...
279              This is a shorthand for the analyzer command (described below).
280
281       analyzer wnode...
282              Add the specified node(s)/vector(s) to the analyzer display list
283              (see irsim-analyzer(3) for a detailed explanation).  If the ana‐
284              lyzer window does not exist, it will be created.   If  no  argu‐
285              ments  are given and the analyzer window already exists, nothing
286              happens.
287
288       Xdisplay [host:display]
289              You must be able to connect to an X-server  to  start  the  ana‐
290              lyzer.   If  you haven't set up the DISPLAY environment variable
291              properly, the analyzer command may fail. If this is the case you
292              can  use  the Xdisplay command to set it from within the simula‐
293              tor.  With no arguments, the name of the current  X-server  will
294              be printed.
295
296       clear  Removes  all  nodes  and vectors from the analyzer window.  This
297              command is most useful in command scripts for switching  between
298              different signals being displayed on the analyzer.
299
300       "?"  and  "!"  allow the user to go both backwards and forwards through
301       the network.  This is a useful debugging aid.
302
303       ? wnode...
304              Prints a synopsis of the named  nodes  including  their  current
305              values and the state of all transistors that affect the value of
306              these nodes.  This is the most common way of  wandering  through
307              the network in search of what went wrong.
308              The output from the command ? out looks like
309
310              out=0 (vl=0.3 vh=0.8) (0.100 pf) is computed from:
311              n-channel phi2=0 out=0 in=0 [1.0e+04, 1.3e+04, 8.7e+03]
312              pulled down by (a=1 b=1)  [1.0e+04, 1.3e+04, 8.8e+03]
313              pulled up [4.0e+04, 7.4e+04, 4.0e+04]
314
315              The  first line gives the node's name and current value, its low
316              and high logic thresholds, user-specifed low-to-high  and  high-
317              to-low  propagation  delays  if  present, and its capacitance if
318              nonzero.  Succeeding lines list the transistor whose sources  or
319              drains  connect to this node: the transistor type ("pulled down"
320              is an n-channel transistor connected to gnd, "pulled  up"  is  a
321              depletion  pullup or p-channel transistor connected to vdd), the
322              values of the gate, source, and drain nodes,  and  the  modeling
323              resistances.  Simple chains of transistors with the same implant
324              type are collapsed by the -s option  into  a  single  transistor
325              with a "compound" gate; compound gates appear as a parenthesized
326              list of nodes (e.g.,  the  pulldown  shown  above).   The  three
327              resistance  values  --  static, dynamic high, dynamic low -- are
328              given in Kilo-ohms.
329
330              Finally, any pending events for a  node  are  listed  after  the
331              electrical information.
332
333       ! wnode...
334              For  each node in the argument list, print a list of transistors
335              controlled by that node.
336
337       tcap
338              Prints a list of all transistors with their source/drain shorted
339              together  or  whose source/drain are connected to the power sup‐
340              plies.  These transistors will have no effect on the  simulation
341              other  than  their  gate capacitance load.  Although transistors
342              connected across the power supplies are real design errors,  the
343              simulator does not complain about them.
344
345       Any node can be made an input -- the simulator will not change an input
346       node's value until it is released.  Usually on specific nodes -- inputs
347       to the circuit -- are manipulated using the commands below, but you can
348       fool with a subcircuit by forcing values on internal nodes just as eas‐
349       ily.
350
351       h wnode...
352              Force  each  node  on  the argument list to be a high (1) input.
353              Overrides previous input commands if necessary.
354
355       l wnode...
356              Like "h" except forces nodes to be a low (0) input.
357
358       u wnode...
359              Like "h" except forces nodes to be a undefined (X) input.
360
361       x wnode...
362              Removes nodes from whatever input list they  happen  to  be  on.
363              The  next  simulation step will determine the correct node value
364              from the surrounding circuit.  This is the default state of most
365              nodes.  Note that this does not force nodes to have an "X" value
366              -- it simply removes them from the input lists.
367
368       inputs prints the high, low, and undefined input lists.
369
370
371
372       It is possible to define a sequence of values  for  a  node,  and  then
373       cycle  the  circuit  as many times as necessary to input each value and
374       simulate the network.  A  similar  mechanism  is  used  to  define  the
375       sequence of values each clock node goes through during a single cycle.
376
377       Each  value is a list of characters (with no intervening blanks) chosen
378       from the following:
379
380              1, h, H     logic high (1)
381              0, l, L     logic low (0)
382              u, U        undefined (X)
383              x, X        remove node from input lists
384
385       Presumably the length of the character list is the same as the size  of
386       the node/vector to which it will be assigned.  Blanks (spaces and tabs)
387       are used to separate values in a sequence.  The sequence  is  used  one
388       value  at  a  time, left to right.  If more values are needed than sup‐
389       plied by the sequence, IRSIM just restarts the sequence again.
390
391       V [node [value...]]
392              Define a vector of inputs for a node.  After each  cycle  of  an
393              "R"  command, the node is set to the next value specified in the
394              sequence.
395
396              With no arguments, clears all input sequences (does  not  affect
397              clock sequences however).  With one argument, "node", clears any
398              input sequences for that node/vector.
399
400       clock [node [value...]]
401              Define a phase of the clock.  Each cycle, each node specified by
402              a  clock  command  must  run through its respective values.  For
403              example,
404
405                 clock phi1 1 0 0 0
406                 clock phi2 0 0 1 0
407
408              defines a simple  4-phase  clock  using  nodes  phi1  and  phi2.
409              Alternatively one could have issued the following commands:
410
411                        vector clk phi1 phi2
412                        clock clk 10 00 01 00
413
414              With  no  arguments, clears all clock sequences.  With one argu‐
415              ment, "node", clears any clock sequences for that node/vector.
416
417       After input values have been established, their effect  can  be  propa‐
418       gated through the network with the following commands.  The basic simu‐
419       lated time unit is 0.1ns; all event times are quantized into basic time
420       units.   A  simulation  step continues until stepsize ns. have elapsed,
421       and any events scheduled for that interval are processed.  It is possi‐
422       ble  to  build circuits which oscillate -- if the period of oscillation
423       is zero, the simulation command will not return.  If this seems  to  be
424       the  case,  you  can hit <ctrl-C> to return to the command interpreter.
425       Note that if you do this while input is being taken from  a  file,  the
426       simulator  will  bring  you  to the top level interpreter, aborting all
427       pending input from any command files.
428
429       When using the linear model (see the "model" command) transition  times
430       are estimated using an RC time constant calculated from the surrounding
431       circuit.  When using the switch model, transitions are  scheduled  with
432       unit delay.  These calculations can be overridden for a node by setting
433       its tplh and tphl parameters which will then be used to  determine  the
434       time for a transition.
435
436       s [n]  Simulation  step.   Propogates new values for the inputs through
437              the network, returns when n (default: stepsize) ns. have passed.
438              If  n  is  specified,  it will temporarily override the stepsize
439              value.  Unlike previous versions, this value is  NOT  remembered
440              as the default value for the stepsize parameter.  If the display
441              mode is "automatic", the current display list is printed out  on
442              the completion of this command (see "display" command).
443
444       c [n]  Cycle  n times (default: 1) through the clock, as defined by the
445              "clock" command.  Each phase of the clock lasts stepsize ns.  If
446              the  display  mode  is  "automatic", the current display list is
447              printed out on the completion of  this  command  (see  "display"
448              command).
449
450       p      Step  the  clock  through  one  phase (or simulation step).  For
451              example, if the clock is defined as above
452
453                 clock phi1   1 0 0 0
454                 clock phi2   0 0 1 0
455
456              then "p" will set phi1 to 1 and phi2 to 0,  and  then  propagate
457              the  effects  for  one  simulation  step.   The next time "p" is
458              issued, phi1 and phi2 will both be set to  0,  and  the  effects
459              propagated,  and  so on.  If the "c" command is issued after "p"
460              has been used, the effect will be to step  through  the  next  4
461              phases from where the "p" command left off.
462
463       R [n]  Run  the simulator through n cycles (see the "c" command).  If n
464              is not present make the run as long as the longest sequence.  If
465              display mode is automatic (see "display" command) the display is
466              printed at the end of each cycle.  Each "R" command starts  over
467              at the beginning of the sequence defined for each node.
468
469       back time
470              Move  back to the specified time.  This command restores circuit
471              state as of time, effectively undoing any  changes  in  between.
472              Note  that you can not move past any previously flushed out his‐
473              tory (see flush command below) as the history mechanism is  used
474              to  restore  the  network  state.  This command can be useful to
475              undo a mistake in the input vectors or to re-simulate  the  cir‐
476              cuit with a different debug level.
477
478       path wnode...
479              display  critical  path(s)  for last transition of the specified
480              node(s).  The critical path transistions are reported using  the
481              following format:
482
483                 node -> value @ time (delta)
484
485              where  node is the name of the node, value is the value to which
486              the node transitioned, time is the time at which the transistion
487              occurred, and delta is the delay through the node since the last
488              transition.  For example:
489
490                 critical path for last transition of Hit_v1:
491                      phi1-> 1 @ 2900.0ns , node was an input
492                      PC_driver-> 0 @ 2900.4ns    (0.4ns)
493                      PC_b_q1-> 1 @ 2904.0ns    (3.6ns)
494                      tagDone_b_v1-> 0 @ 2912.8ns    (8.8ns)
495                      tagDone1_v1-> 1 @ 2915.3ns    (2.5ns)
496                      tagDone1_b_v1-> 0 @ 2916.0ns    (0.7ns)
497                      tagDone_v1-> 1 @ 2918.4ns    (2.4ns)
498                      tagCmp_b_v1-> 0 @ 2922.1ns    (3.7ns)
499                      tagCmp_v1-> 1 @ 2923.0ns    (0.9ns)
500                      Vbit_b_v1-> 0 @ 2923.2ns    (0.2ns)
501                      Hit_v1-> 1 @ 2923.5ns    (0.3ns)
502
503       activity from_time [to_time]
504              print histogram showing amount of circuit activity in the speci‐
505              fied  time  inteval.   Actually only shows number of nodes which
506              had their most recent transition in the interval.
507
508       changes from_time [to_time]
509              print list of nodes which last changed value  in  the  specified
510              time interval.
511
512       printp print list of all pending events sorted in time.  The node asso‐
513              ciated with each event and the scheduled time is printed.
514
515       printx print a list of all nodes with undefined (X) values.
516
517       Using the trace command, it is possible to get more detail about what's
518       happening  to  a  particular  node.   Much  of  what  is  said below is
519       described in much more detail in "Logic-level Simulation for VLSI  Cir‐
520       cuits"  by  Chris Terman, available from Kluwer Academic Press.  When a
521       node is traced, the simulator reports each change in the node's value:
522
523                   [event #100] node out.1: 0 -> 1 @ 407.6ns
524
525       The event index is incremented for each event that is  processed.   The
526       transition is reported as
527
528            old value -> new value @ report time
529
530       Note  that  since  the  time the event is processed may differ from the
531       event's report time, the report time for successive events may  not  be
532       strictly increasing.
533
534       Depending on the debug level (see the "debug" command) each calculation
535       of a traced node's value is reported:
536
537            [event #99] node clk: 0 -> 1 @ 400.2ns
538            final_value( Load )  V=[0.00, 0.04]  => 0
539            ..compute_tau( Load )
540            {Rmin=2.2K  Rdom=2.2K  Rmax=2.2K}  {Ca=0.06  Cd=0.17}
541            tauA=0.1  tauD=0.4 ns
542            [event #99: clk->1]  transition  for  Load:  1  ->  0  (tau=0.5ns,
543              delay=0.6ns)
544
545       In this example, a calculation for node Load is reported.  The calcula‐
546       tion was caused by event 99 in which node clk went to  1.   When  using
547       the linear model (as in this example) the report shows
548
549            current value -> final value
550
551       The  second line displays information regarding the final value (or dc)
552       analysis for node "Load"; the minimun and maximum voltages as  well  as
553       the final logical value (0 in this case).
554
555       The  next three lines display timing analysis information used to esti‐
556       mate the delays.  The meaning of the variables displayed can  be  found
557       Chu's thesis: "Improved Models for Switch-Level Simulation".
558
559       When  the  final value is reported as "D", the node is not connected to
560       an input and may be scheduled to decay from its current value to  X  at
561       some later time (see the "decay" command).
562
563       "tau"  is  the calculated transition time constant, "delta" is when any
564       consequences of the event will be computed; the difference in  the  two
565       times is how IRSIM accounts for the shape of the transition waveform on
566       subsequent stages (see reference given above for  more  details).   The
567       middle lines of the report indicate the Thevenin and capacitance param‐
568       eters of the surrounding networks, i.e., the parameters  on  which  the
569       transition calculations are based.
570
571       debug [ev dc tau taup tw spk][off][all]
572              Set debugging level.  Useful for debugging simulator and/or cir‐
573              cuit at various levels of the computation.  The meaning  of  the
574              various debug levels is as follows:
575
576              ev      display event enqueueing and dequeueing.
577
578              dc      display dc calculation information.
579
580              tau     display time constant (timing) calculation.
581
582              taup    display second time constant (timing) calculation.
583
584              tw      display  network  parameters  for each stage of the tree
585                      walk, this applies to dc, tau, and taup.  This level  of
586                      debugging  detail  is usually needed only when debugging
587                      the simulator.
588
589              spk     displays spike analysis information.
590
591              all     This is a shorthand for specifying all of the above.
592
593              off     This turns off all debugging information.
594
595              If a debug switch is on then during a simulation step, each time
596              a  watched  node  is encounted in some event, that fact is indi‐
597              cated to the user along with some event info.  If a  node  keeps
598              appearing  in this prinout, chances are that its value is oscil‐
599              lating.  Vice versa, if your  circuit  never  settles  (ie.,  it
600              oscillates)  ,  you can use the "debug" and "t" commands to find
601              the node(s) that are causing the problem.
602
603              Without any arguments, the  debug  command  prints  the  current
604              debug level.
605
606       t [-]wnode...
607              set   trace  flag  for  node.   Enables  the  various  printouts
608              described above.  Prefacing the node name  with  '-'  clear  its
609              trace  flag.   If  "wnode" is the name of a vector, whenever any
610              node of that vector changes value, the current time and the val‐
611              ues  of  all  traced vectors is printed.  This feature is useful
612              for watching the relative arrival times of values at nodes in an
613              output vector.
614
615       System interface commands:
616
617       > filename
618              Write  current  state  of each node into specified file.  Useful
619              for making a breakpoint in your  simulation  run.   Only  stores
620              values  so  isn't  really  useful to "dump" a run for later use,
621              i.e., the current input lists,  pending  events,  etc.  are  NOT
622              saved in the state file.
623
624       < filename
625              Read  from specified file, reinitializing the value of each node
626              as directed.  Note that network must already exist and be  iden‐
627              tical  to  the network used to create the dump file with the ">"
628              command.  These state saving commands  are  really  provided  so
629              that  complicated  initializing sequences need only be simulated
630              once.
631
632       << filename
633              Same as "<" command, except that this command will  restore  the
634              input  status  of  the  nodes  as  well.   It does not, however,
635              restore pending events.
636
637       dumph [filename]
638              Write the history of the simulation to the specified file,  that
639              is;  all  transistions  since time = 0.  The resulting file is a
640              machine-independent binary file, and contains all  the  required
641              information  to  continue  simulation at the time the dump takes
642              place.  If the filename isn't specified, it will be  constructed
643              by  taking  the name of the sim_file (from the command line) and
644              appending ".hist" to it.
645
646       readh filename
647              Read the specified history-dump file into the  current  network.
648              This  command  will  restore the state of the circuit to that of
649              the dump file, overwriting the current state.
650
651       flush [time]
652              If memory consumption due to history maintanance becomes prohib‐
653              itive,  this  command can be used to free the memory consumed by
654              the history up to the time specified.  With  no  arguments,  all
655              history  up  to  the  current  point in the simulation is freed.
656              Flushing out the history may invalidate an  incremental  simula‐
657              tion  and the portions flushed will no longer appear in the ana‐
658              lyzer window.
659
660       setpath [path...]
661              Set the  search-path  for  command  files.   Path  should  be  a
662              sequence  of  directories  to  be searched for ".cmd" files, "."
663              meaning the current directory.  For eaxmple:
664
665            setpath . /usr/me/rsim/cmds /cad/lib/cmds
666
667              With no arguments, it will print the current search-path.   Ini‐
668              tially this is just ".".
669
670       print text...
671              Simply  prints the text on the user's console.  Useful for keep‐
672              ing user posted of progress through a long command file.
673
674       logfile [filename]
675              Create a logfile with the specified name,  closing  current  log
676              file  if  any;  if no argument, just close current logfile.  All
677              output which appears on user's console will also  be  placed  in
678              the  logfile.   Output  to  the logfile is cleverly formatted so
679              that logfiles themselves can serve as command files.
680
681       setlog [filename | off]
682              Record all net changes, as well as resulting error messages,  to
683              the  specified  file  (see  "update"  command).  Net changes are
684              always appended to the  log-file,  preceding  each  sequence  of
685              changes  by  the current date.  If the argument is off then net-
686              changes will not be logged.  With no arguments, the name of  the
687              current log-file is printed.
688
689              The  default  is to always record net changes; if no filename is
690              specified (using the  "setlog"  command)  the  default  filename
691              irsim_changes.log  will be used.  The log-files are formatted so
692              that log-files may themselves be used as net-change files.
693
694       wnet [filename]
695              Write the current network to the specified file.  If  the  file‐
696              name  isn't specified, it will be constructed by taking the name
697              of the sim_file (from the command line) and appending ".inet" to
698              it.   The resulting file can be used in a future simulation run,
699              as if it were a sim file.  The file produced is a machine  inde‐
700              pendent  binary  file,  which is typically about 1/3 the size of
701              the sim file and about 8 times faster to load.
702
703       time [command]
704              With no argument, a summary of time used  by  the  simulator  is
705              printed.   If arguments are given the specified command is timed
706              and a time summary is printed when the command  completes.   The
707              format of the time summary is Uu Ss E P% M, where:
708
709            U => User time in seconds
710            S => System time in seconds
711            E => Elapsed time, minutes:seconds
712            P => Percentage of CPU time (((U + S)/E) * 100)
713            M => Median text, data, and stack size use
714
715       q
716              Terminate  current input stream.  If this is typed at top level,
717              the simulator will exit back to  the  system;  otherwise,  input
718              reverts to the previous input stream.
719
720       exit [n]
721              Exit to system, n is the reported status (default: 0).
722
723       Simulator  parameters  are  set  with  the following commands.  With no
724       arguments, each of the commands simply prints the current value of  the
725       parameter.
726
727       decay [n]
728              Set  decay  parameter  to  n  ns. (default: 0).  If non-zero, it
729              tells the number of ns. it takes for charge on a node  to  decay
730              to X.  A value of 0 implies no decay at all.  You cannot specify
731              this parameters separately for each node, but this turns out not
732              to be a problem.  See "report" command.
733
734       display [-][cmdfile][automatic]
735              set/reset the display modes, which are
736
737              cmdfile     commands  executed  from command files are displayed
738                          to user before executing.  The default is cmdfile  =
739                          OFF.
740
741              automatic   print  out  current  display  list (see "d" command)
742                          after completion of "s" or "c" command.  The default
743                          is automatic = ON.
744
745              Prefacing  the  previous commands with a "-" turns off that dis‐
746              play option.
747
748       model [name]
749              Set simulation model to one of the following:
750
751              switch Model transistors as voltage controlled  switches.   This
752                     model  uses interval logic levels, without accounting for
753                     transistor resistances, so circuits with  fighting  tran‐
754                     sistors  may not be accuratelly modelled.  Delays may not
755                     reflect the true speed of the circuit as well.
756
757              linear Model transistors as a resistor in series with a  voltage
758                     controlled  switch.   This  model uses a single-time-con‐
759                     stant computed from the resulting RC network and  uses  a
760                     two-time-constant  model  to  analyze  charge sharing and
761                     spikes.
762
763              The default is the linear model.  You can change the  simulation
764              model  at  any  time  -- even with events pending -- as only new
765              calculations are  affected.   Without  arguments,  this  command
766              prints the current model name.
767
768       report [level]
769              When  level  is  nonzero,  report  all  nodes which are set to X
770              because of charge decay, regardless on whether  they  are  being
771              traced.   Setting  level to zero disables reporting, but not the
772              decay itself (see "decay" command).
773
774       stepsize [n]
775              Specify duration of simulation step or clock phase.  n is speci‐
776              fied  in ns. (nanoseconds).  Floating point numbers with up to 1
777              digit past the decimal point are allowed.  Further decimals  are
778              trucated (i.e. 10.299 == 10.2).
779
780       unitdelay [n]
781              When  nonzero,  force all transitions to take n ns.  Setting the
782              parameter to zero disables this feature.  The resolution is  the
783              same as for the "stepsize" command.
784
785       stats  Print event statitistics, as follows:
786
787                 changes = 26077
788                 punts (cns) = 208 (34)
789                 punts = 0.79%, cons_punted = 16.35%
790                 nevents = 28012; evaluations = 27972
791
792              Where  changes  is  the  total  number of transistions recorded,
793              punts is the number of punted events, (cns)  is  the  number  of
794              consecutive  punted  events  (a punted event that punted another
795              event).  The penultimate line shows  the  percentage  of  punted
796              events  with respect to the total number of events, and the per‐
797              centage of consecutive punted events with respect to the  number
798              of  punted  events.   The  last  line  shows the total number of
799              events (nevents) and the number of net evaluations.
800
801       Incremental simulation commands:
802
803       Irsim supports incremental changes to the network and  resimulation  of
804       the  resulting  network.   This  is done incrementally so that only the
805       nodes affected by the changes, either directly or indirectly,  are  re-
806       evaluated.
807
808
809       update filename
810              Read  net-change  tokens from the specified file.  The following
811              net-change commands are available:
812
813              add     type gate source drain length width [area]
814              delete  type gate source drain length width [area]
815              move    type gate source drain length width [area] g s d
816              cap     node value
817              N       node metal-area poly-area diff-area diff-perim
818              M       node M2A M2P MA MP PA PP DA DP PDA PDP
819              thresh  node low high
820              Delay   node tplh tphl
821
822              For a detailed dscription of this file see  netchange(5).   Note
823              that  this  is an experimental interface and is likely to change
824              in the future.
825
826              Note that this command doesn't resimulate the circuit so that it
827              may  leave  the  network in an inconsistent state.  Usually this
828              command will be followed by an isim command (see below), if that
829              is  not the case then it's up to the user to initilize the state
830              of the circuit.  This command exists only for historical reasons
831              and will probably disappear in the future.  It's use is discour‐
832              aged.
833
834       isim [filename]
835              Read  net-change   tokens   from   the   specified   file   (see
836              netchange(5)) and incrementally resimulate the circuit up to the
837              current simulation time (not supported yet).
838
839       ires n The incremental algorithm keeps track of  nodes  deviating  from
840              their  past behavior as recorded in the network history.  During
841              resimulation, a node is considered to deviate from  its  history
842              if  it's  new  state is found to be different within n ns of its
843              previous state.  This command allows for changing the  incremen‐
844              tal  resolution.   With  no arguments, it will print the current
845              resolution.  The default resolution is 0 ns.
846
847       powlogfile [filename]
848              Opens filename for writting nodal transition reports. The format
849              of the report is the same you get when you trace a node normaly.
850              With no arguments powlogfile just closes the opened logfile  and
851              prints  out  a  power  dissipation summary. Nodal transitions in
852              inputs are not included in the transition count.
853
854       powtrace [[-]node...]
855              The syntax of this command is the same as the normal  t  (trace)
856              command.   If you want to trace and report power dissipation for
857              all the nodes just use powtrace *. Use  powtrace  -node  if  you
858              want to exclude some nodes.
859
860       powstep
861              Toggles whether dynamic power estimation is displayed after each
862              timestep. The ynamic power displayed will only be for the  nodes
863              that have been selected using the powtrace command.
864
865       vsupply voltage
866              Sets  the V variable for use in the P=CV^2/(2t) expression where
867              C is capacitance switched, and t is the timestep.   The  default
868              value for vsupply is 5.0 Volts.
869
870       sumcap Gives  a  sum  of all nodal capcitances, not just those selected
871              with the powtrace command.
872
873
874
875
876

SEE ALSO

878       presim(1) (now obsolete)
879       rsim(1)
880       irsim-analyzer(3)
881       sim(5)
882       netchange(5)
883
884
885
8863rd Berkeley Distribution                                             IRSIM(1)
Impressum