mirror of https://github.com/openXC7/prjxray.git
bram config db: READ/WRITE width bits to enum
Signed-off-by: John McMaster <johndmcmaster@gmail.com>
This commit is contained in:
parent
c7d5f785d0
commit
328c550d61
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
@ -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):
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
Loading…
Reference in New Issue