tilegrid: Adjust for 16bit words Signed-off-by: Tomasz Michalak <tmichalak@antmicro.com>
diff --git a/fuzzers/002-tilegrid/add_tdb.py b/fuzzers/002-tilegrid/add_tdb.py index 9a6d9f5..a5d0271 100644 --- a/fuzzers/002-tilegrid/add_tdb.py +++ b/fuzzers/002-tilegrid/add_tdb.py
@@ -4,6 +4,7 @@ import util as localutil import os +BITS_PER_WORD = 16 def check_frames(tagstr, addrlist): frames = set() @@ -18,8 +19,8 @@ # 00020027_003_03 line = line.split("_") frame = int(line[0], 16) - wordidx = int(line[1], 10) - bitidx = int(line[2], 10) + wordidx = int(line[1], 10) * (32 / BITS_PER_WORD) + int(line[2], 10) // BITS_PER_WORD + bitidx = int(line[2], 10) % BITS_PER_WORD if get_base_frame: delta = frame % 128 @@ -69,17 +70,12 @@ def run(fn_in, fn_out, verbose=False): database = json.load(open(fn_in, "r")) - # Load a map of sites to base addresses - # Need to figure out the - # FIXME: generate frames from part file (or equivilent) - # See https://github.com/SymbiFlow/prjxray/issues/327 - # FIXME: generate words from pitch int_frames, int_words = localutil.get_int_params() build_dir = "build_" + os.getenv('URAY_PART') tdb_fns = [ - ("cle/" + build_dir + "/segbits_tilegrid.tdb", 36, 2), - ("clel_int/" + build_dir + "/segbits_tilegrid.tdb", 60, 2), - ("clem_int/" + build_dir + "/segbits_tilegrid.tdb", 60, 2), + ("cle/" + build_dir + "/segbits_tilegrid.tdb", 36, 3), + ("clel_int/" + build_dir + "/segbits_tilegrid.tdb", 60, 3), + ("clem_int/" + build_dir + "/segbits_tilegrid.tdb", 60, 3), ] for (tdb_fn, frames, words) in tdb_fns:
diff --git a/fuzzers/002-tilegrid/cle/Makefile b/fuzzers/002-tilegrid/cle/Makefile index fe8b375..3624fb0 100644 --- a/fuzzers/002-tilegrid/cle/Makefile +++ b/fuzzers/002-tilegrid/cle/Makefile
@@ -1,4 +1,4 @@ N ?= 15 -GENERATE_ARGS?=--oneval 1 --design params.csv --dword 0 --dframe 0C +GENERATE_ARGS?=--oneval 1 --design params.csv --dword 2 --dframe 0C include ../fuzzaddr/common.mk
diff --git a/fuzzers/002-tilegrid/clel_int/Makefile b/fuzzers/002-tilegrid/clel_int/Makefile index 1046649..de77107 100644 --- a/fuzzers/002-tilegrid/clel_int/Makefile +++ b/fuzzers/002-tilegrid/clel_int/Makefile
@@ -1,4 +1,4 @@ N ?= 20 -GENERATE_ARGS?=--oneval 0 --design params.csv --dword 1 --dframe 3a +GENERATE_ARGS?=--oneval 0 --design params.csv --dword 2 --dframe 3a include ../fuzzaddr/common.mk
diff --git a/fuzzers/002-tilegrid/clem_int/Makefile b/fuzzers/002-tilegrid/clem_int/Makefile index 685dd28..0f986f1 100644 --- a/fuzzers/002-tilegrid/clem_int/Makefile +++ b/fuzzers/002-tilegrid/clem_int/Makefile
@@ -1,4 +1,4 @@ N ?= 20 -GENERATE_ARGS?=--oneval 0 --design params.csv --dword 1 --dframe 03 +GENERATE_ARGS?=--oneval 0 --design params.csv --dword 2 --dframe 03 include ../fuzzaddr/common.mk
diff --git a/fuzzers/002-tilegrid/util.py b/fuzzers/002-tilegrid/util.py index 6aaa4fd..1cc3fbf 100644 --- a/fuzzers/002-tilegrid/util.py +++ b/fuzzers/002-tilegrid/util.py
@@ -36,12 +36,12 @@ bits = tile_db['bits'] block_type = util.addr2btype(baseaddr) - assert offset <= 100, (tile_name, offset) + assert offset <= 93 * 2, (tile_name, offset) # Few rare cases at X=0 for double width tiles split in half => small negative offset assert offset >= 0 or "IOB" in tile_name, ( tile_name, hex(baseaddr), offset) - assert 1 <= words <= 101, words - assert offset + words <= 101, ( + assert 1 <= words <= 93 * 2, words + assert offset + words <= 93 * 2, ( tile_name, offset + words, offset, words, block_type) baseaddr_str = '0x%08X' % baseaddr @@ -64,7 +64,7 @@ block["frames"] = frames # Index of first word used within each frame - block["offset"] = offset + block["offset"] = int(offset) # Number of words used by tile. block["words"] = words