Wednesday, November 25, 2015

Performing Clock Routing After Multicorner Optimization

After  finishing multicorner clock tree optimization, you can perform clock routing using either the default router, zroute, or the classic router.

Both Zroute and the classic router support the integrated clock global router and balanced-mode routing. To achieve the best correlation results, ICC uses the integrated clock global router and saves clock global routing information.

When using Zroute ( the default router ), use the route_zrt_group -all_clock_nets cmd to perform clock routing. You must also use the -reuse_existing_global_route option so that Zroute detects the clock global routing information in the Milkyway database and performs incremental global routing.
icc_shell> route_zrt_group -all_clock_nets \
       -reuse_existing_global_route true

To enable the classic router rather than Zroute, set the following command.
icc_shell> set_route_mode_options -zroute false

When using the classic router, you use the route_group -all_clock_nets cmd to perform clock routing. The route_group cmd can detect the clock global routing information in the Milkyway database and can set the global route incremental model automatically.

A Sample Script
The following sample script show an example of running multicorner clock tree optimization:

create_scenario scn1
set_operating_conditions \
           -max $opcond_slow -max_library $lib_slow1 \
           -min  $opcond_fast   -min_library  $lib_fast1
set_tlu_plus_files  \
            -max_tluplus  $tlu_high_r \
            -min_tluplus   $tlu_slow_r \
            -tech2itf_map $tlu_map

create_scenario scn2
set_operating_conditions  \
            -max $opcond_slow  -max_library  $lib_slow  \
            -min  $opcond_fast   -min_library   $lib_fast2
set_tlu_plus_files  \
            -max_tluplus  $tlu_high_r  \
            -min_tluplus   $tlu_low_r  \
            -tech2itf_map   $tlu_map
set_clock_tree_options  \
             -corner_target_skew   "scnf1:max=0.100 scn_cts:max=0.050  scn2:min=0.070"
set_clock_tree_optimization_options \
             -enable_multicorner  "scn1:max scn1:min scn2:max scn2:min "

set_scenario_options -scenarios [all_scenarios] -cts_mode true \
            -cts_corner  [min | max | min_max | none ]
compile_clock_tree
optimize_clock_tree

current_scenario scn_ct1
report_clock_tree
report_clock_tree -op min

current_scenario scn1
report_clock_tree
report_clock_tree -op min

current_scenario scn2
report_clock_tree
report_clock_tree -op min

route_zrt_group -all_clock_nets -reuse_existing_global_route true







No comments:

Post a Comment