FAN (fan-out-oriented) ATPG (Automatic Test Pattern Generation) and Fault Simulation command line tool
FAN (fan-out-oriented) ATPG (Automatic Test Pattern Generation) and Fault Simulation command line tool
This tool's main algorithm is implemented based on the following paper:
Fujiwara and Shimono, "On the Acceleration of Test Generation Algorithms," in IEEE Transactions on Computers, vol. C-32, no. 12, pp. 1137-1144, Dec. 1983.
This project is a FAN (fan-out-oriented)[1] ATPG (Automatic Test Pattern Generation) and Fault Simulation command line tool.
This project includes the implementation of
STIL
: Support Fault Simulation with the commercial tool TetraMAX
ASCII
: Support Fault Simulation with the commercial tool FastScan
.pat
: Support Fault Simulation with this tool FAN_ATPG
MFO
, should be integrated as an additional command line opption in the future.We make this project open source in the hope of helping anyone who is learning ATPG. If you have any suggestion for the source code or new features for this project, feel free to fork this repo and create a pull request. Any contribution to this project would be very much appreciated!
We would also be extremely grateful if you star this project!
bin/
: Binary - Store binaries after compilationinclude/
: Store header files included in and copied from pkg/
lib/
: Library - Store library binaries after compilationmod_netlist/
, netlist/
: Store the benchmark circuits[2]pat/
: Patterns - Store the patterns generated by ATPGpkg/
: Package - All of the source code
common/
: Common Linux command line instructions supportcore/
: Main ATPG algorithm and the Fault Simulation procedurefan/
: The ATPG commands and entry point of the programinterface/
: The interface for reading benchmark circuitsrpt/
: Report - Store the report after ATPG or Fault Simulationscript/
: Scripts for running ATPG and Fault Simulationtechlib/
: The cell libraries for benchmark circuitsutility/
: The utilities files, e.g. convert STIL
to .pat
ATPG_UserGuide.pdf
: The User GuidecopyHeader.sh
: Copy header files from pkg/
to include/
Makefile
: The top makefile for the whole projectcommon.mk
: Define the project layout for Makefile
, e.g. directory structure, C++ version, Lex&Yacc.info.mk
: Define package name, type and dependency, e.g. fan
, libcommon.a
rule.mk
: Define rules for make targets, which folder the binary should be generated or copied to.sudo apt install bison
sudo apt install flex
bison --version
lex --version
After the following commands are executed, an executable binary fan
will be generated under ./bin/opt/
.
git clone https://github.com/NTU-LaDS-II/FAN_ATPG.git
cd FAN_ATPG/
make
make clean
./bin/opt/fan -f script/fanScripts/atpg_s27.script
./bin/opt/fan -f script/fanScripts/fsim_s27.script
Fault Coverage (FC) -
Fault Coverage is the most important statistic for evaluation of an ATPG tool. It indicates how well a circuit could be tested, hence the quality of a test pattern set. The calculation equation by this tool FAN_ATPG
is as follow:
FC = {number \ of \ \textbf{\textit{detected}} \ faults \over number \ of \ \textbf{\textit{total}} \ faults} \ * \ 100\%
Test Length (TL) -
Under the same Fault Coverage, it is essential to compress the Test Length. The definition of Test Length is the total number of test patterns in a test pattern set. Low Test Length is desired in order to reduce test data (ATE cost), test time (test cost) while maintaining the same test quality (FC).
Benchmark Circuit | Fault Coverage (%) | Test Length (#) |
---|---|---|
s27 | 94.55 | 12 |
s208 | 97.43 | 46 |
s510 | 99.14 | 70 |
s953 | 97.85 | 123 |
s1196 | 98.84 | 183 |
s1238 | 96.36 | 193 |
s5378 | 96.04 | 478 |
s9234 | 94.14 | 647 |
s15850 | 94.62 | 817 |
s35932 | 87.58 | 1764 |
s38417 | 95.99 | 2428 |
s38584 | 93.33 | 1832 |
Benchmark Circuit | Fault Coverage (%) | Test Length (#) |
---|---|---|
s27 | 94.55 | 9 |
s208 | 97.43 | 36 |
s510 | 99.14 | 65 |
s953 | 97.85 | 93 |
s1196 | 98.84 | 155 |
s1238 | 96.36 | 163 |
s5378 | 96.04 | 327 |
s9234 | 94.14 | 475 |
s15850 | 94.62 | 583 |
s35932 | 87.58 | 512 |
s38417 | 95.99 | 1565 |
s38584 | 93.33 | 1177 |
Benchmark Circuit | Fault Coverage (%) | Test Length (#) |
---|---|---|
s27 | 94.55 | 5 |
s208 | 97.43 | 29 |
s510 | 99.14 | 59 |
s953 | 97.85 | 89 |
s1196 | 98.84 | 134 |
s1238 | 96.36 | 145 |
s5378 | 96.04 | 117 |
s9234 | 94.14 | 156 |
s15850 | 94.62 | 133 |
s35932 | 87.58 | 21 |
s38417 | 96.00 | 105 |
s38584 | 93.33 | 133 |
techlib/mod_nangate45.mdt
and techlib/NangateOpenCellLibrary.v
are under TECHLIB_LICENSE
Wang Wei-Shen - [email protected]
Distributed under the MIT License. See LICENSE
for more information.
Copyright (c) Laboratory of Dependable Systems, Graduate Institute of Electronics Engineering, National Taiwan University, Taiwan. All Rights Reserved.