14-Agenda©2010Synopsys,Inc.AllRightsReservedSynopsys20-I-071-SSG-010DAY2Placement3ClockTreeSynthesis4DesignPlanning(Lab–continued)224-UnitObjectivesAftercompletingthisunit,youshouldbeableto:ListthestatusofthedesignpriortoCTSSetupthedesignforclocktreesynthesisIdentifyimplicitclocktreestart/endpointsandwhenexplicitmodificationsareneededControltheconstraintsandtargetsusedbyCTSExecutetherecommendedclocktreesynthesisandoptimizationflowAnalyzetimingandclockspecificationspostCTS34-GeneralICCompilerFlowSynthesisDesignSetupDesignPlanningPlacementClockTreeSynthesisRoutingChipFinishingThisUnit44-ICCompilerClockTreeSynthesisFlowThe“CTSphase”involvesseveralkeysteps:SetupstepstocontrolCTSOptionalPre-CTSpoweroptimizationClockTreeSynthesisTimingOptimizationRoutingofclocknetsNote:Theflowdiagramsincludedinthisunitrepresentanexampleflow,nottherecommendedflowClockTreeSynthesisClockTreeSynthesisTimingOptimizationClocknetroutingPre-CTSClockTreePowerOptimizationCTSSetupPlacementRouting54-DesignStatusPriortoClockTreeSynthesisPlacement-completedPowerandgroundnets–preroutedEstimatedcongestion–acceptableEstimatedsetuptiming–acceptable(~0nsslack)Estimatedmaxcap/transition–noviolationsHighfanoutnets:Reset,ScanEnablesynthesizedwithbuffersClocksarestillnotbuffered64-StartingPointbeforeCTSFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFClockAllclockpinsaredrivenbyasingleclocksource.74-ClockCellsAreInsertedandthenResizedBuffersareinsertedtobalancetheloads,meetDRCsandminimizetheskewFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFClock84-DelayCellsAreAddedtoMeetMin.InsertionDelaycellsareplacedbehindthecommonsinglebuffertominimizeclockskewimpactFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFClock94-CTSGoalsMeettheclocktreeDesignRuleConstraints(DRC):MaximumtransitiondelayMaximumloadcapacitanceMaximumfanoutMaximumbufferlevelsMeettheclocktreetargets:MaximumskewMinimuminsertiondelayConstraintsareupperboundgoals.Ifconstraintsarenotmet,violationswillbereported.Targetsarenicetohavegoals.Iftargetsarenotmet,noviolationswillbereported.104-ClockTreeSynthesisClockTreeSynthesisTimingOptimizationClocknetroutingPre-CTSClockTreePowerOptimizationCTSSetupPlacementRoutingICCompilerClockTreeSynthesisFlowNDRsTargetsConstraintsControl114-DefaultClockTreeTargetsThedefaultCTStargetforskewandinsertiondelayis0nsUncertaintyandinsertiondelaySDCconstraintsareignoredItisrecommendedtorelaxtheclockskewtargetasmuchaspossibleReducesoverallbuffercountandruntimeSpecifyminimumclocklatenciesasneededTargets124-SpecifyingGlobalTargetsicc_shellset_clock_tree_options\-target_early_delay0.9\-target_skew0.1SettingglobalCTSoptions...1OptionscanbesetonallclocksdefinedinSDC(globally)oronaclock-by-clockbasis.134-SpecifyingClock-SpecificTargetsUsetheGUI,selecttheappropriateclockfromthepull-down,andOKyourselectionsforeveryclockBetter:Howdoyousetdifferenttargetsperclock?set_clock_tree_options\–clock_treesclk1-target_early_delay0.9set_clock_tree_options\–clock_treesclk2-target_skew0.2TIP:UsetheGUIpreviewmode,thencut&pastetheecho’dcommandsintoyourscript.144-ControlBuffer/InverterSelectionTosetspecificbuffers/inverterstobeusedduringeachofthespecificCTSoptimizations:set_clock_tree_references–referenceslist1(DRCbuffering)–referenceslist2–sizing_only(skewbalancing)–referenceslist3–delay_insertion_onlyThereisnopriorityonhowCTSusesthemembersfromeachlistIfalistisnotspecified,bydefaultallbuffers/inverters(exceptdont_usecells)inthelibrarycanbeusedduringitsrespectiveoptimizationItisrecommendedtodefinealllistsMakesurethereferencesareintarget_library!154-CHIP_TOPAreallClockDriversandLoadsSpecified?MOD_Acbuf10MOD_Bcbuf2cbuf2cbuf6set_driving_cellset_input_transitionset_loadConstraints164-Remove“Skew”fromUncertaintyYourSDCconstraintswillmostlikelyincludeaset_clock_uncertainty–setupnumberappliedtoeachclockThiscommandisusedtomodelestimatedclockskew,butcanalsobeusedtomodeltheeffectsofclockjitterandtoincludesomeadditionaltimingmarginThespecifiedsetupnumberreducestheeffectiveclockperiodofallpathscapturedbythespecifiedclockandisusedduringsynthesistoestimateclockbehaviorTiminganalysispost-CTSwillalsoincludetheeffectsofthiscommand,therefore:RemoveclockuncertaintyifonlyskewisincludedORReducetheuncertaintynumberbytheestimatedskewremove_clock_uncertainty[all_clocks]174-DefiningCTS-SpecificDRCValuesMaxtransitionandmaxcapacitancedesignrulescanbespecifiedinthreeways:Library,SDCandCTSsettingBydefaultICCompilerwillusethesmallestofthethreeThedefaultCTSsettingsaresetfortoday’stechnologiesIfusing90nmyoumayneedtorelax(increase)thenumbers184-WhereDoestheClockTreeBeginandEnd?StartDQFFCLKGATEDCLOCKDQFFCLKDQFFCLKSTOPSTOPSTOPControlSynthesizableclocktreesend(bydefault)onclockpinsofregistersormacros(stoporfloatpins)EndClocktreesstartattheir“source”definedbycreate_clock…194-Stop,FloatandExcludePinsStopPins:CTSoptimizesforDRCandclo