From ee1e5e5b429e729331b32a3d48f98905f72a618d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Harboe?= Date: Tue, 29 Sep 2026 02:25:39 +0200 Subject: [PATCH 1/2] Drop REMOVE_ABC_BUFFERS from designs that no longer need it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit REMOVE_ABC_BUFFERS=1 dates from August 2024, when floorplan.tcl first kept the ABC buffers and ran a full repair_timing, which some designs could not finish. The floorplan repair is now a cheap unbuffer/sizeup/swap/vt_swap pass without last gasp. sky130hd/aes, sky130hd/jpeg and sky130hs/aes pass the QoR dashboard check without the flag, so they drop it. The remaining designs regress without it (ihp-sg13g2/aes, sky130hd and sky130hs riscv32i, ihp-sg13g2/jpeg) or could not be checked (ibex uses slang, gf12 is private), so the variable stays. Co-Authored-By: Claude Opus 5.5 Signed-off-by: Øyvind Harboe --- docs/user/FlowVariables.md | 2 +- flow/designs/sky130hd/aes/config.mk | 2 -- flow/designs/sky130hd/jpeg/config.mk | 3 --- flow/designs/sky130hs/aes/config.mk | 2 -- flow/scripts/variables.json | 2 +- flow/scripts/variables.yaml | 1 + 6 files changed, 3 insertions(+), 9 deletions(-) diff --git a/docs/user/FlowVariables.md b/docs/user/FlowVariables.md index 01afb784f3..a6c7612a71 100644 --- a/docs/user/FlowVariables.md +++ b/docs/user/FlowVariables.md @@ -246,7 +246,7 @@ configuration file. | PWR_NETS_VOLTAGES| Used for IR Drop calculation.| | | RCX_RULES| RC Extraction rules file path.| | | RECOVER_POWER| Specifies how many percent of paths with positive slacks can be slowed for power savings [0-100].| 0| -| REMOVE_ABC_BUFFERS (deprecated)| Remove abc buffers from the netlist. If timing repair in floorplanning is taking too long, use a SETUP/HOLD_SLACK_MARGIN to terminate timing repair early instead of using REMOVE_ABC_BUFFERS or set SKIP_LAST_GASP=1.| 0| +| REMOVE_ABC_BUFFERS (deprecated)| Remove abc buffers from the netlist. If timing repair in floorplanning is taking too long, use a SETUP/HOLD_SLACK_MARGIN to terminate timing repair early instead of using REMOVE_ABC_BUFFERS or set SKIP_LAST_GASP=1. The designs that still set it lose QoR without it.| 0| | REMOVE_CELLS_FOR_LEC| String patterns directly passed to write_verilog -remove_cells <> for lec checks.| | | REPAIR_PDN_VIA_LAYER| Remove power grid vias which generate DRC violations after detailed routing.| | | REPORT_CLOCK_SKEW| Report clock skew as part of reporting metrics, starting at CTS, before which there is no clock skew. This metric can be quite time-consuming, so it can be useful to disable.| 1| diff --git a/flow/designs/sky130hd/aes/config.mk b/flow/designs/sky130hd/aes/config.mk index 77fa88992e..3f095cd981 100644 --- a/flow/designs/sky130hd/aes/config.mk +++ b/flow/designs/sky130hd/aes/config.mk @@ -16,8 +16,6 @@ export TNS_END_PERCENT = 100 export FASTROUTE_TCL = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/fastroute.tcl -export REMOVE_ABC_BUFFERS = 1 - export CTS_CLUSTER_SIZE = 20 export CTS_CLUSTER_DIAMETER = 50 diff --git a/flow/designs/sky130hd/jpeg/config.mk b/flow/designs/sky130hd/jpeg/config.mk index 02964073ba..3b86ccc548 100644 --- a/flow/designs/sky130hd/jpeg/config.mk +++ b/flow/designs/sky130hd/jpeg/config.mk @@ -11,6 +11,3 @@ export PLACE_DENSITY_LB_ADDON = 0.15 export TNS_END_PERCENT = 100 export FASTROUTE_TCL = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/fastroute.tcl - -export REMOVE_ABC_BUFFERS = 1 - diff --git a/flow/designs/sky130hs/aes/config.mk b/flow/designs/sky130hs/aes/config.mk index 74768ee451..bfc9d256a2 100644 --- a/flow/designs/sky130hs/aes/config.mk +++ b/flow/designs/sky130hs/aes/config.mk @@ -12,8 +12,6 @@ export CORE_MARGIN = 2 export PLACE_DENSITY_LB_ADDON = 0.25 export TNS_END_PERCENT = 100 -export REMOVE_ABC_BUFFERS = 1 - export CTS_CLUSTER_SIZE = 10 export CTS_CLUSTER_DIAMETER = 50 diff --git a/flow/scripts/variables.json b/flow/scripts/variables.json index 1e3d6d01ab..f641f15ac6 100644 --- a/flow/scripts/variables.json +++ b/flow/scripts/variables.json @@ -941,7 +941,7 @@ "REMOVE_ABC_BUFFERS": { "default": 0, "deprecated": 1, - "description": "Remove abc buffers from the netlist. If timing repair in floorplanning is taking too long, use a SETUP/HOLD_SLACK_MARGIN to terminate timing repair early instead of using REMOVE_ABC_BUFFERS or set SKIP_LAST_GASP=1.\n", + "description": "Remove abc buffers from the netlist. If timing repair in floorplanning is taking too long, use a SETUP/HOLD_SLACK_MARGIN to terminate timing repair early instead of using REMOVE_ABC_BUFFERS or set SKIP_LAST_GASP=1. The designs that still set it lose QoR without it.\n", "stages": [ "floorplan" ] diff --git a/flow/scripts/variables.yaml b/flow/scripts/variables.yaml index 3c48319451..c87a1db27f 100644 --- a/flow/scripts/variables.yaml +++ b/flow/scripts/variables.yaml @@ -512,6 +512,7 @@ REMOVE_ABC_BUFFERS: Remove abc buffers from the netlist. If timing repair in floorplanning is taking too long, use a SETUP/HOLD_SLACK_MARGIN to terminate timing repair early instead of using REMOVE_ABC_BUFFERS or set SKIP_LAST_GASP=1. + The designs that still set it lose QoR without it. stages: - floorplan deprecated: 1 From e0a84b2999a2d2698e8f0a1b39ceada94f6f60fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Harboe?= Date: Tue, 29 Sep 2026 07:23:15 +0200 Subject: [PATCH 2/2] variables: clarify why REMOVE_ABC_BUFFERS is still set MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Signed-off-by: Øyvind Harboe --- docs/user/FlowVariables.md | 2 +- flow/scripts/variables.json | 2 +- flow/scripts/variables.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/user/FlowVariables.md b/docs/user/FlowVariables.md index a6c7612a71..eecabade2e 100644 --- a/docs/user/FlowVariables.md +++ b/docs/user/FlowVariables.md @@ -246,7 +246,7 @@ configuration file. | PWR_NETS_VOLTAGES| Used for IR Drop calculation.| | | RCX_RULES| RC Extraction rules file path.| | | RECOVER_POWER| Specifies how many percent of paths with positive slacks can be slowed for power savings [0-100].| 0| -| REMOVE_ABC_BUFFERS (deprecated)| Remove abc buffers from the netlist. If timing repair in floorplanning is taking too long, use a SETUP/HOLD_SLACK_MARGIN to terminate timing repair early instead of using REMOVE_ABC_BUFFERS or set SKIP_LAST_GASP=1. The designs that still set it lose QoR without it.| 0| +| REMOVE_ABC_BUFFERS (deprecated)| Remove abc buffers from the netlist. If timing repair in floorplanning is taking too long, use a SETUP/HOLD_SLACK_MARGIN to terminate timing repair early instead of using REMOVE_ABC_BUFFERS or set SKIP_LAST_GASP=1. Some designs still need it to reach their QoR targets.| 0| | REMOVE_CELLS_FOR_LEC| String patterns directly passed to write_verilog -remove_cells <> for lec checks.| | | REPAIR_PDN_VIA_LAYER| Remove power grid vias which generate DRC violations after detailed routing.| | | REPORT_CLOCK_SKEW| Report clock skew as part of reporting metrics, starting at CTS, before which there is no clock skew. This metric can be quite time-consuming, so it can be useful to disable.| 1| diff --git a/flow/scripts/variables.json b/flow/scripts/variables.json index f641f15ac6..36bf7a3329 100644 --- a/flow/scripts/variables.json +++ b/flow/scripts/variables.json @@ -941,7 +941,7 @@ "REMOVE_ABC_BUFFERS": { "default": 0, "deprecated": 1, - "description": "Remove abc buffers from the netlist. If timing repair in floorplanning is taking too long, use a SETUP/HOLD_SLACK_MARGIN to terminate timing repair early instead of using REMOVE_ABC_BUFFERS or set SKIP_LAST_GASP=1. The designs that still set it lose QoR without it.\n", + "description": "Remove abc buffers from the netlist. If timing repair in floorplanning is taking too long, use a SETUP/HOLD_SLACK_MARGIN to terminate timing repair early instead of using REMOVE_ABC_BUFFERS or set SKIP_LAST_GASP=1. Some designs still need it to reach their QoR targets.\n", "stages": [ "floorplan" ] diff --git a/flow/scripts/variables.yaml b/flow/scripts/variables.yaml index c87a1db27f..8301d50fd8 100644 --- a/flow/scripts/variables.yaml +++ b/flow/scripts/variables.yaml @@ -512,7 +512,7 @@ REMOVE_ABC_BUFFERS: Remove abc buffers from the netlist. If timing repair in floorplanning is taking too long, use a SETUP/HOLD_SLACK_MARGIN to terminate timing repair early instead of using REMOVE_ABC_BUFFERS or set SKIP_LAST_GASP=1. - The designs that still set it lose QoR without it. + Some designs still need it to reach their QoR targets. stages: - floorplan deprecated: 1