@@ -260,7 +260,7 @@ run-precheck: check-pdk check-precheck enable-lvs-pdk
260
260
-e PDK_ROOT=$(PDK_ROOT ) \
261
261
-e PDKPATH=$(PDKPATH ) \
262
262
-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 " ; \
264
264
else \
265
265
$(eval INPUT_DIRECTORY := $(shell pwd) ) \
266
266
cd $(PRECHECK_ROOT ) && \
@@ -291,6 +291,55 @@ $(LVS_BLOCKS): lvs-% : ./lvs/%/lvs_config.json check-pdk check-precheck
291
291
-u $(shell id -u $(USER ) ) :$(shell id -g $(USER ) ) \
292
292
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"
293
293
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
+
294
343
.PHONY : clean
295
344
clean :
296
345
cd ./verilog/dv/ && \
0 commit comments