| ||
summaryReport -outfile summary.rpt
proc report_celltype_ratio {TYPE} {
set path summary.rpt
set total 0;set num1 0;set flag1 0;set lth 15
set row "= = = = = = = = = = = = = = ="
if {[string length $TYPE] > $lth} {
set lth [string length $TYPE]
set i 1
set gap [expr $lth -15]
while {$i < $gap} {
lappend row =
set i [expr $i + 2]
}
}
dbForEachFileLine $path line {
if {[regexp "# Std Cells:" $line]} {
set total [lindex $line 3]
set flag1 1
}
if {[regexp "$TYPE" $line] && $flag1 == 1} {
set num1 [expr $num1 + [lindex $line 1]]
}
if {[regexp "# Pads:" $line]} {
set flag1 0
}
}
puts "+$row +"
puts [format "| %-${lth}s | %-10d |" Total_inst $total]
puts [format "| %-${lth}s | %-10d |" $TYPE $num1]
puts [format "| %-${lth}s | %-10.4f |" Ratio [expr [expr $num1 * 1.0000] / [expr $total * 1.0000] ]]
puts "+$row +"
}