This manual should be used as a reference tool for understanding the formats of file-types and for simulator specific command-line options. To see how files should be converted into the proper format to run in the simulator, click here. To see how files should be loaded and run in the simulator, click here.
1. Parse file into *.dee format:
The simulator only recognizes *.dee circuit description
files.
To translate a verilog (*.v) file into a *.dee file,
use the "parse" utility as follows:
$parse <name of verilog input file> <name of
dee output file>
Click here to learn about the DEE file format
2. Create symbol table:
A symbol table maps the user defined representation of
the circuit elements
to the internal representation of these elements.
$ crest
NOTE: crest uses the file name without the extension.
The program crest creates a file with the extension (*.SMT) containing the
symbol table.crest strips the symbol table information from the (*.dee) file based upon the symbol table offset
stored in the header section of the (*.dee) file.
Running The MCS Simulator:
$ docNOTE: doc uses the file name without the extension.
The Simulator is interactive.
Input Waveforms (Optional):
Input waveforms are specified in an input waveform source file (*.dws). The input waveform source
file is then compiled using the command:
$ dwc_mcsNOTE: dwc uses the file name without the extension.
The program cw produces a file (*.dwe) which can be loaded by the simulator.
Fault Simulation (Optional):
For fault simulation additional preprocessing needs to be performed.The program tufault takes a linked (*.dee) network description file and creates classes of equivalent faults.
The collapsed fault list is written in a (*.fau file). This is obtained through the following commands:$ tufault FILENAME.dee
The resulting (*.fls) file has the following format:
There are three cases
Case 1 - Stuck at faulting the input to an element:
W X Y Z
W = the fault value
[0 = stuck at 0
1 = stuck at 1]
X = element # that provides the input that you are faulting
Y = unused (defaulted to 0)
Z = The element who's input you'r faulting
Case 2 - Stuck at faulting the output of an element
A B C D
A = the fault value
[0 = stuck at 0
1 = stuck at 1]
B = coded output pin
[This value will be negative to denote output
The ouput that is being faulted can be found by:
output = ABS(B)
The code references the output pins starting at 0 so it uses
pin = ABS(B+1)]
C = unused (defaulted to 0)
D = The element who's output you are faulting
Case 3 - bridge faulting (only inputs right now)
Q R S T
Q = 2 for bridge faulting
R = binary code for which inputs are being faulted
[3 means that inputs 1 and 2 are faulted
5 means that inputs 1 and 3 are faulted
note that no value that is a power of 2 can be used]
S = unused (defaulted to 0)
T = The element who's inputs you are bridgefaulting
Running The Simulator:
$ doc <filename optional> /* run simulator */
NOTE: the following symbol command:> is used to represent the command line.Create Experiement
command:>c e <experiment name> <network name>Attatch experiment
command:>a eLoad Symbol Table
command:>l s
Load Waveforms
command:>l wLoad Fault List
command:>l f <fault file name>Set Mode to Fault simulation and define the maximum fault number
command:>s f 100Set Fault detection flag to enabled
command:>s d eSet Fault detection flag to disabled
command:>s d dTrace input/output of reference machine
command:>t <input/output_name> rForce input/output
command:>f <input/output_name> <value>
Unforce input/output
command:>u <input/output_name>Run simulator for some time unit
command:>r f <time unit>Run simulator until
command:>r uRun quiescent
command:>r qDisplay faults
command:>d fDisplay element
command:>d e <element_name> <reference or CID>Display coverage
command:>d c
Display statistics
command:>d sATPG commands
command:>ATPG initialize
command:>ATPG save
command:>ATPG restoreExit
command:>eNOTE: several commands can be appended on the same line
Miscellaneous commands:
check_for_phase_skipping/nocheck_for_phase_skipping
surely_detections_only/possibly_detections_too
continue
hello
@ (call command file)
X (exit from command file)
! (comment)
interrupt (only network version)