diff --git a/fuzzers/030-iob/Makefile b/fuzzers/030-iob/Makefile index 9216a598..c36191bd 100644 --- a/fuzzers/030-iob/Makefile +++ b/fuzzers/030-iob/Makefile @@ -1,20 +1,30 @@ N := 1 include ../fuzzer.mk -SEGDATAS=$(addsuffix /segdata_liob33.txt,$(SPECIMENS)) +SEGDATAS_L=$(addsuffix /segdata_liob33.txt,$(SPECIMENS)) +SEGDATAS_R=$(addsuffix /segdata_riob33.txt,$(SPECIMENS)) -database: build/segbits_liob33.db +database: build/segbits_liob33.db build/segbits_riob33.db build/segbits_liob33.rdb: $(SPECIMENS_OK) - ${XRAY_SEGMATCH} -o build/segbits_liob33.rdb $(SEGDATAS) + ${XRAY_SEGMATCH} -o build/segbits_liob33.rdb $(SEGDATAS_L) build/segbits_liob33.db: build/segbits_liob33.rdb ${XRAY_DBFIXUP} --db-root build --zero-db bits.dbf --seg-fn-in $^ --seg-fn-out $@ - ${XRAY_MASKMERGE} build/mask_liob33.db $(SEGDATAS) + ${XRAY_MASKMERGE} build/mask_liob33.db $(SEGDATAS_L) + +build/segbits_riob33.rdb: $(SPECIMENS_OK) + ${XRAY_SEGMATCH} -o build/segbits_riob33.rdb $(SEGDATAS_R) + +build/segbits_riob33.db: build/segbits_riob33.rdb + ${XRAY_DBFIXUP} --db-root build --zero-db bits.dbf --seg-fn-in $^ --seg-fn-out $@ + ${XRAY_MASKMERGE} build/mask_riob33.db $(SEGDATAS_R) pushdb: ${XRAY_MERGEDB} liob33 build/segbits_liob33.db + ${XRAY_MERGEDB} riob33 build/segbits_riob33.db ${XRAY_MERGEDB} mask_liob33 build/mask_liob33.db + ${XRAY_MERGEDB} mask_riob33 build/mask_riob33.db .PHONY: database pushdb diff --git a/fuzzers/030-iob/bits.dbf b/fuzzers/030-iob/bits.dbf index 57741c98..cb2dab5c 100644 --- a/fuzzers/030-iob/bits.dbf +++ b/fuzzers/030-iob/bits.dbf @@ -1 +1,2 @@ -38_98 39_97 39_99,LIOB33.IOB_Y1.PULLTYPE.PULLDOWN +38_92 39_93 38_94,LIOB33.IOB_Y0.PULLTYPE.PULLDOWN +39_33 38_34 39_35,LIOB33.IOB_Y1.PULLTYPE.PULLDOWN diff --git a/fuzzers/030-iob/top.py b/fuzzers/030-iob/top.py index 147a8b07..575193de 100644 --- a/fuzzers/030-iob/top.py +++ b/fuzzers/030-iob/top.py @@ -8,6 +8,7 @@ import random random.seed(int(os.getenv("SEED"), 16)) from prjxray import util from prjxray import verilog +from prjxray.db import Database def gen_iobs(): @@ -17,10 +18,15 @@ def gen_iobs(): IOB33: not a diff pair. Relatively rare (at least in ROI...2 of them?) Focus on IOB33S to start ''' - for _tile_name, site_name, site_type in util.get_roi().gen_sites( - #['IOB33', 'IOB33S', 'IOB33M']): - ['IOB33S']): - yield site_name, site_type + db = Database(util.get_db_root()) + grid = db.grid() + for tile_name in sorted(grid.tiles()): + loc = grid.loc_of_tilename(tile_name) + gridinfo = grid.gridinfo_at_loc(loc) + + for site_name, site_type in gridinfo.sites.items(): + if site_type in ['IOB33S', 'IOB33M']: + yield site_name, site_type def write_pins(ports):