| # Copyright (C) 2017-2020 The Project X-Ray Authors. |
| # |
| # Use of this source code is governed by a ISC-style |
| # license that can be found in the LICENSE file or at |
| # https://opensource.org/licenses/ISC |
| # |
| # SPDX-License-Identifier: ISC |
| MAKETODO_FLAGS=--re ".*" --not-endswith ".VCC_WIRE" |
| ifeq ($(QUICK),Y) |
| N ?= 1 |
| SEGMATCH_FLAGS= |
| else |
| N ?= 60 |
| # Do relatively large batch to keep parallelism high |
| # LCM between 12 (CPUs on my system) and 16, a common CPU count |
| SEGMATCH_FLAGS=-m 15 -M 45 |
| endif |
| |
| CHECK_ARGS=--max-iters 12 --min-progress 50 |
| |
| include ../pip_loop.mk |
| |
| # Specimens from current run must complete, but previous iterations may exist |
| database: build/segbits_int_l.db build/segbits_int_r.db build/mask_clbll_l.db build/mask_clbll_r.db build/mask_clblm_l.db build/mask_clblm_r.db |
| # Keep a copy to track iter progress |
| # Also is pre-fixup, which drops and converts |
| cp build/segbits_int_l.db build/$(ITER)/segbits_int_l.db |
| cp build/segbits_int_r.db build/$(ITER)/segbits_int_r.db |
| # May be undersolved |
| ifneq ($(QUICK),Y) |
| ${XRAY_DBFIXUP} --db-root build --clb-int |
| # https://github.com/SymbiFlow/prjxray/issues/399 |
| # Clobber existing .db to eliminate potential conflicts |
| cp ${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/segbits*.db build/database/${XRAY_DATABASE} |
| XRAY_DATABASE_DIR=${FUZDIR}/build/database ${XRAY_MERGEDB} int_l build/segbits_int_l.db |
| XRAY_DATABASE_DIR=${FUZDIR}/build/database ${XRAY_MERGEDB} int_r build/segbits_int_r.db |
| endif |
| |
| build/segbits_int_l.db: $(SPECIMENS_OK) |
| ${XRAY_SEGMATCH} $(SEGMATCH_FLAGS) -o build/segbits_int_l.db \ |
| $(shell find build -name segdata_int_l.txt |sort) |
| |
| build/segbits_int_r.db: $(SPECIMENS_OK) |
| ${XRAY_SEGMATCH} $(SEGMATCH_FLAGS) -o build/segbits_int_r.db \ |
| $(shell find build -name segdata_int_r.txt |sort) |
| |
| build/mask_clbll_l.db: $(SPECIMENS_OK) |
| ${XRAY_MASKMERGE} build/mask_clbll_l.db \ |
| $(shell find build -name segdata_int_l.txt |sort) |
| |
| build/mask_clbll_r.db: $(SPECIMENS_OK) |
| ${XRAY_MASKMERGE} build/mask_clbll_r.db \ |
| $(shell find build -name segdata_int_r.txt |sort) |
| |
| build/mask_clblm_l.db: $(SPECIMENS_OK) |
| ${XRAY_MASKMERGE} build/mask_clblm_l.db \ |
| $(shell find build -name segdata_int_l.txt |sort) |
| |
| build/mask_clblm_r.db: $(SPECIMENS_OK) |
| ${XRAY_MASKMERGE} build/mask_clblm_r.db \ |
| $(shell find build -name segdata_int_r.txt |sort) |
| |
| pushdb: |
| ${XRAY_MERGEDB} int_l build/segbits_int_l.db |
| ${XRAY_MERGEDB} int_r build/segbits_int_r.db |
| ${XRAY_MERGEDB} mask_clbll_l build/mask_clbll_l.db |
| ${XRAY_MERGEDB} mask_clbll_r build/mask_clbll_r.db |
| ${XRAY_MERGEDB} mask_clblm_l build/mask_clblm_l.db |
| ${XRAY_MERGEDB} mask_clblm_r build/mask_clblm_r.db |