mirror of https://github.com/openXC7/prjxray.git
Merge pull request #896 from antmicro/895_falsely_ignored_pips
Fix problem with falsely ignored PIPs
This commit is contained in:
commit
f357aa06c1
|
|
@ -54,10 +54,11 @@ with open(args.design, "r") as f:
|
||||||
if tile not in tiledata:
|
if tile not in tiledata:
|
||||||
tiledata[tile] = {"pips": set(), "srcs": set(), "dsts": set()}
|
tiledata[tile] = {"pips": set(), "srcs": set(), "dsts": set()}
|
||||||
|
|
||||||
if pip in pipdata:
|
tile_lr = ("_".join(tile.split("_")[0:2]))
|
||||||
assert pipdata[pip] == (src, dst)
|
if (tile_lr, pip) in pipdata:
|
||||||
|
assert pipdata[(tile_lr, pip)] == (src, dst)
|
||||||
else:
|
else:
|
||||||
pipdata[pip] = (src, dst)
|
pipdata[(tile_lr, pip)] = (src, dst)
|
||||||
|
|
||||||
tiledata[tile]["pips"].add(pip)
|
tiledata[tile]["pips"].add(pip)
|
||||||
tiledata[tile]["srcs"].add(src)
|
tiledata[tile]["srcs"].add(src)
|
||||||
|
|
@ -67,23 +68,23 @@ with open(args.design, "r") as f:
|
||||||
tiledata[tile]["srcs"].add(dst)
|
tiledata[tile]["srcs"].add(dst)
|
||||||
tiledata[tile]["dsts"].add(src)
|
tiledata[tile]["dsts"].add(src)
|
||||||
|
|
||||||
|
t = ("_".join(tile.split("_")[0:2]), dst, src)
|
||||||
if pnum == 1 or pdir == 0:
|
if pnum == 1 or pdir == 0:
|
||||||
verbose and print('ignore pnum == 1 or pdir == 0: ', pip)
|
verbose and print('ignore pnum == 1 or pdir == 0: ', pip)
|
||||||
ignpip.add(pip)
|
ignpip.add(t)
|
||||||
|
|
||||||
t = ("_".join(tile.split("_")[0:2]), dst, src)
|
|
||||||
if t not in todo:
|
if t not in todo:
|
||||||
verbose and print('ignore not todo: ', t)
|
verbose and print('ignore not todo: ', t)
|
||||||
ignpip.add(pip)
|
ignpip.add(t)
|
||||||
|
|
||||||
for tile, pips_srcs_dsts in tiledata.items():
|
for tile, pips_srcs_dsts in tiledata.items():
|
||||||
pips = pips_srcs_dsts["pips"]
|
pips = pips_srcs_dsts["pips"]
|
||||||
srcs = pips_srcs_dsts["srcs"]
|
srcs = pips_srcs_dsts["srcs"]
|
||||||
dsts = pips_srcs_dsts["dsts"]
|
dsts = pips_srcs_dsts["dsts"]
|
||||||
|
for (tile_lr, pip), src_dst in pipdata.items():
|
||||||
for pip, src_dst in pipdata.items():
|
|
||||||
src, dst = src_dst
|
src, dst = src_dst
|
||||||
if pip in ignpip:
|
t = (tile_lr, dst, src)
|
||||||
|
if t in ignpip:
|
||||||
pass
|
pass
|
||||||
elif pip in pips:
|
elif pip in pips:
|
||||||
segmk.add_tile_tag(tile, "%s.%s" % (dst, src), 1)
|
segmk.add_tile_tag(tile, "%s.%s" % (dst, src), 1)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue