====== PT产生EMT Model ====== 用PT产生ETM model是后端Design工程师的最常见任务,如果你做Top的话,那更是家常便饭了。 下面的TCL代码就是PT产生ETM的脚本,以及常用设置。 ===== PT生成EMT .db文件代码 ===== set extract_model_data_transition_limit 0.75 set extract_model_clock_transition_limit 0.75 set extract_model_capacitance_limit 1.0 set extract_model_num_clock_transition_points 7 set extract_model_num_data_transition_points 7 set extract_model_num_capacitance_points 7 set extract_model_use_conservative_current_slew true set extract_model_enable_report_delay_calculation true reset_path -hold -from [all_inputs] reset_path -hold -to [all_outputs] remove_clock_uncertainty [all_clocks] set_input_transition 0.75 [all_inputs] extract_model -format {lib db} -output ${etm_name} -library_cell set extract_model_num_clock_transition_points 5 set extract_model_enable_report_delay_calculation true set extract_model_clock_transition_limit 0.8 set extract_model_data_transition_limit 0.8 set extract_model_num_capacitance_points 5 set extract_model_num_data_transition_points 5 set extract_model_capacitance_limit 0.7 set extract_model_with_clock_latency_arcs false set_propagated_clock [all_clocks] reset_path -hold -from [all_inputs] reset_path -hold -to [all_outputs] remove_clock_uncertainty [all_clocks] set_input_transition 0.75 [all_inputs] if { ($corner == "rcmin") ||($corner == "rcmax") } { extract_model -format {lib db} -output ${rpt_dir}/${topLevel}_clock_${asic_delay_case}_rc -library_cell remove_propagated_clock [all_clocks] extract_model -format {lib db} -output ${rpt_dir}/${topLevel}_ideal_${asic_delay_case}_rc -library_cell merge_model -lib_files "${rpt_dir}/${topLevel}_clock_${asic_delay_case}_rc.lib ${rpt_dir}/${topLevel}_ideal_${asic_delay_case}_rc.lib" -mode_names {clk_propagated clkideal} -output ${rpt_dir}/topLevel_${asic_delay_case}_rc -format {db lib} -tolerance 0.001 } else { extract_model -format {lib db} -output ${rpt_dir}/${topLevel}_clock_${asic_delay_case} -library_cell remove_propagated_clock [all_clocks] extract_model -format {lib db} -output ${rpt_dir}/${topLevel}_ideal_${asic_delay_case} -library_cell merge_model -lib_files "${rpt_dir}/${topLevel}_clock_${asic_delay_case}.lib ${rpt_dir}/${topLevel}_ideal_${asic_delay_case}.lib" -mode_names {clk_propagated clk_ideal} -output ${rpt_dir}/topLevel_${asic_delay_case} -format {db lib} -tolerance 0.001 }