| ||
Main target today: Placement and Optimization
Improve timing/qor/congestion… issue with optimization
1. Pre-placement check
To ensure that there is no issue that prevent place&opt:
Report_qor -summary #A brief view of QoR
Get_flat_nets -quiet -filter is_ideal #clear all ideal nets
Report_ignored_layers #Find maximum routing metal layer
Report_design -summary
Report_utilization
Check-design -checks pre_placement_stage
2. Pre_placement Setting
#Enable tie cells——get ESD protection enabled and fixed
Set_lib_cell_purpose -include optimization [get_lib_cells $TIE_LIB_CELL_PATTERN_LIST]
Set_dont_touch [get_lib_cells $TIE_LIB_CELL_PATTERN_LIST] false
Set_app_options -list{opt.tie_cell.max_fanout_8}
3. Pre_optimization Setting
#first confirm at least 1 scenario is enabled(usually there are 4 or more scenarios)
Report_scenario
Set_app_options -name opt.power.mode -value leakage
Set_app_options -name opt.power.mode -value dynamic
Set_app_options -name opt.power.mode -value total
#enable layer optimization
Set_app_options -name place_opt.flow.optimize_layers -value true
#limit maximum density of coarse placement
Set_app_options -name place.coarse.max_density -value 0.7
#ensure default setting of scan chains optimization (scan chain improves hold violation between standard cells) reset_app_options opt.dft.optimize_scan_chain
Set_app_option_value -name opt.dft.optimize_scan_chain
4. Run Place
#place_opt include 5 phase {initial_plac /initial_drc/initial_opto/final_place/final_opto},command”place_opt”will automatically run the 5 phase sequentially ,also each phase can be run one by one using “place_opt_run_place_opt_phase xx or place_opt -from$xx -to$xx”
Place_opt
5. Once finished
Check legality mv_design
Report qor design summary
Report timing