📄 create_plangroups_dp.tcl
字号:
################################################################################################### ICC Hierarchical RM ## create_plangroup_dp: Plangroup Creation/Import, Virtual Flat Placement, and Plan Group Shaping ## Version B-2008.09 ###################################################################################################source icc_setup.tclgui_set_current_task -name {Design Planning}open_mw_lib $MW_DESIGN_LIBRARYcopy_mw_cel -from $ICC_FLOORPLAN_CEL -to $ICC_DP_CREATE_PLANGROUPS_CELopen_mw_cel $ICC_DP_CREATE_PLANGROUPS_CELlinksource ./icc_scripts/common_placement_settings_icc.tcl## Additional reporting before the major stepsif {$ICC_DP_VERBOSE_REPORTING} { check_design -summary > ${REPORTS_DIR}/${ICC_DP_CREATE_PLANGROUPS_CEL}_pre.check_design.rpt report_net_fanout -threshold 50 > ${REPORTS_DIR}/${ICC_DP_CREATE_PLANGROUPS_CEL}_pre.high_fanout.rpt}########################################################################################## Create Plangroups ############################################################################################ 1.To decide which modules to create into plangroups:## - A.Please use "hierarchy browser" or## - B.you can run placement without legalization first and based on the result to make your decision: ## create_fp_placement -effort low -no_legalize## 2.If you have decided, specify the list of modules in ICC_DP_PLAN_GROUPS (icc_setup.tcl)## 3.If you already have a dumped floorplan file containing plangroups, specify it in ICC_DP_PLANGROUP_FILE (icc_setup.tcl) if {[file exists [which $ICC_DP_PLANGROUP_FILE]]} { source $ICC_DP_PLANGROUP_FILE} elseif {$ICC_DP_PLAN_GROUPS != ""} { create_plan_groups $ICC_DP_PLAN_GROUPS -cycle_color} else { echo "WARNING: Please create plan groups before you contunue with hierarchical flow"}create_fp_plan_group_padding -internal_widths {2 2 2 2} -external_widths {2 2 2 2} [get_plan_groups *]########################################################################################## Set Placement Constraints ############################################################################################ You can control if you want to unfix macros before placement:# set ICC_DP_FIX_MACRO_LIST "" : unfix all macros; performs remove_dont_touch_placement# set ICC_DP_FIX_MACRO_LIST skip : skip unfix of macros; retain existing fix status;# set ICC_DP_FIX_MACRO_LIST {a list} : fix specified macros and unfix the others; useful if you want to preserve certain macros locations# it performs remove_dont_touch_placement and then set_dont_touch_placement on specified macrosif {[all_macro_cells] != ""} { if {$ICC_DP_FIX_MACRO_LIST eq ""} { remove_dont_touch_placement [all_macro_cells] } elseif {$ICC_DP_FIX_MACRO_LIST eq "skip"} { echo "remove_dont_touch_placement for macros is skipped" } else { remove_dont_touch_placement [all_macro_cells] set_dont_touch_placement $ICC_DP_FIX_MACRO_LIST}}## You can customize padding and location preference by loading a file with set_keepout_margin and set_fp_macro_options, for example:# set_keepout_margin -type soft -all_macros -outer {10 10 10 10}# set_fp_macro_options -align_edge t {macro_1 macro_2 macro_3}if {[file exists [which $CUSTOM_ICC_DP_PLACE_CONSTRAINT_SCRIPT]]} { source $CUSTOM_ICC_DP_PLACE_CONSTRAINT_SCRIPT}########################################################################################## Below steps are skipped if $ICC_DP_PLANGROUP_FILE is provided ##########################################################################################if {$ICC_DP_PLAN_GROUPS != "" && $ICC_DP_PLANGROUP_FILE == ""} { ################################################################################# # Shape Plangroups # ################################################################################# ## Set placement strategies to further fine tune the placer based on your design style ## To find all available strategies and current values, use: # report_fp_placement_strategy ## To control net weight on plan group interface net: # set_fp_placement_strategy -plan_group_interface_net_weight 2 ## To control channels among macros which std cell can not be placed which is default 0: set_fp_placement_strategy -sliver_size 10 set_fp_placement_strategy -macros_on_edge off create_fp_placement -effort low -no_legalize shape_fp_blocks ## Here're some options to consider: # -channel (create channels btw plangroups) # -sliver_threshold threshold (block out small channels during shaping) save_mw_cel -as ${ICC_DP_CREATE_PLANGROUPS_CEL}_shape}################################################################################## Placement Based on Plangroups #################################################################################### To place macros on edge of chip or plan group which is default off. ## Suggested to set it after plan groups are created:set_fp_placement_strategy -macros_on_edge autocreate_fp_placement -effort highreport_fp_placement > ${REPORTS_DIR}/${ICC_DP_CREATE_PLANGROUPS_CEL}_place.placement_rpt###################################################################################################### REMINDER: After shaping is done, please examine plan group results and make necessary adjustments ######################################################################################################save_mw_celclose_mw_libexit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -