Skip to content

Commit 60f1d19

Browse files
committed
Merge branch 'master' of https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts into secure-yosys0.55
Signed-off-by: Eder Monteiro <[email protected]>
2 parents 16f6b01 + 9d305d7 commit 60f1d19

File tree

10 files changed

+37
-19
lines changed

10 files changed

+37
-19
lines changed

flow/designs/asap7/aes-block/rules-base.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"compare": "<="
2525
},
2626
"cts__design__instance__count__hold_buffer": {
27-
"value": 1744,
27+
"value": 1331,
2828
"compare": "<="
2929
},
3030
"globalroute__antenna_diodes_count": {
@@ -64,7 +64,7 @@
6464
"compare": "<="
6565
},
6666
"finish__timing__wns_percent_delay": {
67-
"value": -33.09,
67+
"value": -18.47,
6868
"compare": ">="
6969
}
7070
}

flow/designs/asap7/aes_lvt/rules-base.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"compare": "<="
4949
},
5050
"finish__timing__setup__ws": {
51-
"value": -16.32,
51+
"value": -45.99,
5252
"compare": ">="
5353
},
5454
"finish__design__instance__area": {

flow/designs/asap7/mock-array/rules-base.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"compare": "<="
4949
},
5050
"finish__timing__setup__ws": {
51-
"value": -440.47,
51+
"value": -457.76,
5252
"compare": ">="
5353
},
5454
"finish__design__instance__area": {

flow/designs/ihp-sg13g2/aes/rules-base.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
"compare": "<="
4545
},
4646
"detailedroute__antenna_diodes_count": {
47-
"value": 12,
47+
"value": 21,
4848
"compare": "<="
4949
},
5050
"finish__timing__setup__ws": {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"compare": "=="
2121
},
2222
"cts__design__instance__count__setup_buffer": {
23-
"value": 50,
23+
"value": 62,
2424
"compare": "<="
2525
},
2626
"cts__design__instance__count__hold_buffer": {

flow/designs/sky130hd/microwatt/config.mk

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ export SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint.
1111
export DIE_AREA = 0 0 3020 3610
1212
export CORE_AREA = 10 10 3010 3600
1313

14-
export PLACE_DENSITY ?= 0.2
15-
1614
export microwatt_DIR = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)
1715

1816
export ADDITIONAL_GDS = $(wildcard $(microwatt_DIR)/gds/*.gds.gz)
@@ -33,7 +31,7 @@ export MACRO_BLOCKAGE_HALO = 151
3331

3432
# There's less space due to the adapted blockage halos, so GPL requires a
3533
# higher density in order to run.
36-
export PLACE_DENSITY = 0.19
34+
export PLACE_DENSITY = 0.2
3735

3836
# CTS tuning
3937
export CTS_BUF_DISTANCE = 600

flow/designs/sky130hs/jpeg/rules-base.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
"compare": "<="
2929
},
3030
"globalroute__antenna_diodes_count": {
31-
"value": 60,
31+
"value": 122,
3232
"compare": "<="
3333
},
3434
"detailedroute__route__wirelength": {

flow/designs/sky130hs/riscv32i/rules-base.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"compare": "=="
99
},
1010
"placeopt__design__instance__area": {
11-
"value": 116701,
11+
"value": 116710,
1212
"compare": "<="
1313
},
1414
"placeopt__design__instance__count__stdcell": {
@@ -44,7 +44,7 @@
4444
"compare": "<="
4545
},
4646
"detailedroute__antenna_diodes_count": {
47-
"value": 16,
47+
"value": 9,
4848
"compare": "<="
4949
},
5050
"finish__timing__setup__ws": {

flow/test/test_genElapsedTime.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def test_elapsed_time(self, mock_stdout):
3030
genElapsedTime.scan_logs(["--logDir", str(self.tmp_dir.name), "--noHeader"])
3131
# check if output is correct
3232
expected_output = (
33-
self.tmp_dir.name + "\n1_test 5400 9440\nTotal 5400 9440\n"
33+
self.tmp_dir.name + "\n1_test 5400 9440 N/A\nTotal 5400 9440\n"
3434
).split()
3535
actual_output = mock_stdout.getvalue().split()
3636
self.assertEqual(actual_output, expected_output)
@@ -44,7 +44,7 @@ def test_zero_time(self, mock_stdout):
4444
# call the script with the test log file
4545
genElapsedTime.scan_logs(["--logDir", str(self.tmp_dir.name), "--noHeader"])
4646
expected_output = (
47-
self.tmp_dir.name + "\n1_test 74 9440\nTotal 74 9440\n"
47+
self.tmp_dir.name + "\n1_test 74 9440 N/A\nTotal 74 9440\n"
4848
).split()
4949
actual_output = mock_stdout.getvalue().split()
5050
self.assertEqual(actual_output, expected_output)
@@ -61,7 +61,7 @@ def test_elapsed_time_longer_duration(self, mock_stdout):
6161
genElapsedTime.scan_logs(["--logDir", str(self.tmp_dir.name), "--noHeader"])
6262
# check if output is correct
6363
expected_output = (
64-
self.tmp_dir.name + "\n1_test 744 9440 Total 744 9440"
64+
self.tmp_dir.name + "\n1_test 744 9440 N/A Total 744 9440"
6565
).split()
6666
actual_output = mock_stdout.getvalue().split()
6767
self.assertEqual(actual_output, expected_output)

flow/util/genElapsedTime.py

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@
44
# in the flow and prints it in a table
55
# ---------------------------------------------------------------------------
66

7+
import argparse
8+
import hashlib
79
import pathlib
810
import os
9-
import argparse # argument parsing
1011
import sys
1112

1213
# Parse and validate arguments
@@ -61,29 +62,48 @@ def print_log_dir_times(logdir, args):
6162
int(line.split("Peak memory: ")[1].split("KB")[0]) / 1024
6263
)
6364

65+
# content hash for .odb file alongside .log file is useful to
66+
# debug divergent results under what should be identical
67+
# builds(such as local and CI builds)
68+
odb_file = pathlib.Path(
69+
str(f).replace("logs/", "results/").replace(".log", ".odb")
70+
)
71+
if odb_file.exists():
72+
hasher = hashlib.sha1()
73+
with open(odb_file, "rb") as odb_f:
74+
while chunk := odb_f.read(16 * 1024 * 1024):
75+
hasher.update(chunk)
76+
odb_hash = hasher.hexdigest()
77+
else:
78+
odb_hash = "N/A"
79+
6480
if not found:
6581
print("No elapsed time found in", str(f), file=sys.stderr)
6682
continue
6783

6884
# Print the name of the step and the corresponding elapsed time
69-
format_str = "%-25s %20s %14s"
85+
format_str = "%-25s %10s %14s %20s"
7086
if elapsedTime is not None and peak_memory is not None:
7187
if first and not args.noHeader:
72-
print(format_str % ("Log", "Elapsed seconds", "Peak Memory/MB"))
88+
print(
89+
format_str
90+
% ("Log", "Elapsed/s", "Peak Memory/MB", "sha1sum .odb [0:20)")
91+
)
7392
first = False
7493
print(
7594
format_str
7695
% (
7796
os.path.splitext(os.path.basename(str(f)))[0],
7897
elapsedTime,
7998
peak_memory,
99+
odb_hash[0:20],
80100
)
81101
)
82102
totalElapsed += elapsedTime
83103
total_max_memory = max(total_max_memory, int(peak_memory))
84104

85105
if totalElapsed != 0:
86-
print(format_str % ("Total", totalElapsed, total_max_memory))
106+
print(format_str % ("Total", totalElapsed, total_max_memory, ""))
87107

88108

89109
def scan_logs(args):

0 commit comments

Comments
 (0)