From f2e7fcf39588167121a5a3073a714160a77d4666 Mon Sep 17 00:00:00 2001 From: Daniel Schultz Date: Tue, 14 Apr 2026 15:10:01 +0200 Subject: [PATCH 1/2] flow: platforms: gf180: allow PDK path overrides via weak assignment Convert TECH_LEF, GDS_FILES, and all timing corner variables (BC/WC/TC lib files, temperatures, voltages) from strong (`=`) to weak (`?=`) assignment so users can substitute a custom PDK version without modifying ORFS-provided files. Signed-off-by: Daniel Schultz --- flow/platforms/gf180/config.mk | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/flow/platforms/gf180/config.mk b/flow/platforms/gf180/config.mk index 46bbb7b54d..d4fea42f7f 100644 --- a/flow/platforms/gf180/config.mk +++ b/flow/platforms/gf180/config.mk @@ -13,12 +13,12 @@ export PROCESS = 180 #---------------------------------------------------- # OpenROAD #---------------------------------------------------- -export TECH_LEF = $(PLATFORM_DIR)/lef/gf180mcu_$(METAL_OPTION)_$(KVALUE)K_$(TRACK_OPTION)_tech.lef +export TECH_LEF ?= $(PLATFORM_DIR)/lef/gf180mcu_$(METAL_OPTION)_$(KVALUE)K_$(TRACK_OPTION)_tech.lef export SC_LEF ?= $(PLATFORM_DIR)/lef/gf180mcu_$(METAL_OPTION)_$(KVALUE)K_$(TRACK_OPTION)_sc.lef -export GDS_FILES = $(wildcard $(PLATFORM_DIR)/gds/$(TRACK_OPTION)/*.gds) \ - $(ADDITIONAL_GDS) +export GDS_FILES ?= $(wildcard $(PLATFORM_DIR)/gds/$(TRACK_OPTION)/*.gds) +export GDS_FILES += $(ADDITIONAL_GDS) # Dont use cells export DONT_USE_CELLS = *_1 @@ -118,17 +118,17 @@ export RCX_RC_CORNER = $($(CORNER)_RCX_RC_CORNER) #---------------------------------------------------------------------------------------------------- # standard cell section #---------------------------------------------------------------------------------------------------- -export BC_LIB_FILES = $(abspath $(PLATFORM_DIR)/lib/gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__ff_n40C_5v50.lib.gz) -export BC_TEMPERATURE = -40c -export BC_VOLTAGE = 5.5 +export BC_LIB_FILES ?= $(abspath $(PLATFORM_DIR)/lib/gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__ff_n40C_5v50.lib.gz) +export BC_TEMPERATURE ?= -40c +export BC_VOLTAGE ?= 5.5 -export WC_LIB_FILES = $(abspath $(PLATFORM_DIR)/lib/gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__ss_125C_4v50.lib.gz) -export WC_TEMPERATURE = 125c -export WC_VOLTAGE = 4.5 +export WC_LIB_FILES ?= $(abspath $(PLATFORM_DIR)/lib/gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__ss_125C_4v50.lib.gz) +export WC_TEMPERATURE ?= 125c +export WC_VOLTAGE ?= 4.5 -export TC_LIB_FILES = $(abspath $(PLATFORM_DIR)/lib/gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__tt_025C_5v00.lib.gz) -export TC_TEMPERATURE = 25c -export TC_VOLTAGE = 5.0 +export TC_LIB_FILES ?= $(abspath $(PLATFORM_DIR)/lib/gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__tt_025C_5v00.lib.gz) +export TC_TEMPERATURE ?= 25c +export TC_VOLTAGE ?= 5.0 # ---------------------------------------------------------------------------------------------------- # now, set files from user setting CORNER From f9ebc9ac6cd655c5eba193ce76b28f0d7b89a054 Mon Sep 17 00:00:00 2001 From: Daniel Schultz Date: Tue, 14 Apr 2026 15:14:45 +0200 Subject: [PATCH 2/2] flow: platforms: sky130: allow PDK path overrides via weak assignment Convert TECH_LEF, SC_LEF, LIB_FILES, and GDS_FILES from strong (`=`) to weak (`?=`) assignment so users can substitute a custom PDK version by setting these variables before including the platform config, without modifying ORFS-provided files. Signed-off-by: Daniel Schultz --- flow/platforms/sky130hd/config.mk | 12 ++++++------ flow/platforms/sky130hs/config.mk | 14 +++++++------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/flow/platforms/sky130hd/config.mk b/flow/platforms/sky130hd/config.mk index d8a7f998fd..1be5dc4dbf 100644 --- a/flow/platforms/sky130hd/config.mk +++ b/flow/platforms/sky130hd/config.mk @@ -4,13 +4,13 @@ export PROCESS = 130 #----------------------------------------------------- # Tech/Libs # ---------------------------------------------------- -export TECH_LEF = $(PLATFORM_DIR)/lef/sky130_fd_sc_hd.tlef -export SC_LEF = $(PLATFORM_DIR)/lef/sky130_fd_sc_hd_merged.lef +export TECH_LEF ?= $(PLATFORM_DIR)/lef/sky130_fd_sc_hd.tlef +export SC_LEF ?= $(PLATFORM_DIR)/lef/sky130_fd_sc_hd_merged.lef -export LIB_FILES = $(PLATFORM_DIR)/lib/sky130_fd_sc_hd__tt_025C_1v80.lib \ - $(ADDITIONAL_LIBS) -export GDS_FILES = $(wildcard $(PLATFORM_DIR)/gds/*.gds) \ - $(ADDITIONAL_GDS) +export LIB_FILES ?= $(PLATFORM_DIR)/lib/sky130_fd_sc_hd__tt_025C_1v80.lib +export LIB_FILES += $(ADDITIONAL_LIBS) +export GDS_FILES ?= $(wildcard $(PLATFORM_DIR)/gds/*.gds) +export GDS_FILES += $(ADDITIONAL_GDS) # Dont use cells to ease congestion # Specify at least one filler cell if none diff --git a/flow/platforms/sky130hs/config.mk b/flow/platforms/sky130hs/config.mk index 1cf050536c..29fe00d6d7 100644 --- a/flow/platforms/sky130hs/config.mk +++ b/flow/platforms/sky130hs/config.mk @@ -4,13 +4,13 @@ export PROCESS = 130 #----------------------------------------------------- # Tech/Libs # ---------------------------------------------------- -export TECH_LEF = $(PLATFORM_DIR)/lef/sky130_fd_sc_hs.tlef -export SC_LEF = $(PLATFORM_DIR)/lef/sky130_fd_sc_hs_merged.lef +export TECH_LEF ?= $(PLATFORM_DIR)/lef/sky130_fd_sc_hs.tlef +export SC_LEF ?= $(PLATFORM_DIR)/lef/sky130_fd_sc_hs_merged.lef -export LIB_FILES = $(PLATFORM_DIR)/lib/sky130_fd_sc_hs__tt_025C_1v80.lib \ - $(ADDITIONAL_LIBS) -export GDS_FILES = $(wildcard $(PLATFORM_DIR)/gds/*.gds) \ - $(ADDITIONAL_GDS) +export LIB_FILES ?= $(PLATFORM_DIR)/lib/sky130_fd_sc_hs__tt_025C_1v80.lib +export LIB_FILES += $(ADDITIONAL_LIBS) +export GDS_FILES ?= $(wildcard $(PLATFORM_DIR)/gds/*.gds) +export GDS_FILES += $(ADDITIONAL_GDS) # Dont use cells to ease congestion # Specify at least one filler cell if none @@ -105,4 +105,4 @@ export RCX_RULES = $(PLATFORM_DIR)/rcx_patterns.rules export PWR_NETS_VOLTAGES ?= VDD 1.8 export GND_NETS_VOLTAGES ?= VSS 0.0 export IR_DROP_LAYER ?= met1 -export REMOVE_CELLS_FOR_LEC = sky130_fd_sc_hs__tapvpwrvgnd* \ No newline at end of file +export REMOVE_CELLS_FOR_LEC = sky130_fd_sc_hs__tapvpwrvgnd*