最近被ICC2 的ETM坑了,ICC2产生的block的etm,clock pin的port_type属性是signal而不是clock,导致其CTS阶段没法正常长tree,另外报告report_delay_calculation -from block/output port -to receiver/IN,transition为0,在PT中使用模块的.v和.spef展开分析时序时transition的违例非常多。
所以这里推荐使用Library Manager的normal flow来替代etm_moded flow,好处是解决上述问题的同时还能使用正确的process label标记db文件,ICC2自动产生的etm使用的process label是人为创建的corner name而不是其对应的process label。这样到顶层使用能减少不必要的麻烦。
ICC2中create_frame后,write_lef -design block_name.frame block_name.lef
Library manager参考命令如下:
create_workspace $lib_name -flow normal \
-technology $tech_file
set bus_delimeter {[]}
set sh_continue_on_error true
set_app_options -as_user_default -name lib. workspace. group_libs_naming_strategies -value" common_prefix common_suffix common_prefix_and_common_suffix first_logical_lib_name"
set_app_options -as_user_default -name lib. workspace. group_libs_create_slg- value false
set_app_options -as_user_default -name lib. workspace. allow_missing_related_pg_pins - value true
set_app_options- as_user_default- name lib. workspace. remove_frame_bus_properties -value true
set_app_options -as_user_default -name lib. workspace. save_design_views -value true
set_app_options -as_user_default -name link. require_physical -value true
set_app_options -as_user_default -name design.bus_delimiters -value $bus_delimeter
set_app_options -as_user_default -name lib. logic_model. require_same_opt_attrs -value false
set_app_options -as_user_default -name lib. logic_model. use_db_rail_names -value true
set_app_options -as_user_default -name lib. logic_model.auto_remove_timing_only_designs -value true
set_app_options -as_user_default -name lib. physical_model. connect_within_pin- value true
set_app_options -as_user_default -name lib. physical_model.hierarchical- value true
set_app_options -as_user_default -name lib. physical_model.merge_metal_blockage - value false
set_app_options -as_user_default -name lib. physical_model.block_all -value false
set_app_options -as_user_default -name lib. physical_model. preserve_metal_blockage -value auto
read_lef $lef_files
read_db -process_label ssg_cworstt_max_θp72v_125c work_dir/DMSA/FUNC_SLOW_CMAX125/XX_lib.db
read_db -process_label ssg_cworstt_max_θp99v_125c work_dir/DMSA/FUNC_FAST_CMIN125/XX_lib.db
check_workspace
commit_workspace -output $lib_name
remove_workspace