|  | ######################################## | 
|  | #   Get the Cell wise statistic | 
|  | ######################################### | 
|  |  | 
|  | proc get_statistic {design_name } { | 
|  |  | 
|  | #puts "Analysising the Statistic ..." | 
|  |  | 
|  | #To get all the lib cells and initialise the counter | 
|  | array set libArray {} | 
|  | set mylist [get_lib_cells *] | 
|  | set lib_cnt 0 | 
|  | foreach elem $mylist { | 
|  | #puts [get_full_name $elem] | 
|  | #set libArray($lib_cnt,0) [get_full_name $elem] | 
|  | set libArray($lib_cnt) 0 | 
|  | #puts "$libArray($lib_cnt)" | 
|  | set lib_cnt [expr {$lib_cnt + 1}] | 
|  | } | 
|  |  | 
|  |  | 
|  | ################################################# | 
|  | # Accumlate the lib count | 
|  | ################################################ | 
|  | set mylist1 [get_cells] | 
|  | foreach elem1 $mylist1 { | 
|  | set Inst [get_full_name $elem1] | 
|  | #puts "Searching: ..:: $Inst .." | 
|  | if ([string match "*ANTENNA*" $Inst]) { | 
|  | continue | 
|  | } | 
|  | if ([string match "*FILLER*" $Inst]) { | 
|  | continue | 
|  | } | 
|  | if ([string match "*TAP_*" $Inst]) { | 
|  | continue | 
|  | } | 
|  | set lib  [get_lib_cells -of_objects [get_cells $Inst]] | 
|  | set lib_name  [get_full_name $lib] | 
|  | #puts "Searching: ..:: $lib_name .." | 
|  |  | 
|  | if ([string match "*decap*" $lib_name]) { | 
|  | continue | 
|  | } | 
|  | set lib_cnt 0 | 
|  | set mylist2 [get_lib_cells *] | 
|  | foreach elem2 $mylist2 { | 
|  | set ref_lib_name [get_full_name $elem2] | 
|  | if { [expr {$ref_lib_name eq $lib_name}] == 1 } { | 
|  | set c_lib_cnt $libArray($lib_cnt) | 
|  | set libArray($lib_cnt) [expr {$c_lib_cnt + 1}] | 
|  | #puts "Lib Matched : $Inst: $lib_name :: $ref_lib_name :: cnt:  $libArray($lib_cnt)" | 
|  | break | 
|  | } | 
|  | set lib_cnt [expr {$lib_cnt + 1}] | 
|  | } | 
|  | } | 
|  |  | 
|  |  | 
|  | ################################################## | 
|  | ## lib count > 0 | 
|  | ################################################# | 
|  | set mylist [get_lib_cells *] | 
|  | set lib_cnt 0 | 
|  | set seq_cnt 0 | 
|  | set comb_cnt 0 | 
|  | set total_cnt 0 | 
|  | foreach elem $mylist { | 
|  | set ref_lib_name [get_full_name $elem] | 
|  | if {$libArray($lib_cnt)  > 0} { | 
|  | #puts "Lib Name:  $ref_lib_name :: Count: $libArray($lib_cnt)" | 
|  | } | 
|  | # Check cell is Sequential OR Combo | 
|  | if ([string match "*__df*" $ref_lib_name]) { | 
|  | set seq_cnt [expr {$seq_cnt + $libArray($lib_cnt) }] | 
|  | } else { | 
|  | set comb_cnt [expr {$comb_cnt + $libArray($lib_cnt) }] | 
|  | } | 
|  |  | 
|  | set total_cnt [expr {$total_cnt + $libArray($lib_cnt) }] | 
|  | set lib_cnt [expr {$lib_cnt + 1}] | 
|  | } | 
|  | puts "$design_name :: $total_cnt ::  $comb_cnt ::  $seq_cnt" | 
|  | return "$total_cnt $comb_cnt $seq_cnt" | 
|  | } | 
|  |  |