From 328c550d619e268ecef40505fc408635dd46d1b7 Mon Sep 17 00:00:00 2001 From: John McMaster Date: Wed, 7 Nov 2018 17:36:37 -0800 Subject: [PATCH] bram config db: READ/WRITE width bits to enum Signed-off-by: John McMaster --- fuzzers/025-bram-config/Makefile | 31 ++++++++--------------------- fuzzers/025-bram-config/bits.dbf | 20 +++++++++++++++++++ fuzzers/025-bram-config/generate.py | 16 ++++++++++++--- fuzzers/clb.mk | 21 ++----------------- fuzzers/fuzzer.mk | 24 ++++++++++++++++++++++ 5 files changed, 67 insertions(+), 45 deletions(-) create mode 100644 fuzzers/025-bram-config/bits.dbf create mode 100644 fuzzers/fuzzer.mk diff --git a/fuzzers/025-bram-config/Makefile b/fuzzers/025-bram-config/Makefile index 46c9ba13..dd1cf109 100644 --- a/fuzzers/025-bram-config/Makefile +++ b/fuzzers/025-bram-config/Makefile @@ -1,30 +1,15 @@ # read/write width is relatively slow to resolve -N := 4 -SPECIMENS := $(addprefix build/specimen_,$(shell seq -f '%03.0f' $(N))) -SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS)) +# Even slower with multi bit masks... +N := 8 +include ../fuzzer.mk database: $(SPECIMENS_OK) - ${XRAY_SEGMATCH} -o build/seg_bramx.segbits $(addsuffix /segdata_bram_[lr].txt,$(SPECIMENS)) + ${XRAY_SEGMATCH} -o build/segbits_bramx.db $(addsuffix /segdata_bram_[lr].txt,$(SPECIMENS)) + ${XRAY_DBFIXUP} --db_root build --zero-db bits.dbf --zero-tile-types bramx pushdb: - ${XRAY_MERGEDB} bram_l build/seg_bramx.segbits - ${XRAY_MERGEDB} bram_r build/seg_bramx.segbits + ${XRAY_MERGEDB} bram_l build/segbits_bramx.db + ${XRAY_MERGEDB} bram_r build/segbits_bramx.db -build: - mkdir build - -$(SPECIMENS_OK): build - bash ${XRAY_DIR}/utils/top_generate.sh $(subst /OK,,$@) - touch $@ - -run: - $(MAKE) clean - $(MAKE) database - $(MAKE) pushdb - touch run.ok - -clean: - rm -rf build - -.PHONY: database pushdb clean +.PHONY: database pushdb diff --git a/fuzzers/025-bram-config/bits.dbf b/fuzzers/025-bram-config/bits.dbf new file mode 100644 index 00000000..415b7b4b --- /dev/null +++ b/fuzzers/025-bram-config/bits.dbf @@ -0,0 +1,20 @@ +# Y0 +# Y0.READ_WIDTH_A +27_35 27_36 27_37 +# Y0.READ_WIDTH_B +27_43 27_44 27_45 +# Y0.WRITE_WIDTH_A +27_51 27_52 27_53 +# Y0.WRITE_WIDTH_B +27_59 27_60 27_61 + +# Y1 +# Y1.READ_WIDTH_A +27_285 27_284 27_283 +# Y1.READ_WIDTH_B +27_277 27_276 27_275 +# Y1.WRITE_WIDTH_A +27_269 27_268 27_267 +# Y1.WRITE_WIDTH_B +27_261 27_260 27_259 + diff --git a/fuzzers/025-bram-config/generate.py b/fuzzers/025-bram-config/generate.py index 9c0dfe5b..f80b7a10 100644 --- a/fuzzers/025-bram-config/generate.py +++ b/fuzzers/025-bram-config/generate.py @@ -69,9 +69,19 @@ def rw_width_tags(segmk, ps, site): for param in ["READ_WIDTH_A", "READ_WIDTH_B", "WRITE_WIDTH_A", "WRITE_WIDTH_B"]: set_val = int(ps[param]) - segmk.add_site_tag(site, '%s_B0' % (param), set_val in (2, 9)) - segmk.add_site_tag(site, '%s_B1' % (param), set_val in (4, 9)) - segmk.add_site_tag(site, '%s_B2' % (param), set_val in (18, )) + # Multiple bits (not one hot) + # segmk.add_site_tag(site, '%s_B0' % (param), set_val in (2, 9)) + # segmk.add_site_tag(site, '%s_B1' % (param), set_val in (4, 9)) + # segmk.add_site_tag(site, '%s_B2' % (param), set_val in (18, )) + + # 1 is special in that its all 0's + # diff only against that + segmk.add_site_tag(site, '%s_%u' % (param, 1), set_val != 1) + for widthn in [2, 4, 9, 18]: + if set_val == 1: + segmk.add_site_tag(site, '%s_%u' % (param, widthn), False) + elif set_val == widthn: + segmk.add_site_tag(site, '%s_%u' % (param, widthn), True) def write_mode_tags(segmk, ps, site): diff --git a/fuzzers/clb.mk b/fuzzers/clb.mk index a328b287..703161d9 100644 --- a/fuzzers/clb.mk +++ b/fuzzers/clb.mk @@ -1,8 +1,7 @@ N ?= 1 DBFIXUP ?= -SPECIMENS := $(addprefix build/specimen_,$(shell seq -f '%03.0f' $(N))) -SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS)) +include fuzzer.mk database: $(SPECIMENS_OK) ${XRAY_SEGMATCH} -o build/segbits_clblx.db $(addsuffix /segdata_clbl[lm]_[lr].txt,$(SPECIMENS)) @@ -14,21 +13,5 @@ pushdb: ${XRAY_MERGEDB} clblm_l build/segbits_clblx.db ${XRAY_MERGEDB} clblm_r build/segbits_clblx.db -build: - mkdir build - -$(SPECIMENS_OK): build - 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 +.PHONY: database pushdb diff --git a/fuzzers/fuzzer.mk b/fuzzers/fuzzer.mk new file mode 100644 index 00000000..b4861b6f --- /dev/null +++ b/fuzzers/fuzzer.mk @@ -0,0 +1,24 @@ +N ?= 1 +SPECIMENS := $(addprefix build/specimen_,$(shell seq -f '%03.0f' $(N))) +SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS)) + +all: database + +build: + mkdir build + +$(SPECIMENS_OK): build + bash ${XRAY_DIR}/utils/top_generate.sh $(subst /OK,,$@) + touch $@ + +run: + $(MAKE) clean + $(MAKE) database + $(MAKE) pushdb + touch run.ok + +clean: + rm -rf build + +.PHONY: all run clean +