Skip to content

Commit dce22cf

Browse files
authored
Merge branch 'master' into fix_sdc
2 parents 1425bdf + ce30051 commit dce22cf

File tree

1,156 files changed

+374129
-129847
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,156 files changed

+374129
-129847
lines changed

.github/dependabot.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
version: 2
2+
3+
updates:
4+
5+
# Monthly update of submodules.
6+
# This dependabot will create a PR if there are any updates to the submodules.
7+
- package-ecosystem: gitsubmodule
8+
schedule:
9+
interval: "monthly"
10+
11+
# Update all submodules
12+
directory: /

.github/workflows/containers.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ jobs:
1717

1818
- name: 🧰 Repository Checkout
1919
uses: actions/checkout@v3
20-
20+
with:
21+
submodules: 'true'
22+
2123
- name: 🔧 Generate image name
2224
id: generate
2325
run: |

.github/workflows/test.yml

Lines changed: 40 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -26,29 +26,32 @@ jobs:
2626
fail-fast: false
2727
matrix:
2828
include:
29-
- {test: "vtr_reg_nightly_test1", cores: "16", options: "", cmake: "", extra_pkgs: ""}
30-
- {test: "vtr_reg_nightly_test1_odin", cores: "16", options: "", cmake: "-DWITH_PARMYS=OFF -DWITH_ODIN=ON", extra_pkgs: ""}
31-
- {test: "vtr_reg_nightly_test2", cores: "16", options: "", cmake: "", extra_pkgs: ""}
32-
- {test: "vtr_reg_nightly_test2_odin", cores: "16", options: "", cmake: "-DWITH_PARMYS=OFF -DWITH_ODIN=ON", extra_pkgs: "" }
33-
- {test: "vtr_reg_nightly_test3", cores: "16", options: "", cmake: "", extra_pkgs: ""}
34-
- {test: "vtr_reg_nightly_test3_odin", cores: "16", options: "", cmake: "-DWITH_PARMYS=OFF -DWITH_ODIN=ON", extra_pkgs: ""}
35-
- {test: "vtr_reg_nightly_test4", cores: "16", options: "", cmake: "", extra_pkgs: "" }
36-
- {test: "vtr_reg_nightly_test4_odin", cores: "16", options: "", cmake: "-DWITH_PARMYS=OFF -DWITH_ODIN=ON", extra_pkgs: "" }
37-
- {test: "vtr_reg_nightly_test5", cores: "16", options: "", cmake: "", extra_pkgs: ""}
38-
- {test: "vtr_reg_nightly_test6", cores: "16", options: "", cmake: "", extra_pkgs: ""}
39-
- {test: "vtr_reg_parmys", cores: "16", options: "", cmake: "", extra_pkgs: "" }
40-
- {test: "vtr_reg_strong", cores: "16", options: "", cmake: "-DVTR_ASSERT_LEVEL=3", extra_pkgs: "libeigen3-dev"}
41-
- {test: "vtr_reg_strong_odin", cores: "16", options: "", cmake: "-DVTR_ASSERT_LEVEL=3 -DWITH_PARMYS=OFF -DWITH_ODIN=ON", extra_pkgs: "libeigen3-dev"}
42-
- {test: "vtr_reg_strong_odin", cores: "16", options: "-skip_qor", cmake: "-DVTR_ASSERT_LEVEL=3 -DVTR_ENABLE_SANITIZE=ON -DWITH_PARMYS=OFF -DWITH_ODIN=ON", extra_pkgs: "libeigen3-dev"}
43-
- {test: "vtr_reg_system_verilog", cores: "16", options: "", cmake: "-DYOSYS_F4PGA_PLUGINS=ON", extra_pkgs: ""}
44-
- {test: "odin_reg_strong", cores: "16", options: "", cmake: "-DWITH_PARMYS=OFF -DWITH_ODIN=ON", extra_pkgs: ""}
29+
- {test: "vtr_reg_nightly_test1", cores: "16", options: "", cmake: "", extra_pkgs: ""}
30+
- {test: "vtr_reg_nightly_test1_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
31+
- {test: "vtr_reg_nightly_test2", cores: "16", options: "", cmake: "", extra_pkgs: ""}
32+
- {test: "vtr_reg_nightly_test2_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: "" }
33+
- {test: "vtr_reg_nightly_test3", cores: "16", options: "", cmake: "", extra_pkgs: ""}
34+
- {test: "vtr_reg_nightly_test3_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
35+
- {test: "vtr_reg_nightly_test4", cores: "16", options: "", cmake: "", extra_pkgs: "" }
36+
- {test: "vtr_reg_nightly_test4_odin", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: "" }
37+
- {test: "vtr_reg_nightly_test5", cores: "16", options: "", cmake: "", extra_pkgs: ""}
38+
- {test: "vtr_reg_nightly_test6", cores: "16", options: "", cmake: "", extra_pkgs: ""}
39+
- {test: "vtr_reg_nightly_test7", cores: "16", options: "", cmake: "", extra_pkgs: ""}
40+
- {test: "vtr_reg_parmys", cores: "16", options: "", cmake: "", extra_pkgs: "" }
41+
- {test: "vtr_reg_strong", cores: "16", options: "", cmake: "-DVTR_ASSERT_LEVEL=3", extra_pkgs: "libeigen3-dev"}
42+
- {test: "vtr_reg_strong_odin", cores: "16", options: "", cmake: "-DVTR_ASSERT_LEVEL=3 -DWITH_ODIN=ON", extra_pkgs: "libeigen3-dev"}
43+
- {test: "vtr_reg_strong_odin", cores: "16", options: "-skip_qor", cmake: "-DVTR_ASSERT_LEVEL=3 -DVTR_ENABLE_SANITIZE=ON -DWITH_ODIN=ON", extra_pkgs: "libeigen3-dev"}
44+
- {test: "vtr_reg_system_verilog", cores: "16", options: "", cmake: "-DYOSYS_F4PGA_PLUGINS=ON", extra_pkgs: ""}
45+
- {test: "odin_reg_strong", cores: "16", options: "", cmake: "-DWITH_ODIN=ON", extra_pkgs: ""}
4546

4647
env:
4748
DEBIAN_FRONTEND: "noninteractive"
4849

4950
steps:
5051

5152
- uses: actions/checkout@v3
53+
with:
54+
submodules: 'true'
5255

5356
- name: Setup
5457
run: stdbuf -i0 -i0 -e0 ./.github/scripts/hostsetup.sh
@@ -91,6 +94,8 @@ jobs:
9194
with:
9295
python-version: 3.10.10
9396
- uses: actions/checkout@v3
97+
with:
98+
submodules: 'true'
9499
- run: ./.github/scripts/install_dependencies.sh
95100

96101
- uses: hendrikmuhs/[email protected]
@@ -134,6 +139,8 @@ jobs:
134139
with:
135140
python-version: 3.10.10
136141
- uses: actions/checkout@v3
142+
with:
143+
submodules: 'true'
137144
- run: ./.github/scripts/install_dependencies.sh
138145

139146
- name: Test
@@ -151,6 +158,8 @@ jobs:
151158
with:
152159
python-version: 3.10.10
153160
- uses: actions/checkout@v3
161+
with:
162+
submodules: 'true'
154163
- run: ./.github/scripts/install_dependencies.sh
155164

156165
- uses: hendrikmuhs/[email protected]
@@ -219,6 +228,8 @@ jobs:
219228
with:
220229
python-version: 3.10.10
221230
- uses: actions/checkout@v3
231+
with:
232+
submodules: 'true'
222233
- run: ./.github/scripts/install_dependencies.sh
223234

224235
- uses: hendrikmuhs/[email protected]
@@ -272,6 +283,9 @@ jobs:
272283
with:
273284
python-version: 3.10.10
274285
- uses: actions/checkout@v3
286+
with:
287+
submodules: 'true'
288+
275289
- run: ./.github/scripts/install_dependencies.sh
276290

277291
- uses: hendrikmuhs/[email protected]
@@ -297,6 +311,8 @@ jobs:
297311
with:
298312
python-version: 3.10.10
299313
- uses: actions/checkout@v3
314+
with:
315+
submodules: 'true'
300316
- run: ./.github/scripts/install_dependencies.sh
301317

302318
- uses: hendrikmuhs/[email protected]
@@ -320,6 +336,8 @@ jobs:
320336
with:
321337
python-version: 3.10.10
322338
- uses: actions/checkout@v3
339+
with:
340+
submodules: 'true'
323341
- run: ./.github/scripts/install_dependencies.sh
324342

325343
- uses: hendrikmuhs/[email protected]
@@ -343,6 +361,8 @@ jobs:
343361
with:
344362
python-version: 3.10.10
345363
- uses: actions/checkout@v3
364+
with:
365+
submodules: 'true'
346366
- run: ./.github/scripts/install_dependencies.sh
347367

348368
- uses: hendrikmuhs/[email protected]
@@ -376,6 +396,8 @@ jobs:
376396
with:
377397
python-version: 3.10.10
378398
- uses: actions/checkout@v3
399+
with:
400+
submodules: 'true'
379401
- run: ./.github/scripts/install_dependencies.sh
380402

381403
- uses: hendrikmuhs/[email protected]
@@ -410,6 +432,8 @@ jobs:
410432
with:
411433
python-version: 3.10.10
412434
- uses: actions/checkout@v3
435+
with:
436+
submodules: 'true'
413437
- run: ./.github/scripts/install_dependencies.sh
414438

415439
- uses: hendrikmuhs/[email protected]

.gitignore

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,9 @@ temp/
3333
#
3434
titan_release*.tar.gz
3535
vtr_flow/arch/titan/*.xml
36-
vtr_flow/benchmarks/titan_blif/*.blif
37-
vtr_flow/benchmarks/titan_blif/*.sdc
38-
vtr_flow/benchmarks/titan_other_blif/*.blif
39-
vtr_flow/benchmarks/titan_other_blif/*.sdc
36+
vtr_flow/benchmarks/titan_blif/other_benchmarks
37+
vtr_flow/benchmarks/titan_blif/titan23
38+
vtr_flow/benchmarks/titan_blif/titan_new
4039

4140

4241
#

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "libs/EXTERNAL/libcatch2"]
2+
path = libs/EXTERNAL/libcatch2
3+
url = https://github.com/catchorg/Catch2.git

README.developers.md

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -222,31 +222,28 @@ Its primary purpose is try and achieve high functionality coverage.
222222
QoR checks in this regression test are primarily 'canary' checks to catch gross degradations in QoR.
223223
Occasionally, changes can cause QoR failures (e.g. due to CAD noise -- particularly on small benchmarks); usually such failures are not a concern if the QoR differences are small.
224224

225-
### vtr_reg_nightly_test1-3
225+
### vtr_reg_nightly_test1-N
226226

227-
**Goal:** Basic QoR and Performance evaluation
227+
**Goal:** Most QoR and Performance evaluation
228228

229229
**Feature Coverage:** Medium
230230

231231
**Architectures:** A wider variety of architectures
232232

233-
**Benchmarks:** Small-medium size, diverse. All include:
233+
**Benchmarks:** Small-large size, diverse. Includes:
234234

235235
* VTR benchmarks
236-
* Additional benchmarks for each suite.
236+
* Titan benchmarks except gaussian_blur (which has the longest run time)
237+
* Koios benchmarks
238+
* Various special benchmarks and tests for functionality
237239

238240
QoR checks in these regression suites are aimed at evaluating quality and run-time of the VTR flow.
239241
As a result any QoR failures are a concern and should be investigated and understood.
240242

241243
Note:
242244

243-
These suites comproise a single large suite, `vtr_reg_nightly` and should be run together to test nightly level regression. They are mostly similar in benchmark coverage interms of size and diversity however each suite tests some unique benchmarks in addition to the VTR benchmarks.
245+
These suites comprise a single large suite, `vtr_reg_nightly` and should be run together to test nightly level regression. They are mostly similar in benchmark coverage interms of size and diversity however each suite tests some unique benchmarks in addition to the VTR benchmarks. Each vtr_reg_nightly<N> suite runs on a different server (in parallel), so by having N such test suites we speed up CI by a factor of N. Currently the runtime of each suite is capped at 6 hours, so if the runtime exceeds six hours a new vtr_reg_nightly suite (i.e. N+1) should be created.
244246

245-
| suite | wall-clock time| Additional benchmarks|
246-
|-------|----------------|----------------------|
247-
|vtr_reg_nightly_test1|~4.5 hours with `-j8`|ISPD and MCNC20 |
248-
|vtr_reg_nightly_test2|~6 hours with `-j8`|Titan23 and Titan `other`|
249-
|vtr_reg_nightly_test3|~5.5 hours with `-j8`|none|
250247

251248
### vtr_reg_weekly
252249

@@ -259,7 +256,7 @@ Occasionally, changes can cause QoR failures (e.g. due to CAD noise -- particula
259256
**Benchmarks:** Medium-Large size, diverse. Includes:
260257

261258
* VTR benchmarks
262-
* Titan23 benchmarks
259+
* Titan23 benchmarks, including gaussian_blur
263260

264261
**Architectures:** A wide variety of architectures
265262

@@ -306,11 +303,12 @@ a Slurm-managed cluster can be found under vtr_flow/tasks/slurm/
306303
## Continuous integration (CI)
307304
For the following tests, you can use remote servers instead of running them locally. Once the changes are pushed into the
308305
remote repository, or a PR is created, the [Test Workflow](https://github.com/verilog-to-routing/vtr-verilog-to-routing/blob/master/.github/workflows/test.yml)
309-
will be triggered. The following tests are included in the workflow:
310-
* [vtr_reg_nightly_test1-3](#vtr_reg_nightly_test1-3)
306+
will be triggered. Many tests are included in the workflow, including:
307+
* [vtr_reg_nightly_test1-N](#vtr_reg_nightly_test1-N)
311308
* [vtr_reg_strong](#vtr_reg_strong)
312-
* parmys_reg_basic
309+
* [vtr_reg_basic](#vtr_reg_basic)
313310
* odin_reg_strong
311+
* parmys_reg_basic
314312

315313
instructions on how to gather QoR results of CI runs can be found [here](#example-extracting-qor-data-from-ci-runs).
316314

abc/CMakeLists.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.3.0...3.13) # ! This line is edited to get rid of a CMake deprecation error
1+
cmake_minimum_required(VERSION 3.3.0...3.13) # ! This line is edited to get rid of a CMake deprecation error
22

33
include(CMakeParseArguments)
44
include(CheckCCompilerFlag)
@@ -47,9 +47,14 @@ if(ABC_USE_NAMESPACE)
4747
set(ABC_USE_NAMESPACE_FLAGS "ABC_USE_NAMESPACE=${ABC_USE_NAMESPACE}")
4848
endif()
4949

50+
if( APPLE )
51+
set(make_env ${CMAKE_COMMAND} -E env SDKROOT=${CMAKE_OSX_SYSROOT})
52+
endif()
53+
5054
# run make to extract compiler options, linker options and list of source files
5155
execute_process(
5256
COMMAND
57+
${make_env}
5358
make
5459
${ABC_READLINE_FLAGS}
5560
${ABC_USE_NAMESPACE_FLAGS}

abc/Makefile

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11

22
CC := gcc
33
CXX := g++
4+
AR := ar
45
LD := $(CXX)
56

67
MSG_PREFIX ?=
78
ABCSRC = .
89

910
$(info $(MSG_PREFIX)Using CC=$(CC))
1011
$(info $(MSG_PREFIX)Using CXX=$(CXX))
12+
$(info $(MSG_PREFIX)Using AR=$(AR))
1113
$(info $(MSG_PREFIX)Using LD=$(LD))
1214

1315
PROG := abc
@@ -16,7 +18,7 @@ OS := $(shell uname -s)
1618
MODULES := \
1719
$(wildcard src/ext*) \
1820
src/base/abc src/base/abci src/base/cmd src/base/io src/base/main src/base/exor \
19-
src/base/ver src/base/wlc src/base/acb src/base/bac src/base/cba src/base/pla src/base/test \
21+
src/base/ver src/base/wlc src/base/wln src/base/acb src/base/bac src/base/cba src/base/pla src/base/test \
2022
src/map/mapper src/map/mio src/map/super src/map/if \
2123
src/map/amap src/map/cov src/map/scl src/map/mpm \
2224
src/misc/extra src/misc/mvc src/misc/st src/misc/util src/misc/nm \
@@ -25,7 +27,7 @@ MODULES := \
2527
src/opt/cut src/opt/fxu src/opt/fxch src/opt/rwr src/opt/mfs src/opt/sim \
2628
src/opt/ret src/opt/fret src/opt/res src/opt/lpk src/opt/nwk src/opt/rwt \
2729
src/opt/cgt src/opt/csw src/opt/dar src/opt/dau src/opt/dsc src/opt/sfm src/opt/sbd \
28-
src/sat/bsat src/sat/xsat src/sat/satoko src/sat/csat src/sat/msat src/sat/psat src/sat/cnf src/sat/bmc src/sat/glucose \
30+
src/sat/bsat src/sat/xsat src/sat/satoko src/sat/csat src/sat/msat src/sat/psat src/sat/cnf src/sat/bmc src/sat/glucose src/sat/glucose2 \
2931
src/bool/bdc src/bool/deco src/bool/dec src/bool/kit src/bool/lucky \
3032
src/bool/rsb src/bool/rpo \
3133
src/proof/pdr src/proof/abs src/proof/live src/proof/ssc src/proof/int \
@@ -59,9 +61,9 @@ ifneq ($(findstring arm,$(shell uname -m)),)
5961
CFLAGS += -DABC_MEMALIGN=4
6062
endif
6163

62-
# compile ABC using the C++ comipler and put everything in the namespace $(ABC_NAMESPACE)
64+
# compile ABC using the C++ compiler and put everything in the namespace $(ABC_NAMESPACE)
6365
ifdef ABC_USE_NAMESPACE
64-
CFLAGS += -DABC_NAMESPACE=$(ABC_USE_NAMESPACE) -fpermissive
66+
CFLAGS += -DABC_NAMESPACE=$(ABC_USE_NAMESPACE) -fpermissive -x c++
6567
CC := $(CXX)
6668
$(info $(MSG_PREFIX)Compiling in namespace $(ABC_NAMESPACE))
6769
endif
@@ -119,11 +121,16 @@ GCC_MINOR=$(word 2,$(subst .,$(space),$(GCC_VERSION)))
119121

120122
$(info $(MSG_PREFIX)Found GCC_VERSION $(GCC_VERSION))
121123
ifeq ($(findstring $(GCC_MAJOR),0 1 2 3),)
122-
$(info $(MSG_PREFIX)Found GCC_MAJOR>=4)
124+
ifeq ($(GCC_MAJOR),4)
125+
$(info $(MSG_PREFIX)Found GCC_MAJOR==4)
123126
ifeq ($(findstring $(GCC_MINOR),0 1 2 3 4 5),)
124127
$(info $(MSG_PREFIX)Found GCC_MINOR>=6)
125128
CFLAGS += -Wno-unused-but-set-variable
126129
endif
130+
else
131+
$(info $(MSG_PREFIX)Found GCC_MAJOR>=5)
132+
CFLAGS += -Wno-unused-but-set-variable
133+
endif
127134
endif
128135

129136
endif
@@ -179,15 +186,15 @@ DEP := $(OBJ:.o=.d)
179186

180187
%.d: %.c
181188
@echo "$(MSG_PREFIX)\`\` Generating dependency:" $(LOCAL_PATH)/$<
182-
$(VERBOSE)$(ABCSRC)/depends.sh $(CC) `dirname $*.c` $(OPTFLAGS) $(INCLUDES) $(CFLAGS) $< > $@
189+
$(VERBOSE)$(ABCSRC)/depends.sh "$(CC)" `dirname $*.c` $(OPTFLAGS) $(INCLUDES) $(CFLAGS) $< > $@
183190

184191
%.d: %.cc
185192
@echo "$(MSG_PREFIX)\`\` Generating dependency:" $(LOCAL_PATH)/$<
186-
$(VERBOSE)$(ABCSRC)/depends.sh $(CXX) `dirname $*.cc` $(OPTFLAGS) $(INCLUDES) $(CXXFLAGS) $< > $@
193+
$(VERBOSE)$(ABCSRC)/depends.sh "$(CXX)" `dirname $*.cc` $(OPTFLAGS) $(INCLUDES) $(CXXFLAGS) $< > $@
187194

188195
%.d: %.cpp
189196
@echo "$(MSG_PREFIX)\`\` Generating dependency:" $(LOCAL_PATH)/$<
190-
$(VERBOSE)$(ABCSRC)/depends.sh $(CXX) `dirname $*.cpp` $(OPTFLAGS) $(INCLUDES) $(CXXFLAGS) $< > $@
197+
$(VERBOSE)$(ABCSRC)/depends.sh "$(CXX)" `dirname $*.cpp` $(OPTFLAGS) $(INCLUDES) $(CXXFLAGS) $< > $@
191198

192199
ifndef ABC_MAKE_NO_DEPS
193200
-include $(DEP)
@@ -210,8 +217,7 @@ $(PROG): $(OBJ)
210217

211218
lib$(PROG).a: $(LIBOBJ)
212219
@echo "$(MSG_PREFIX)\`\` Linking:" $(notdir $@)
213-
$(VERBOSE)ar rv $@ $?
214-
$(VERBOSE)ranlib $@
220+
$(VERBOSE)$(AR) rsv $@ $?
215221

216222
lib$(PROG).so: $(LIBOBJ)
217223
@echo "$(MSG_PREFIX)\`\` Linking:" $(notdir $@)

abc/README.md

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,22 @@
1-
[![Build Status](https://travis-ci.org/berkeley-abc/abc.svg?branch=master)](https://travis-ci.org/berkeley-abc/abc)
2-
[![Build status](https://ci.appveyor.com/api/projects/status/7q8gopidgvyos00d?svg=true)](https://ci.appveyor.com/project/berkeley-abc/abc)
1+
[![.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)
2+
[![.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)
3+
[![.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)
34

45
# ABC: System for Sequential Logic Synthesis and Formal Verification
56

6-
ABC is always changing but the current snapshot is believed to be stable.
7+
ABC is always changing but the current snapshot is believed to be stable.
8+
9+
## ABC fork with new features
10+
11+
Here 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.
12+
13+
The 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".
14+
15+
The source code is provided for research and evaluation only. For commercial usage, please contact Prof. Chang Wu at [email protected].
16+
17+
References:
18+
19+
[1] L. Fan and C. Wu, "FPGA technology mapping with adaptive gate decompostion", ACM/SIGDA FPGA International Symposium on FPGAs, 2023.
720

821
## Compiling:
922

@@ -18,7 +31,7 @@ APIs of ABC compiled as a static library.
1831

1932
To build the demo program
2033

21-
* Copy demo.cc and libabc.a to the working directory
34+
* Copy demo.c and libabc.a to the working directory
2235
* Run `gcc -Wall -g -c demo.c -o demo.o`
2336
* Run `g++ -g -o demo demo.o libabc.a -lm -ldl -lreadline -lpthread`
2437

0 commit comments

Comments
 (0)