Reconfigure design parameters
diff --git a/Makefile b/Makefile
index 188e997..9d8bf07 100644
--- a/Makefile
+++ b/Makefile
@@ -146,10 +146,18 @@
 	docker run -e INPUT_DIRECTORY=$(INPUT_DIRECTORY) -e PDK_ROOT=$(PDK_ROOT) -e CARAVEL_ROOT=$(CARAVEL_ROOT) -v $(PRECHECK_ROOT):$(PRECHECK_ROOT) -v $(INPUT_DIRECTORY):$(INPUT_DIRECTORY) -v $(PDK_ROOT):$(PDK_ROOT) -v $(CARAVEL_ROOT):$(CARAVEL_ROOT) \
 	-u $(shell id -u $(USER)):$(shell id -g $(USER)) efabless/mpw_precheck:latest bash -c "cd $(PRECHECK_ROOT) ; python3 mpw_precheck.py --pdk_root $(PDK_ROOT) --input_directory $(INPUT_DIRECTORY) --caravel_root $(CARAVEL_ROOT)"
 
+ARGS?=--help
+.PHONY: run-precheck-custom
+run-precheck-custom: check-precheck check-pdk check-caravel
+	$(eval INPUT_DIRECTORY := $(shell pwd))
+	cd $(PRECHECK_ROOT) && \
+	docker run -e INPUT_DIRECTORY=$(INPUT_DIRECTORY) -e PDK_ROOT=$(PDK_ROOT) -e CARAVEL_ROOT=$(CARAVEL_ROOT) -v $(PRECHECK_ROOT):$(PRECHECK_ROOT) -v $(INPUT_DIRECTORY):$(INPUT_DIRECTORY) -v $(PDK_ROOT):$(PDK_ROOT) -v $(CARAVEL_ROOT):$(CARAVEL_ROOT) \
+	-u $(shell id -u $(USER)):$(shell id -g $(USER)) efabless/mpw_precheck:latest bash -c "cd $(PRECHECK_ROOT) ; python3 mpw_precheck.py --pdk_root $(PDK_ROOT) --input_directory $(INPUT_DIRECTORY) --caravel_root $(CARAVEL_ROOT) $(ARGS)"
+
 # Install PDK using OL's Docker Image
 .PHONY: pdk-nonnative
 pdk-nonnative: skywater-pdk skywater-library skywater-timing open_pdks
-	docker run --rm -v $(PDK_ROOT):$(PDK_ROOT) -v $(CARAVEL_ROOT):$(CARAVEL_ROOT) -e CARAVEL_ROOT=$(CARAVEL_ROOT) -e PDK_ROOT=$(PDK_ROOT) -u $(shell id -u $(USER)):$(shell id -g $(USER)) efabless/openlane:current sh -c "cd $(CARAVEL_ROOT); make build-pdk; make gen-sources"
+	docker run --rm -v $(PDK_ROOT):$(PDK_ROOT) -v $(CARAVEL_ROOT):$(CARAVEL_ROOT) -e CARAVEL_ROOT=$(CARAVEL_ROOT) -e PDK_ROOT=$(PDK_ROOT) -u $(shell id -u $(USER)):$(shell id -g $(USER)) efabless/openlane:mpw-3a sh -c "cd $(CARAVEL_ROOT); make build-pdk; make gen-sources"
 
 # Clean 
 .PHONY: clean
diff --git a/openlane/user_project/config.tcl b/openlane/user_project/config.tcl
index 82334ea..54e39fc 100755
--- a/openlane/user_project/config.tcl
+++ b/openlane/user_project/config.tcl
@@ -33,13 +33,12 @@
 set ::env(CLOCK_PERIOD) "10"
 #set ::env(BASE_SDC_FILE) "$::env(DESIGN_DIR)/base.sdc"
 
-set ::env(FP_SIZING) absolute
-set ::env(DIE_AREA) "0 0 1200 1200"
+set ::env(FP_SIZING) relative
+set ::env(FP_CORE_UTIL) 25
 
 set ::env(FP_PIN_ORDER_CFG) $script_dir/pin_order.cfg
 
-set ::env(PL_BASIC_PLACEMENT) 1
-set ::env(PL_TARGET_DENSITY) 0.02
+set ::env(PL_TARGET_DENSITY) 0.27
 
 # Maximum layer used for routing is metal 4.
 # This is because this macro will be inserted in a top level (user_project_wrapper) 
diff --git a/verilog/rtl/defines.v b/verilog/rtl/defines.v
index 699b764..aa32844 100644
--- a/verilog/rtl/defines.v
+++ b/verilog/rtl/defines.v
@@ -4,16 +4,16 @@
 `default_nettype none
 
 // width of cell grid
-`define WIDTH 8
+`define WIDTH 12
 
 // height of cell grid
-`define HEIGHT 8
+`define HEIGHT 12
 
 // size of width/height field, i.e. clog2(max(WIDTH, HEIGHT))
-`define ADDRSIZE 3
+`define ADDRSIZE 4
 
 // number of input pins = number of output pins
-`define IOPAIRS 8
+`define IOPAIRS 12
 
 // x coordinate of input pins
 `define X_IN 0