############################################################
## Copyright: 2011 Integrated Sytems Laboratory, ETH Zurich
##            http://www.iis.ee.ethz.ch/~sha3
############################################################
# v0.2-  - Tue Oct  4 13:38:00 CEST 2011
# - added a gate count report option
# v0.1 -  - Mon Sep 26 10:29:20 CEST 2011
# - first version

##########################################################################
#  enc.tcl
##########################################################################
setDelayCalMode -engine signalStorm
set dbgGPSAutoCellFunction 1
set_global report_timing_format {instance arc cell slew load delay arrival}
set_global timing_defer_mmmc_object_updates true
setDoAssign on -buffer BUFM2W
set env(TMPDIR) "../tmp"
setDesignMode -process 65

##########################################################################
#  Design Setings
##########################################################################
set path [pwd]
regexp  {(ethz_)([^/]+)/[^/]+$} $path matched namep1 namep2
regexp  {(gmu_)([^/]+)/[^/]+$} $path matched namep1 namep2

set DESIGNNAME ${namep1}${namep2}

set CLOCK   $env(CLOCK)
set COREUT  $env(COREUT)

set timeRepDir   timingReports_${CLOCK}_${COREUT}
set saveDir      save_${CLOCK}_${COREUT}
set outDir       out_${CLOCK}_${COREUT}

if {![file exists $saveDir]} {
  exec mkdir $saveDir
  exec mkdir $outDir
}
##############################################################################
#  General Setings
##########################################################################
setTrialRouteMode -useM1 true
setMultiCpuUsage -localCpu max

#set_global timing_enable_multi_threaded_reporting true
#set_table_style -no_frame_fix_width -nosplit
#set_table_style -no_frame_fix_width


##########################################################################
# load Config & FP
##########################################################################
loadConfig ../../common/encounter/block.conf 0
  # copy first setup view to ui_timinglib,max
set rda_Input(ui_netlist) "../synopsys/netlists/${DESIGNNAME}.v"
  ::Rda_Design::Input::mmmc:copy
commitConfig

floorPlan -site CORE -r 1 $COREUT 0.0 0.0 0.0 0.0

fit

##########################################################################
#  debug constrains
##########################################################################
#report_clocks
#all_constraint_modes
#check_timing

#type: clocks, endpoints, inputs, nets, loops, clock_clipping, clock_gating_inferred and constant_collision.
#check_timing -verbose -type clocks > check_timing.clocks.rpt

##########################################################################
#  power Route
##########################################################################
source scripts/globalnet.tcl

sroute -connect { corePin } \
    -allowLayerChange 1 
    
clearDrc
redraw

##########################################################################
# Placement
##########################################################################
source scripts/welltap.tcl

## KGF timedriven + module plan + rpSpreadEffort
setPlaceMode -congEffort high \
	     -timingDriven 1 \
	     -modulePlan 1 \
	     -doCongOpt 0 \
	     -ignoreScan 0 \
	     -reorderScan 0 \
	     -rpSpreadEffort high


placeDesign -prePlaceOpt

source scripts/tiehilo.tcl


# saveDesign	$saveDir/block_${DESIGNNAME}.place.enc
##########################################################################
# time Opt
##########################################################################
optDesign -preCTS -drv -outDir ${timeRepDir} -prefix ${DESIGNNAME}.preCTS-drv

setOptMode -setupTargetSlack -.025
optDesign -preCTS -outDir ${timeRepDir} -prefix ${DESIGNNAME}.preCTS-opt

# saveDesign    $saveDir/block_${DESIGNNAME}.preCTS-opt.enc
##########################################################################
# CTS
##########################################################################
setCTSMode -reportHTML true
clockDesign -specFile ../../common/encounter/block.ctstch -outDir ${timeRepDir} -fixedInstBeforeCTS

#exec mv *.ctsrpt* ${timeRepDir}/..
#exec rm *.rguide *.cts_trace 

setOptMode -setupTargetSlack -.025
optDesign -postCTS -outDir ${timeRepDir}

# saveDesign    $saveDir/block_${DESIGNNAME}_postCTS.enc
##########################################################################
# route
##########################################################################
setNanoRouteMode -quiet -routeInsertAntennaDiode 1
setNanoRouteMode -quiet -routeWithTimingDriven 1
setNanoRouteMode -quiet -drouteStartIteration default
setNanoRouteMode -quiet -routeTopRoutingLayer default
setNanoRouteMode -quiet -routeBottomRoutingLayer default
setNanoRouteMode -quiet -drouteEndIteration default
setNanoRouteMode -quiet -routeWithTimingDriven true
setNanoRouteMode -quiet -routeWithSiDriven false
routeDesign -globalDetail

# saveDesign    $saveDir/block_${DESIGNNAME}_routed.enc
##########################################################################
# time Opt
##########################################################################
setExtractRCMode -engine postRoute -effortLevel low -coupled false -reduce 0.0

## hold
#timedesign -postroute -hold -outDir ${timeRepDir} -prefix ${DESIGNNAME}.postroute
##setOptMode -holdTargetSlack 0.2
##optDesign -postroute -hold

## setup
setOptMode -setupTargetSlack 0
optDesign -postroute -outDir ${timeRepDir} -prefix ${DESIGNNAME}.postroute-opt

#saveDesign    $saveDir/block_${DESIGNNAME}_route-opt.enc
##########################################################################
# Report
##########################################################################
analyzeFloorplan -keepPlacement -outfile ${timeRepDir}/${DESIGNNAME}_analyzeFP.rpt 
 
set headBox   [dbFPlanBox     [dbHeadFPlan [dbgHead]]]
set coreBox   [dbFPlanCoreBox [dbHeadFPlan [dbgHead]]]
set size_file [open ${timeRepDir}/${DESIGNNAME}_size.rpt a]
puts $size_file "**************************** Size report *****************************"
puts $size_file "Die width   : [expr [dbDBUToMicrons [lindex $headBox 2]] - [dbDBUToMicrons [lindex $headBox 0]]]"
puts $size_file "Die height  : [expr [dbDBUToMicrons [lindex $headBox 3]] - [dbDBUToMicrons [lindex $headBox 1]]]"     
puts $size_file "Core width  : [expr [dbDBUToMicrons [lindex $coreBox 2]] - [dbDBUToMicrons [lindex $coreBox 0]]]"
puts $size_file "Core height : [expr [dbDBUToMicrons [lindex $coreBox 3]] - [dbDBUToMicrons [lindex $coreBox 1]]]"
puts $size_file "**********************************************************************"
close $size_file

reportCongestArea -outfile ${timeRepDir}/${DESIGNNAME}_reportCongestA.rpt 
reportGateCount -outfile ${timeRepDir}/${DESIGNNAME}_reportGate.rpt -stdCellOnly
reportRoute

##########################################################################
# Insert Filler Cells
##########################################################################
source scripts/fillcore-insert.tcl

##########################################################################
# Save files
##########################################################################
# global variable for written the sdf checks checks correctly with a tripl
set_global timing_recompute_sdf_in_setuphold_mode true
# Write out SDF
write_sdf -precision 4 -min_period_edges posedge -remashold \
          -min_view hold_fast_view -typ_view func_slow_view -max_view func_slow_view \
          $outDir/${DESIGNNAME}.sdf.gz

# This netlist contains all filler cells and everything.
# this can be used for simulation 
saveNetlist $outDir/${DESIGNNAME}.v -excludeLeafCell -includePhysicalInst

# layout
setStreamOutMode -SEvianames ON -specifyViaName %t_VIA

# you can set an alternative top name with -structureName 
streamOut $outDir/${DESIGNNAME}.gds.gz  -mapFile tech/streamOut_noObs.map -outputMacros -merge { \
  /usr/pack/umc-65-kgf/umc/ll/uk65lscllmvbbr/a02/gds/uk65lscllmvbbr.gds \
  /usr/pack/umc-65-kgf/umc/ll/uk65lscllmvbbl/a02/gds/uk65lscllmvbbl.gds \
  /usr/pack/umc-65-kgf/umc/ll/uk65lscllmvbbh/a02/gds/uk65lscllmvbbh.gds \
  /usr/pack/umc-65-kgf/umc/ll/u065gioll25mvir/a03/gds/u065gioll25mvir_8m1t0f1u.gds \
}

saveDesign    $saveDir/block_${DESIGNNAME}_final.enc
##########################################################################

exit

Generated on Tue Nov 22 15:16:34 CET 2011
Home