Merge pull request #659 from litghost/restore_iob_fuzzer

Restore IOB fuzzer and add _Y0 bits.
This commit is contained in:
litghost 2019-02-17 22:04:08 -08:00 committed by GitHub
commit 9e4c6f1bb5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 9 deletions

View File

@ -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

View File

@ -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

View File

@ -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):