Compare commits
No commits in common. "rawhide" and "f26" have entirely different histories.
7 changed files with 363 additions and 1 deletions
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
/13cb576b8538.zip
|
||||
/a8730ca647f5.zip
|
||||
/8e08604f8ad3.zip
|
||||
70
abc-bundlelib.patch
Normal file
70
abc-bundlelib.patch
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
--- Makefile.orig 2016-09-05 14:54:44.000000000 -0600
|
||||
+++ Makefile 2016-09-10 02:02:01.380988862 -0600
|
||||
@@ -18,7 +18,7 @@
|
||||
src/map/mapper src/map/mio src/map/super src/map/if \
|
||||
src/map/amap src/map/cov src/map/scl src/map/mpm \
|
||||
src/misc/extra src/misc/mvc src/misc/st src/misc/util src/misc/nm \
|
||||
- src/misc/vec src/misc/hash src/misc/tim src/misc/bzlib src/misc/zlib \
|
||||
+ src/misc/vec src/misc/hash src/misc/tim \
|
||||
src/misc/mem src/misc/bar src/misc/bbl src/misc/parse \
|
||||
src/opt/cut src/opt/fxu src/opt/fxch src/opt/rwr src/opt/mfs src/opt/sim \
|
||||
src/opt/ret src/opt/fret src/opt/res src/opt/lpk src/opt/nwk src/opt/rwt \
|
||||
@@ -117,7 +117,7 @@
|
||||
endif
|
||||
|
||||
# LIBS := -ldl -lrt
|
||||
-LIBS += -ldl -lm
|
||||
+LIBS += -Wl,--as-needed -lbz2 -lz -ldl -lm
|
||||
ifneq ($(findstring Darwin, $(shell uname)), Darwin)
|
||||
LIBS += -lrt
|
||||
endif
|
||||
--- src/base/io/ioReadAiger.c.orig 2016-02-03 14:56:47.000000000 -0700
|
||||
+++ src/base/io/ioReadAiger.c 2016-02-04 21:37:07.724515263 -0700
|
||||
@@ -26,8 +26,8 @@
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
|
||||
-#include "misc/bzlib/bzlib.h"
|
||||
-#include "misc/zlib/zlib.h"
|
||||
+#include <bzlib.h>
|
||||
+#include <zlib.h>
|
||||
#include "ioAbc.h"
|
||||
|
||||
ABC_NAMESPACE_IMPL_START
|
||||
--- src/base/io/ioReadBlifMv.c.orig 2016-02-03 14:56:47.000000000 -0700
|
||||
+++ src/base/io/ioReadBlifMv.c 2016-02-04 21:37:07.726515102 -0700
|
||||
@@ -18,8 +18,8 @@
|
||||
|
||||
***********************************************************************/
|
||||
|
||||
-#include "misc/zlib/zlib.h"
|
||||
-#include "misc/bzlib/bzlib.h"
|
||||
+#include <zlib.h>
|
||||
+#include <bzlib.h>
|
||||
#include "base/abc/abc.h"
|
||||
#include "misc/vec/vecPtr.h"
|
||||
#include "ioAbc.h"
|
||||
--- src/base/io/ioWriteAiger.c.orig 2016-02-03 14:56:47.000000000 -0700
|
||||
+++ src/base/io/ioWriteAiger.c 2016-02-04 21:37:07.727515021 -0700
|
||||
@@ -26,8 +26,8 @@
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
|
||||
-#include "misc/bzlib/bzlib.h"
|
||||
-#include "misc/zlib/zlib.h"
|
||||
+#include <bzlib.h>
|
||||
+#include <zlib.h>
|
||||
#include "ioAbc.h"
|
||||
|
||||
|
||||
--- src/sat/cnf/cnfMan.c.orig 2016-02-03 14:56:47.000000000 -0700
|
||||
+++ src/sat/cnf/cnfMan.c 2016-02-04 21:37:07.728514940 -0700
|
||||
@@ -21,7 +21,7 @@
|
||||
#include "cnf.h"
|
||||
#include "sat/bsat/satSolver.h"
|
||||
#include "sat/bsat/satSolver2.h"
|
||||
-#include "misc/zlib/zlib.h"
|
||||
+#include <zlib.h>
|
||||
|
||||
ABC_NAMESPACE_IMPL_START
|
||||
|
||||
24
abc-sharedlib.patch
Normal file
24
abc-sharedlib.patch
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
--- Makefile.orig 2016-02-05 14:41:31.862198725 -0700
|
||||
+++ Makefile 2016-02-04 21:46:14.618379630 -0700
|
||||
@@ -46,7 +46,7 @@ ARCHFLAGS := $(ARCHFLAGS)
|
||||
|
||||
OPTFLAGS ?= -g -O
|
||||
|
||||
-CFLAGS += -Wall -Wno-unused-function -Wno-write-strings -Wno-sign-compare $(ARCHFLAGS)
|
||||
+CFLAGS += -Wno-unused-function $(OPTFLAGS) $(ARCHFLAGS) -Isrc
|
||||
ifneq ($(findstring arm,$(shell uname -m)),)
|
||||
CFLAGS += -DABC_MEMALIGN=4
|
||||
endif
|
||||
@@ -186,6 +186,12 @@ $(PROG): $(OBJ)
|
||||
@echo "$(MSG_PREFIX)\`\` Building binary:" $(notdir $@)
|
||||
$(VERBOSE)$(LD) -o $@ $^ $(LIBS)
|
||||
|
||||
+lib$(PROG).so: $(OBJ)
|
||||
+ @echo "$(MSG_PREFIX)\`\` Linking:" $(notdir $@)
|
||||
+ $(VERBOSE)$(LD) -shared -Wl,-h,lib$(PROG).so.0 -o lib$(PROG).so.0.0.0 $^ $(LIBS)
|
||||
+ $(VERBOSE)ln -s lib$(PROG).so.0.0.0 lib$(PROG).so.0
|
||||
+ $(VERBOSE)ln -s lib$(PROG).so.0 $@
|
||||
+
|
||||
lib$(PROG).a: $(OBJ)
|
||||
@echo "$(MSG_PREFIX)\`\` Linking:" $(notdir $@)
|
||||
$(VERBOSE)ar rv $@ $?
|
||||
99
abc.1
Normal file
99
abc.1
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
.TH "ABC" "1" "@VERSION@" "ABC" "User Commands"
|
||||
.SH "NAME"
|
||||
abc \- sequential logic synthesis and formal verification
|
||||
.SH "SYNOPSIS"
|
||||
.B abc
|
||||
[\fIOPTIONS\fP] \fIFILE\fP
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
ABC is a growing software system for synthesis and verification of binary
|
||||
sequential logic circuits appearing in synchronous hardware designs. ABC
|
||||
combines scalable logic optimization based on And-Inverter Graphs (AIGs),
|
||||
optimal-delay DAG-based technology mapping for look-up tables and standard
|
||||
cells, and innovative algorithms for sequential synthesis and verification.
|
||||
.PP
|
||||
ABC provides an experimental implementation of these algorithms and a
|
||||
programming environment for building similar applications. Future development
|
||||
will focus on improving the algorithms and making most of the packages
|
||||
stand-alone. This will allow the user to customize ABC for their needs as if
|
||||
it were a toolbox rather than a complete tool.
|
||||
.SH "OPTIONS"
|
||||
.TP
|
||||
\fB\-c\fP \fICMD\fP
|
||||
Execute commands \fICMD\fP.
|
||||
.TP
|
||||
\fB\-q\fP \fICMD\fP
|
||||
Execute commands \fICMD\fP quietly.
|
||||
.TP
|
||||
\fB\-C\fP \fICMD\fP
|
||||
Execute commands \fICMD\fP, then continue in interactive mode.
|
||||
.TP
|
||||
\fB\-F\fP \fISCRIPT\fP
|
||||
Execute commands from script file \fISCRIPT\fP and echo commands.
|
||||
.TP
|
||||
\fB\-f\fP \fISCRIPT\fP
|
||||
Execute commands from script file \fISCRIPT\fP.
|
||||
.TP
|
||||
\fB\-h\fP
|
||||
Print command usage.
|
||||
.TP
|
||||
\fB\-o\fP \fIFILE\fP
|
||||
Store the result in \fIFILE\fP.
|
||||
.TP
|
||||
\fB\-s\fP
|
||||
Do not read any initialization file.
|
||||
.TP
|
||||
\fB\-t\fP \fITYPE\fP
|
||||
Specify the input type, one of \fIblif_mv\fP, \fIblif_mvs\fP, \fIblif\fP, or
|
||||
\fInone\fP. The default is \fIblif_mv\fP.
|
||||
.TP
|
||||
\fB\-T\fP \fITYPE\fP
|
||||
Specify the output type, one of \fIblif_mv\fP, \fIblif_mvs\fP, \fIblif\fP, or
|
||||
\fInone\fP. The default is \fIblif_mv\fP.
|
||||
.TP
|
||||
\fB\-x\fP
|
||||
Equivalent to \fI-t none -T none\fP.
|
||||
.TP
|
||||
\fB\-b\fP
|
||||
Run in bridge mode.
|
||||
.SH "INTRODUCTION"
|
||||
.PP
|
||||
Data structures and algorithms at the heart of a software system determine its
|
||||
capabilities in processing data and its efficiency as a programming
|
||||
environment for building new applications. Extensive experience of developing
|
||||
and using SIS, VIS, and MVSIS, makes it clear that these systems do not
|
||||
provide a flexible programming environment to implement recent innovations,
|
||||
such as integration of technology mapping and retiming. Specifically, the SIS
|
||||
environment is outdated and rather inefficient when handling large circuits.
|
||||
VIS, designed as a formal verification tool for multi-valued specifications,
|
||||
does not provide enough flexibility for binary synthesis. MVSIS was developed
|
||||
and extensively used by us in the recent years for implementing new synthesis
|
||||
algorithms for both multi-valued and binary networks. Finally, we became
|
||||
convinced that (a) the basic data structures and algorithms of MVSIS can be
|
||||
made considerably simpler and easier to use by assuming binary networks, and
|
||||
(b) a central place in the new system should be given to a new data structure,
|
||||
AIGs (multi-level logic networks composed of two-input ANDs and inverters),
|
||||
which promises improvements in quality and runtime of synthesis and
|
||||
verification.
|
||||
.PP
|
||||
This understanding motivates us to redevelop the core packages of MVSIS
|
||||
resulting in a new programming environment named ABC. As the name suggests,
|
||||
the primary goal is to keep data structures simple and flexible for a wide
|
||||
range of applications. The “philosophy of ABC” has several basic premises.
|
||||
One of them is allowing for a variety of functional representations, such as
|
||||
BDDs and SOPs, to solve specialized tasks, while defaulting to AIGs for the
|
||||
mainstream network manipulation. Representing logic using AIGs leads to a
|
||||
remarkable uniformity in computation and efficient interfacing with CNF-based
|
||||
SAT solvers for handing Boolean reasoning problems. Another fundamental
|
||||
premise of ABC is the synergy between synthesis and verification using
|
||||
efficient SAT-based Boolean reasoning on the AIG for combinational and
|
||||
sequential equivalence checking.
|
||||
.PP
|
||||
The goal of the ABC project is to provide a public-domain implementation of
|
||||
the state-of-the-art combinational and sequential synthesis algorithms and, at
|
||||
the same time, create an open-source environment, in which such applications
|
||||
can be developed and compared. The current version of ABC can
|
||||
optimize/map/retime industrial gate-level designs with 100K gates and 10K
|
||||
sequential elements for optimal delay and heuristically minimized area in
|
||||
about one minute of CPU time on a modern computer. The runtime of the
|
||||
combinational synthesis, mapping, and verification is typically faster.
|
||||
166
abc.spec
Normal file
166
abc.spec
Normal file
|
|
@ -0,0 +1,166 @@
|
|||
# Upstream doesn't make releases. We have to check the code out of Mercurial.
|
||||
%global owner alanmi
|
||||
%global commit 8e08604f8ad3
|
||||
%global hgdate 20160905
|
||||
|
||||
# WARNING: When updating to a newer snapshot, because upstream doesn't do
|
||||
# shared library versioning, run abipkgdiff (from libabigail) against the
|
||||
# old and new binary and debuginfo packages to detect abi changes that would
|
||||
# require bumping the shared library version, e.g.,
|
||||
# abipkgdiff --d1 abc-debuginfo-<old>.rpm --d2 abc-debuginfo-<new>.rpm \
|
||||
# abc-<old>.rpm abc-<new>.rpm
|
||||
# If the shared library version is bumped, remember to rebuild dependent
|
||||
# packages, finding them using e.g.
|
||||
# repoquery --whatrequires abc-libs
|
||||
# This should be done for each branch in which abc-libs will be updated.
|
||||
|
||||
Name: abc
|
||||
Version: 1.01
|
||||
Release: 11.hg%{hgdate}%{?dist}
|
||||
Summary: Sequential logic synthesis and formal verification
|
||||
|
||||
License: MIT
|
||||
URL: http://www.eecs.berkeley.edu/~alanmi/abc/abc.htm
|
||||
Source0: https://bitbucket.org/%{owner}/%{name}/get/%{commit}.zip
|
||||
# Man page created by Jerry James using upstream text; hence, it is covered by
|
||||
# the same copyright and license as the code.
|
||||
Source1: %{name}.1
|
||||
# Fedora-specific patch: do not use the bundled libraries
|
||||
Patch0: %{name}-bundlelib.patch
|
||||
# Fedora-specific patch: build a shared library instead of a static library
|
||||
Patch1: %{name}-sharedlib.patch
|
||||
|
||||
BuildRequires: bzip2-devel
|
||||
BuildRequires: gcc
|
||||
BuildRequires: readline-devel
|
||||
BuildRequires: zlib-devel
|
||||
|
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description
|
||||
ABC is a growing software system for synthesis and verification of
|
||||
binary sequential logic circuits appearing in synchronous hardware
|
||||
designs. ABC combines scalable logic optimization based on And-Inverter
|
||||
Graphs (AIGs), optimal-delay DAG-based technology mapping for look-up
|
||||
tables and standard cells, and innovative algorithms for sequential
|
||||
synthesis and verification.
|
||||
|
||||
ABC provides an experimental implementation of these algorithms and a
|
||||
programming environment for building similar applications. Future
|
||||
development will focus on improving the algorithms and making most of
|
||||
the packages stand-alone. This will allow the user to customize ABC for
|
||||
their needs as if it were a toolbox rather than a complete tool.
|
||||
|
||||
%package libs
|
||||
Summary: Library for sequential synthesis and verification
|
||||
|
||||
%description libs
|
||||
This package contains the core functionality of ABC as a shared library.
|
||||
|
||||
%package devel
|
||||
Summary: Headers and libraries for developing with ABC
|
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description devel
|
||||
Headers and libraries for developing applications that use ABC.
|
||||
|
||||
%prep
|
||||
%setup -q -n %{owner}-%{name}-%{commit}
|
||||
%patch0
|
||||
%patch1
|
||||
|
||||
# Do not use the bundled libraries
|
||||
rm -fr lib src/misc/{bzlib,zlib} src/sat/bsat2
|
||||
|
||||
# Fix end of line encodings
|
||||
for fil in readme.md readmeaig; do
|
||||
sed -i.orig 's/\r//' ${fil}
|
||||
touch -r ${fil}.orig ${fil}
|
||||
rm -f ${fil}.orig
|
||||
done
|
||||
|
||||
# Set the version number in the man page
|
||||
sed 's/@VERSION@/%{version} (%{hgdate})/' %{SOURCE1} > %{name}.1
|
||||
touch -r %{SOURCE1} %{name}.1
|
||||
|
||||
%build
|
||||
# Build the library and binary
|
||||
make %{?_smp_mflags} libabc.so OPTFLAGS="%{optflags} -fPIC -DNDEBUG" \
|
||||
LD="g++ $RPM_LD_FLAGS" ABC_MAKE_VERBOSE=1
|
||||
g++ src/base/main/main.o -o %{name} $RPM_LD_FLAGS -L. -labc
|
||||
|
||||
%install
|
||||
# Install the library
|
||||
mkdir -p %{buildroot}%{_libdir}
|
||||
install -p -m 0755 lib%{name}.so.0.0.0 %{buildroot}%{_libdir}
|
||||
ln -s lib%{name}.so.0.0.0 %{buildroot}%{_libdir}/lib%{name}.so.0
|
||||
ln -s lib%{name}.so.0 %{buildroot}%{_libdir}/lib%{name}.so
|
||||
|
||||
# Install the header files
|
||||
pushd src
|
||||
mkdir -p %{buildroot}%{_includedir}/%{name}
|
||||
tar -cBf - $(find -O3 . -name \*.h) | \
|
||||
(cd %{buildroot}%{_includedir}/%{name}; tar -xBf -)
|
||||
popd
|
||||
|
||||
# Install the binary
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
install -p -m 0755 %{name} %{buildroot}%{_bindir}
|
||||
|
||||
# Install the man page
|
||||
mkdir -p %{buildroot}%{_mandir}/man1
|
||||
install -p -m 0644 %{name}.1 %{buildroot}%{_mandir}/man1
|
||||
|
||||
%post libs -p /sbin/ldconfig
|
||||
|
||||
%postun libs -p /sbin/ldconfig
|
||||
|
||||
%files
|
||||
%doc readme.md readmeaig
|
||||
%{_bindir}/%{name}
|
||||
%{_mandir}/man1/%{name}*
|
||||
|
||||
%files libs
|
||||
%license copyright.txt
|
||||
%{_libdir}/lib%{name}.so.*
|
||||
|
||||
%files devel
|
||||
%{_includedir}/%{name}/
|
||||
%{_libdir}/lib%{name}.so
|
||||
|
||||
%changelog
|
||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.01-11.hg20160905
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Thu Jan 12 2017 Igor Gnatenko <ignatenko@redhat.com> - 1.01-10.hg20160905
|
||||
- Rebuild for readline 7.x
|
||||
|
||||
* Sat Sep 10 2016 Eric Smith <brouhaha@fedoraproject.org> - 1.01-9.hg20160905
|
||||
- Update to latest mercurial snapshot
|
||||
|
||||
* Fri Feb 5 2016 Jerry James <loganjerry@gmail.com> - 1.01-8.hg20160203
|
||||
- Update to latest mercurial snapshot
|
||||
- Drop the python2 subpackage; upstream moved support to a separate project
|
||||
|
||||
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.01-7.hg20150306
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Tue Jun 16 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.01-6.hg20150306
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 1.01-5.hg20150306
|
||||
- Rebuilt for GCC 5 C++11 ABI change
|
||||
|
||||
* Sat Mar 7 2015 Jerry James <loganjerry@gmail.com> - 1.01-4.hg20150306
|
||||
- Update to latest mercurial snapshot
|
||||
|
||||
* Thu Jan 1 2015 Jerry James <loganjerry@gmail.com> - 1.01-3.hg20150101
|
||||
- Update to latest mercurial snapshot
|
||||
- Fix installation of header files
|
||||
|
||||
* Wed Dec 3 2014 Jerry James <loganjerry@gmail.com> - 1.01-2.hg20141130
|
||||
- Drop unnecessary jquery Provides
|
||||
- Fix file permissions
|
||||
|
||||
* Mon Dec 1 2014 Jerry James <loganjerry@gmail.com> - 1.01-1.hg20141130
|
||||
- Initial RPM
|
||||
|
|
@ -1 +0,0 @@
|
|||
Superseded by yosyshq-abc
|
||||
1
sources
Normal file
1
sources
Normal file
|
|
@ -0,0 +1 @@
|
|||
02a4c8cb9dcf0d2c9d35837b13be8422 8e08604f8ad3.zip
|
||||
Loading…
Add table
Add a link
Reference in a new issue