From 2acf6aa661056c0d04fdd22474431a99ac0f029a Mon Sep 17 00:00:00 2001 From: David Anderson Date: Sat, 14 Sep 2024 13:53:21 -0700 Subject: [PATCH] tasks.py: support using nextpnr's "static" placer It's still a WIP, but assuming its output is correct, it seems to net a 5-10MHz boost to Fmax. --- tasks.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tasks.py b/tasks.py index 24de213..04e9786 100644 --- a/tasks.py +++ b/tasks.py @@ -137,7 +137,7 @@ def build(c, target): return verilog_files @task -def synth(c, target, gui=False): +def synth(c, target, gui=False, new_placer=False): target = resolve_synth_target(target) out_info, out_verilog, out_bsc, out_yosys, out_nextpnr = ensure_build_dirs(target, "info", "verilog", "bsc", "yosys", "nextpnr") @@ -201,6 +201,8 @@ def synth(c, target, gui=False): cmd = f"nextpnr-ecp5 --85k --detailed-timing-report --report {nextpnr_timing} --json {yosys_json} --gui --gui-no-aa --package=CABGA381 {pin_map_arg} --speed=6 --textcfg {nextpnr_out}" else: cmd = f"nextpnr-ecp5 --85k --detailed-timing-report -l {nextpnr_log} --report {nextpnr_timing} --json {yosys_json} --write {nextpnr_out_json} --package=CABGA381 {pin_map_arg} --speed=6 --textcfg {nextpnr_out}" + if new_placer: + cmd += f" --placer static" out = c.run(cmd) print_filtered_paragraphs(out.stderr, "Device utilisation", "Critical path", "Max frequency", "Max delay", common_prefix="Info: ")