tilegrid: split make_database()

Signed-off-by: John McMaster <johndmcmaster@gmail.com>
This commit is contained in:
John McMaster 2018-10-09 17:52:19 -07:00
parent d682523456
commit 7053663aa6
1 changed files with 25 additions and 10 deletions

View File

@ -62,18 +62,12 @@ def load_baseaddrs(deltas_fns):
return site_baseaddr
def make_database(tiles, site_baseaddr):
def make_database(tiles):
# tile database with X, Y, and list of sites
# tile name as keys
database = dict()
# lookup tile names by (X, Y)
tiles_by_grid = dict()
# Look up a base address by tile name
tile_baseaddr = dict()
for tile in tiles:
tiles_by_grid[(tile['grid_x'], tile['grid_y'])] = tile["name"]
database[tile['name']] = {
"type": tile['type'],
"sites": tile['sites'],
@ -81,12 +75,30 @@ def make_database(tiles, site_baseaddr):
"grid_y": tile['grid_y'],
}
return database
def make_tile_baseaddr(tiles, site_baseaddr):
# Look up a base address by tile name
tile_baseaddr = dict()
for tile in tiles:
for site_name in tile['sites'].keys():
if site_name in site_baseaddr:
framebaseaddr = site_baseaddr[site_name]
tile_baseaddr[tile['name']] = [framebaseaddr, 0]
return database, tiles_by_grid, tile_baseaddr
return tile_baseaddr
def make_tiles_by_grid(tiles):
# lookup tile names by (X, Y)
tiles_by_grid = dict()
for tile in tiles:
tiles_by_grid[(tile['grid_x'], tile['grid_y'])] = tile["name"]
return tiles_by_grid
def make_segments(database, tiles_by_grid, tile_baseaddr):
@ -330,8 +342,11 @@ def run(tiles_fn, json_fn, deltas_fns):
tiles = load_tiles(tiles_fn)
site_baseaddr = load_baseaddrs(deltas_fns)
database, tiles_by_grid, tile_baseaddr = make_database(
tiles, site_baseaddr)
# Index input
database = make_database(tiles)
tile_baseaddr = make_tile_baseaddr(tiles, site_baseaddr)
tiles_by_grid = make_tiles_by_grid(tiles)
segments = make_segments(database, tiles_by_grid, tile_baseaddr)
# Reference adjacent CLBs to locate adjacent tiles by known offsets