Merge pull request #668 from litghost/add_missing_cascade_bits

Add CASCOUT_*_ACTIVE bits.
This commit is contained in:
litghost 2019-02-19 16:48:47 -08:00 committed by GitHub
commit aa88f68da7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 1 deletions

View File

@ -1,6 +1,7 @@
#!/usr/bin/env python3
from prjxray.segmaker import Segmaker
import re
segmk = Segmaker("design.bits")
@ -52,12 +53,15 @@ with open("design.txt", "r") as f:
if pnum == 1 or pdir == 0:
ignpip.add(pip)
CASCOUT_RE = re.compile('^BRAM_CASCOUT_ADDR((?:BWR)|(?:ARD))ADDRU([0-9]+)$')
for tile, pips_srcs_dsts in tiledata.items():
tile_type = pips_srcs_dsts["type"]
pips = pips_srcs_dsts["pips"]
srcs = pips_srcs_dsts["srcs"]
dsts = pips_srcs_dsts["dsts"]
active_cascout = set()
for pip, src_dst in pipdata[tile_type].items():
src, dst = src_dst
@ -74,11 +78,18 @@ for tile, pips_srcs_dsts in tiledata.items():
if pip in ignpip:
pass
elif pip in pips:
segmk.add_tile_tag(tile, "%s.%s" % (dst, src_no_r), 1)
elif src_dst[1] not in dsts:
segmk.add_tile_tag(tile, "%s.%s" % (dst, src_no_r), 0)
m = CASCOUT_RE.match(dst)
if m and pip in pips:
active_cascout.add(m.group(1))
for group in ['BWR', 'ARD']:
segmk.add_tile_tag(
tile, 'CASCOUT_{}_ACTIVE'.format(group), group in active_cascout)
segmk.compile()
segmk.write()