| #!/bin/sh |
| # the next line restarts using tclsh \ |
| exec tclsh "$0" ${1+"$@"} |
| |
| package require Tcl 8.5 |
| package require pdn |
| |
| # not available in 8.5: |
| proc lmap args { |
| set body [lindex $args end] |
| set args [lrange $args 0 end-1] |
| set n 0 |
| set pairs [list] |
| foreach {varnames listval} $args { |
| set varlist [list] |
| foreach varname $varnames { |
| upvar 1 $varname var$n |
| lappend varlist var$n |
| incr n |
| } |
| lappend pairs $varlist $listval |
| } |
| set temp [list] |
| foreach {*}$pairs { |
| lappend temp [uplevel 1 $body] |
| } |
| set temp |
| } |
| |
| # Input = Macro-packed DEF (currently from innovus) |
| # Output = Def with PDN |
| |
| set ::start_time [clock clicks -milliseconds] |
| |
| pdn init [lindex $argv 0] |
| |
| puts "Total walltime till PDN setup = [expr {[expr {[clock clicks -milliseconds] - $::start_time}]/1000.0}] seconds" |
| |
| puts "##Power Delivery Network Generator: Generating PDN DEF" |
| set ::start_time [clock clicks -milliseconds] |
| |
| pdn power_grid |
| pdn output_def |
| |
| puts "Total walltime to generate PDN DEF = [expr {[expr {[clock clicks -milliseconds] - $::start_time}]/1000.0}] seconds" |
| |
| |
| puts "Macro-packed input def is $FpOutDef" |
| puts "##TASK 8 Final DEF generation with PDN : Stitching macro-packed DEF with SPECIAL NETS" |
| |
| set cmd "exec def_gen $::FpOutDef [pdn get config def_output] $::design ${::design}_post_T8.def" |
| eval $cmd |
| |
| puts "Total walltime till final DEF stitching = [expr {[expr {[clock clicks -milliseconds] - $::start_time}]/1000.0}] seconds" |
| |