Application
Notes > Tester-specific App Notes
Application Notes:
Tester-specific App Notes
Translating WGL/STIL Vector Files to the Credence Tester Format
SYNOPSIS
The most common vector formats produced by todays leading
ATPG tools are WGL and STIL. The WGL format syntax was originally
developed by TSSI and has become somewhat of a defacto industry
standard. Virtually all ATPG tools in use today can generate vectors
in this format (although not all follow the syntax strictly). STIL
(Standard Test Interface Language) is a recently IEEE-adopted standard
format for test vectors that is growing in use. Many ATPG tools
offer the user the option of generating vector files in either of
these two formats. This Application Note focuses on the task of
translating vector files in these formats to test programs for Credence
testers via the SWAV vector file syntax.
OVERVIEW
Vtran makes the task of translating WGL and STIL files into
Credence test programs relatively simple. Canned readers for both
of these formats are included with the vtran product bundle. As
long as the WGL and STIL files follow the syntax of their respective
specifications, the readers can easily handle them. If the WGL file
is being generated from the Synopsys TetraMAX ATPG tool, then it
is important to make sure that the option settings are such that
they produce a syntactically and semantically correct WGL file.
A number of the user-controlled options will result in an invalid
WGL file. The option settings currently recommended for TetraMAX
are as follows:
set wgl -bidi_map
-x -x
set wgl -bidi_map z- z-
set wgl -bidi_map 0x 0x
set wgl -bidi_map 1x 1x
set wgl -bidi_map xx xx
set wgl -bidi_map z0 z0
set wgl -bidi_map z1 z1
set wgl -bidi_map zx zx
set wgl -bidi_map zz zz
set wgl -chain_list shift
set wgl -group_bidis
set wgl -inversion_reference master
set wgl -last_scan
set wgl -nomacro
set wgl -nopad
set wgl -pre_measured
set wgl -scan_map dash
These settings are applicable to TetraMAX version 2.02 and later. See
also the online help notes within the TetraMAX environment.
For STIL vector files, the optional "ScanStructures"
block must be present. The information contained in this block is
needed by the reader to fully maintain the scan data during translation
to the tester formats.
The vector translation process is divided into three separate tasks
or blocks, which correspond to the three blocks in the vtran command
file the OVF_BLOCK, the PROC_BLOCK and the TVF_BLOCK. The
commands and parameters in these blocks direct the details of the
translation. In general, the OVF_BLOCK contains information necessary
for vtran to read the input file or "Original Vector File"
(i.e. the WGL or STIL file). The PROC_BLOC contains commands that
tell vtran what data processing functions you want performed on
the simulation data during translation. These typically would be
instructions such as how you would like state characters mapped
between the input and output formats, or perhaps some desired signal
masking. For both of these cycle-based formats, there is not very
much processing that needs to be done so the OVF_BLOCK and PROC_BLOCK
are typically small. Finally, the TVF_BLOCK contains commands that
specify the desired output format in this case it is the
SWAV format for the Credence testers. There may also be some final
processing to be done or some optional user-supplied parameters
that appear in the TVF_BLOCK. Now, lets take a look at some
specifics for these translations.
THE OVF_BLOCK
When using the vtran WGL or STIL canned reader, there is actually
very little information (in the way of command instructions) needed
by vtran to read the data and do any necessary mapping of state
characters, in preparation for generating the SWAV test vector file.
In fact, the only command required in the OVF_BLOCK would be a "TABULAR_FORMAT"
command, which might look like:
OVF_BLOCK
BEGIN
TABULAR_FORMAT wgl cycle, -scan;
END
When reading STIL files, simply replace the "wgl" with
"stil". If the name of the cycle-based file is being supplied
from the command line, then this is all that is needed in the OVF_BLOCK.
Otherwise we might add the ORIG_FILE command to this block:
OVF_BLOCK
BEGIN
TABULAR_FORMAT wgl cycle, -scan;
ORIG_FILE = "filename";
END
Note the two flags that are being passed to the readers. The first
flag (-cycle) is required and tells the reader to not flatten-out
the timing in the input file. Since the SWAV test vector files are
cycle-based formats (as are WGL and STIL), this flag instructs the
reader to keep the signal timing information separate from the cycle
vector data. The second flag (-scan) is optional. If there is no
scan data in the input files, then this flag does nothing and could
hence be left out. If the input WGL or STIL vector files do contain
scan data, then this flag instructs the reader to maintain this
scan data as separate data structures, to be passed to the SWAV-formatted
vectors as scan data. In general, this is a desirable thing to do
since the resulting vector files are usually significantly smaller
using scan syntax than without it. If, however, the user wishes
the scan data contained in the input WGL or STIL files to be expanded
into normal sequential vectors in the SWAV test vector files, then
this flag can be omitted. It is normally recommended that both of
these flags be used.
THE PROC_BLOCK
The PROC_BLOCK commands required for translating WGL or STIL
files to Credence tester files will depend on which input file format
is being read, and on how we would like the states mapped. State
character translations are the only processing needed when doing
translations between WGL or STIL files and the Credence tester. If
we are mapping WGL state characters to those needed for SWAV, then
a typical mapping might look like:
PROC_BLOCK
BEGIN
STATE_TRANS pure_inputs -->0,
X->0;
STATE_TRANS bidir_inputs -->Z;
STATE_TRANS outputs 0->L,
1->H,-->X;
END
These SWAV state character mappings accomplishes two things
first it maps WGL state characters to their equivalent default SWAV
characters, and second it maps any undefined states on input pins
to logic 0 (to avoid any floating inputs). The user may wish to
modify these to achieve some other desired behavior. Mapping
the state characters from a STIL file takes a bit more work:
PROC_BLOCK
BEGIN
STATE_TRANS pure_inputs U->1,
D->0, ?->0;
STATE_TRANS bidir_inputs U->1,
D->0, ?->Z;
STATE_TRANS outputs T->X,
x->X,l->L,
h->H,
t->X, R->L,
G->H,
Q->X,
?->X;
END
Here we need to be careful about how we map the numerous state characters
in a STIL file to those being used by the Credence testers. Again,
this is only a suggested mapping, the user may want to modify this
for different behavior.
THE TVF_BLOCK
There is really only one command required in the TVF_BLOCK of
the vtran command file for the generation of an SWAV vector file.
This is the TESTER_FORMAT (or SIMULATOR) command, which specifies
the target vector file format. The syntax for this command (and
the optional [ ] parameters) is:
SIMULATOR SWAV
[, VERSION = "version string"]
[, DESTINATION = "tester"] {the
tester name }
[, SCANIN_DEFAULT = "state"]
[, BIDIRECTS = "bidir1"]
[, DESIGN = "name"] {used
in header }
[, DATE = "date"]
[, SOURCE = "name"] {name
of source }
[, DESIGNER = "name"] {name
of designer }
[, TIMESCALE = "ns"]
[, SIGNAL_FILE = "filename"]
[, TIMESET_FILE = "filename"]
[, MAX_LINE_LENGTH = "nn"] {default,
80 characters }
[, REPEAT_THRESHOLD = "nn"]
[, TIME_STAMPS = "ON" | "OFF"]
;
The following parameters, if specified, will be placed at the top
of the SWAV file as header information: VERSION, DESTINATION, DESIGN,
DATE, SOURCE, DESIGNER and TIMESCALE. The BIDIRECTS parameter is
used to select between single (bidir1) or dual (bidir the
default) column for bi-directional data in the vector file.
While translating WGL or STIL vectors to SWAV tester formats, vtran
will automatically look for vectors that are repeated in the vector
stream, and optionally use the Repeat function to minimize vector
file size. The REPEAT_THRESHOLD parameter is used to control how
many successive identical vectors will cause the Repeat function
to be activated the default is 9999999 (OFF). For example,
if we set the REPEAT_THRESHOLD to "10", whenever 10 or
more successive vectors are identical, then the Repeat function
would be used to collapse them. When padding unequal
length scan chains, the default pad character is 0,
but this can be modified with the SCANIN_DEFAULT parameter. The
MAX_LINE_LENGTH parameter can be used to specify the maximum number
of characters per line in the SWAV vector file the default
is 80.
For debugging and analysis, it is often useful to see the timestamps
for each vector in the test program that corresponds to its cycle
time in the WGL or STIL input file. These timestamps are displayed
as comments in the output file, but can be disabled using the TIME_STAMPS
= "OFF" parameter.
Use the SIGNAL_FILE parameter and/or the TIMESET_FILE parameter
to replace the signal lists and timing information automatically
generated by vtran at the top of the SWAV vector file, with the
contents of the files defined with these parameters.
SOME EXAMPLES
This first example illustrates the translation of a WGL file
to an SWAV vector file. This WGL file happens to contain some scan
vector data. Any input pins that are undefined in the WGL file are
being mapped to a logic 0 in the test program.
ovf_block
begin
orig_file "s2.wgl";
tabular_format wgl cycle, -scan
;
end
proc_block
begin
STATE_TRANS pure_inputs -->0,
X->0;
STATE_TRANS bidir_inputs -->Z;
STATE_TRANS outputs 0->L,
1->H,-->X;
end
tvf_block
begin
tester_format swav,
SCANIN_DEFAULT = "1",
REPEAT_THRESHOLD = "32",
MAX_LINE_LENGTH = "132"
;
target_file = "s2.swav";
end;
end;
This next example illustrates the translation of a STIL vector file
with scan data, to a Credence tester format. As indicated above,
the state translations are a bit more complicated since there are
more potential states in the STIL file. Each vector
line is limited to 64 characters in length to make the file more
easily readable and printable. In this example, we have also specified
some optional masking to be done to the db_out bus. This bus will
be masked (to an X state) during the cycle in which the control
pin enb_db goes from a 1 to a 0, plus one more cycle, throughout
the vector set.
ovf_block
begin
tabular_format stil -cycle -scan;
orig_file = "s6.stil" ;
end;
proc_block
begin
state_trans pure_inputs 'D'->'0', 'U'->'1', '?'->'0';
state_trans bidir_inputs 'D'->'0', 'U'->'1', '?'->'X';
state_trans outputs 'T'->'X', 'x'->'X',
'l'->'L', 'h'->'H', 't'->'X', 'R'->'L',
'G'->'H', 'Q'->'X', '?'->'X';
MASK_PINS db_out[31:0] @
control_transition
enb_db 1->0, 0, 1;
end;
tvf_block
tester_format swav
MAX_LINE_LENGTH = "64",
TIME_STAMPS = "OFF"
;
target_file = "s6.swav";
end;
end;
Return to Application Notes Index
|