Skip to content

Commit abf7096

Browse files
authored
Merge pull request #3721 from The-OpenROAD-Project-staging/verific
Add Verific build support
2 parents aec1d8d + 60fdee6 commit abf7096

File tree

13 files changed

+857
-117
lines changed

13 files changed

+857
-117
lines changed

build_openroad.sh

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,18 @@ OPENROAD_APP_ARGS=""
2929
DOCKER_OS_NAME="ubuntu22.04"
3030
PROC=-1
3131

32+
VERIFIC_COMPONENTS='database util containers pct hier_tree verilog'
33+
WITH_VERIFIC=0
34+
VERIFIC_DIR=""
35+
3236
function usage() {
3337
cat << EOF
3438
3539
Usage: $0 [-h|--help] [-o|--local] [-l|--latest]
3640
[--or_branch BRANCH_NAME] [--or_repo REPO_URL] [--no_init]
3741
[-n|--nice] [-t|--threads N]
3842
[--yosys-args-overwrite] [--yosys-args STRING]
43+
[--with-verific PATH]
3944
[--openroad-args-overwrite] [--openroad-args STRING]
4045
[--install-path PATH] [--clean] [--clean-force]
4146
@@ -67,6 +72,9 @@ Options:
6772
6873
--yosys-args STRING Additional compilation flags for Yosys compilation.
6974
75+
--with-verific PATH Compile Yosys with Verific support. PATH is the path
76+
to the Verific source folder.
77+
7078
--openroad-args-overwrite
7179
Do not use default flags set by this scrip during
7280
OpenROAD app compilation.
@@ -140,6 +148,19 @@ while (( "$#" )); do
140148
YOSYS_USER_ARGS="$2"
141149
shift
142150
;;
151+
--with-verific)
152+
YOSYS_USER_ARGS+=" ENABLE_VERIFIC=1"
153+
YOSYS_USER_ARGS+=" ENABLE_VERIFIC_VHDL=0"
154+
YOSYS_USER_ARGS+=" VERIFIC_COMPONENTS='${VERIFIC_COMPONENTS}'"
155+
VERIFIC_DIR=${2}
156+
if [ ! -d "${VERIFIC_DIR}" ]; then
157+
echo "[ERROR] Verific path '${VERIFIC_DIR}' does not exist." >&2
158+
exit 1
159+
fi
160+
YOSYS_USER_ARGS+=" VERIFIC_DIR=${VERIFIC_DIR}"
161+
WITH_VERIFIC=1
162+
shift
163+
;;
143164
--openroad-args-overwrite)
144165
OPENROAD_APP_OVERWRITE_ARGS=1
145166
;;
@@ -254,13 +275,27 @@ __local_build()
254275
git --work-tree=${YOSYS_ABC_PATH} --git-dir=${YOSYS_ABC_PATH}/.git update-index --refresh
255276
fi
256277

278+
if [ ${WITH_VERIFIC} -eq 1 ]; then
279+
echo "[INFO FLW-0031] Compiling Verific components."
280+
cp -r "${VERIFIC_DIR}" verific
281+
for c in ${VERIFIC_COMPONENTS}; do
282+
make -j -C "verific/${c}" clean
283+
make -j -C "verific/${c}"
284+
done
285+
fi
286+
257287
echo "[INFO FLW-0017] Compiling Yosys."
258-
${NICE} make install -C tools/yosys -j "${PROC}" ${YOSYS_ARGS}
288+
eval ${NICE} make install -C tools/yosys -j "${PROC}" ${YOSYS_ARGS}
259289

260290
echo "[INFO FLW-0030] Compiling yosys-slang."
261291
# CMAKE_FLAGS added to work around yosys-slang#141 (unable to build outside of git checkout)
262292
${NICE} make install -C tools/yosys-slang -j "${PROC}" YOSYS_PREFIX="${INSTALL_PATH}/yosys/bin/" CMAKE_FLAGS="-DYOSYS_SLANG_REVISION=unknown -DSLANG_REVISION=unknown"
263293

294+
if [ ${WITH_VERIFIC} -eq 1 ]; then
295+
echo "[INFO FLW-0032] Cleaning up Verific components."
296+
rm -rf verific
297+
fi
298+
264299
}
265300

266301
__update_openroad_app_remote()

flow/designs/rapidus2hp/cva6/rules-base.json

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
{
2+
"cts__flow__warnings__count:RSZ-0066": {
3+
"value": 1,
4+
"compare": "<=",
5+
"level": "warning"
6+
},
27
"cts__flow__warnings__count:STA-0122": {
38
"value": 27,
49
"compare": "<=",
@@ -14,28 +19,13 @@
1419
"compare": "<=",
1520
"level": "warning"
1621
},
17-
"floorplan__flow__warnings__count:ODB-0256": {
18-
"value": 1001,
19-
"compare": "<=",
20-
"level": "warning"
21-
},
22-
"floorplan__flow__warnings__count:ODB-0279": {
23-
"value": 1001,
24-
"compare": "<=",
25-
"level": "warning"
26-
},
27-
"floorplan__flow__warnings__count:ODB-0280": {
28-
"value": 1001,
29-
"compare": "<=",
30-
"level": "warning"
31-
},
3222
"flow__warnings__count:GPL-0302": {
3323
"value": 1,
3424
"compare": "<=",
3525
"level": "warning"
3626
},
3727
"flow__warnings__count:PDN-0110": {
38-
"value": 213,
28+
"value": 12,
3929
"compare": "<=",
4030
"level": "warning"
4131
},
@@ -126,11 +116,11 @@
126116
"compare": ">="
127117
},
128118
"cts__timing__hold__ws": {
129-
"value": -56.2,
119+
"value": -113.0,
130120
"compare": ">="
131121
},
132122
"cts__timing__hold__tns": {
133-
"value": -225.0,
123+
"value": -2880.0,
134124
"compare": ">="
135125
},
136126
"globalroute__antenna_diodes_count": {
Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
{
2+
"cts__flow__warnings__count:STA-0122": {
3+
"value": 27,
4+
"compare": "<=",
5+
"level": "warning"
6+
},
7+
"floorplan__flow__warnings__count:EST-0027": {
8+
"value": 1,
9+
"compare": "<=",
10+
"level": "warning"
11+
},
12+
"floorplan__flow__warnings__count:IFP-0028": {
13+
"value": 1,
14+
"compare": "<=",
15+
"level": "warning"
16+
},
17+
"flow__warnings__count:GPL-0302": {
18+
"value": 1,
19+
"compare": "<=",
20+
"level": "warning"
21+
},
22+
"flow__warnings__count:PDN-0110": {
23+
"value": 38,
24+
"compare": "<=",
25+
"level": "warning"
26+
},
27+
"globalplace__flow__warnings__count:GPL-0302": {
28+
"value": 1,
29+
"compare": "<=",
30+
"level": "warning"
31+
},
32+
"globalplace__flow__warnings__count:GRT-0281": {
33+
"value": 1,
34+
"compare": "<=",
35+
"level": "warning"
36+
},
37+
"globalplace__flow__warnings__count:STA-0122": {
38+
"value": 27,
39+
"compare": "<=",
40+
"level": "warning"
41+
},
42+
"globalroute__flow__warnings__count:DRT-0120": {
43+
"value": 28,
44+
"compare": "<=",
45+
"level": "warning"
46+
},
47+
"globalroute__flow__warnings__count:DRT-0240": {
48+
"value": 1,
49+
"compare": "<=",
50+
"level": "warning"
51+
},
52+
"globalroute__flow__warnings__count:DRT-0263": {
53+
"value": 7,
54+
"compare": "<=",
55+
"level": "warning"
56+
},
57+
"globalroute__flow__warnings__count:DRT-0349": {
58+
"value": 10,
59+
"compare": "<=",
60+
"level": "warning"
61+
},
62+
"globalroute__flow__warnings__count:GRT-0246": {
63+
"value": 1,
64+
"compare": "<=",
65+
"level": "warning"
66+
},
67+
"globalroute__flow__warnings__count:STA-0122": {
68+
"value": 27,
69+
"compare": "<=",
70+
"level": "warning"
71+
},
72+
"placeopt__flow__warnings__count:STA-0122": {
73+
"value": 27,
74+
"compare": "<=",
75+
"level": "warning"
76+
},
77+
"synth__design__instance__area__stdcell": {
78+
"value": 17300.0,
79+
"compare": "<="
80+
},
81+
"constraints__clocks__count": {
82+
"value": 1,
83+
"compare": "=="
84+
},
85+
"placeopt__design__instance__area": {
86+
"value": 14353,
87+
"compare": "<="
88+
},
89+
"placeopt__design__instance__count__stdcell": {
90+
"value": 178164,
91+
"compare": "<="
92+
},
93+
"detailedplace__design__violations": {
94+
"value": 0,
95+
"compare": "=="
96+
},
97+
"cts__design__instance__count__setup_buffer": {
98+
"value": 15492,
99+
"compare": "<="
100+
},
101+
"cts__design__instance__count__hold_buffer": {
102+
"value": 15492,
103+
"compare": "<="
104+
},
105+
"cts__timing__setup__ws": {
106+
"value": -56.2,
107+
"compare": ">="
108+
},
109+
"cts__timing__setup__tns": {
110+
"value": -225.0,
111+
"compare": ">="
112+
},
113+
"cts__timing__hold__ws": {
114+
"value": -56.2,
115+
"compare": ">="
116+
},
117+
"cts__timing__hold__tns": {
118+
"value": -225.0,
119+
"compare": ">="
120+
},
121+
"globalroute__antenna_diodes_count": {
122+
"value": 150,
123+
"compare": "<="
124+
},
125+
"globalroute__timing__setup__ws": {
126+
"value": -56.2,
127+
"compare": ">="
128+
},
129+
"globalroute__timing__setup__tns": {
130+
"value": -225.0,
131+
"compare": ">="
132+
},
133+
"globalroute__timing__hold__ws": {
134+
"value": -57.1,
135+
"compare": ">="
136+
},
137+
"globalroute__timing__hold__tns": {
138+
"value": -227.0,
139+
"compare": ">="
140+
},
141+
"finish__timing__setup__ws": {
142+
"value": -56.2,
143+
"compare": ">="
144+
},
145+
"finish__timing__setup__tns": {
146+
"value": -225.0,
147+
"compare": ">="
148+
},
149+
"finish__timing__hold__ws": {
150+
"value": -57.1,
151+
"compare": ">="
152+
},
153+
"finish__timing__hold__tns": {
154+
"value": -227.0,
155+
"compare": ">="
156+
},
157+
"finish__design__instance__area": {
158+
"value": 14642,
159+
"compare": "<="
160+
}
161+
}

flow/designs/rapidus2hp/ethmac/rules-base.json

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,6 @@
1919
"compare": "<=",
2020
"level": "warning"
2121
},
22-
"floorplan__flow__warnings__count:ODB-0256": {
23-
"value": 1001,
24-
"compare": "<=",
25-
"level": "warning"
26-
},
27-
"floorplan__flow__warnings__count:ODB-0279": {
28-
"value": 1001,
29-
"compare": "<=",
30-
"level": "warning"
31-
},
32-
"floorplan__flow__warnings__count:ODB-0280": {
33-
"value": 1001,
34-
"compare": "<=",
35-
"level": "warning"
36-
},
3722
"floorplan__flow__warnings__count:RSZ-0062": {
3823
"value": 1,
3924
"compare": "<=",
@@ -105,7 +90,7 @@
10590
"level": "warning"
10691
},
10792
"synth__design__instance__area__stdcell": {
108-
"value": 3300.0,
93+
"value": 3290.0,
10994
"compare": "<="
11095
},
11196
"constraints__clocks__count": {
@@ -137,7 +122,7 @@
137122
"compare": ">="
138123
},
139124
"cts__timing__setup__tns": {
140-
"value": -877.0,
125+
"value": -843.0,
141126
"compare": ">="
142127
},
143128
"cts__timing__hold__ws": {
@@ -157,7 +142,7 @@
157142
"compare": ">="
158143
},
159144
"globalroute__timing__setup__tns": {
160-
"value": -1490.0,
145+
"value": -1390.0,
161146
"compare": ">="
162147
},
163148
"globalroute__timing__hold__ws": {
@@ -173,7 +158,7 @@
173158
"compare": ">="
174159
},
175160
"finish__timing__setup__tns": {
176-
"value": -1490.0,
161+
"value": -1390.0,
177162
"compare": ">="
178163
},
179164
"finish__timing__hold__ws": {

flow/designs/rapidus2hp/gcd/rules-base.json

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,6 @@
1919
"compare": "<=",
2020
"level": "warning"
2121
},
22-
"floorplan__flow__warnings__count:ODB-0256": {
23-
"value": 1001,
24-
"compare": "<=",
25-
"level": "warning"
26-
},
27-
"floorplan__flow__warnings__count:ODB-0279": {
28-
"value": 1001,
29-
"compare": "<=",
30-
"level": "warning"
31-
},
32-
"floorplan__flow__warnings__count:ODB-0280": {
33-
"value": 1001,
34-
"compare": "<=",
35-
"level": "warning"
36-
},
3722
"floorplan__flow__warnings__count:RSZ-0062": {
3823
"value": 1,
3924
"compare": "<=",
@@ -147,7 +132,7 @@
147132
"compare": ">="
148133
},
149134
"globalroute__timing__setup__tns": {
150-
"value": -596.0,
135+
"value": -534.0,
151136
"compare": ">="
152137
},
153138
"globalroute__timing__hold__ws": {
@@ -163,7 +148,7 @@
163148
"compare": ">="
164149
},
165150
"finish__timing__setup__tns": {
166-
"value": -596.0,
151+
"value": -534.0,
167152
"compare": ">="
168153
},
169154
"finish__timing__hold__ws": {

0 commit comments

Comments
 (0)