Skip to content

Commit 59411f0

Browse files
Update Makefile
1 parent f534826 commit 59411f0

File tree

1 file changed

+53
-4
lines changed

1 file changed

+53
-4
lines changed

Makefile

+53-4
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ precheck:
247247
@docker pull efabless/mpw_precheck:latest
248248

249249
.PHONY: run-precheck
250-
run-precheck: check-pdk check-precheck enable-lvs-pdk
250+
run-precheck: check-pdk check-precheck
251251
@if [ "$$DISABLE_LVS" = "1" ]; then\
252252
$(eval INPUT_DIRECTORY := $(shell pwd)) \
253253
cd $(PRECHECK_ROOT) && \
@@ -260,7 +260,7 @@ run-precheck: check-pdk check-precheck enable-lvs-pdk
260260
-e PDK_ROOT=$(PDK_ROOT) \
261261
-e PDKPATH=$(PDKPATH) \
262262
-u $(shell id -u $(USER)):$(shell id -g $(USER)) \
263-
efabless/mpw_precheck:latest bash -c "cd $(PRECHECK_ROOT) ; python3 mpw_precheck.py --input_directory $(INPUT_DIRECTORY) --pdk_path $(PDK_ROOT)/$(PDK) license makefile default documentation consistency gpio_defines xor magic_drc klayout_feol klayout_beol klayout_offgrid klayout_met_min_ca_density klayout_pin_label_purposes_overlapping_drawing klayout_zeroarea"; \
263+
efabless/mpw_precheck:latest bash -c "cd $(PRECHECK_ROOT) ; python3 mpw_precheck.py --input_directory $(INPUT_DIRECTORY) --pdk_path $(PDK_ROOT)/$(PDK) --skip_checks LVS"; \
264264
else \
265265
$(eval INPUT_DIRECTORY := $(shell pwd)) \
266266
cd $(PRECHECK_ROOT) && \
@@ -291,6 +291,55 @@ $(LVS_BLOCKS): lvs-% : ./lvs/%/lvs_config.json check-pdk check-precheck
291291
-u $(shell id -u $(USER)):$(shell id -g $(USER)) \
292292
efabless/mpw_precheck:latest bash -c "export PYTHONPATH=$(PRECHECK_ROOT) ; cd $(PRECHECK_ROOT) ; python3 checks/lvs_check/lvs.py --pdk_path $(PDK_ROOT)/$(PDK) --design_directory $(INPUT_DIRECTORY) --output_directory $(INPUT_DIRECTORY)/lvs --design_name $* --config_file $(INPUT_DIRECTORY)/lvs/$*/lvs_config.json"
293293

294+
.PHONY: run-oeb
295+
run-oeb: check-pdk check-precheck
296+
@$(eval INPUT_DIRECTORY := $(shell pwd))
297+
@cd $(PRECHECK_ROOT) && \
298+
docker run -it -v $(PRECHECK_ROOT):$(PRECHECK_ROOT) \
299+
-v $(INPUT_DIRECTORY):$(INPUT_DIRECTORY) \
300+
-v $(PDK_ROOT):$(PDK_ROOT) \
301+
-v $(HOME)/.ipm:$(HOME)/.ipm \
302+
-e INPUT_DIRECTORY=$(INPUT_DIRECTORY) \
303+
-e PDK_PATH=$(PDK_ROOT)/$(PDK) \
304+
-e PDK_ROOT=$(PDK_ROOT) \
305+
-e PDKPATH=$(PDKPATH) \
306+
-u $(shell id -u $(USER)):$(shell id -g $(USER)) \
307+
efabless/mpw_precheck:latest bash -c "cd $(PRECHECK_ROOT) ; python3 mpw_precheck.py --input_directory $(INPUT_DIRECTORY) --pdk_path $(PDK_ROOT)/$(PDK) OEB";
308+
309+
# Define individual drc-<block> targets
310+
BLOCKS = $(shell cd gds && find *.gds -maxdepth 0 -type f | sed 's/.gds//')
311+
DRC_BLOCKS = $(foreach block, $(BLOCKS), drc-$(block))
312+
$(DRC_BLOCKS): drc-% : gds/%.gds check-pdk check-precheck
313+
@mkdir -p drc/logs
314+
@$(eval INPUT_DIRECTORY := $(shell pwd))
315+
@echo "Running DRC check for $*..."
316+
@cd $(PRECHECK_ROOT) && \
317+
docker run -v $(PRECHECK_ROOT):$(PRECHECK_ROOT) \
318+
-v $(INPUT_DIRECTORY):$(INPUT_DIRECTORY) \
319+
-v $(PDK_ROOT):$(PDK_ROOT) \
320+
-u $(shell id -u $(USER)):$(shell id -g $(USER)) \
321+
efabless/mpw_precheck:latest bash -c "export PYTHONPATH=$(PRECHECK_ROOT) ; cd $(PRECHECK_ROOT) ; python3 checks/drc_checks/klayout/klayout_gds_drc_check.py --pdk $(PDK) --gds_input_file_path $(INPUT_DIRECTORY)/gds/$*.gds --output_directory $(INPUT_DIRECTORY)/drc --feol --beol --off_grid"
322+
323+
.PHONY: run-checks
324+
run-checks: check-pdk check-precheck
325+
@if [ -z "$(CHECKS)" ]; then \
326+
echo "Error: No checks specified. Please provide a list of checks using 'make run-checks CHECKS=\"check1 check2\"'."; \
327+
exit 1; \
328+
fi
329+
@$(eval INPUT_DIRECTORY := $(shell pwd))
330+
@echo "Running precheck with checks: $(CHECKS)..."
331+
@cd $(PRECHECK_ROOT) && \
332+
docker run -it -v $(PRECHECK_ROOT):$(PRECHECK_ROOT) \
333+
-v $(INPUT_DIRECTORY):$(INPUT_DIRECTORY) \
334+
-v $(PDK_ROOT):$(PDK_ROOT) \
335+
-v $(HOME)/.ipm:$(HOME)/.ipm \
336+
-e INPUT_DIRECTORY=$(INPUT_DIRECTORY) \
337+
-e PDK_PATH=$(PDK_ROOT)/$(PDK) \
338+
-e PDK_ROOT=$(PDK_ROOT) \
339+
-e PDKPATH=$(PDKPATH) \
340+
-u $(shell id -u $(USER)):$(shell id -g $(USER)) \
341+
efabless/mpw_precheck:latest bash -c "cd $(PRECHECK_ROOT) ; python3 mpw_precheck.py --input_directory $(INPUT_DIRECTORY) --pdk_path $(PDK_ROOT)/$(PDK) $(CHECKS)"
342+
294343
.PHONY: clean
295344
clean:
296345
cd ./verilog/dv/ && \
@@ -360,13 +409,13 @@ cocotb-verify-all-rtl:
360409

361410
.PHONY: cocotb-verify-all-gl
362411
cocotb-verify-all-gl:
363-
@(cd $(PROJECT_ROOT)/verilog/dv/cocotb && $(PROJECT_ROOT)/venv-cocotb/bin/caravel_cocotb -tl user_proj_tests/user_proj_tests_gl.yaml -sim GL)
412+
@(cd $(PROJECT_ROOT)/verilog/dv/cocotb && $(PROJECT_ROOT)/venv-cocotb/bin/caravel_cocotb -tl user_proj_tests/user_proj_tests_gl.yaml -verbosity quiet)
364413

365414
$(cocotb-dv-targets-rtl): cocotb-verify-%-rtl:
366415
@(cd $(PROJECT_ROOT)/verilog/dv/cocotb && $(PROJECT_ROOT)/venv-cocotb/bin/caravel_cocotb -t $* )
367416

368417
$(cocotb-dv-targets-gl): cocotb-verify-%-gl:
369-
@(cd $(PROJECT_ROOT)/verilog/dv/cocotb && $(PROJECT_ROOT)/venv-cocotb/bin/caravel_cocotb -t $* -sim GL)
418+
@(cd $(PROJECT_ROOT)/verilog/dv/cocotb && $(PROJECT_ROOT)/venv-cocotb/bin/caravel_cocotb -t $* -verbosity quiet)
370419

371420
./verilog/gl/user_project_wrapper.v:
372421
$(error you don't have $@)

0 commit comments

Comments
 (0)