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