From d937e9c049efec4da49c4f78c55c9c6f9ec058c2 Mon Sep 17 00:00:00 2001 From: John McMaster Date: Tue, 4 Dec 2018 20:23:57 -0800 Subject: [PATCH 1/2] segmaker: always check tags are used, verbose extended check Signed-off-by: John McMaster --- prjxray/segmaker.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/prjxray/segmaker.py b/prjxray/segmaker.py index 98766d6a..6ccdcefa 100644 --- a/prjxray/segmaker.py +++ b/prjxray/segmaker.py @@ -226,8 +226,6 @@ class Segmaker: segment["tags"][tag] = value def add_site_tags(): - segment = getseg(segname) - site_prefix = site.split('_')[0] def name_slice(): @@ -288,6 +286,9 @@ class Segmaker: # ignore dummy tiles (ex: VBRK) if len(tiledata['bits']) == 0: + if self.verbose: + for site in tiledata["sites"]: + assert site not in self.site_tags, "Site %s does not have bitstream info" % site continue elif len(tiledata['bits']) == 1: bitj = list(tiledata['bits'].values())[0] @@ -312,10 +313,11 @@ class Segmaker: continue add_site_tags() + n_site_tags = recurse_sum(self.site_tags) + n_tile_tags = recurse_sum(self.tile_tags) + ntags = n_site_tags + n_tile_tags if self.verbose: - n_site_tags = recurse_sum(self.site_tags) - n_tile_tags = recurse_sum(self.tile_tags) - ntags = n_site_tags + n_tile_tags + assert ntags, "No tags" print("Used %u / %u tags" % (len(tags_used), ntags)) print("Tag sites: %u" % (n_site_tags, )) if n_site_tags: @@ -323,7 +325,7 @@ class Segmaker: print("Tag tiles: %u" % (n_tile_tags, )) print("Used %u sites" % len(sites_used)) print("Grid DB had %u tile types" % len(tile_types_found)) - assert ntags and ntags == len(tags_used) + assert ntags == len(tags_used), "Unused tags" def write(self, suffix=None, roi=False, allow_empty=False): assert self.segments_by_type, 'No data to write' From 6ef57ba16c2c0731b41117ab6e770ef40dd081a3 Mon Sep 17 00:00:00 2001 From: John McMaster Date: Tue, 4 Dec 2018 20:55:29 -0800 Subject: [PATCH 2/2] segmaker: fix bug when try site but not tile tag Signed-off-by: John McMaster --- prjxray/segmaker.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/prjxray/segmaker.py b/prjxray/segmaker.py index 6ccdcefa..53ecc0ac 100644 --- a/prjxray/segmaker.py +++ b/prjxray/segmaker.py @@ -271,7 +271,8 @@ class Segmaker: # XXX: does this come from name? tag = tag.replace(".SLICEM.", ".") tag = tag.replace(".SLICEL.", ".") - segments[segname]["tags"][tag] = value + segment = getseg(segname) + segment["tags"][tag] = value sites_used.add(site) tile_type = tiledata["type"]