mirror of https://github.com/openXC7/prjxray.git
intpips: iterative solve
Signed-off-by: John McMaster <johndmcmaster@gmail.com>
This commit is contained in:
parent
2ce60d56a7
commit
a46c811be7
|
|
@ -1,4 +1,3 @@
|
|||
/specimen_[0-9][0-9][0-9]/
|
||||
/seg_int_[lr].segbits
|
||||
/mask_clbl[lm]_[lr].segbits
|
||||
/run.ok
|
||||
build
|
||||
run.ok
|
||||
todo
|
||||
|
|
|
|||
|
|
@ -1,11 +1,16 @@
|
|||
ifeq ($(QUICK),Y)
|
||||
N := 10
|
||||
else
|
||||
N := 200
|
||||
endif
|
||||
|
||||
SPECIMENS := $(addprefix build/specimen_,$(shell seq -f '%03.0f' $(N)))
|
||||
# Do relatively large batch to keep parallelism high
|
||||
# LCM between 12 (CPUs on my system) and 16, a common CPU count
|
||||
# WARNING: N must be relatively high (say 10) or segmatch -m/M will fail
|
||||
N := 48
|
||||
# Driven by int_loop.sh
|
||||
ITER := 1
|
||||
# See int_loop_check.py
|
||||
# Original did 200 specimins open loop
|
||||
CHECK_ARGS := --max-iters 6 --stable-iters 3
|
||||
SPECIMENS := $(addprefix build/$(ITER)/specimen_,$(shell seq -f '%03.0f' $(N)))
|
||||
SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS))
|
||||
# Individual fuzzer directory, such as ~/prjxray/fuzzers/010-lutinit
|
||||
export FUZDIR=$(shell pwd)
|
||||
|
||||
database: $(SPECIMENS_OK)
|
||||
${XRAY_SEGMATCH} -m 5 -M 15 -o build/segbits_int_l.db $(addsuffix /segdata_int_l.txt,$(SPECIMENS))
|
||||
|
|
@ -24,19 +29,32 @@ pushdb:
|
|||
${XRAY_MERGEDB} mask_clblm_l build/mask_clblm_l.db
|
||||
${XRAY_MERGEDB} mask_clblm_r build/mask_clblm_r.db
|
||||
|
||||
$(SPECIMENS_OK):
|
||||
mkdir -p build
|
||||
$(SPECIMENS_OK): build/todo.txt
|
||||
mkdir -p build/$(ITER)
|
||||
bash generate.sh $(subst /OK,,$@)
|
||||
touch $@
|
||||
|
||||
build/pips_int_l.txt: $(XRAY_DIR)/fuzzers/piplist.tcl
|
||||
mkdir -p build/$(ITER)
|
||||
cd build/$(ITER) && vivado -mode batch -source $(XRAY_DIR)/fuzzers/piplist.tcl
|
||||
|
||||
build/todo.txt: build/pips_int_l.txt maketodo.py
|
||||
python3 maketodo.py --build-dir build/$(ITER) >build/todo_all.txt
|
||||
cat build/todo_all.txt | sort -R > build/todo.txt.tmp
|
||||
mv build/todo.txt.tmp build/todo.txt
|
||||
|
||||
# XXX: conider moving to script
|
||||
run:
|
||||
$(MAKE) clean
|
||||
$(MAKE) database
|
||||
$(MAKE) pushdb
|
||||
XRAY_DIR=${XRAY_DIR} MAKE="$(MAKE)" MAKEFLAGS="$(MAKEFLAGS)" QUICK=$(QUICK) $(XRAY_DIR)/fuzzers/int_loop.sh --check-args "$(CHECK_ARGS)"
|
||||
touch run.ok
|
||||
|
||||
clean:
|
||||
rm -rf build run.ok
|
||||
rm -rf build run.ok todo
|
||||
|
||||
.PHONY: database pushdb run clean
|
||||
# Remove iteration specific files, but keep piplist.tcl output
|
||||
cleanprj:
|
||||
rm -rf build/$(ITER)
|
||||
|
||||
.PHONY: database pushdb run clean cleanprj
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
FUZDIR=$PWD
|
||||
source ${XRAY_GENHEADER}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
create_project -force -part $::env(XRAY_PART) design design
|
||||
|
||||
read_verilog ../../top.v
|
||||
read_verilog ../../picorv32.v
|
||||
read_verilog $::env(FUZDIR)/top.v
|
||||
read_verilog $::env(FUZDIR)/picorv32.v
|
||||
synth_design -top top
|
||||
|
||||
set_property -dict "PACKAGE_PIN $::env(XRAY_PIN_00) IOSTANDARD LVCMOS33" [get_ports clk]
|
||||
|
|
|
|||
Loading…
Reference in New Issue