diff --git a/fuzzers/005-tilegrid/add_tdb.py b/fuzzers/005-tilegrid/add_tdb.py index 0ada62d7..d33ffc1d 100644 --- a/fuzzers/005-tilegrid/add_tdb.py +++ b/fuzzers/005-tilegrid/add_tdb.py @@ -52,18 +52,29 @@ def parse_addr(line): return frame, wordidx, bitidx +def check_frames(frames): + baseaddr = set() + for frame in frames: + baseaddr.add(frame // 128) + assert len(baseaddr) == 1, "Multiple base addresses for the same tag" + + def load_db(fn): for l in open(fn, "r"): l = l.strip() # FIXME: add offset to name # IOB_X0Y101.DFRAME:27.DWORD:3.DBIT:3 00020027_003_03 parts = l.split(' ') - # FIXME: need to check that all bits in part have same baseaddr, for now only the first bit is taken - #assert len(parts) == 2, "Unresolved bit: %s" % l tagstr = parts[0] - addrstr = parts[1] + addrlist = parts[1:] + frames = list() + for addrstr in addrlist: + frame, wordidx, bitidx = parse_addr(addrstr) + frames.append(frame) + check_frames(frames) + # Take the first address in the list + frame, wordidx, bitidx = parse_addr(addrlist[0]) - frame, wordidx, bitidx = parse_addr(addrstr) bitidx_up = False tparts = tagstr.split('.')