FAULT Command

Selects faults to be simulated and specifies fault simulation options.

Command FAULT
Abbreviation FA
Category Fault Analysis

Function

The FAULT command selects faults to be simulated and specifies fault simulation options. When faults are selected with this command, fault simulation, rather than good-logic simulation, is initiated by the subsequent SIMULATE command.

Usage

The FAULT command is described in Fault Analysis.

Specifying Faults To Be Simulated

In order to perform fault simulation, faults must be specified with the FAULT command. To specify individual faults:

FAULT LIST=<fault_list>

To specify all faults:

FAULT LIST:

To specify all faults at all element inputs:

FAULT INPUT:

To specify all faults at element outputs and at primary inputs:

FAULT OUTPUT:

Note: the commands:

FAULT LIST:

and

FAULT INPUT: OUTPUT:

are equivalent.

To specify a file containing the names of faults:

FAULT LFILE=<file>

FAULT LFILE:

the second form specifies the file whose name is the default file name and whose file-type is .sel. These files could either have been generated manually, or by a previous fault simulation run (see Iterative Test Generation below).

The NO command prefix can be used with any of the above forms of the FAULT command to selectively remove faults from the consideration. For example, the sequence of commands:

FAULT LIST:
NOFAULT LFILE=abc

specifies all faults except those listed in file abc.sel.

Name-Based Fault Filtering

Fault selection by any of the above methods is subject to name-based filtering, which uses signal or part names to automatically exclude faults from simulation. This provides a convenient method of inhibiting simulation of faults internal to cells or in hierarchical sections of the design. Name-based filters must be defined before faults are specified, since the filters act as screens during fault selection. Two types of filters are supported; both are specified with the STRING keyword.

The first type of filter screens all input and output faults at hierarchically instantiated parts based on the hierarchically-lowest component of the part name. The command:

NO FAULT STRING=&NUMERIC

automatically excludes all input and output faults at parts whose names have purely numeric components at the lowest hierarchical level. Conversely, the command:

NO FAULT STRING=&ALPHANUMERIC

automatically excludes all input and output faults at parts whose names do not have purely numeric components at the lowest hierarchical level. By default, neither of these filters is active.

The second type of filter screens input faults at parts or faults on signals whose complete names (not just the lowest hierarchical name component) contain specified character patterns. Each pattern is defined as a minimum number of occurrences of some character string. The command form is:

NO FAULT STRING=<repetition> * <character-string>

where <repetition> is an integer specifying the minimum number of repetitions of <character-string> that constitutes the pattern. The repetition factor and asterisk can optionally be omitted if the repetition factor is unity. For example, the command:

NO FAULT STRING=3*'.'

filters input faults at all parts, and faults at all signals, whose names contain three or more dots, i.e., are at a hierarchical depth of three or greater. Also, the command:

NO FAULT STRING='?'

filters input faults at all parts, and faults at all signals, whose names contain at least one question mark. This is the default SIMIC fault filter.

If the NO prefix is omitted, the specified filter will no longer be active. For example, after issuing the command:

FAULT STRING='?'

subsequent fault selection with the INPUT, OUTPUT, LIST, or LFILE keywords will cause faults at parts or signals whose names contain question marks to be included in the set of faults to be simulated.

SIMIC supports a maximum of five simultaneously-active filter patterns.

Specifying Fault Report Options

The REPORT keyword directs SIMIC to generate reports pertaining to the selected faults. If this keyword is used with the NO command prefix, the specified reports are not generated. Two types of reports are supported:

Here, <default_file> is the default file name. These files may or may not be written to the current directory (see Incremental Test Generation).

The command:

FAULT REPORT=EQUIVALENCES

directs SIMIC to report the fault equivalences classes, while the command:

FAULT REPORT=SUPPRESSED

directs SIMIC to report all suppressed faults (undetectable faults, and excluded switch-level faults).

By default, these reports are not generated.

The command:

FAULT REPORT=BYFAULT

directs SIMIC to report all detected and potentially-detected faults, arranged alphanumerically, by fault name.

The command:

FAULT REPORT=BYTEST

directs SIMIC to report all detected and potentially-detected faults, arranged by the test numbers in which the faults were detected or potentially detected. The command:

FAULT REPORT=UNDETECTED

directs SIMIC to report all undetected and potentially-detected faults, arranged alphanumerically, by fault name. The command:

FAULT REPORT=COLLAPSED

directs SIMIC to include only the collapsed fault set in the BYFAULT, BYTEST, and UNDETECTED reports, and in the .sel file (see Incremental Test Generation).

The command:

FAULT REPORT=SCORE

directs SIMIC to write the summary box score (written to the terminal at the end of simulation) to the .rpf file as well.

By default, only the fault simulation box score is written to this file.

The colon-form of the REPORT keyword specifies all reports. The command:

FAULT REPORT:

directs SIMIC to generate all reports in the .flt and .rpf files, while the command:

NO FAULT REPORT:

disables all reports.

By default, the maximum line width of both report files is 80 characters. The command:

FAULT EXPAND:

expands the maximum line width of both files to 132 characters, while the command:

NO FAULT EXPAND:

restores the default line width.

Handling Potential Detections

The PDETECT keyword option selects one of three strategies SIMIC should use to handle potentially-detected faults. This keyword also supports specification of a drop-threshold (an integer), which represents the number of tests in which a fault is potentially-detected before it is dropped from simulation. The general form of specifying this keyword option is:

FAULT PDETECT = <strategy>,<drop_threshold>

The command:

FAULT PDETECT=RESOLVE

instructs SIMIC to utilize its built-in resolution algorithm, and to retain faults that remain potentially-detected. This is the default operation if the PDETECT keyword option is not specified. The command:

FAULT PDETECT=RESOLVE,50

instructs SIMIC to utilize its built-in resolution algorithm, and to drop faults from simulation (to reduce execution time) after they are potentially-detected 50 times. The dropped faults are counted as potential detections.

The command:

FAULT PDETECT=SOFT,<drop_threshold>

instructs SIMIC to count faults as (soft) detections when they are potentially-detected <drop_threshold> times. The faults are dropped from simulation when this threshold is attained.

The command:

FAULT PDETECT=NONE

instructs SIMIC to utilize no strategy to infer detection from potential detection, and to retain faults that remain potentially-detected. The command:

FAULT PDETECT=NONE,50

instructs SIMIC to utilize no strategy to infer detection from potential detection, and to drop faults from simulation (to reduce execution time) after they are potentially-detected 50 times. The dropped faults are counted as potential detections.

Utilizing Sensitization Analysis Information

The UFILE keyword option directs SIMIC to read the unsensitized faults file generated as a result of sensitization analysis performed in a previous simulation session (see Fault Analysis). This reduces the execution time of a fault simulation run, since the unsensitized faults cannot be detected (or potentially-detected), and therefore need not be simulated. The command:

FAULT UFILE=<filename>

directs SIMIC to the specified file; if this specification does not contain an extension, the default extension is .uns. The command:

FAULT UFILE:

directs SIMIC to the file whose name is the default file name and whose extension is .uns.

The file specified with the UFILE keyword might be in a directory other than the current directory (see Incremental Test Generation).

By default, SIMIC does not utilize unsensitized faults information; this is equivalent to the command:

NO FAULT UFILE:

Incremental Test Generation

The SFILE keyword option directs SIMIC to generate an output file containing all undetected and potentially-detected faults; this file can be read during a subsequent fault simulation session. The command:

FAULT SFILE=<filename>

explicitly specifies this file's name; if this specification does not contain an extension, the file's default extension will be .sel. The command:

FAULT SFILE:

specifies this file's name as the default file name, and its extension as .sel; this is SIMIC's default operation if the SFILE keyword option is not used. The command:

NO FAULT SFILE:

inhibits creation of this file.

Usually, when explicit paths are not specified for files read by, or created by, SIMIC, the files will be in the current directory. This is inconvenient for incremental test generation, since files could be inadvertently overwritten. The DIRECTORY keyword option specifies a different destination for fault simulation output, the output fault directory, and possibly a different location for the undetected faults file of the previous iteration (read with the LFILE keyword), the previous fault directory. The unsensitized faults file (read with the UFILE keyword), is expected to reside in the output fault directory, since it is associated with the current test stimuli. If either of these input files is not found, the current directory is searched as an alternative path.

The command:

FAULT DIRECTORY:

directs SIMIC to create a new directory for the output fault directory, whose name will have the form:

<default_file>.fnn

where <default_file> is the default file name and nn is a two-digit decimal index from 00 through 99. If subdirectories (of the current directory) having this form of name exist, SIMIC searches for the subdirectory with the highest 2-digit index; this subdirectory will be the previous fault directory. SIMIC then creates the output fault directory as a new subdirectory whose 2-digit index is one higher than that of the previous fault directory. If no subdirectories having this form of name exist, SIMIC creates the subdirectory <default_file>.f00 for the output fault directory, and the previous fault directory is undefined.

The same operation can be specified for other name prefixes. The command:

FAULT DIRECTORY=<dname>__

where <dname> is a character string and two underscore characters are appended to this string, directs SIMIC to create a new directory whose name will have the form:

<dname>nn

instead of <default_file>.fnn.

If the directory prefix is suffixed by only one underscore, SIMIC will not create a new directory. The command:

FAULT DIRECTORY=<dname>_

directs SIMIC to search for directories whose names have the form:

<dname>nn

to find the directory with the highest two-digit decimal index. This directory will be the output fault directory. If the directory with the immediately preceding 2-digit index exists, it will be used as the previous fault directory. If no subdirectories having this form of name exist, the current directory will be used as the output fault directory and the previous fault directory is undefined.

If the directory name is specified without trailing underscores:

FAULT DIRECTORY=<dname>

SIMIC will use the directory as the output fault directory. If this directory does not exist, SIMIC will create it. Additionally, if the last two characters of <dname> are decimal digits, SIMIC searches for the like-named directory whose 2-digit index immediately-precedes the 2-digit suffix of <dname>. If found, this directory will be used as the previous fault directory. Otherwise, the previous fault directory is undefined.

Statistical Fault Simulation

The SAMPLE keyword instructs SIMIC to generate a random sample of faults that were previously selected with the LIST, INPUT, OUTPUT, or LFILE keywords:

FAULT SAMPLE=<percent>%

where <percent> is an integer between 1 and 100 inclusive. The percent sign (%) is optional.

By default, the sample is taken from the complete set of selected faults. SIMIC can be directed to generate the random sample from the collapsed set instead with the COLLAPSED keyword value:

FAULT SAMPLE=<percent>%,COLLAPSED

The default sample space can be restored with the SELECTED option:

FAULT SAMPLE=<percent>%,SELECTED

SIMIC always reports the seed used to start the random number generator. Sometimes, it is desirable to repeat a run exactly, for debugging purposes. This can be accomplished by specifying the previous run's seed, either after the sample percentage or after the sample space specification:

FAULT SAMPLE=<percent>%,<seed>

or

FAULT SAMPLE=<percent>%,COLLAPSED,<seed>

where <seed> is the desired (integer) value of the seed.

Whenever a fault sample is simulated, SIMIC estimates a confidence interval, or range of values, for the fault coverage over the entire sample space at the 95% confidence level; that is, the probability is 0.95 that the actual fault coverage over the entire sample space lies within this interval. The confidence interval is reported in the box score.

SIMIC can be directed to estimate this interval at another confidence level with the CONFIDENCE keyword:

FAULT CONFIDENCE=<level>%

where <level> is an integer between 90 and 99 inclusive. The percent (%) sign is optional.

Storage Management

The default fault simulation storage of 300,000 words should be sufficient for small circuits (< 1,000 primitive parts). When this storage is inadequate, SIMIC will issue a message that the amount of storage is insufficient for generating the faults or for simulating them, and abort fault simulation. When this occurs, the fault storage must be increased.

The STORAGE keyword option specifies the amount of memory, in four-byte words, that should be used for fault simulation.

FAULT STORAGE=<storage>

where <storage> is an integer. The default is equivalent to

FAULT STORAGE=300000

The CONCURRENT keyword option specifies the number of faults SIMIC should simulate concurrently in the first pass:

FAULT CONCURRENT=<n>

where <n> is an integer. If this number is not specified, SIMIC automatically estimates it from the amount of fault storage available.

In subsequent simulation passes, SIMIC will dynamically adjust the number of faults to be simulated. If, however, an exclamation mark (!) immediately follows the concurrent specification:

FAULT CONCURRENT=<n>!

then the number of fault simulated in all passes will be limited to this specification, even if SIMIC estimates that more faults could be simulated per pass. If the specified concurrency causes faults to be deferred, SIMIC will reduce the number of faults per pass below this level.

Tristating And Switch-Level Components

By default, SIMIC does not include faults at the control inputs of BTGs, BTGRs, TGATEs, TINVs, and UTGRs. The INCLUDE keyword option specifies whether faults at switch-level and tristating components should be included in the simulation. The commands

FAULT INCLUDE=TRISTATE-ENABLES

or

FAULT INCLUDE:

direct SIMIC to include these faults. The NO prefix restores the default:

NO FAULT INCLUDE:

By default, SIMIC does not assume that the tester can measure output impedance. Thus, it does not compare the output of a faulty circuit with the fault-free output if the latter is tristated. SIMIC can be directed to make this comparison with the TRITEST keyword:

FAULT TRITEST:

The default SIMIC operation of not testing tristating outputs can be restored with the NO prefix:

NO FAULT TRITEST:

Progress Reports

The REPORT keyword can be used to direct SIMIC to issue progress messages within each pass whenever a fault is detected or potentially-detected:

FAULT REPORT=PROGRESS

Unlike all other output generated by the REPORT keyword, progress reports are directed to the terminal.

Sometimes, long test sequences are required to detect a single fault, so it is possible that the time interval between progress messages could be long. Suffixing the PROGRESS option with an integer directs SIMIC to output progress messages over the specified test interval even if no faults have been detected or potentially-detected. For example

FAULT REPORT=PROG50

causes SIMIC to issued progress messages whenever faults are detected or potentially-detected, or whenever 50 tests have elapsed since the last progress message.