piel.tools.openlane.parse.sta_rpt#

Module Contents#

Functions#

calculate_max_frame_amount(file_lines_data)

Calculate the maximum frame amount based on the frame IDs in the DataFrame

calculate_propagation_delay_from_timing_data(...)

Calculate the propagation delay between two nets

calculate_propagation_delay_from_file(file_path)

Calculate the propagation delay for each frame in the file

configure_timing_data_rows(file_lines_data)

Identify the timing data lines for each frame and creates a metadata dictionary for frames.

configure_frame_id(file_lines_data)

Identify the frame delimiters and assign frame ID to each line in the file

filter_timing_data_by_net_name_and_type(timing_data, ...)

Filter the timing data by net name and type

get_frame_meta_data(file_lines_data)

Get the frame metadata

get_frame_lines_data(file_path)

Calculate the timing data for each frame in the file

get_frame_timing_data(file, frame_meta_data[, frame_id])

Extract the timing data from the file

get_all_timing_data_from_file(file_path)

Calculate the timing data for each frame in the file

read_sta_rpt_fwf_file(file, frame_meta_data[, frame_id])

Read the fixed width file and return a DataFrame

calculate_max_frame_amount(file_lines_data: pandas.DataFrame)[source]#

Calculate the maximum frame amount based on the frame IDs in the DataFrame

Parameters:

file_lines_data (pd.DataFrame) – Dataframe containing the file lines

Returns:

Maximum number of frames in the file

Return type:

maximum_frame_amount (int)

calculate_propagation_delay_from_timing_data(net_name_in: str, net_name_out: str, timing_data: pandas.DataFrame)[source]#

Calculate the propagation delay between two nets

Parameters:
  • net_name_in (str) – Name of the input net

  • net_name_out (str) – Name of the output net

  • timing_data (pd.DataFrame) – Dataframe containing the timing data

Returns:

Dataframe containing the propagation delay

Return type:

propagation_delay_dataframe (pd.DataFrame)

calculate_propagation_delay_from_file(file_path: str | pathlib.Path)[source]#

Calculate the propagation delay for each frame in the file

Parameters:

file_path (str | pathlib.Path) – Path to the file

Returns:

Dictionary containing the propagation delay

Return type:

propagation_delay (dict)

configure_timing_data_rows(file_lines_data: pandas.DataFrame)[source]#

Identify the timing data lines for each frame and creates a metadata dictionary for frames.

Parameters:

file_lines_data (pd.DataFrame) – Dataframe containing the file lines

Returns:

Dictionary containing the frame metadata

Return type:

frame_meta_data (dict)

configure_frame_id(file_lines_data: pandas.DataFrame)[source]#

Identify the frame delimiters and assign frame ID to each line in the file

Parameters:

file_lines_data (pd.DataFrame) – Dataframe containing the file lines

Returns:

Dataframe containing the file lines

Return type:

file_lines_data (pd.DataFrame)

filter_timing_data_by_net_name_and_type(timing_data: pandas.DataFrame, net_name: str, net_type: str)[source]#

Filter the timing data by net name and type

Parameters:
  • timing_data (pd.DataFrame) – DataFrame containing the timing data

  • net_name (str) – Net name to be filtered

  • net_type (str) – Net type to be filtered

Returns:

DataFrame containing the timing data

Return type:

timing_data (pd.DataFrame)

get_frame_meta_data(file_lines_data)[source]#

Get the frame metadata

Parameters:

file_lines_data (pd.DataFrame) – DataFrame containing the file lines

Returns:

DataFrame containing the start point name end_point_name (pd.DataFrame): DataFrame containing the end point name path_group_name (pd.DataFrame): DataFrame containing the path group name path_type_name (pd.DataFrame): DataFrame containing the path type name

Return type:

start_point_name (pd.DataFrame)

get_frame_lines_data(file_path: str | pathlib.Path)[source]#

Calculate the timing data for each frame in the file

Parameters:

file_path (str | pathlib.Path) – Path to the file

Returns:

DataFrame containing the file lines

Return type:

file_lines_data (pd.DataFrame)

get_frame_timing_data(file: str | pathlib.Path, frame_meta_data: dict, frame_id: int = 0)[source]#

Extract the timing data from the file

Parameters:
  • file (str | pathlib.Path) – Address of the file

  • frame_meta_data (dict) – Dictionary containing the frame metadata

  • frame_id (int) – Frame ID to be read

Returns:

DataFrame containing the timing data

Return type:

timing_data (pd.DataFrame)

get_all_timing_data_from_file(file_path: str | pathlib.Path)[source]#

Calculate the timing data for each frame in the file

Parameters:

file_path (str | pathlib.Path) – Path to the file

Returns:

Dictionary containing the timing data for each frame

Return type:

frame_timing_data (dict)

read_sta_rpt_fwf_file(file: str | pathlib.Path, frame_meta_data: dict, frame_id: int = 0)[source]#

Read the fixed width file and return a DataFrame

Parameters:
  • file (str | pathlib.Path) – Address of the file

  • frame_meta_data (dict) – Dictionary containing the frame metadata

  • frame_id (int) – Frame ID to be read

Returns:

DataFrame containing the file data

Return type:

file_data (pd.DataFrame)