EnChip Microelectronics

又一个WordPress站点

EnChip Microelectronics

又一个WordPress站点

MMMC Flow设置

MMMC结构

# <1> 创建Library Set: fast, slow, typical
create_library_set -name <lib_set_slow> -timing {library list for this set}
create_library_set -name <lib_set_fast> -timing {library list for this set}
create_library_set -name <lib_set_Typical> -timing {library list for this set}

# <2> 创建PVT工作条件: fast, slow, typical
# slow: low voltage, high temperature
# fast: high voltage, low temperature
create_opcond -name <opcond_slow> -process 1 -voltage 4.5 -temperature 125
create_opcond -name <opcond_fast> -process 1 -voltage 5.5 -temperature -40
create_opcond -name <opcond_typical> -process 1 -voltage 5.0 -temperature 25

# <3> 创建timing条件组合: Library set + 工作条件
create_timing_condition -name <timing_cond_slow> -opcond opcond_slow -librart_sets { lib_set_slow }
create_timing_condition -name <timing_cond_fast> -opcond opcond_fast -librart_sets { lib_set_fast }
create_timing_condition -name <timing_cond_slow> -opcond opcond_slow -librart_sets { lib_set_slow }

# <4> 创建rc_corner
create_rc_corner -name <rc_corner_name> -cap_table <path to cap_table file>
...

# <5> 创建delay corner组合: timing condition + rc_corner
create_delay_corner -name <delay_corner_slow> -early_timing_condition timing_cond_slow -late_timing_condition timing_cond_slow -early_rc_corner rc_corner_slow -late_rc_corner rc_corner_slow

create_delay_corner -name <delay_corner_fast> -early_timing_condition timing_cond_fast -late_timing_condition timing_cond_fast -early_rc_corner rc_corner_fast -late_rc_corner rc_corner_fast

create_delay_corner -name <delay_corner_typ> -early_timing_condition timing_cond_typ -late_timing_condition timing_cond_typ -early_rc_corner rc_corner_typ -late_rc_corner rc_corner_typ

# <6> 创建约束模式
create_constrain_mode -name <func_slow> -sdc_file { slow SDC file list}
create_constrain_mode -name <func_fast> -sdc_file { fast SDC file list}
create_constrain_mode -name <func_typ> -sdc_file { typ SDC file list}

# <7> 创建analysis view
create_analysis_view -name <view_slow> - constrain_mode <func_slow> -delay_corner delay_corner_slow
create_analysis_view -name <view_fast> - constrain_mode <func_fast> -delay_corner delay_corner_fast
create_analysis_view -name <view_typ> - constrain_mode <func_typ> -delay_corner delay_corner_typ

MMMC设置样例

## creating library_sets
#  slow: SS, Low Voltage, High temp
create_library_set -name wcl_slow -timing { ./lib/LIBERTY/DBH_181aBD18BA_HD5P0V_NBL_SS_4P50V_125C.lib }
#  fast: FF, High Voltage, Low temp
create_library_set -name wcl_fast -timing { ./lib/LIBERTY/DBH_181aBD18BA_HD5P0V_NBL_FF_5P50V_M40C.lib }
#  Typical: TT, Typical Voltage, Room temp
create_library_set -name wcl_typical -timing { ./lib/LIBERTY/DBH_181aBD18BA_HD5P0V_NBL_TT_5P00V_25C.lib }

## creating operating conditions (PVT)
create_opcond -name op_cond_wcl_slow -process 1.0 -voltage 4.5 -temperature 125.0
create_opcond -name op_cond_wcl_fast -process 1.0 -voltage 5.5 -temperature -40.0
create_opcond -name op_cond_wcl_typical -process 1.0 -voltage 5.0 -temperature 25.0

## creating timing_conditions
create_timing_condition -name timing_cond_wcl_slow -opcond op_cond_wcl_slow -library_sets { wcl_slow }
create_timing_condition -name timing_cond_wcl_fast -opcond op_cond_wcl_fast -library_sets { wcl_fast }
create_timing_condition -name timing_cond_wcl_typical -opcond op_cond_wcl_typical   -library_sets { wcl_typical }

## creating rc_corners
create_rc_corner -name rc_corner_min \
 -cap_table ./lib/LEF/CAPTBL/DBH_181aBD18BA_3M_40K_MIN.captbl \
 -pre_route_res 1.0 \
 -pre_route_cap 1.0 \
 -pre_route_clock_res 0.0 \
 -pre_route_clock_cap 0.0 \
 -post_route_res {1.0 1.0 1.0} \
 -post_route_cap {1.0 1.0 1.0} \
 -post_route_cross_cap {1.0 1.0 1.0} \
 -post_route_clock_res {1.0 1.0 1.0} \
 -post_route_clock_cap {1.0 1.0 1.0}

create_rc_corner -name rc_corner_max \
 -cap_table ./lib/LEF/CAPTBL/DBH_181aBD18BA_3M_40K_MAX.captbl \
 -pre_route_res 1.0 \
 -pre_route_cap 1.0 \
 -pre_route_clock_res 0.0 \
 -pre_route_clock_cap 0.0 \
 -post_route_res {1.0 1.0 1.0} \
 -post_route_cap {1.0 1.0 1.0} \
 -post_route_cross_cap {1.0 1.0 1.0} \
 -post_route_clock_res {1.0 1.0 1.0} \
 -post_route_clock_cap {1.0 1.0 1.0}

## creating delay_corners
create_delay_corner -name delay_corner_wcl_slow -early_timing_condition { timing_cond_wcl_slow } -late_timing_condition { timing_cond_wcl_slow }  -early_rc_corner rc_corner_max -late_rc_corner rc_corner_max

create_delay_corner -name delay_corner_wcl_fast -early_timing_condition { timing_cond_wcl_fast } -late_timing_condition { timing_cond_wcl_fast } -early_rc_corner rc_corner_min -late_rc_corner rc_corner_min

create_delay_corner -name delay_corner_wcl_typical -early_timing_condition { timing_cond_wcl_typical } -late_timing_condition { timing_cond_wcl_typical } -early_rc_corner rc_corner_min -late_rc_corner rc_corner_max

## setting constraint_modes
create_constraint_mode -name functional_wcl_slow -sdc_files { ./functional_wcl_slow.sdc }
create_constraint_mode -name functional_wcl_fast -sdc_files { ./functional_wcl_fast.sdc }
create_constraint_mode -name functional_wcl_typical -sdc_files { ./functional_wcl_typical.sdc }

##creating analysis_views
create_analysis_view -name view_wcl_slow -constraint_mode functional_wcl_slow -delay_corner delay_corner_wcl_slow
create_analysis_view -name view_wcl_fast -constraint_mode functional_wcl_fast -delay_corner delay_corner_wcl_fast
create_analysis_view -name view_wcl_typical -constraint_mode functional_wcl_typical -delay_corner delay_corner_wcl_typical

## setting up analysis_views
set_analysis_view -setup { view_wcl_slow view_wcl_fast view_wcl_typical } -hold { view_wcl_slow view_wcl_fast view_wcl_typical }
set_analysis_view -setup { view_wcl_fast view_wcl_fast view_wcl_typical } -hold { view_wcl_fast view_wcl_fast view_wcl_typical }
MMMC Flow设置
Scroll to top