KEYWORD Liberty_SCALING_MODEL = arithmetic_model ; SEMANTICS Liberty_SCALING_MODEL { VALUETYPE = number ; CONTEXT { LIBRARY SUBLIBRARY WIRE CELL VECTOR TEMPLATE CLASS HEADER } } TEMPLATE Liberty_SCALING_METHOD { Liberty_SCALING_MODEL actual_model { HEADER { Liberty_SCALING_MODEL nom_model { MODEL = ; } Liberty_PROCESS actual_process { DEFAULT = nom_process ; } VOLTAGE actual_voltage { DEFAULT = nom_voltage ; } TEMPERATURE actual_temperature { DEFAULT = nom_temperature ; } } EQUATION { nom_model * ( 1 + * ( actual_process - nom_process ) ) * ( 1 + * ( actual_voltage - nom_voltage ) ) * ( 1 + * ( actual_temperature - nom_temperature ) ) } } } Liberty_SCALING_METHOD { model = cell_rise ; k_process = k_process_cell_rise ; k_volt = k_volt_cell_rise ; k_temp = k_temp_cell_rise ; } Liberty_SCALING_METHOD { model = cell_fall ; k_process = k_process_cell_fall ; k_volt = k_volt_cell_fall ; k_temp = k_temp_cell_fall ; } Liberty_SCALING_METHOD { model = rise_transition ; k_process = k_process_rise_transition ; k_volt = k_volt_rise_transition ; k_temp = k_temp_rise_transition ; } Liberty_SCALING_METHOD { model = fall_transition ; k_process = k_process_fall_transition ; k_volt = k_volt_fall_transition ; k_temp = k_temp_fall_transition ; } Liberty_SCALING_METHOD { model = setup_rise ; k_process = k_process_setup_rise ; k_volt = k_volt_setup_rise ; k_temp = k_temp_setup_rise ; } Liberty_SCALING_METHOD { model = setup_fall ; k_process = k_process_setup_fall ; k_volt = k_volt_setup_fall ; k_temp = k_temp_setup_fall ; } Liberty_SCALING_METHOD { model = hold_rise ; k_process = k_process_hold_rise ; k_volt = k_volt_hold_rise ; k_temp = k_temp_hold_rise ; } Liberty_SCALING_METHOD { model = hold_fall ; k_process = k_process_hold_fall ; k_volt = k_volt_hold_fall ; k_temp = k_temp_hold_fall ; } Liberty_SCALING_METHOD { model = recovery_rise ; k_process = k_process_recovery_rise ; k_volt = k_volt_recovery_rise ; k_temp = k_temp_recovery_rise ; } Liberty_SCALING_METHOD { model = recovery_fall ; k_process = k_process_recovery_fall ; k_volt = k_volt_recovery_fall ; k_temp = k_temp_recovery_fall ; } Liberty_SCALING_METHOD { model = removal_rise ; k_process = k_process_removal_rise ; k_volt = k_volt_removal_rise ; k_temp = k_temp_removal_rise ; } Liberty_SCALING_METHOD { model = removal_fall ; k_process = k_process_removal_fall ; k_volt = k_volt_removal_fall ; k_temp = k_temp_removal_fall ; } Liberty_SCALING_METHOD { model = min_pulse_width_low ; k_process = k_process_min_pulse_width_low ; k_volt = k_volt_min_pulse_width_low ; k_temp = k_temp_min_pulse_width_low ; } Liberty_SCALING_METHOD { model = min_pulse_width_high ; k_process = k_process_min_pulse_width_high ; k_volt = k_volt_min_pulse_width_high ; k_temp = k_temp_min_pulse_width_high ; } Liberty_SCALING_METHOD { model = cell_leakage_power ; k_process = k_process_cell_leakage_power ; k_volt = k_volt_cell_leakage_power ; k_temp = k_temp_cell_leakage_power ; } Liberty_SCALING_METHOD { model = internal_power ; k_process = k_process_internal_power ; k_volt = k_volt_internal_power ; k_temp = k_temp_internal_power ; }