Untitled
unknown
plain_text
10 months ago
4.3 kB
19
Indexable
this was the debug output:
Processing block: FF_ARRAY_21T_R0
[FUNCTIONAL] File discovery took 0.28 seconds
[FUNCTIONAL] Template reading took 0.00 seconds
[FUNCTIONAL] STIL file processing took 16.16 seconds
[FUNCTIONAL] Verilog vs Pins CSV check took 0.67 seconds
[FUNCTIONAL] Total run_mode time: 17.27 seconds
[ATPG] Total run_mode time: 7.23 seconds
Completed checks for block: FF_ARRAY_21T_R0
so STIL file processing taking max time . so let's try to optimize that
# Open result log files
with open(path_func_ana, 'w') as f_ana_func, open(path_func_static, 'w') as f_func:
#print('Opening STIL files to check pins and their status.', flush=True)
if not signal_analog:
f_ana_func.write('No analog signals are there in the setup file.\n')
# Process STIL files for analog and static checks
if stil_gz_filepaths:
for index, stil_file in enumerate(stil_gz_filepaths):
with gzip.open(stil_file, 'rt') as input_data:
lines_signal, status_val = [], []
lines = input_data.readlines()
if signal_analog:
f_ana_func.write(f'\nFile is: {stil_file}\n')
for pin in range(len(signal_analog)):
found = False
for line in lines:
if line.strip().startswith('"Ann"'):
continue
if signal_analog[pin] in line:
found = True
break
if found:
f_ana_func.write('\nAnalog pin ' + signal_analog[pin] + ' is found.')
else:
f_ana_func.write('\nAnalog pin ' + signal_analog[pin] + ' is not found.')
f_ana_func.write('\n')
for ind, item in enumerate(signal_static):
_ansLinesSignal = []
for line in lines:
if f'"{item}"=' in line:
_ansLinesSignal.append(line.strip())
lines_signal.append(_ansLinesSignal)
if not any(lines_signal):
f_func.write(f'File is: {stil_file}\n')
f_func.write('None of the static signal pins are present in the file.\n')
else:
for i in range(len(lines_signal)):
_ansStatus = []
for j in range(len(lines_signal[i])):
result = lines_signal[i][j][lines_signal[i][j].find(f'"{signal_static[i]}"=') + len(f'"{signal_static[i]}"='): lines_signal[i][j].find(f'"{signal_static[i]}"=') + len(f'"{signal_static[i]}"=') + 1]
_ansStatus.append(result)
status_val.append(_ansStatus)
f_func.write(f'File is: {stil_file}\n')
for i in range(len(status_val)):
if status_val[i]:
flag = all(element == status_static[i] for element in status_val[i])
f_func.write(f'{"Toggling found: Status value for pin" if not flag else signal_static[i] + ": No toggling found: Status value remains"} {signal_static[i]} {"is changed." if not flag else status_static[i] + "."}\n')
else:
f_func.write(f'{signal_static[i]}: Not present in the file.\n')
f_func.write('\n')
print(f"[{mode}] STIL file processing took {time.time() - t0:.2f} seconds"); t0 = time.time()
else:
f_ana_func.write('No STIL files processed due to missing or invalid STIL_FILES_DIR path.\n')
f_func.write('No STIL files processed due to missing or invalid STIL_FILES_DIR path.\n')Editor is loading...
Leave a Comment