Skip to content

Commit

Permalink
sweep: new features
Browse files Browse the repository at this point in the history
- SYNTH_HIERARCHICAL=0/1
- manual/automatic macro placement
- macro dissolving (combined with automatic placement)

Signed-off-by: Øyvind Harboe <[email protected]>
  • Loading branch information
oharboe committed Oct 24, 2024
1 parent ab52076 commit d8b66c2
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 27 deletions.
49 changes: 25 additions & 24 deletions BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ digital_top_srams = {
}

# combine SRAMs into one dictionary for processing
all_srams = boom_regfile_rams | boom_tile_rams | boom_tile_small_srams | digital_top_srams
all_srams = boom_tile_rams | boom_tile_small_srams | digital_top_srams

write_binary(
name = "srams",
Expand Down Expand Up @@ -345,8 +345,6 @@ orfs_run(
script = ":report-kpi.tcl",
)

boom_tile_macros = [x + "_generate_abstract" for x in all_srams.keys()]

FAST_BUILD_SETTINGS = {
# repair_timing runs for hours in floorplan
"TNS_END_PERCENT": "0",
Expand All @@ -361,28 +359,26 @@ FAST_BUILD_SETTINGS = {

SWEEP = {
"base": {
"dissolve": boom_regfile_rams.keys(),
},
"naja": {
},
"1": {
"SKIP_CTS_REPAIR_TIMING": "0",
"GPL_TIMING_DRIVEN": "0",
"GPL_ROUTABILITY_DRIVEN": "1",
"SKIP_INCREMENTAL_REPAIR": "1",
"variables": {
# Had to increase it to a minimum of 0.22 recommended
"PLACE_DENSITY": "0.24",
# Enable floorplan retiming
"REMOVE_ABC_BUFFERS": "0",
# Saves hours of build time
"SKIP_LAST_GASP": "1",
"SETUP_SLACK_MARGIN": "-1300",
},
},
"2": {
"SKIP_CTS_REPAIR_TIMING": "0",
"GPL_TIMING_DRIVEN": "1",
"GPL_ROUTABILITY_DRIVEN": "1",
"SKIP_INCREMENTAL_REPAIR": "1",
"SETUP_SLACK_MARGIN": "-1200",
},
"3": {
"SKIP_CTS_REPAIR_TIMING": "0",
"GPL_TIMING_DRIVEN": "1",
"GPL_ROUTABILITY_DRIVEN": "1",
"SKIP_INCREMENTAL_REPAIR": "0",
"SETUP_SLACK_MARGIN": "-1000",
"variables": {
"SYNTH_HIERARCHICAL": "0",
"MACRO_PLACEMENT_TCL": "$(location :boomtile-macro-placement)",
},
},
}

Expand Down Expand Up @@ -430,10 +426,16 @@ write_binary(

[orfs_flow(
name = "BoomTile",
arguments = BOOMTILE_VARIABLES | SWEEP[variant],
macros = boom_tile_macros,
arguments = BOOMTILE_VARIABLES | SWEEP[variant].get("variables", {}),
macros = [
":" + m + "_generate_abstract"
for m in (boom_regfile_rams.keys() + all_srams.keys())
if m not in SWEEP[variant].get("dissolve", [])
],
previous_stage = {"floorplan": "BoomTile_synth"} if ((BOOMTILE_VARIABLES | SWEEP[variant].get("variables", {}))["SYNTH_HIERARCHICAL"] == "1" and
SWEEP[variant].get("dissolve") == SWEEP["base"].get("dissolve") and
"naja" not in variant) else {},
# Share synthesis stage between all variants
previous_stage = {"floorplan": "BoomTile_synth"},
renamed_inputs = {
"naja": {
"floorplan": {"1_synth.v": ":naja"},
Expand All @@ -443,8 +445,7 @@ write_binary(
"synth": [":constraints-boomtile"],
"floorplan": [
":io-boomtile",
":boomtile-macro-placement",
],
] + (["macro_placement.tcl"] if "MACRO_PLACEMENT_TCL" in (BOOMTILE_VARIABLES | SWEEP[variant].get("variables", {})) else []),
"place": [":io-boomtile"],
},
variant = variant,
Expand Down
6 changes: 3 additions & 3 deletions wns_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ def main():
logs = sorted(map(os.path.basename, pathlib.Path(log_dir).glob("*.log")))
logs_dir = os.path.join(log_dir, "..")

variables = sorted(set(k for v in sweep.values() for k in v.keys()))
variables = sorted(set(k["variables"] for v in sweep.values() for k in v.keys()))

table_data = None
for variant in sweep:
Expand All @@ -100,9 +100,9 @@ def main():
+ [stats[name] for name in names]
+ [
(
sweep[variant].get(variable, "")
sweep[variant]["variables"].get(variable, "")
if sweep_json["base"].get(variable, "")
!= sweep[variant].get(variable, "")
!= sweep[variant]["variables"].get(variable, "")
else ""
)
for variable in variables
Expand Down

0 comments on commit d8b66c2

Please sign in to comment.