Add tilegrid report utility.

Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
This commit is contained in:
Keith Rothman 2019-01-24 09:55:13 -08:00
parent 53533d8f80
commit 136618b29d
1 changed files with 42 additions and 0 deletions

42
utils/tilegrid_report.py Executable file
View File

@ -0,0 +1,42 @@
#!/usr/bin/env python3
import simplejson as json
import argparse
def main():
parser = argparse.ArgumentParser(description="")
parser.add_argument('tilegrid_json')
args = parser.parse_args()
with open(args.tilegrid_json, 'r') as f:
tilegrid = json.load(f)
tile_types = {}
for tile in tilegrid:
tile_type = tilegrid[tile]['type']
if tile_type not in tile_types:
tile_types[tilegrid[tile]['type']] = []
tile_types[tile_type].append((tile, tilegrid[tile]))
total_tile_count = 0
total_have_bits = 0
for tile_type, tiles in sorted(tile_types.items()):
if 'NULL' in tile_type:
continue
have_bits = 0
for tile_name, tile in tiles:
total_tile_count += 1
if 'bits' in tile and 'CLB_IO_CLK' in tile['bits']:
have_bits += 1
total_have_bits += 1
print('{}: {}/{} ({:.2f} %)'.format(tile_type, have_bits, len(tiles), 100.*float(have_bits)/len(tiles)))
print('')
print('Summary: {}/{} ({:.2f} %)'.format(total_have_bits, total_tile_count, 100.*float(total_have_bits)/total_tile_count))
if __name__ == "__main__":
main()