Untitled

 avatar
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