mirror of https://github.com/openXC7/prjxray.git
61 lines
1.8 KiB
Python
61 lines
1.8 KiB
Python
#!/usr/bin/env python3
|
|
|
|
from timfuz import Benchmark, simplify_rows, loadc_Ads_b
|
|
import glob
|
|
|
|
|
|
def run(fout, fns_in, corner, verbose=0):
|
|
Ads, b = loadc_Ads_b(fns_in, corner, ico=True)
|
|
Ads, b = simplify_rows(Ads, b, corner=corner)
|
|
|
|
fout.write('ico,fast_max fast_min slow_max slow_min,rows...\n')
|
|
for row_b, row_ds in zip(b, Ads):
|
|
# write in same format, but just stick to this corner
|
|
out_b = [str(row_b) for _i in range(4)]
|
|
ico = '1'
|
|
items = [ico, ' '.join(out_b)]
|
|
|
|
for k, v in sorted(row_ds.items()):
|
|
items.append('%u %s' % (v, k))
|
|
fout.write(','.join(items) + '\n')
|
|
|
|
|
|
def main():
|
|
import argparse
|
|
|
|
parser = argparse.ArgumentParser(
|
|
description='Create a .csv with a single process corner')
|
|
|
|
parser.add_argument('--verbose', type=int, help='')
|
|
parser.add_argument(
|
|
'--auto-name',
|
|
action='store_true',
|
|
help='timing4i.csv => timing4c.csv')
|
|
parser.add_argument('--out', default=None, help='Output csv')
|
|
parser.add_argument('--corner', help='Output csv')
|
|
parser.add_argument('fns_in', nargs='+', help='timing4i.csv input files')
|
|
args = parser.parse_args()
|
|
bench = Benchmark()
|
|
|
|
fnout = args.out
|
|
if fnout is None:
|
|
if args.auto_name:
|
|
assert len(args.fns_in) == 1
|
|
fnin = args.fns_in[0]
|
|
fnout = fnin.replace('timing4i.csv', 'timing4c.csv')
|
|
assert fnout != fnin, 'Expect timing4i.csv in'
|
|
else:
|
|
fnout = '/dev/stdout'
|
|
print("Writing to %s" % fnout)
|
|
fout = open(fnout, 'w')
|
|
|
|
fns_in = args.fns_in
|
|
if not fns_in:
|
|
fns_in = glob.glob('specimen_*/timing4i.csv')
|
|
|
|
run(fout=fout, fns_in=fns_in, corner=args.corner, verbose=args.verbose)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|