{"id":13398783,"url":"https://github.com/berkeley-abc/abc","last_synced_at":"2025-05-14T22:07:04.658Z","repository":{"id":38708070,"uuid":"124750053","full_name":"berkeley-abc/abc","owner":"berkeley-abc","description":"ABC: System for Sequential Logic Synthesis and Formal Verification","archived":false,"fork":false,"pushed_at":"2025-05-05T16:03:43.000Z","size":50874,"stargazers_count":987,"open_issues_count":188,"forks_count":623,"subscribers_count":38,"default_branch":"master","last_synced_at":"2025-05-07T21:07:59.309Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/berkeley-abc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-03-11T11:33:37.000Z","updated_at":"2025-05-07T09:07:23.000Z","dependencies_parsed_at":"2025-05-07T21:18:00.218Z","dependency_job_id":null,"html_url":"https://github.com/berkeley-abc/abc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berkeley-abc%2Fabc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berkeley-abc%2Fabc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berkeley-abc%2Fabc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berkeley-abc%2Fabc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/berkeley-abc","download_url":"https://codeload.github.com/berkeley-abc/abc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254235695,"owners_count":22036963,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T19:00:31.642Z","updated_at":"2025-05-14T22:06:59.600Z","avatar_url":"https://github.com/berkeley-abc.png","language":"C","funding_links":[],"categories":["Projects (sorted by year)","C","Circuit Compilers","Hardware Verification"],"sub_categories":["2005","Tools"],"readme":"[![.github/workflows/build-posix.yml](https://github.com/berkeley-abc/abc/actions/workflows/build-posix.yml/badge.svg)](https://github.com/berkeley-abc/abc/actions/workflows/build-posix.yml)\n[![.github/workflows/build-windows.yml](https://github.com/berkeley-abc/abc/actions/workflows/build-windows.yml/badge.svg)](https://github.com/berkeley-abc/abc/actions/workflows/build-windows.yml)\n[![.github/workflows/build-posix-cmake.yml](https://github.com/berkeley-abc/abc/actions/workflows/build-posix-cmake.yml/badge.svg)](https://github.com/berkeley-abc/abc/actions/workflows/build-posix-cmake.yml)\n\n# ABC: System for Sequential Logic Synthesis and Formal Verification\n\nABC is always changing but the current snapshot is believed to be stable.\n\n## ABC fork with new features\n\nHere is a [fork](https://github.com/yongshiwo/abc.git) of ABC containing Agdmap, a novel technology mapper for LUT-based FPGAs.  Agdmap is based on a technology mapping algorithm with adaptive gate decomposition [1]. It is a cut enumeration based mapping algorithm with bin packing for simultaneous wide gate decomposition, which is a patent pending technology.\n\nThe mapper is developed and maintained by Longfei Fan and Prof. Chang Wu at Fudan University in Shanghai, China.  The experimental results presented in [1] indicate that Agdmap can substantially improve area (by 10% or more) when compared against the best LUT mapping solutions in ABC, such as command \"if\".\n\nThe source code is provided for research and evaluation only. For commercial usage, please contact Prof. Chang Wu at wuchang@fudan.edu.cn.\n\nReferences:\n\n[1] L. Fan and C. Wu, \"FPGA technology mapping with adaptive gate decompostion\", ACM/SIGDA FPGA International Symposium on FPGAs, 2023. \n\n## Compiling:\n\nTo compile ABC as a binary, download and unzip the code, then type `make`.\nTo compile ABC as a static library, type `make libabc.a`.\n\nWhen ABC is used as a static library, two additional procedures, `Abc_Start()` \nand `Abc_Stop()`, are provided for starting and quitting the ABC framework in \nthe calling application. A simple demo program (file src/demo.c) shows how to \ncreate a stand-alone program performing DAG-aware AIG rewriting, by calling \nAPIs of ABC compiled as a static library.\n\nTo build the demo program\n\n * Copy demo.c and libabc.a to the working directory\n * Run `gcc -Wall -g -c demo.c -o demo.o`\n * Run `g++ -g -o demo demo.o libabc.a -lm -ldl -lreadline -lpthread`\n\nTo run the demo program, give it a file with the logic network in AIGER or BLIF. For example:\n\n    [...] ~/abc\u003e demo i10.aig\n    i10          : i/o =  257/  224  lat =    0  and =   2396  lev = 37\n    i10          : i/o =  257/  224  lat =    0  and =   1851  lev = 35\n    Networks are equivalent.\n    Reading =   0.00 sec   Rewriting =   0.18 sec   Verification =   0.41 sec\n\nThe same can be produced by running the binary in the command-line mode:\n\n    [...] ~/abc\u003e ./abc\n    UC Berkeley, ABC 1.01 (compiled Oct  6 2012 19:05:18)\n    abc 01\u003e r i10.aig; b; ps; b; rw -l; rw -lz; b; rw -lz; b; ps; cec\n    i10          : i/o =  257/  224  lat =    0  and =   2396  lev = 37\n    i10          : i/o =  257/  224  lat =    0  and =   1851  lev = 35\n    Networks are equivalent.\n\nor in the batch mode:\n\n    [...] ~/abc\u003e ./abc -c \"r i10.aig; b; ps; b; rw -l; rw -lz; b; rw -lz; b; ps; cec\"\n    ABC command line: \"r i10.aig; b; ps; b; rw -l; rw -lz; b; rw -lz; b; ps; cec\".\n    i10          : i/o =  257/  224  lat =    0  and =   2396  lev = 37\n    i10          : i/o =  257/  224  lat =    0  and =   1851  lev = 35\n    Networks are equivalent.\n\n## Compiling as C or C++\n\nThe current version of ABC can be compiled with C compiler or C++ compiler.\n\n * To compile as C code (default): make sure that `CC=gcc` and `ABC_NAMESPACE` is not defined.\n * To compile as C++ code without namespaces: make sure that `CC=g++` and `ABC_NAMESPACE` is not defined.\n * To compile as C++ code with namespaces: make sure that `CC=g++` and `ABC_NAMESPACE` is set to\n   the name of the requested namespace. For example, add `-DABC_NAMESPACE=xxx` to OPTFLAGS.\n\n## Building a shared library\n\n * Compile the code as position-independent by adding `ABC_USE_PIC=1`.\n * Build the `libabc.so` target: \n \n     make ABC_USE_PIC=1 libabc.so\n\n## Bug reporting:\n\nPlease try to reproduce all the reported bugs and unexpected features using the latest \nversion of ABC available from https://github.com/berkeley-abc/abc\n\nIf the bug still persists, please provide the following information:    \n\n 1. ABC version (when it was downloaded from GitHub)\n 1. Linux distribution and version (32-bit or 64-bit)\n 1. The exact command-line and error message when trying to run the tool\n 1. The output of the `ldd` command run on the exeutable (e.g. `ldd abc`).\n 1. Versions of relevant tools or packages used.\n\n\n## Troubleshooting:\n\n 1. If compilation does not start because of the cyclic dependency check, \ntry touching all files as follows: `find ./ -type f -exec touch \"{}\" \\;`\n 1. If compilation fails because readline is missing, install 'readline' library or\ncompile with `make ABC_USE_NO_READLINE=1`\n 1. If compilation fails because pthreads are missing, install 'pthread' library or\ncompile with `make ABC_USE_NO_PTHREADS=1`\n    * See http://sourceware.org/pthreads-win32/ for pthreads on Windows\n    * Precompiled DLLs are available from ftp://sourceware.org/pub/pthreads-win32/dll-latest\n 1. If compilation fails in file \"src/base/main/libSupport.c\", try the following:\n    * Remove \"src/base/main/libSupport.c\" from \"src/base/main/module.make\"\n    * Comment out calls to `Libs_Init()` and `Libs_End()` in \"src/base/main/mainInit.c\"\n 1. On some systems, readline requires adding '-lcurses' to Makefile.\n\nThe following comment was added by Krish Sundaresan:\n\n\"I found that the code does compile correctly on Solaris if gcc is used (instead of \ng++ that I was using for some reason). Also readline which is not available by default \non most Sol10 systems, needs to be installed. I downloaded the readline-5.2 package \nfrom sunfreeware.com and installed it locally. Also modified CFLAGS to add the local \ninclude files for readline and LIBS to add the local libreadline.a. Perhaps you can \nadd these steps in the readme to help folks compiling this on Solaris.\"\n\nThe following tutorial is kindly offered by Ana Petkovska from EPFL:\nhttps://www.dropbox.com/s/qrl9svlf0ylxy8p/ABC_GettingStarted.pdf\n\n## Final remarks:\n\nUnfortunately, there is no comprehensive regression test. Good luck!                                \n\nThis system is maintained by Alan Mishchenko \u003calanmi@berkeley.edu\u003e. Consider also \nusing ZZ framework developed by Niklas Een: https://bitbucket.org/niklaseen/abc-zz (or https://github.com/berkeley-abc/abc-zz)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberkeley-abc%2Fabc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fberkeley-abc%2Fabc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberkeley-abc%2Fabc/lists"}