timfuz: timing3.csv => timing3i.csv (interconnect)

Signed-off-by: John McMaster <johndmcmaster@gmail.com>
This commit is contained in:
John McMaster 2018-09-24 16:53:18 -07:00
parent cd129ba84e
commit 9e8f6ea3e4
11 changed files with 28 additions and 24 deletions

View File

@ -111,14 +111,14 @@ def main():
parser.add_argument('--verbose', action='store_true', help='')
parser.add_argument('--sub-json', help='')
parser.add_argument('fns_in', nargs='*', help='timing3.csv input files')
parser.add_argument('fns_in', nargs='*', help='timing3i.csv input files')
args = parser.parse_args()
# Store options in dict to ease passing through functions
bench = Benchmark()
fns_in = args.fns_in
if not fns_in:
fns_in = glob.glob('specimen_*/timing3.csv')
fns_in = glob.glob('specimen_*/timing3i.csv')
sub_json = None
if args.sub_json:

View File

@ -28,10 +28,10 @@ def main():
parser.add_argument('--verbose', type=int, help='')
parser.add_argument(
'--auto-name', action='store_true', help='timing3.csv => timing3c.csv')
'--auto-name', action='store_true', help='timing3i.csv => timing3c.csv')
parser.add_argument('--out', default=None, help='Output csv')
parser.add_argument('--corner', help='Output csv')
parser.add_argument('fns_in', nargs='+', help='timing3.csv input files')
parser.add_argument('fns_in', nargs='+', help='timing3i.csv input files')
args = parser.parse_args()
bench = Benchmark()
@ -40,8 +40,8 @@ def main():
if args.auto_name:
assert len(args.fns_in) == 1
fnin = args.fns_in[0]
fnout = fnin.replace('timing3.csv', 'timing3c.csv')
assert fnout != fnin, 'Expect timing3.csv in'
fnout = fnin.replace('timing3i.csv', 'timing3c.csv')
assert fnout != fnin, 'Expect timing3i.csv in'
else:
fnout = '/dev/stdout'
print("Writing to %s" % fnout)
@ -49,7 +49,7 @@ def main():
fns_in = args.fns_in
if not fns_in:
fns_in = glob.glob('specimen_*/timing3.csv')
fns_in = glob.glob('specimen_*/timing3i.csv')
run(fout=fout, fns_in=fns_in, corner=args.corner, verbose=args.verbose)

View File

@ -45,14 +45,14 @@ def main():
required=True,
help='Group substitutions to make fully ranked')
parser.add_argument('--out', help='Output sub.json substitution result')
parser.add_argument('fns_in', nargs='+', help='timing3.csv input files')
parser.add_argument('fns_in', nargs='+', help='timing3i.csv input files')
args = parser.parse_args()
# Store options in dict to ease passing through functions
bench = Benchmark()
fns_in = args.fns_in
if not fns_in:
fns_in = glob.glob('specimen_*/timing3.csv')
fns_in = glob.glob('specimen_*/timing3i.csv')
sub_json = load_sub(args.sub_json)

View File

@ -46,6 +46,6 @@ $(BUILD_DIR)/$(CORNER)/timgrid-vc.json: $(BUILD_DIR)/$(CORNER)/flat.csv
python3 $(TIMFUZ_DIR)/tile_annotate.py --timgrid-s $(TIMFUZ_DIR)/timgrid/build/timgrid-s.json --out $(BUILD_DIR)/$(CORNER)/timgrid-vc.json $(BUILD_DIR)/$(CORNER)/flat.csv
$(BUILD_DIR)/$(CORNER)/qor.txt: $(BUILD_DIR)/$(CORNER)/flat.csv
python3 $(TIMFUZ_DIR)/solve_qor.py --corner $(CORNER) --bounds-csv $(BUILD_DIR)/$(CORNER)/flat.csv specimen_*/timing3.csv >$(BUILD_DIR)/$(CORNER)/qor.txt.tmp
python3 $(TIMFUZ_DIR)/solve_qor.py --corner $(CORNER) --bounds-csv $(BUILD_DIR)/$(CORNER)/flat.csv specimen_*/timing3i.csv >$(BUILD_DIR)/$(CORNER)/qor.txt.tmp
mv $(BUILD_DIR)/$(CORNER)/qor.txt.tmp $(BUILD_DIR)/$(CORNER)/qor.txt

View File

@ -4,6 +4,6 @@ source ${XRAY_GENHEADER}
TIMFUZ_DIR=$XRAY_DIR/fuzzers/007-timing
timing_txt2csv () {
python3 $TIMFUZ_DIR/timing_txt2csv.py --speed-json $TIMFUZ_DIR/speed/build/speed.json --out timing3.csv timing3.txt
python3 $TIMFUZ_DIR/timing_txt2icsv.py --speed-json $TIMFUZ_DIR/speed/build/speed.json --out timing3i.csv timing3.txt
}

View File

@ -4,7 +4,7 @@
N := 1
SPECIMENS := $(addprefix specimen_,$(shell seq -f '%03.0f' $(N)))
SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS))
CSVS := $(addsuffix /timing3.csv,$(SPECIMENS))
CSVS := $(addsuffix /timing3i.csv,$(SPECIMENS))
TIMFUZ_DIR=$(XRAY_DIR)/fuzzers/007-timing
RREF_CORNER=slow_max
# Allow an empty system of equations?

View File

@ -223,13 +223,13 @@ def main():
default='build_speed/speed.json',
help='Provides speed index to name translation')
parser.add_argument('--out', help='Output sub.json substitution result')
parser.add_argument('fns_in', nargs='*', help='timing3.csv input files')
parser.add_argument('fns_in', nargs='*', help='timing3i.csv input files')
args = parser.parse_args()
bench = Benchmark()
fns_in = args.fns_in
if not fns_in:
fns_in = glob.glob('specimen_*/timing3.csv')
fns_in = glob.glob('specimen_*/timing3i.csv')
try:
run(

View File

@ -119,14 +119,14 @@ def main():
parser.add_argument('--corner', required=True, default="slow_max", help='')
parser.add_argument(
'--out', default=None, help='output timing delay .json')
parser.add_argument('fns_in', nargs='+', help='timing3.csv input files')
parser.add_argument('fns_in', nargs='+', help='timing3i.csv input files')
args = parser.parse_args()
# Store options in dict to ease passing through functions
bench = Benchmark()
fns_in = args.fns_in
if not fns_in:
fns_in = glob.glob('specimen_*/timing3.csv')
fns_in = glob.glob('specimen_*/timing3i.csv')
sub_json = None
if args.sub_json:

View File

@ -162,14 +162,14 @@ def main():
parser.add_argument('--corner', required=True, default="slow_max", help='')
parser.add_argument(
'--out', default=None, help='output timing delay .json')
parser.add_argument('fns_in', nargs='+', help='timing3.csv input files')
parser.add_argument('fns_in', nargs='+', help='timing3i.csv input files')
args = parser.parse_args()
# Store options in dict to ease passing through functions
bench = Benchmark()
fns_in = args.fns_in
if not fns_in:
fns_in = glob.glob('specimen_*/timing3.csv')
fns_in = glob.glob('specimen_*/timing3i.csv')
sub_json = None
if args.sub_json:

View File

@ -37,14 +37,14 @@ def main():
'--bounds-csv',
required=True,
help='Previous solve result starting point')
parser.add_argument('fns_in', nargs='+', help='timing3.csv input files')
parser.add_argument('fns_in', nargs='+', help='timing3i.csv input files')
args = parser.parse_args()
# Store options in dict to ease passing through functions
bench = Benchmark()
fns_in = args.fns_in
if not fns_in:
fns_in = glob.glob('specimen_*/timing3.csv')
fns_in = glob.glob('specimen_*/timing3i.csv')
try:
run(

View File

@ -235,6 +235,10 @@ def run(speed_json_f, fout, f_ins, verbose=0, corner=None):
fout.write('ico,fast_max fast_min slow_max slow_min,rows...\n')
for row_bs, row_ds, row_ico in zip(bs, Ads, ico):
# XXX: consider removing ico column
# its obsolete at this point
if not ico:
continue
# like: 123 456 120 450, 1 a, 2 b
# first column has delay corners, followed by delay element count
items = [str(row_ico), ' '.join([str(x) for x in row_bs])]
@ -248,18 +252,18 @@ def main():
parser = argparse.ArgumentParser(
description=
'Convert obscure timing3.txt into more readable but roughly equivilent timing3.csv'
'Convert obscure timing3.txt into more readable but roughly equivilent timing3i.csv (interconnect)'
)
parser.add_argument('--verbose', type=int, help='')
# made a bulk conversion easier...keep?
parser.add_argument(
'--auto-name', action='store_true', help='timing3.txt => timing3.csv')
'--auto-name', action='store_true', help='timing3.txt => timing3i.csv')
parser.add_argument(
'--speed-json',
default='build_speed/speed.json',
help='Provides speed index to name translation')
parser.add_argument('--out', default=None, help='Output timing3.csv file')
parser.add_argument('--out', default=None, help='Output timing3i.csv file')
parser.add_argument('fns_in', nargs='+', help='Input timing3.txt files')
args = parser.parse_args()
bench = Benchmark()
@ -269,7 +273,7 @@ def main():
if args.auto_name:
assert len(args.fns_in) == 1
fnin = args.fns_in[0]
fnout = fnin.replace('.txt', '.csv')
fnout = fnin.replace('.txt', 'i.csv')
assert fnout != fnin, 'Expect .txt in'
else:
# practically there are too many stray prints to make this work as expected