Wednesday, November 25, 2015

Performing Multimode Clock Tree Synthesis

System-on-chip designs integrate multiple modes, such as scan mode, memory BIST mode, and sleep mode, in addtion to the normal  mode in a single chip.  You create a different clock tree synthesis scenario for each mode to run sequential clock tree synthesis, or you combine all scenario constraints in one SDC file to run single-mode clock tree synthesis. Both methods, which are time-consuming and error-prone, fail to produce optimal results. ICC can perform multimode clock tree synthesis by simultaneously processing multiple scenarios to build balanced clock trees under different modes.

Running multimode clock tree synthesis provides the following benefits:
1)Reduces the runtime relative to running sequential clock tree synthesis or single-mode CTS.
2)Produces better QoR because clock trees are built and optimized across all scenarios.

To enable multimode CTS, use the set_scenario_options command. AFter creating all the scenarios, set the -cts_mode option of the set_scenario_options cmd to true, changing it from its default of false, for each scenario for which you want to perform CTS.

For example, the following cmd instructs the tool to use scenario s1 for CTS.
icc_shell> set_scenario_options -cts_mode true -scenarios a1

ICC automatically invokes multimode CTS when the compile_clock_tree cmd detects that more than one scenario has the -cts_mode option set to true. To run single-mode CTS, set the -cts_mode option to true for only one scenario.

Use the following steps to perform multimode CTS:
1. Create all scenarios by using the create_scenarios command.
2. Perform placement and optimization by using the place_opt command.
3. Enable the analysis of multiple clocks that reach a register clock pin by setting the            timing_enable_multiple_clock_per_reg variable to true.
4. Activate all user-selected scenarios by using the following script:

set user_selected_cts_scenarios "scn1 scn2 scn3 scn4"
set_scenario_options -scenarios $user_selected_cts_scenarios  \
                                               -cts_mode true
set_scenario_options -scenarios $user_selected_cts_scenarios  \
                                               -cts_corner min_max

foreach s [user_selected_cts_scenarios ] {
   //read in scenario-specific constraints , exceptions, and so forth
}

Alternatively, if all scenarios are to be considered, you can activate them simultaneously by using the following script:
set_scenario_options -scenarios [list_of_all_scenarios] -cts_mode true

5. Run multimode clock tree synthesis by using the compile_clock_tree command.
6. Perform optimization by using the  optimize_clock_tree command.
7. Proceed with routing by using the route_zrt_clock_tree and route_opt commands.











No comments:

Post a Comment