ICCompiler MCMM Flow - create_scenario

Last modified 2012-10-31

Sini

The PnR tools now have concurrent multi-corner and multimode analysis and optimization capabilities. In ICCompiler, we create scenarios to specify the different corners and modes the design should operate on. In a scenario, you can have constraints which determine the mode of operation, and different libraries(or opertaing conditions) which determine the corners. You also set up the TLUPLus files and specify derating factors.

ICCompiler uses the command create_scenario to specify a new scenario. When you run this command, the scenario created becomes the current_scenario and all previous scenario specific commands are removed from the design. I usually create a separate file for my scenarios named createscenarios.tcl , for ease of editing and debugging. I am saving it here more for my future reference, but if you find it helpful, way to go, me!

remove_scenario -all

create_scenario scanmin
source $scripts/minoperatingconditions.tcl
set_tluplus_files \\
       -max_tluplus $tluplusmax \\
       -min_tluplus $tluplusmin \\
       -tech2itfmap  $tluplusmap
checktluplusfiles
read_sdc $sdcfilescan
remove_ideal_network -all
set_timing_derate -min -early 0.9
set_timing_derate -min -late 1
set_timing_derate -max -early 1
set_timing_derate -max -late 1.1

create_scenario scanmax
source $scripts/maxoperatingconditions.tcl
set_tluplus_files \\
       -max_tluplus $tluplusmax \\
       -min_tluplus $tluplusmin \\
       -tech2itfmap  $tluplusmap
check_tluplusfiles
read_sdc $sdcfilescan
remove_ideal_network -all
set_timing_derate -min -early 0.9
set_timing_derate -min -late 1
set_timing_derate -max -early 1
set_timing_derate -max -late 1.1

create_scenario funcmin
source $scripts/minoperatingconditions.tcl
set_tluplus_files \\
       -maxt_luplus $tluplusmax \\
       -min_tluplus $tluplusmin \\
       -tech2itfmap  $tluplusmap
check_tluplusfiles
read_sdc $sdcfilefuncmin
remove_ideal_network -all
set_timing_derate -min -early 0.9
set_timing_derate -min -late 1
set_timing_derate -max -early 1
set_timing_derate -max -late 1.1

create_scenario funcmax
source $scripts/maxoperatingconditions.tcl
set_tluplus_files \\
       -max_tluplus $tluplusmax \\
       -min_tluplus $tluplusmin \\
       -tech2itfmap  $tluplusmap
check_tluplusfiles
read_sdc $sdcfilefuncmax
remove_ideal_network -all
set_timing_derate -min -early 0.9
set_timing_derate -min -late 1
set_timing_derate -max -early 1
set_timing_derate -max -late 1.1

Fairly easy to read I should say.