##################################################### # Signal routing (Erik Brunvand, 2008) # ##################################################### puts "-----------Routing-----------" # # Unfix the clock nets to avoid routing problems. changeUseClockNetStatus -noFixedNetWires # Configure NanoRoute to do the final routing getNanoRouteMode -quiet getNanoRouteMode -quiet envSuperthreading getNanoRouteMode -quiet drouteFixAntenna getNanoRouteMode -quiet routeInsertAntennaDiode getNanoRouteMode -quiet routeAntennaCellName getNanoRouteMode -quiet timingEngine getNanoRouteMode -quiet routeWithTimingDriven setNanoRouteMode -quiet routeWithTimingDriven true getNanoRouteMode -quiet routeWithEco getNanoRouteMode -quiet routeWithSiDriven getNanoRouteMode -quiet routeTdrEffort setNanoRouteMode -quiet routeTdrEffort 10 getNanoRouteMode -quiet routeWithSiPostRouteFix getNanoRouteMode -quiet drouteAutoStop getNanoRouteMode -quiet routeSelectedNetOnly getNanoRouteMode -quiet drouteStartIteration getNanoRouteMode -quiet envNumberProcessor getNanoRouteMode -quiet envSuperthreading getNanoRouteMode -quiet routeTopRoutingLayer getNanoRouteMode -quiet routeBottomRoutingLayer getNanoRouteMode -quiet drouteEndIteration getNanoRouteMode -quiet routeEcoOnlyInLayers setNanoRouteMode -quiet drouteUseMultiCutVia true # Do the actual routing globalDetailRoute puts "----------Timing design--------------" # Check timing after routing. timeDesign -postRoute -prefix TimingReports \ -outDir ${BASENAME}_reports/postroute puts "---------Post-route optimize---------" # # The final optimization step - post-route setOptMode -yieldEffort none setOptMode -highEffort setOptMode -maxDensity 0.95 setOptMode -drcMargin 0.0 setOptMode -holdTargetSlack 0.0 -setupTargetSlack 0.0 setOptMode -noSimplifyNetlist clearClockDomains setClockDomains -all setOptMode -noUsefulSkew optDesign -postRoute -setup -drv -prefix TimingReports \ -outDir ${BASENAME}_reports/postrouteOpt puts "--------Add Filler Cells---------------" # Add the filler cells setFillerMode -corePrefix ${BASENAME}_FILL -core ${fillerCells} addFiller -cell $fillerCells -prefix ${BASENAME}FILL -markFixed # Save the design so far saveDesign ${BASENAME}_routed.enc puts "-----------Routing done-------------"