mirror of https://github.com/openXC7/prjxray.git
tilegrid: split make_database()
Signed-off-by: John McMaster <johndmcmaster@gmail.com>
This commit is contained in:
parent
d682523456
commit
7053663aa6
|
|
@ -62,18 +62,12 @@ def load_baseaddrs(deltas_fns):
|
||||||
return site_baseaddr
|
return site_baseaddr
|
||||||
|
|
||||||
|
|
||||||
def make_database(tiles, site_baseaddr):
|
def make_database(tiles):
|
||||||
# tile database with X, Y, and list of sites
|
# tile database with X, Y, and list of sites
|
||||||
# tile name as keys
|
# tile name as keys
|
||||||
database = dict()
|
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:
|
for tile in tiles:
|
||||||
tiles_by_grid[(tile['grid_x'], tile['grid_y'])] = tile["name"]
|
|
||||||
|
|
||||||
database[tile['name']] = {
|
database[tile['name']] = {
|
||||||
"type": tile['type'],
|
"type": tile['type'],
|
||||||
"sites": tile['sites'],
|
"sites": tile['sites'],
|
||||||
|
|
@ -81,12 +75,30 @@ def make_database(tiles, site_baseaddr):
|
||||||
"grid_y": tile['grid_y'],
|
"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():
|
for site_name in tile['sites'].keys():
|
||||||
if site_name in site_baseaddr:
|
if site_name in site_baseaddr:
|
||||||
framebaseaddr = site_baseaddr[site_name]
|
framebaseaddr = site_baseaddr[site_name]
|
||||||
tile_baseaddr[tile['name']] = [framebaseaddr, 0]
|
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):
|
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)
|
tiles = load_tiles(tiles_fn)
|
||||||
site_baseaddr = load_baseaddrs(deltas_fns)
|
site_baseaddr = load_baseaddrs(deltas_fns)
|
||||||
|
|
||||||
database, tiles_by_grid, tile_baseaddr = make_database(
|
# Index input
|
||||||
tiles, site_baseaddr)
|
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)
|
segments = make_segments(database, tiles_by_grid, tile_baseaddr)
|
||||||
|
|
||||||
# Reference adjacent CLBs to locate adjacent tiles by known offsets
|
# Reference adjacent CLBs to locate adjacent tiles by known offsets
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue