This program processes a .out trace file generated by TimeMill® and searches for any long edge times that may be indicative of a problem in the circuit and to which the designer should be alerted.

The user is warned of edge times exceeding a user defined threshold, however, rather than record every long edge, the output only records the worst edge time for each node that produced an edge longer than the threshold time.

In addition the tool may be configured to ignore edge times on certain signals which are known to have long edge times. For example internal nodes in some gates may be disconnected when the gate is in certain valid states. The logic level on these isolated nodes will slowly decay giving rise to a long edge. It is convenient to be able to ignore these legitimate long edge times.

To avoid having to name every single slow node in the design in the list of nodes to be ignored, regular expressions may be used to match any node of whose name matches a particular pattern. For example, all nodes whose names end in ".and.n4" could be specified with a single regular expression. This fits in well with the practice of using standard cells, since every instantiation of the cell will have a similar name and can thus be matched easily using a regular expression.


      edges threshold tracefile [ignorefile]
The time in ns above which you regard edges as being too long.

The name of the trace file you wish to process. (This may include the .out extension). This filename may be used to derive the name of the ignore files.

Optional argument specifying the name of the ignore file (the .eignore extension may be ommitted). If this argument is not included the ignorefile name will be derived from the tracefile name.

Input Files

The trace file produced by TimeMill®.

The list of nodes that are to be ignored in the edge analysis. The format of this file is described later. If the .eignore file does not exist, the program will continue processing but will show all edges longer than the threshold.

Output Files

Output is written to stdout. Errors are logged on stderr.

Output Format

This is an example of the output of the program:

Searching for edges >= 0.5 ns in file test.out (11:06 18/10/95)
Looking for ignored signals in test.eignore (14:52 30/10/95)
There were 5 nodes with edge times >= 0.5 ns.
  1.500 ns    ack1                   1-u-0     224.500 ns
  1.500 ns    xmy.xheir.req1         0-u-1     216.500 ns
  1.000 ns    req2                   1-u-0     236.000 ns
  1.000 ns    ack2                   0-u-1     244.000 ns
  0.500 ns    data1                  0-u-1     216.000 ns
As can be seen, the output is sorted to show the slowest edge times at the top of the list. For each node with a slow edge, the worst edge time for that node is shown, as is the direction of the edge and the time at which that slow edge occurred. For example the slowest edge on the signal ack1 was a falling edge (from '1' to undefined to '0') and it reached the '0' state 224.5 ns into the trace.

Format of the .eignore file

The .eignore file contains regular expressions, one per line. Any signal name that is matched by any of these expressions is ignored by the edge time analysis.

The regular expressions used are full Perl regular expressions and are thus very powerful. Some points should be taken into consideration:

The .eignore file may contain blank lines and comments. Comments are introduced by a semi-colon as the first character on the line.

Example .eignore file

;Example edges ignore file

;Anything ending in .n[digit] or .p[digit]

;the xtest1.di bus

Detailed Behaviour

edge time diagram

For the purposes of this program, the edge time is defined to be the time between the signal leaving one defined state and entering another, as shown in the diagram. The logic thresholds and consequently the undefined region are determined as part of the TimeMill® process. The edges tool is only able to observe whether a signal is '1', undefined or '0' and the times at which it changes state.

The TimeMill® trace file sometimes shows a signal changing state directly from one defined level to the other, without passing through the undefined state. This occurs where the transition was too fast to be observed at the resolution at which TimeMill® was run. Such transitions are regarded as being instantaneous and will therefore not appear in the edge time analysis. For suitable edge time checking to be possible it is necessary to select a resolution for TimeMill® commensurate with being able to observe the expected edge times.

Sometimes TimeMill® produces 2 statements of the state of a particular signal without any change between them. The duplicate state indications are ignored since they would otherwise compromise the edge time calculations.

Some signals may be observed to move from one defined state into the undefined state and then back to the same defined state. These transitions are not included in the edge time analysis.

Any edges that start at the begininning of the simulation and pass through the undefined state to a defined state are ignored since they reflect the initialisation of the simulator rather than a valid signal transition.

Implementation Language

Perl release 5.001d or greater.

Copyright and Licence

The copyright and any intellectual property rights associated with this work are retained by the author and the University of Manchester, but permission is granted to freely copy, distribute, modify and use this software under certain conditions, as described in the Artistic Licence (with the deletion of clause 8). This licence is obtained from the Perl distribution.

Source Code

Subject to the licensing arrangements described above, the source code may be obtained from http://www.cs.man.ac.uk/amulet/projects/horn/edges

TimeMill is a registered trademark of EPIC Design Technology Inc, 2901 Tasman drive, Suite 212, Sata Clara, CA 95054.

     PROJECT LOGO This software was developed as part of the OMI HORN project at the University of Manchester Department of Computer Science, funded as part of the European Union ESPRIT initiative (project number 7249).

Rhod Davies (rhod@cs.man.ac.uk)
This page last modified Tue Apr 2 1996 14:07:56