2012-10-07 04:00:57 +02:00
|
|
|
ABC: System for Sequential Logic Synthesis and Formal Verification
|
2012-10-07 03:28:25 +02:00
|
|
|
|
|
|
|
|
ABC is always changing but the current snapshot is believed to be stable.
|
|
|
|
|
|
|
|
|
|
Compiling:
|
|
|
|
|
|
|
|
|
|
To compile ABC as a binary, download and unzip the code, then type "make".
|
|
|
|
|
|
|
|
|
|
To compile ABC as a static library, comment out #define _LIB in file
|
|
|
|
|
"src/base/main/main.c", then type "make libabc.a".
|
|
|
|
|
|
|
|
|
|
When ABC is used as a static library, two additional procedures, Abc_Start()
|
|
|
|
|
and Abc_Stop(), are provided for starting and quitting the ABC framework in
|
2012-10-07 04:00:57 +02:00
|
|
|
the calling application. A simple demo program (file src/demo.c) shows how to
|
2012-10-07 03:28:25 +02:00
|
|
|
create a stand-alone program performing DAG-aware AIG rewriting, by calling
|
|
|
|
|
APIs of ABC compiled as a static library.
|
|
|
|
|
|
2012-10-07 04:00:57 +02:00
|
|
|
To build demo program
|
|
|
|
|
- Copy demo.cc and libabc.a to the working directory
|
2012-10-07 03:28:25 +02:00
|
|
|
- Run "gcc -Wall -g -c demo.c -o demo.o"
|
2012-10-07 04:00:57 +02:00
|
|
|
- Run "gcc -g -o demo demo.o libabc.a -lm -ldl -rdynamic -lreadline -ltermcap -lpthread"
|
|
|
|
|
|
|
|
|
|
To run demo program, give it a file with the logic network in AIGER or BLIF. For example:
|
|
|
|
|
|
|
|
|
|
[alanmi@mima] ~/abc> demo i10.aig
|
|
|
|
|
i10 : i/o = 257/ 224 lat = 0 and = 2396 lev = 37
|
|
|
|
|
i10 : i/o = 257/ 224 lat = 0 and = 1851 lev = 35
|
|
|
|
|
Networks are equivalent.
|
|
|
|
|
Reading = 0.00 sec Rewriting = 0.18 sec Verification = 0.41 sec
|
|
|
|
|
|
2012-10-07 03:28:25 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
Compiling as C or C++
|
|
|
|
|
|
|
|
|
|
The current version of ABC can be compiled with both C compiler and C++ compiler.
|
|
|
|
|
|
|
|
|
|
To compile as C code (default): make sure that CC=gcc and ABC_NAMESPACE is not defined.
|
|
|
|
|
To compile as C++ code without namespaces: make sure that CC=g++ and ABC_NAMESPACE is not defined.
|
|
|
|
|
To compile as C++ code with namespaces: make sure that CC=g++ and ABC_NAMESPACE is set to
|
|
|
|
|
the name of the requested namespace. For example, add to OPTFLAGS -DABC_NAMESPACE=xxx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bug reporting:
|
|
|
|
|
|
|
|
|
|
Please try to reproduce all the reported bugs and unexpected features using the latest
|
|
|
|
|
version of ABC available from https://bitbucket.org/alanmi/abc/
|
|
|
|
|
|
|
|
|
|
If the bug still persists, please provide the following information:
|
|
|
|
|
1. ABC version (when it was downloaded from BitBucket)
|
|
|
|
|
2. Linux distribution and version (32-bit or 64-bit)
|
|
|
|
|
3. The exact command-line and error message when trying to run the tool
|
|
|
|
|
4. The output of the 'ldd' command run on the exeutable (e.g. 'ldd abc').
|
|
|
|
|
5. Versions of relevant tools or packages used.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Trouble shooting:
|
|
|
|
|
|
|
|
|
|
(1) If compilation does not start because of the cyclic dependency check,
|
|
|
|
|
try touching all files as follows: find ./ -type f -exec touch "{}" \;
|
|
|
|
|
|
|
|
|
|
(2) If compilation fails because 'readline' is missing, install 'readline' or
|
|
|
|
|
comment out line 26 "#define ABC_USE_READ_LINE" in file "src/base/main/mainUtils.c"
|
|
|
|
|
|
|
|
|
|
(4) If compilation fails because 'pthread' is missing, install 'pthreads' library or
|
2012-10-07 04:00:57 +02:00
|
|
|
comment out line 29 "#define ABC_USE_PTHREADS" in file "src/base/cmd/cmdStarter.c"
|
|
|
|
|
and in file "src/proof/abs/absPth.c"
|
2012-10-07 03:28:25 +02:00
|
|
|
|
2012-10-07 04:00:57 +02:00
|
|
|
(5) If compilation fails in file "src/base/main/libSupport.c", try the following:
|
|
|
|
|
- Remove "src/base/main/libSupport.c" from "src/base/main/module.make"
|
|
|
|
|
- Comment out calls to Libs_Init() and Libs_End() in "src/base/main/mainInit.c"
|
2010-11-01 09:35:04 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
The following comment was added by Krish Sundaresan:
|
|
|
|
|
|
2012-10-07 03:28:25 +02:00
|
|
|
"I found that the code does compile correctly on Solaris if gcc is used (instead of
|
|
|
|
|
g++ that I was using for some reason). Also readline which is not available by default
|
|
|
|
|
on most Sol10 systems, needs to be installed. I downloaded the readline-5.2 package
|
|
|
|
|
from sunfreeware.com and installed it locally. Also modified CFLAGS to add the local
|
|
|
|
|
include files for readline and LIBS to add the local libreadline.a. Perhaps you can
|
|
|
|
|
add these steps in the readme to help folks compiling this on Solaris."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Final remarks:
|
|
|
|
|
|
|
|
|
|
Unfortunately, there is no regression test. Good luck!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Alan Mishchenko <alanmi@eecs.berkeley.edu>
|
|
|
|
|
|
|
|
|
|
This file was last modified on Oct 6, 2012
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|