ReasonToolDocs

advertisement
REASON
Workpackage WP3
Testing and Design for Testability of SOC
Contents
I. Tools for defect oriented testing .............................................................................. 2
1. TTU_DOFSIM - Defect-Oriented Functional Fault Simulation tool ............. 3
2. TTU_MAFFAD - Mapping Functional Faults to Defects tool ......................... 4
3. TTU_DOFGEN - Defect-Oriented Test Generation tool ................................. 5
II. Tools for Built-In Self-Test analysis ...................................................................... 6
1. TTU_SIMBIST - Simulation of Built-In Self-Test tool .................................... 7
2. TTU_HYBCAN - Hybrid BIST Cost Analysis tool (script) ............................. 9
III. Tools for design error diagnosis ......................................................................... 10
1. TTU_DERRIN - Design Error Insertion tool .................................................. 11
2. TTU_PREDIA - Prediagnostic tool .................................................................. 12
3. TTU_TVECIN - Test Vector Insertion tool..................................................... 13
4. TTU_ECRDCR - Encryption/Decryption tool ................................................ 14
5. TTU_COMLIB - Common Library ................................................................. 15
IV. Tools for high level test generation .................................................................... 16
1. Software tools for VHDL Design and Test Flow (CR3-TTU) ........................ 16
2. TTU_VHDLDD – VHDL to DD Converter for hierarchical test generation
.................................................................................................................................. 17
I. Tools for defect oriented testing
The new tools are extensions to the Turbo-Tester (TT) diagnostic tool set developed by TTU
in the frame of previous EC COPERNICUS projects SYTIC and VILAB. The TT tools are
handling logic level SAF faults. The new tools give the TT a new functionality to handle also
physical defects.
All the tools developed by TTU in WP3 use the formats and libraries of TT. Therefore this
deliverable does not embrace all the information and documentation necessary for running
these tools. The details are available at the Turbo Tester home page in the Web:
http://www.pld.ttu.ee/tt.
2
1. TTU_DOFSIM - Defect-Oriented Functional Fault Simulation tool
Tool acronym:
TTU_DOFSIM
Tool destination:
The goal of the tool is to simulate functional faults for logic level
variables and to create the functional fault table.
Tool description:
The working principle of the tool is based on using a new functional
fault model which is a new concept for uniform description of
arbitrary logic faults, and also physical defects by a combination of
stuck-at fault and additional logic condition for activating a defect to
cause the given SAF. The inputs of the tool are the logic description
of circuit in the form of structurally synthesized BDDs (SSBDD). All
the functional faults to be simulated are extracted from the SSBDD
model. The result of the simulation is the fault table.
Tool platform:
OS platforms: Windows/NT, Linux and Solaris
Program. language:
ANSI C language using Microsoft Visual C++, SUN workshop and
GNU CC compilers
Command:
var_analyze
Input:
SSBDD model file (.agm), test pattern file (.tst)
Output:
test patterns including fault analysis result for each low level block
(.tst).
Syntax:
var_analyze <design>
design:
Name of the design file without .agm extension.
3
2. TTU_MAFFAD - Mapping Functional Faults to Defects tool
Tool acronym:
TTU_MAFFAD
Tool destination:
The tool reads the fault table of functional faults of the circuit and the
defect tables of components of the circuit and calculates the defect
coverage (both, probabilistic and enumerative).
Tool description:
The inputs of the program are the fault table of functional faults
created as the result of the functional fault simulation tool
TTU_DOFSIM, and the defect table of components. The defect
tables should be pregenerated. In this project the pregeneration of
defect tables will be done by the partner CO1-WUT for a given set of
selected complex gates or components. The defect tables are stored
as library components. For each component the very costly analysis
of physical defects to create the defect table will be done only once.
The pregenerated results (the library defect table) will be used by the
tool TTU_MAFFAD each time where a component should be
analyzed. Such a hierarchical approach allows tremendously increase
the efficiency of simulation. In fact the complexity of the defect
simulation will be reduced to the complexity of the SAF simulation.
Tool platform:
OS platforms: Windows/NT, Linux and Solaris
Program. language:
ANSI C language using Microsoft Visual C++, SUN workshop and
GNU CC compilers
Command:
deforient
Input:
SSBDD model file (.agm), test pattern file (.tst), defect tables for the
low-level blocks.
Output:
Enumerative and probabilistic defect coverage report (.prb).
Syntax:
deforient <design>
design:
Name of the design file without .agm extension.
4
3. TTU_DOFGEN - Defect-Oriented Test Generation tool
Tool acronym:
TTU_DOFGEN
Tool destination:
The tool generates test patterns for all the physical defects of the
circuit described in the pregenerated library defect tables.
Tool description:
The test generation is carried out in a hierarchical way and is based
on the random test generation algorithm. The patterns are generated
randomly and simulated for functional faults. The detected functional
faults are mapped into the defect space by using the defect tables of
components.
Tool platform:
OS platforms: Windows/NT, Linux and Solaris
Program. language:
ANSI C language using Microsoft Visual C++, SUN workshop and
GNU CC compilers
Command:
randomgen
Input:
SSBDD model file (.agm)
Output:
test pattern file (.tst)
Syntax:
randomgen [options] <design>
design:
Name of the design file without .agm extension.
options:
-length <x>
Generate x test patterns
5
II. Tools for Built-In Self-Test analysis
Due to the high cost of external testers and of inefficiency of testing in real speed by external
testers the Built-In Self-Test (BIST) is the emerging testing concept in VLSI testing and,
particularly, in the System on Chip field. BIST is the capability of a circuit to test itself. BIST
is usually based either on generating on-line pseudorandom patterns by so called LinearFeedback-Shift-Registers (LFSR) or on using functional test patterns. In both cases it is
difficult to reach high-fault coverage because of existing hard-to-detect faults which can be
detected only by a single or very few test patterns. To reach high fault coverage, the HWbased generated pseudorandom (or functional) test patterns can be complemented by
deterministically pregenerated and stored test patterns. This combination is called – hybrid
BIST. The problem here is to find out the best and cost-effective combination of on-line and
stored test patterns.
The low cost tools for simulating different architectures of BIST (or hybrid BIST) and for
analyzing the quality of BIST are missing. To support the lecture courses on BIST to be
developed in WP3 by laboratory works and research training the creation of the following
low-cost tools was planned.
6
1. TTU_SIMBIST - Simulation of Built-In Self-Test tool
Tool acronym:
TTU_SIMBIST
Tool destination:
The tool emulates the given BIST architecture, simulates given
circuit for a given sequence of pseudorandom test patterns, calculates
the signatures and fault coverage.
Tool description:
Different Logic BIST architectures can be emulated: BILBO, CSTP.
One of the two LFSR types can be used : standard or modular. The
structures of LFSRs for test generation and signature analysis are
optional and can be selected by specifying the corresponding polynomials. By emulating the BIST architecture a sequence of pseudorandom patterns will be generated, fault simulated and the final
signature will be calculated. The best settings of the LFSR registers
can be selected by repetitive simulation and by using genetic
algorithms.
Tool platform:
OS platforms: Windows/NT, Linux and Solaris
Program. language:
ANSI C language using Microsoft Visual C++, SUN workshop and
GNU CC compilers
Command:
bist
Input:
SSBDD model file (.agm)
Output:
test pattern file (.tst)
Syntax:
bist –rand –glen <generator_length>
alen <analyzer_length>] [options] <design>
[-
or
bist –gpoly <generator_poly> -ginit <generator_init> [–
apoly <analyzer_poly> -ainit <analyzer_init>] [options]
<design>
design:
Name of the design file without .agm extension.
generator_length:
Length of the generator LFSR in bits.
(Use only with –rand option!).
Length of the analyzer LFSR in bits.
(Use only with –rand and –simul bilbo options!).
Feedback polynomial of the generator LFSR in binary
digits. (Do not use with –rand option!).
Initial value of the generator LFSR in binary digits.
(Do not use with –rand option!).
Feedback polynomial of the analyzr LFSR in binary digits.
(Do not use with –rand and -simul cstp option!).
Initial value of the analyzer LFSR in binary digits.
(Do not use with –rand and -simul cstp option!).
analyzer_length:
generator_poly:
generator_init:
analyzer_poly:
analyzer_init:
options:
-rand
Generate random LFSR feedback polynomials and initial
states.
7
-aliasing
With this option selected, exact fault coverage values will
be reported. BIST emulation will be slower but it will take
into account possible fault aliasing in the analyzer LFSR.
-simul <bilbo|cstp> Choses between BILBO and CSTP architectures. (Default
is BILBO).
-count <cycles>
The length of the test in clock cycles. Default is 1000.
-optimize
Dismiss test patterns at the end of the test sequence that do
not detect any additional faults.
-lsb
Design outputs are connected to the side of less significant
bits of the analyzer LFSR. (Default is the side of more
significant bits).
-run <num>
Run simulation <num> times, sort results and store best
one. Makes sense when -rand option is being used
-oext <extension>
output file with given extension (default '.tst')
-generate
generate test patterns only, don't perform any simulation
-modular
use modular LFSR instead of standard one
8
2. TTU_HYBCAN - Hybrid BIST Cost Analysis tool (script)
Tool acronym:
TTU_HYBCAN
Tool destination:
The tool emulates the given BIST architecture, fault simulates the
given circuit for the given sequence of pseudorandom test patterns,
calculates the fault coverage and total costs of hybrid BIST for the
given breakpoints of the test sequence.
Tool description:
In hybrid BIST, the length of the pseudorandom test is an important
parameter, which determines the behavior of the whole test process.
A shorter pseudorandom test implies a larger deterministic test. This
however requires additional memory space, but at the same time,
shortens the overall test process. A longer pseudorandom test, on the
other hand, will lead to longer test application time with reduced
memory requirements. Therefore it is crucial to determine the
optimal length of pseudorandom test in order to minimize the total
testing cost.
The inputs of the tool are the settings of the BIST architecture, and
the circuit to be fault simulated. First, the BIST will be emulated, and
the fault coverage for the given breakpoints of the test sequence will
be calculated. The number of clocks generated up to the breakpoint
determines the cost of pseudorandom test. For each breakpoint the
needed additional test patterns are generated to reach 100% fault
coverage. The number of needed deterministic patterns determines
the cost of the stored test. As the result of this procedure two
functions will be created: the functions of the costs of pseudorandom
test and of the stored test. The sum of these functions gives the
function of the total cost. The minimum of this cost determines the
breakpoint to be found.
Tool platform:
OS platforms: Linux, Solaris or any other UNIX-like OS able to run
shell scripts. In Windows environment Cygwin (UNIX-like
environment running atop Windows) installation is required.
Program. language:
Bourne Again Shell (bash) scripting
Command:
hybcost.sh
Input:
two test pattern files (.tst) from BIST emulator and deterministic
generator and SSBDD model file (.agm)
Output:
Location (index) of breakpoints and number of additional vectors for
completing 100% test. Results are saved into <design>.res file.
Syntax:
hybcost.sh <inp1> <inp2> <design>
design:
inp1:
inp2:
Name of the design file without .agm extension.
Test pattern file (.tst) from deterministic generator.
Test pattern file (.tst) from BIST emulator (SIMBIST).
9
III. Tools for design error diagnosis
Design errors stand for the mistakes or faults introduced by a designer or a CAD system
during the design process. Such errors usually manifest themselves during design validation
and verification stage. If the specification and the implementation of a design do not match a
design error has been introduced. An example of a design error could be a gate substitution
error. For example, an AND gate is replaced by OR gate in the implementation. It could be
also a bad or missing connection between gates. Extra or missing inverters are also examples
of a design error.
Design error diagnosis is an illustrative area for teaching diagnosis. It shows both the essential
principles of fault diagnosis and the existence of alternative fault models other than stuck-at
faults. The latter is important because the stuck-at fault model is widely accepted and taught
over the world. Therefore students know usually very little about the existence of different
fault models and different diagnostic problems.
The software package for manual design error diagnosis contains following tools.
10
1. TTU_DERRIN - Design Error Insertion tool
Tool acronym:
TTU_DERRIN
Tool destination:
This program creates a pair of specification and implementation,
which are not functionally equal. The specification will be then taken
as correct and the implementation as wrong
Tool description:
This tool is based on the EDIF format converter from the Turbo
Tester package. The input of the converter is the design description in
EDIF format. The output is the internal Turbo Tester format – a
special kind of decision diagrams. TTU_DERRIN tool is an add-on
to the EDIF converter. It analyzes the structure of the design and
inserts a single design error into. The output of TTU_DERRIN tool is
two files. The first one is the correct design while the second is the
design which contains an error.
Tool platform:
OS platforms: Windows/NT, Linux and Solaris
Program. language:
ANSI C language using Microsoft Visual C++, SUN workshop and
GNU CC compilers
Command:
xtimport
Input:
EDIF or ISCAS’89 netlist file
Output:
specification (.spec), implementation (.agm), gate-level paths (.gat),
gate names and types (.pat).
Syntax:
xtimport [options] <EDIF file> <library file>
options:
-paths
-spec
-read_iscas89
-gate_level
-tool <application>
-gnd <gnd name>
-vdd <vdd name>
Preserve information about gate-level signal paths.
Create a specification (insert a design error).
Read ISCAS’89 format.
Generate gate-level SSBDD model. Default output is
macro-level SSBDD.
Options for application are orcad and cadence.
gnd name is the name of the GND net.
vdd name is the name of the VDD net.
11
2. TTU_PREDIA - Prediagnostic tool
Tool acronym:
TTU_PREDIA
Tool destination:
This automated tool allows reducing the suspected faulty area in
larger circuits for subsequent application of manual diagnosis
performed by the student.
Tool description:
In order to have larger variety of tasks for students as well as to have
less restrictions on the circuits used for practicing we propose the
following tool. The tool implements a special design error diagnosis
technique to reduce the area of analysis for larger circuits. The area is
to be kept within certain boundaries, which define the minimum and
the maximum number of gates considered to be under suspicion.
Tool platform:
OS platforms: Windows/NT, Linux and Solaris
Program. language:
ANSI C language using Microsoft Visual C++, SUN workshop and
GNU CC compilers
Command:
prediag
Input:
specification (.spec), implementation (.agm), gate-level paths (.gat),
gate names and types (.pat), test pattern (.tst).
Output:
report file (.rep).
Syntax:
prediag [options] <design>
design:
Name of the design file without .agm extension.
options:
-f
-n
-g
-v <extension>
-s <extension>
-o <extension>
-scr
Show failing outputs.
Do not show suspected nodes.
Do not show suspected gates.
extension is the file name extension of the input test pattern
file. Default extension is tst.
extension is the file name extension of the specification
model file. Default extension is spec.
extension is the file name extension of the output file.
Default extension is rep.
Print everything on the screen only.
12
3. TTU_TVECIN - Test Vector Insertion tool
Tool acronym:
TTU_TVECIN
Tool destination:
It is an interactive tool for manual insertion, deletion or update of
input test vectors in a test pattern file.
Tool description:
The Turbo Tester system has a special format the test vectors are kept
in. Automatic test pattern generation tools from Turbo Tester
package use this format to store generated tests in files. However, it
is inconvenient to manually compose from scratch these test vectors
files using this format. Therefore for manual test vector generation a
special user-friendly tool is needed to create the interface between the
user and the Turbo Tester. The proposed vector manager tool
includes also some simple test manipulation possibilities, like fault
simulation, logic simulation, random test vectors creation, etc. It can
work in an interactive as well as in a command line modes. In
interactive mode (usage: vecmanager) the program asks for the name
of the design, the name of the test pattern file, and finally gives the
following menu:
S. Show existing test patterns
N. Insert completely New test
A. Add vectors
D. Remove some vectors
R. Automatically generate some Random sequence
F. Perform Fault simulation
X. Save patterns and eXit
In the command line mode you can add only a single test vector.
Tool platform:
OS platforms: Windows/NT, Linux and Solaris
Program. language:
ANSI C language using Microsoft Visual C++, SUN workshop and
GNU CC compilers
Command:
vecmanager
Input:
SSBDD model file (.agm), test pattern file (.tst).
Output:
test pattern file (.tst).
Syntax:
vecmanager [options] [<design>]
design:
Name of the design file without .agm extension.
options:
-new
-add <vector>
-i <extension>
-o <extension>
-ftable
Create completely new test set.
Add test pattern vector.
extension is the file name extension of the input file.
Default extension is tst.
extension is the file name extension of the output file.
Default extension is tst.
Perform fault simulation.
13
4. TTU_ECRDCR - Encryption/Decryption tool
Tool acronym:
TTU_ECRDCR
Tool destination:
The encryption part of the tool encrypts the information about the
design error, which includes the type of inserted error and its precise
location. The decryption part of the tool allows teacher to decrypt the
information about the design error and therefore to verify the
correctness of the diagnosis performed by the student.
Tool description:
The encryption part of the tool must be implemented as a part of the
Design Error Insertion tool - TTU-DERRIN. The decryption part of
the tool is implemented as a separate program (checkgate).
Tool platform:
OS platforms: Windows/NT, Linux and Solaris
Program. language:
ANSI C language using Microsoft Visual C++, SUN workshop and
GNU CC compilers
Command:
checkgate
Input:
encrypted name and type of the erroneous gate (can be read from file
<design>.rep).
Output:
decrypted name and type of the erroneous gate.
Syntax:
checkgate [options] [ -f <InFile>| -m <message>]
InFile:
File containing the encrypted message.
message:
String of printable ASCII characters (encrypted message).
options:
-o <file>
-s
file is the output file.
Print output also on the screen.
(default: if -f specified - don't, otherwise - yes).
14
5. TTU_COMLIB - Common Library
Tool acronym:
TTU_COMLIB
Tool destination:
This component is to be created to bind the diagnostic programs
together as well as to implement some minor functions used
throughout the package.
Tool description:
Some functions for reading and writing of common formats are to be
implemented as well as the functions to append the common log file
from all the diagnostic package components.
Tool platform:
OS platforms: Windows/NT, Linux and Solaris
Program. language:
ANSI C language using Microsoft Visual C++, SUN workshop and
GNU CC compilers
15
IV. Tools for high level test generation
1. Software tools for VHDL Design and Test Flow (CR3-TTU)
As the degree of integration in VLSI designs has been growing, so has the need for
automation of different design tasks. Design automation helps to shorten the time-to-market
cycle and improves significantly designer’s productivity. The automation was first introduced
on the lower levels of design tasks, like placement and routing, and together with the growth
of design complexities, moved gradually to higher levels, e.g. logic synthesis, high-level
synthesis (HLS) and hardware/software co-design. Nowadays the goal is to automate the
entire design cycle from conceptualization to generation of silicon layout.
During recent years, more-and-more commercial and university high-level synthesis tools
have become available. These tools are applied for automatically generating a registertransfer level (RTL) description from a behavioral description of the circuit. In the RTL
descriptions the design has been partitioned into a control part, i.e. a finite state machine, and
a datapath part containing a network of interconnected functional units (FU). Usually the HLS
tools take into account several constraints, as speed, area, or testability, and allow the
designer to quickly compare the trade-offs between alternative RTL implementations.
The circuit design flow continues by synthesizing the RTL descriptions to the logic level.
Subsequently, the logic gates are placed to the chip layout and connections between them are
routed. Finally, the chip is manufactured in a silicon foundry and tested.
We propose a hierarchical test generation fitting into the circuit synthesis flow described
above. The environment consists of a hierarchical test generator and dedicated high- and lowlevel Decision Diagram (DD) model interfaces. From RT-level VHDL descriptions, highlevel DD interface generates RTL DD models, which are applied as the high-level input for
the test generator. Low-Level DD (LLDD) representations are required when generating
local, structural level tests for the functional units (FU) of the design. For that purpose, an
EDIF to LLDD interface has been implemented. The system includes also a low-level
sequential circuit fault simulator, which is needed to measure the stuck-at fault coverage of
the tests generated by the hierarchical ATPG.
The VHDL Design and Test Flow includes the following steps and tools (printed in italics).
- The user describes a design at behavioral level using VHDL.
- A high-level synthesis tool xTractor (a tool developed at TTU) synthesizes the
description into RT-level VHDL.
- VHDL interface (VHDL to DD Converter) is used to generate High-Level Decision
Diagram (HLDD) models from the RTL VHDL. This tool is to be developed in the
REASON project.
- Synopsys Design Compiler is run in order to synthesize the RTL VHDL into logic
level netlist in EDIF format.
- Low-Level Decision Diagrams (LLDD) are generated from the EDIF description by
EDIF importing tool. This tool is developed at TTU.
- The generated HLDD and LLDD models are used in hierarchical test generation by
DECIDER tool and in hierarchical fault simulation. The DECIDER tool is developed
at TTU.
- Exact fault coverage of the tests are measured using the logic level fault simulator.
This tool is developed at TTU and belongs to the tool-set Turbo-Tester
Specification of the tool developed in this project:
16
2. TTU_VHDLDD – VHDL to DD Converter for hierarchical test generation
Tool acronym:
TTU_VHDLDD
Tool destination:
The tool is used to generate High-Level Decision Diagram (HLDD)
models from the RTL VHDL to create a link between high-level
synthesis flow and hierarchical test generation flow.
Tool description:
VHDL2DD tool translates behavioral register transfer level (RTL)
VHDL to high-level decision diagram representation format suitable
for simulation and test generation programs. Supported source RTL
level VHDL should describe both Data and Control path of the
digital device; description should contain the control states and
possible data operations in each state. Generated structural VHDL
code is one level lower in abstraction than RTL level VHDL code.
Control and data paths are separated and each operation in source
VHDL is replaced with proper functional element, multiplexers
introduced in order to commutate data. There is one-to-one mapping
between generated high level DD-s and generated structural VHDL
Tool platform:
OS platforms: Solaris
Program. language:
ANSI C language using SUN workshop and GNU CC compilers
Command:
vhdl2dd
Input:
Behavioral RTL VHDL (*.vhdl)
Output:
High-Level Decision Diagram, corresponding structural vhdl
(result_file_name)
Syntax:
or
vhdl2dd < source_file_name (results displayed on screen)
vhdl2dd < source_file_name >! result_file_name (results into
file)
source_file_name:
substitute with your input file name
result_file_name:
substitute with your output file name
17
Download