Add ROI annotations and update some missing tilegrid changes.

Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
This commit is contained in:
Keith Rothman 2018-10-05 13:46:48 -07:00
parent 98308f0243
commit ed584aa8f2
5 changed files with 25 additions and 9 deletions

View File

@ -18,5 +18,6 @@ if [ -f $BASE_TILEGRID ]; then
mv output/tilegrid.json output/tilegrid_full.json.tmp
python3 ../../utils/merge_tilegrid.py \
--base_grid $BASE_TILEGRID \
--overlay_grid output/tilegrid_full.json.tm \
--output_grid output/tilegrid.json
--overlay_grid output/tilegrid_full.json.tmp \
--output_grid output/tilegrid.json \
--mark_roi

View File

@ -2,7 +2,7 @@ BUILD_DIR=build
# official demo configuration
all:
SMALL=Y BUILD_DIR=$(BUILD_DIR) XRAY_PINCFG=BASYS3-SWBUT ./runme.sh
BUILD_DIR=$(BUILD_DIR) XRAY_PINCFG=BASYS3-SWBUT ./runme.sh
clean:
rm -rf specimen_[0-9][0-9][0-9]/ seg_clblx.segbits vivado*.log vivado_*.str vivado*.jou design *.bits *.dcp *.bit design.txt .Xil

View File

@ -6,7 +6,7 @@ Connection = namedtuple('Connection', 'wire_a wire_b')
class Connections(object):
def __init__(self, tilegrid, tileconn, tile_wires):
self.grid = tilegrid['tiles']
self.grid = tilegrid
self.tile_wires = tile_wires
self.coord_to_tile = {}
self.coord_to_tile_type = {}

View File

@ -1,7 +1,7 @@
from collections import namedtuple
GridLoc = namedtuple('GridLoc', 'grid_x grid_y')
GridInfo = namedtuple('GridInfo', 'segment sites tile_type')
GridInfo = namedtuple('GridInfo', 'segment sites tile_type in_roi')
class Grid(object):
@ -16,15 +16,23 @@ class Grid(object):
self.loc = {}
self.tileinfo = {}
for tile in self.tilegrid['tiles']:
tileinfo = self.tilegrid['tiles'][tile]
for tile in self.tilegrid:
tileinfo = self.tilegrid[tile]
grid_loc = GridLoc(tileinfo['grid_x'], tileinfo['grid_y'])
assert grid_loc not in self.loc
self.loc[grid_loc] = tile
if 'in_roi' in tileinfo:
in_roi = tileinfo['in_roi']
else:
in_roi = True
self.tileinfo[tile] = GridInfo(
segment=tileinfo['segment'] if 'segment' in tileinfo else None,
sites=tileinfo['sites'],
tile_type=tileinfo['type'])
tile_type=tileinfo['type'],
in_roi=in_roi,
)
x, y = zip(*self.loc.keys())
self._dims = (min(x), max(x), min(y), max(y))
@ -45,7 +53,7 @@ class Grid(object):
return grid_loc in self.loc
def loc_of_tilename(self, tilename):
tileinfo = self.tilegrid['tiles'][tilename]
tileinfo = self.tilegrid[tilename]
return GridLoc(tileinfo['grid_x'], tileinfo['grid_y'])
def tilename_at_loc(self, grid_loc):

View File

@ -9,12 +9,17 @@ def main():
parser.add_argument('--output_grid', required=True)
parser.add_argument('--overlay_grid', required=True)
parser.add_argument('--old_format', action='store_true')
parser.add_argument('--mark_roi', action='store_true')
args = parser.parse_args()
with open(args.base_grid) as f:
base_grid = json.load(f)
if args.mark_roi:
for tile in base_grid:
base_grid[tile]['in_roi'] = True
with open(args.overlay_grid) as f:
overlay_grid = json.load(f)
@ -31,6 +36,8 @@ def main():
base_grid[tile][k] = overlay_grid[tile][k]
else:
base_grid[tile] = overlay_grid[tile]
if args.mark_roi:
base_grid[tile]['in_roi'] = False
with open(args.output_grid, 'w') as f:
json.dump(base_grid, f, indent=2)