############################################################
## Copyright: 2010 Integrated Sytems Laboratory, ETH Zurich
## http://www.iis.ee.ethz.ch/~sha3
############################################################
set DESIGNNAME echo_slow
## Load the configuration file
loadConfig src/echo_slow.conf 0
commitConfig
fit
## Make sure we have two corners. No need for MMMC in this one
setTimingLibrary -max Max -min Min
setDesignMode -process 90
## floorplan
floorPlan -site core_2800 -r 1 0.85 30 30 30 30
## power routing
source scripts/globalnet.tcl
source scripts/power_grid.tcl
## use all CPUs (2 in my case)
setMultiCpuUsage -localCpu [getMultiCpuUsage -localCpu] -cpuPerRemoteHost 1 -remoteHost 0 -keepLicense true
##place
setPlaceMode -fp false
placeDesign -noPrePlaceOpt
## checkTiming
set_global report_timing_format {instance arc cell slew load fanout delay arrival}
unloadTimingCon
loadTimingCon src/echo_slow.sdc
timeDesign -preCTS -prefix ${DESIGNNAME}
## This will most likely be necessary
optDesign -preCTS -prefix ${DESIGNNAME}
## check the timing after this
## insert clock tree
specifyClockTree -file src/echo.ctstch
clockDesign -specFile src/echo.ctstch -outDir timingReports_ck_slow -fixedInstBeforeCTS
# normally we could do an optimization step here, but it does not seem
# necessary in this case.
# final route
setNanoRouteMode -quiet -routeTopRoutingLayer default
setNanoRouteMode -quiet -routeBottomRoutingLayer default
setNanoRouteMode -quiet -drouteEndIteration default
setNanoRouteMode -quiet -routeWithTimingDriven false
setNanoRouteMode -quiet -routeWithSiDriven false
routeDesign -globalDetail
## check timing
timeDesign -postRoute -prefix ${DESIGNNAME}
## make sure there are no violations for hold
timeDesign -reportOnly -postRoute -hold -prefix ${DESIGNNAME}
optDesign -postRoute -prefix ${DESIGNNAME}
##optDesign -postRoute -hold
source scripts/exportall.tcl
# we are done here
saveDesign save/echo_slow7.4.enc
summaryReport -noHtml -outfile ${DESIGNNAME}_summary.rpt
# Report Power
set_power_analysis_mode -reset
set_power_analysis_mode -method static -corner max -create_binary_db true -write_static_currents true -honor_negative_energy true -ignore_control_signals true
set_power_output_dir -reset
set_power_output_dir powerReports
set_default_switching_activity -reset
set_default_switching_activity -period 7.42
read_activity_file -reset
read_activity_file -format VCD -vcd_scope echotb/mutinst -start {} -end {} -vcd_block {} ../modelsim/vcd/${DESIGNNAME}.vcd
set_power -reset
set_powerup_analysis -reset
set_powerup_analysis -mode accurate -ultrasim_simulation_mode ms
set_dynamic_power_simulation -reset
report_power -rail_analysis_format VS -outfile powerReports/${DESIGNNAME}.rpt