布局布线和时序分析
笔记本


2022-08-04 11:26:48又一则INNOVUS cts配置文件示例走来走去116.236.47.26

# Target skew
set_ccopt_property target_skew $vars(cts,target_skew)

# 1. CLOCK ROUTING RULES
create_route_type -name top -non_default_rule $vars(clock_ndr) -top_preferred_layer $vars(clock_layer,top_top) -bottom_preferred_layer $vars(clock_layer,top_bottom) \
                  -preferred_routing_layer_effort high

create_route_type -name trunk -non_default_rule $vars(clock_ndr) -top_preferred_layer $vars(clock_layer,trunk_top) -bottom_preferred_layer $vars(clock_layer,trunk_bottom) \
                  -preferred_routing_layer_effort high

create_route_type -name leaf -non_default_rule CLOCK_1W_2S -top_preferred_layer $vars(clock_layer,leaf_top) -bottom_preferred_layer $vars(clock_layer,leaf_bottom) \
                  -preferred_routing_layer_effort high

set_ccopt_property route_type -net_type top top
set_ccopt_property route_type -net_type leaf leaf
set_ccopt_property route_type -net_type trunk trunk

# 2. SET CCOPT_PROPERTIES:
# CLOCK CELL TYPE
set_ccopt_property inverter_cells $vars(cts,inverter)
set_ccopt_property buffer_cells $vars(cts,buffer)
set_ccopt_property clock_gating_cells $vars(cts,clockgating)
set_ccopt_property add_driver_cell $vars(cts,buffer)
setUsefulSkewMode -noBoundary true -useCells $vars(cts,inverter)

# TARGET MAX TRANSITION
set_ccopt_property target_max_trans -net_type top 150ps
set_ccopt_property target_max_trans -net_type trunk 150ps
set_ccopt_property target_max_trans -net_type leaf 110ps

# ETC CCOPT PROPERTIES FROM CDNS
set_ccopt_property use_inverters true
set_ccopt_property cell_density 0.80
set_ccopt_property routing_top_min_fanout 2000
set_ccopt_property extract_network_latency true
set_ccopt_property max_fanout 32
set_ccopt_property auto_limit_insertion_delay_factor 1.4 ; # e.g. 1.4

set_ccopt_property pro_can_move_datapath_insts true
set_ccopt_property pro_skew_safe_drv_buffering   true;   
set_ccopt_property post_conditioning_enable_drv_fixing_by_rebuffering true; # default false
set_ccopt_property post_conditioning_enable_routing_eco true; # default false
set_ccopt_property post_conditioning_enable_skew_fixing true; # default false
set_ccopt_property post_conditioning_enable_skew_fixing_by_rebuffering true; # default false

foreach ct [get_ccopt_clock_trees *] {
   Puts "   INFO    >> setting max length constraints for clock tree : $ct"
   set_ccopt_property max_source_to_sink_net_length -clock_tree $ct -net_type top 200um;   # limit the top   net length - confirmed value for this technology and library
   set_ccopt_property max_source_to_sink_net_length -clock_tree $ct -net_type trunk 200um;   # limit the trunk net length - confirmed value for this technology and library
   set_ccopt_property max_source_to_sink_net_length -clock_tree $ct -net_type leaf 120um;   # limit the leaf  net length - confirmed value for this technology and library
}


# Extra log output
ccopt_internal_messages -on
# Speed up AAE
setAaeTmpFile -directory ./aae_tmp

# For early clock flow in place_opt
if { $vars(Early_clock_flow) == 1 } {
  setOptMode -usefulSkewTNSPreCTS true
  setVar LS_PLACEOPT::poEarlyClockFlowWNSOptSlackBandMultipler 4.0 ; # If you want more aggresive optimize, increase this value.
}

#3. create/source clock tree spec:
create_ccopt_clock_tree_spec -keep_all_sdc_clocks -filename ./ccopt.spec
source ./ccopt.spec



回到首页时钟 , 联系信箱:yzbox#163.com(把#换成@) 粤ICP备18155639号