ABC: System for Sequential Logic Synthesis and Formal Verification
Go to file
Alan Mishchenko f66fd3f3a3 Updating readme. 2012-10-06 18:28:25 -07:00
scripts . 2012-06-22 14:30:20 -07:00
src Updating readme. 2012-10-06 18:28:25 -07:00
.gitattributes Added .gitignore 2009-04-26 02:08:48 -07:00
.gitignore Added .gitignore 2009-04-26 02:08:48 -07:00
.hgignore Misc changes. 2012-04-22 23:33:50 -07:00
Makefile New AIG optimization package. 2012-10-06 15:09:00 -07:00
abc.rc Added recording history of used commands into file 'abc.history' (Windows only). 2012-08-24 15:44:33 -07:00
abcexe.dsp Prepared &gla to try abstracting and proving concurrently. 2012-09-14 21:20:37 -07:00
abclib.dsp New AIG optimization package. 2012-10-06 15:09:00 -07:00
abcspace.dsw Version abc90215 2009-02-15 08:01:00 -08:00
arch_flags.c Major restructuring of the code. 2012-01-21 04:30:10 -08:00
copyright.txt Version abc80410 2008-04-10 08:01:00 -07:00
depends.sh made depends.sh executable 2010-11-01 01:39:04 -07:00
readme Updating readme. 2012-10-06 18:28:25 -07:00
readmeaig Renamed Aig_ObjIsPi/Po to be ...Ci/Co and Aig_Man(Pi/Po)Num to be ...(Ci/Co)... 2012-03-10 12:09:48 -08:00

readme

ABC: System for Sequential Logic Synthesis and Formal Verification


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 
the calling application. A simple demo program (file demo.c) shows how to 
create a stand-alone program performing DAG-aware AIG rewriting, by calling 
APIs of ABC compiled as a static library.

To build the demo program
- Copy libabc.a to the working directory
- Run "gcc -Wall -g -c demo.c -o demo.o"
- Run "gcc -g -o demo demo.o -lm -ldl -rdynamic -lreadline -ltermcap -lpthread libabc.a"


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
comment out line 29 "#define ABC_USE_PTHREADS" in file "src/base/cmd/cmdStarter.c" and 
"src/proof/abs/absPth.c"

(5) If compilation fails in file "src\base\main\libSupport.c", 
- 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"


The following comment was added by Krish Sundaresan:

"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