Skip to content

Commit d8417a3

Browse files
authored
Merge pull request #1798 from sdamghan/yosys+odin
Yosys+Odin
2 parents eb3be2b + 3e581f7 commit d8417a3

File tree

4,199 files changed

+514942
-10522
lines changed

Some content is hidden

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

4,199 files changed

+514942
-10522
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Format: //devtools/kokoro/config/proto/build.proto
2+
# Odin_tech_strong test checks the Odin-II technology mapping for
3+
# Yosys+Odin-II over Odin-II techmap_heavysuite (excluding ABC and VPR)
4+
5+
build_file: "vtr-verilog-to-routing/.github/kokoro/run-vtr.sh"
6+
7+
# 12 hours
8+
timeout_mins: 720
9+
10+
action {
11+
define_artifacts {
12+
# File types
13+
regex: "**/*.out"
14+
regex: "**/vpr_stdout.log"
15+
regex: "**/parse_results.txt"
16+
regex: "**/qor_results.txt"
17+
regex: "**/pack.log"
18+
regex: "**/place.log"
19+
regex: "**/route.log"
20+
regex: "**/*_qor.csv"
21+
strip_prefix: "github/vtr-verilog-to-routing/"
22+
}
23+
}
24+
25+
env_vars {
26+
key: "KOKORO_TYPE"
27+
value: "continuous"
28+
}
29+
30+
env_vars {
31+
key: "KOKORO_DIR"
32+
value: "vtr-verilog-to-routing"
33+
}
34+
35+
env_vars {
36+
key: "VTR_DIR"
37+
value: "vtr-verilog-to-routing"
38+
}
39+
40+
#Use default build configuration
41+
env_vars {
42+
key: "VTR_CMAKE_PARAMS"
43+
value: "-DODIN_USE_YOSYS=ON"
44+
}
45+
46+
env_vars {
47+
key: "VTR_TEST"
48+
value: "odin_tech_strong"
49+
}
50+
51+
#Options for run_reg_test.py
52+
# -show_failures: show tool failures in main log output
53+
env_vars {
54+
key: "VTR_TEST_OPTIONS"
55+
value: "-show_failures"
56+
}
57+
58+
env_vars {
59+
key: "NUM_CORES"
60+
value: "3"
61+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Format: //devtools/kokoro/config/proto/build.proto
2+
# vtr_reg_yosys_odin test runs the VTR benchmarks through
3+
# the entire VTR with Yosys+Odin-II as the first CAD tool
4+
5+
build_file: "vtr-verilog-to-routing/.github/kokoro/run-vtr.sh"
6+
7+
# 72 hours
8+
timeout_mins: 4320
9+
10+
action {
11+
define_artifacts {
12+
# File types
13+
regex: "**/*.out"
14+
regex: "**/vpr_stdout.log"
15+
regex: "**/parse_results.txt"
16+
regex: "**/qor_results.txt"
17+
regex: "**/pack.log"
18+
regex: "**/place.log"
19+
regex: "**/route.log"
20+
regex: "**/*_qor.csv"
21+
regex: "**/*.out.gz"
22+
regex: "**/vpr_stdout.log.gz"
23+
regex: "**/parse_results.txt.gz"
24+
regex: "**/qor_results.txt.gz"
25+
regex: "**/pack.log.gz"
26+
regex: "**/place.log.gz"
27+
regex: "**/route.log.gz"
28+
regex: "**/*_qor.csv.gz"
29+
strip_prefix: "github/vtr-verilog-to-routing/"
30+
}
31+
}
32+
33+
env_vars {
34+
key: "KOKORO_TYPE"
35+
value: "continuous"
36+
}
37+
38+
env_vars {
39+
key: "KOKORO_DIR"
40+
value: "vtr-verilog-to-routing"
41+
}
42+
43+
env_vars {
44+
key: "VTR_DIR"
45+
value: "vtr-verilog-to-routing"
46+
}
47+
48+
#Use default build configuration
49+
env_vars {
50+
key: "VTR_CMAKE_PARAMS"
51+
value: "-DODIN_USE_YOSYS=ON"
52+
}
53+
54+
env_vars {
55+
key: "VTR_TEST"
56+
value: "vtr_reg_yosys_odin"
57+
}
58+
59+
#Options for run_reg_test.py
60+
# -show_failures: show tool failures in main log output
61+
env_vars {
62+
key: "VTR_TEST_OPTIONS"
63+
value: "-show_failures"
64+
}
65+
66+
env_vars {
67+
key: "NUM_CORES"
68+
value: "8"
69+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Format: //devtools/kokoro/config/proto/build.proto
2+
# Odin_tech_strong test checks the Odin-II technology mapping for
3+
# Yosys+Odin-II over Odin-II techmap_heavysuite (excluding ABC and VPR)
4+
5+
build_file: "vtr-verilog-to-routing/.github/kokoro/run-vtr.sh"
6+
7+
# 12 hours
8+
timeout_mins: 720
9+
10+
action {
11+
define_artifacts {
12+
# File types
13+
regex: "**/*.out"
14+
regex: "**/vpr_stdout.log"
15+
regex: "**/parse_results.txt"
16+
regex: "**/qor_results.txt"
17+
regex: "**/pack.log"
18+
regex: "**/place.log"
19+
regex: "**/route.log"
20+
regex: "**/*_qor.csv"
21+
strip_prefix: "github/vtr-verilog-to-routing/"
22+
}
23+
}
24+
25+
env_vars {
26+
key: "KOKORO_TYPE"
27+
value: "presubmit"
28+
}
29+
30+
env_vars {
31+
key: "KOKORO_DIR"
32+
value: "vtr-verilog-to-routing"
33+
}
34+
35+
env_vars {
36+
key: "VTR_DIR"
37+
value: "vtr-verilog-to-routing"
38+
}
39+
40+
#Use default build configuration
41+
env_vars {
42+
key: "VTR_CMAKE_PARAMS"
43+
value: "-DODIN_USE_YOSYS=ON"
44+
}
45+
46+
env_vars {
47+
key: "VTR_TEST"
48+
value: "odin_tech_strong"
49+
}
50+
51+
#Options for run_reg_test.py
52+
# -show_failures: show tool failures in main log output
53+
env_vars {
54+
key: "VTR_TEST_OPTIONS"
55+
value: "-show_failures"
56+
}
57+
58+
env_vars {
59+
key: "NUM_CORES"
60+
value: "3"
61+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Format: //devtools/kokoro/config/proto/build.proto
2+
# vtr_reg_yosys_odin test runs the VTR benchmarks through
3+
# the entire VTR with Yosys+Odin-II as the first CAD tool
4+
5+
build_file: "vtr-verilog-to-routing/.github/kokoro/run-vtr.sh"
6+
7+
# 72 hours
8+
timeout_mins: 4320
9+
10+
action {
11+
define_artifacts {
12+
# File types
13+
regex: "**/*.out"
14+
regex: "**/vpr_stdout.log"
15+
regex: "**/parse_results.txt"
16+
regex: "**/qor_results.txt"
17+
regex: "**/pack.log"
18+
regex: "**/place.log"
19+
regex: "**/route.log"
20+
regex: "**/*_qor.csv"
21+
regex: "**/*.out.gz"
22+
regex: "**/vpr_stdout.log.gz"
23+
regex: "**/parse_results.txt.gz"
24+
regex: "**/qor_results.txt.gz"
25+
regex: "**/pack.log.gz"
26+
regex: "**/place.log.gz"
27+
regex: "**/route.log.gz"
28+
regex: "**/*_qor.csv.gz"
29+
strip_prefix: "github/vtr-verilog-to-routing/"
30+
}
31+
}
32+
33+
env_vars {
34+
key: "KOKORO_TYPE"
35+
value: "presubmit"
36+
}
37+
38+
env_vars {
39+
key: "KOKORO_DIR"
40+
value: "vtr-verilog-to-routing"
41+
}
42+
43+
env_vars {
44+
key: "VTR_DIR"
45+
value: "vtr-verilog-to-routing"
46+
}
47+
48+
#Use default build configuration
49+
env_vars {
50+
key: "VTR_CMAKE_PARAMS"
51+
value: "-DODIN_USE_YOSYS=ON"
52+
}
53+
54+
env_vars {
55+
key: "VTR_TEST"
56+
value: "vtr_reg_yosys_odin"
57+
}
58+
59+
#Options for run_reg_test.py
60+
# -show_failures: show tool failures in main log output
61+
env_vars {
62+
key: "VTR_TEST_OPTIONS"
63+
value: "-show_failures"
64+
}
65+
66+
env_vars {
67+
key: "NUM_CORES"
68+
value: "8"
69+
}

.github/kokoro/run-vtr.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@ ls -l
1010
cd github
1111
ls -l
1212
cd vtr-verilog-to-routing
13+
export VTR_DIR=$( pwd )
1314
source $SCRIPT_DIR/steps/hostsetup.sh
1415
source $SCRIPT_DIR/steps/hostinfo.sh
1516

1617
# Output git information
1718
source $SCRIPT_DIR/steps/git.sh
1819

19-
if [ $VTR_TEST == "vtr_reg_strong" ] || [ $VTR_TEST == "odin_reg_strong" ]; then
20+
if [ $VTR_TEST == "vtr_reg_strong" ] || [ $VTR_TEST == "odin_reg_strong" ] \
21+
|| [ $VTR_TEST == "odin_tech_strong" ] || [ $VTR_TEST == "vtr_reg_yosys_odin" ]; then
2022
source $SCRIPT_DIR/steps/vtr-min-setup.sh
2123
else
2224
source $SCRIPT_DIR/steps/vtr-full-setup.sh

.github/kokoro/steps/hostsetup.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,17 @@ sudo apt-get install -y \
5656
python3-yaml \
5757
qt5-default \
5858
virtualenv \
59+
clang \
60+
libreadline-dev \
61+
gawk \
62+
tcl-dev \
63+
libffi-dev \
64+
xdot \
65+
pkg-config \
66+
libboost-system-dev \
67+
libboost-python-dev \
68+
libboost-filesystem-dev \
69+
zlib1g-dev \
5970
#Don't include libtbb-dev since it may increase memory usage
6071
#libtbb-dev \
6172

.github/scripts/install_dependencies.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ sudo apt install -y \
2828
libx11-dev \
2929
libxft-dev \
3030
libxml++2.6-dev \
31+
libreadline-dev \
32+
tcl-dev \
33+
libffi-dev \
3134
perl \
3235
texinfo \
3336
time \

.github/workflows/test.yml

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ jobs:
167167
168168
169169
ODINII:
170-
name: 'ODIN-II Basic Tests'
170+
name: 'ODIN-II Basic Test'
171171
runs-on: ubuntu-18.04
172172
steps:
173173

@@ -186,6 +186,35 @@ jobs:
186186
./run_reg_test.py odin_reg_basic -show_failures -j2
187187
188188
189+
YOSYSODINII:
190+
runs-on: ubuntu-18.04
191+
strategy:
192+
fail-fast: false
193+
matrix:
194+
include: [
195+
{
196+
name: 'Yosys+ODIN-II Basic',
197+
suite: 'odin_tech_basic'
198+
}
199+
]
200+
name: '${{ matrix.name }}'
201+
steps:
202+
203+
- uses: actions/setup-python@v2
204+
with:
205+
python-version: 3.6
206+
- uses: actions/checkout@v2
207+
- run: ./.github/scripts/install_dependencies.sh
208+
209+
- name: Test
210+
env:
211+
CMAKE_PARAMS: '-DVTR_ASSERT_LEVEL=3 -DVTR_ENABLE_SANITIZE=on -DVTR_IPO_BUILD=off -DWITH_BLIFEXPLORER=on -DODIN_USE_YOSYS=ON'
212+
BUILD_TYPE: debug
213+
run: |
214+
./.github/scripts/build.sh
215+
./run_reg_test.py ${{ matrix.suite }} -show_failures -j2
216+
217+
189218
Compatibility:
190219
runs-on: ubuntu-18.04
191220
strategy:
@@ -227,6 +256,7 @@ jobs:
227256
- Regression
228257
- Sanitized
229258
- ODINII
259+
- YOSYSODINII
230260
- Compatibility
231261
runs-on: ubuntu-18.04
232262
steps:

CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ option(ODIN_COVERAGE "Enable building odin with coverage flags" OFF)
5151
option(ODIN_TIDY "Enable building odin with clang tidy" OFF)
5252
option(ODIN_SANITIZE "Enable building odin with sanitize flags" OFF)
5353

54+
# Allow the user to enable building Yosys
55+
option(ODIN_USE_YOSYS "Enable building Yosys" OFF)
56+
5457
set(VTR_VERSION_MAJOR 8)
5558
set(VTR_VERSION_MINOR 1)
5659
set(VTR_VERSION_PATCH 0)

ODIN_II/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
regression_test/run*
2+
regression_test/benchmark/_BLIF
23
regression_test/latest
34

5+
/yosys
46
/temp
57
/*.v
68
/*.blif

0 commit comments

Comments
 (0)