From 6177c4c58d999cd3bbe4e7ff6f4c4052b7f23aec Mon Sep 17 00:00:00 2001 From: John McMaster Date: Mon, 17 Dec 2018 19:45:43 -0800 Subject: [PATCH] tilegrid iob: factor out generic code Signed-off-by: John McMaster --- fuzzers/005-tilegrid/fuzzaddr/common.mk | 25 +++++++++++++++++ .../{iob => fuzzaddr}/generate.py | 20 +++++--------- .../{iob => fuzzaddr}/generate.sh | 2 +- fuzzers/005-tilegrid/iob/Makefile | 27 +++---------------- fuzzers/005-tilegrid/iob/generate.tcl | 2 +- .../005-tilegrid/iob => prjxray}/bitsmaker.py | 0 6 files changed, 37 insertions(+), 39 deletions(-) create mode 100644 fuzzers/005-tilegrid/fuzzaddr/common.mk rename fuzzers/005-tilegrid/{iob => fuzzaddr}/generate.py (65%) rename fuzzers/005-tilegrid/{iob => fuzzaddr}/generate.sh (84%) rename {fuzzers/005-tilegrid/iob => prjxray}/bitsmaker.py (100%) diff --git a/fuzzers/005-tilegrid/fuzzaddr/common.mk b/fuzzers/005-tilegrid/fuzzaddr/common.mk new file mode 100644 index 00000000..21b185d6 --- /dev/null +++ b/fuzzers/005-tilegrid/fuzzaddr/common.mk @@ -0,0 +1,25 @@ +N ?= 10 +GENERATE_ARGS ?= +SPECIMENS := $(addprefix build/specimen_,$(shell seq -f '%03.0f' $(N))) +SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS)) + +database: build/segbits_tilegrid.tdb + +build/segbits_tilegrid.tdb: $(SPECIMENS_OK) + ${XRAY_SEGMATCH} -o build/segbits_tilegrid.tdb $$(find build -name "segdata_tilegrid.txt") + +$(SPECIMENS_OK): + GENERATE_ARGS=${GENERATE_ARGS} bash ../fuzzaddr/generate.sh $(subst /OK,,$@) + touch $@ + +run: + $(MAKE) clean + $(MAKE) database + $(MAKE) pushdb + touch run.ok + +clean: + rm -rf build + +.PHONY: database pushdb run clean + diff --git a/fuzzers/005-tilegrid/iob/generate.py b/fuzzers/005-tilegrid/fuzzaddr/generate.py similarity index 65% rename from fuzzers/005-tilegrid/iob/generate.py rename to fuzzers/005-tilegrid/fuzzaddr/generate.py index 598a0c3c..b84c8f20 100644 --- a/fuzzers/005-tilegrid/iob/generate.py +++ b/fuzzers/005-tilegrid/fuzzaddr/generate.py @@ -1,9 +1,8 @@ #!/usr/bin/env python3 -import bitsmaker +from prjxray import bitsmaker - -def run(bits_fn, design_fn, fnout, verbose=False): +def run(bits_fn, design_fn, fnout, oneval, verbose=False): # Raw: IOB_X0Y101 00020027_003_03 metastr = "DFRAME:27.DWORD:3.DBIT:3" @@ -12,15 +11,9 @@ def run(bits_fn, design_fn, fnout, verbose=False): f.readline() for l in f: l = l.strip() - port, site, tile, pin, val = l.split(',') - ''' - PULLTYPE 28 29 30 - NONE X - KEEPER X X - PULLDOWN - PULLUP X X - ''' - tags["%s.%s" % (tile, metastr)] = val == "KEEPER" + # Additional values reserved / for debugging + tile, val = l.split(',')[0:2] + tags["%s.%s" % (tile, metastr)] = val == oneval bitsmaker.write(bits_fn, fnout, tags) @@ -35,9 +28,10 @@ def main(): parser.add_argument("--verbose", action="store_true", help="") parser.add_argument("--design", default="design.csv", help="") parser.add_argument("--fnout", default="/dev/stdout", help="") + parser.add_argument("--oneval", required=True, help="") args = parser.parse_args() - run(args.bits_file, args.design, args.fnout, args.verbose) + run(args.bits_file, args.design, args.fnout, oneval=args.oneval, verbose=args.verbose) if __name__ == "__main__": diff --git a/fuzzers/005-tilegrid/iob/generate.sh b/fuzzers/005-tilegrid/fuzzaddr/generate.sh similarity index 84% rename from fuzzers/005-tilegrid/iob/generate.sh rename to fuzzers/005-tilegrid/fuzzaddr/generate.sh index e66d1317..4b6a8320 100644 --- a/fuzzers/005-tilegrid/iob/generate.sh +++ b/fuzzers/005-tilegrid/fuzzaddr/generate.sh @@ -17,5 +17,5 @@ for x in design*.bit; do ${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o ${x}s -z -y $x done -python3 $FUZDIR/generate.py >segdata_tilegrid.txt +python3 $FUZDIR/../fuzzaddr/generate.py $GENERATE_ARGS >segdata_tilegrid.txt diff --git a/fuzzers/005-tilegrid/iob/Makefile b/fuzzers/005-tilegrid/iob/Makefile index 782dba6a..6ee8eeb5 100644 --- a/fuzzers/005-tilegrid/iob/Makefile +++ b/fuzzers/005-tilegrid/iob/Makefile @@ -1,24 +1,3 @@ -N := 15 -SPECIMENS := $(addprefix build/specimen_,$(shell seq -f '%03.0f' $(N))) -SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS)) - -database: build/segbits_tilegrid.tdb - -build/segbits_tilegrid.tdb: $(SPECIMENS_OK) - ${XRAY_SEGMATCH} -o build/segbits_tilegrid.tdb $$(find build -name "segdata_tilegrid.txt") - -$(SPECIMENS_OK): - bash generate.sh $(subst /OK,,$@) - touch $@ - -run: - $(MAKE) clean - $(MAKE) database - $(MAKE) pushdb - touch run.ok - -clean: - rm -rf build - -.PHONY: database pushdb run clean - +N ?= 15 +GENERATE_ARGS?="--oneval KEEPER" +include ../fuzzaddr/common.mk diff --git a/fuzzers/005-tilegrid/iob/generate.tcl b/fuzzers/005-tilegrid/iob/generate.tcl index 568febf1..5d4bf2b1 100644 --- a/fuzzers/005-tilegrid/iob/generate.tcl +++ b/fuzzers/005-tilegrid/iob/generate.tcl @@ -73,7 +73,7 @@ proc loc_pins {} { } set_property PULLTYPE $val $port # puts "IOB $port $site $tile $pin $val" - puts $fp "$port,$site,$tile,$pin,$val" + puts $fp "$tile,$val,$site,$port,$pin" } close $fp } diff --git a/fuzzers/005-tilegrid/iob/bitsmaker.py b/prjxray/bitsmaker.py similarity index 100% rename from fuzzers/005-tilegrid/iob/bitsmaker.py rename to prjxray/bitsmaker.py