Skip to content

Commit c78e448

Browse files
committed
sweep: cleanup
- BoomTile_base is excluded from sweep, it is only used to generate macro placement - BoomTile_1_grt is run with default grt arguments instead of BoomTile_grt - BoomTile has pathological resource usage when not flattened regardless of MAX_UNGROUP_SIZE, so non-flattened synthesis is not interesting to examine in grt. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
1 parent 5cf5f57 commit c78e448

File tree

2 files changed

+18
-30
lines changed

2 files changed

+18
-30
lines changed

BUILD.bazel

Lines changed: 17 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -349,11 +349,12 @@ FAST_BUILD_SETTINGS = {
349349
"TAPCELL_TCL": "",
350350
}
351351

352-
SWEEP = {
352+
# This is used as inputs to other BoomTile configurations in the sweep,
353+
# but is not part of the sweep itself
354+
OTHER_CONFIGS = {
353355
"base": {
354356
"description": "Base settings, provides macro placement from hierarchical synthesis",
355357
"variables": {
356-
"GLOBAL_ROUTE_ARGS": "-congestion_iterations 30 -congestion_report_iter_step 5 -verbose",
357358
},
358359
},
359360
"naja": {
@@ -364,28 +365,18 @@ SWEEP = {
364365
"floorplan": "BoomTile_synth",
365366
},
366367
},
368+
}
369+
370+
SWEEP = {
367371
"1": {
368-
"description": "Flattend, timing driven placement, CTS timing repair enabled",
369-
"variables": {
370-
"SYNTH_HIERARCHICAL": "0",
371-
"GPL_TIMING_DRIVEN": "1",
372-
"SKIP_CTS_REPAIR_TIMING": "0",
373-
"MACRO_PLACEMENT_TCL": "$(location write_macro_placement)",
374-
},
375-
"stage_sources": {"floorplan": ["write_macro_placement"]},
376-
},
377-
"2": {
378-
"description": "Flattend, timing driven placement, CTS timing repair enabled, last gasp timing repair",
372+
"description": "Flattend, timing driven placement",
379373
"variables": {
380374
"SYNTH_HIERARCHICAL": "0",
381375
"GPL_TIMING_DRIVEN": "1",
382376
"SKIP_CTS_REPAIR_TIMING": "0",
383377
"MACRO_PLACEMENT_TCL": "$(location write_macro_placement)",
384378
"SKIP_LAST_GASP": "0",
385379
},
386-
"previous_stage": {
387-
"floorplan": "BoomTile_1_synth",
388-
},
389380
"stage_sources": {"floorplan": ["write_macro_placement"]},
390381
},
391382
}
@@ -411,7 +402,7 @@ BOOMTILE_VARIABLES = SKIP_REPORT_METRICS | FAST_BUILD_SETTINGS | {
411402
"HOLD_SLACK_MARGIN": "-200",
412403
}
413404

414-
WNS_REPORT_SWEEP = [variant for variant in SWEEP if "naja" not in variant]
405+
WNS_REPORT_SWEEP = [variant for variant in SWEEP]
415406

416407
SWEEP_JSON = {
417408
"base": BOOMTILE_VARIABLES,
@@ -439,39 +430,36 @@ BOOMTILE_SOURCES = {
439430

440431
boomtile_all_rams = boom_regfile_rams.keys() + all_srams.keys()
441432

433+
ALL_VARIANTS = SWEEP | OTHER_CONFIGS
434+
442435
[orfs_flow(
443436
name = "BoomTile",
444-
arguments = BOOMTILE_VARIABLES | SWEEP[variant].get("variables", {}),
437+
arguments = BOOMTILE_VARIABLES | ALL_VARIANTS[variant].get("variables", {}),
445438
macros = [
446439
":" + m + "_generate_abstract"
447440
for m in boomtile_all_rams
448-
if m not in SWEEP[variant].get("dissolve", [])
441+
if m not in ALL_VARIANTS[variant].get("dissolve", [])
449442
],
450-
previous_stage = SWEEP[variant].get("previous_stage", {}),
451-
renamed_inputs = SWEEP[variant].get("renamed_inputs", {}),
443+
previous_stage = ALL_VARIANTS[variant].get("previous_stage", {}),
444+
renamed_inputs = ALL_VARIANTS[variant].get("renamed_inputs", {}),
452445
# Explictily set arguments for a stage when stages are not listed in
453446
# variables.yaml or we want to explicitly set a multi-stage argument
454447
# for a specific stage, e.g. SETUP_SLACK_MARGIN could be useful to
455448
# have a different value for floorplan, cts and grt.
456449
stage_arguments = {
457-
"grt": {
458-
# global route is futile for now, so do a few iterations to
459-
# get a global route artifact with .odb and .rpt file
460-
"GLOBAL_ROUTE_ARGS": "-congestion_iterations 5 -congestion_report_iter_step 5 -verbose",
461-
},
462450
},
463451
# Starlark does not have sets, nor can we define functions in BUILD files
464452
# Use a dict to get a set of keys
465453
stage_sources = {
466-
key: (SWEEP[variant].get("stage_sources", {}).get(key, []) + BOOMTILE_SOURCES.get(key, []))
454+
key: (ALL_VARIANTS[variant].get("stage_sources", {}).get(key, []) + BOOMTILE_SOURCES.get(key, []))
467455
for key in {
468456
key: "dummy"
469-
for key in (BOOMTILE_SOURCES.keys() + SWEEP[variant].get("stage_sources", {}).keys())
457+
for key in (BOOMTILE_SOURCES.keys() + ALL_VARIANTS[variant].get("stage_sources", {}).keys())
470458
}.keys()
471459
},
472460
variant = variant,
473461
verilog_files = all_source_files,
474-
) for variant in SWEEP]
462+
) for variant in SWEEP | OTHER_CONFIGS]
475463

476464
[filegroup(
477465
name = "BoomTile_" + variant + "_odb",

etc/BuildMegaboom.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ exec 2>&1
88
# Check GCP service account entitlements first
99
test/cred_helper_test.py
1010

11-
bazel build wns_report BoomTile_grt --keep_going
11+
bazel build wns_report BoomTile_1_grt --keep_going
1212
cat bazel-bin/BoomTile_wns_report.md

0 commit comments

Comments
 (0)