set j_std_count 0
#set j_std_count2 0
set j_mem_count 0
#set j_mem_count2 0
set j_fill_count 0
set j_fill_area 0
set j_std_area 0
set j_mem_area 0
set j_current_inst_area 0
set j_std_count [llength [dbGet top.insts.cell.baseClass core -p ] ]
set j_mem_count [llength [dbGet top.insts.cell.baseClass block -p ] ]
set j_fill_count [llength [dbGet top.insts.name FILL* ] ]
foreach j_obj [dbGet [dbGet top.insts.cell.baseClass block -p2].area ] {
set j_mem_area [expr $j_mem_area + $j_obj ]
# incr j_mem_count2
}
foreach j_obj [dbGet [dbGet top.insts.cell.baseClass core -p2].area ] {
set j_std_area [expr $j_std_area + $j_obj ]
# incr j_std_count2
}
foreach j_obj [dbGet [dbGet top.insts.name FILL* -p].area ] {
set j_fill_area [expr $j_fill_area + $j_obj ]
}
set j_std_count [expr $j_std_count - $j_fill_count ]
set j_std_area [expr $j_std_area - $j_fill_area ]
# sequential cells
set j_seq_area 0
set j_seq_count 0
foreach j_obj [get_db insts -if { .is_sequential == true && .is_memory == false } ] {
set j_area [get_db $j_obj .area ]
set j_seq_area [expr $j_seq_area + $j_area ]
incr j_seq_count
}
# combinational cells
set j_comb_area 0
set j_comb_count 0
foreach j_obj [get_db insts -if { .is_combinational == true } ] {
set j_area [get_db $j_obj .area ]
set j_comb_area [expr $j_comb_area + $j_area ]
incr j_comb_count
}
# TR/TL/TSL
set j_TR_area 0
set j_TR_count 0
set j_TL_area 0
set j_TL_count 0
set j_TSL_area 0
set j_TSL_count 0
foreach j_obj [get_db insts -if { .is_memory == false && .is_physical == false } ] {
set j_base [get_db $j_obj .base_cell ]
set j_area [get_db $j_obj .area ]
switch -regexp $j_base {
TR {
set j_TR_area [expr $j_TR_area + $j_area ]
incr j_TR_count
}
TL {
set j_TL_area [expr $j_TL_area + $j_area ]
incr j_TL_count
}
TSL {
set j_TSL_area [expr $j_TSL_area + $j_area ]
incr j_TSL_count
}
default {
}
}
}
puts "TR STD count : $j_TR_count"
puts "TR STD area : $j_TR_area"
puts "TL STD count : $j_TL_count"
puts "TL STD area : $j_TL_area"
puts "TSL STD count : $j_TSL_count"
puts "TSL STD area : $j_TSL_area"
puts "TR STD count ratio : [expr double($j_TR_count)/($j_TR_count+$j_TL_count+$j_TSL_count) ]"
puts "TR STD area ratio : [expr double($j_TR_area)/($j_TR_area+$j_TL_area+$j_TSL_area) ]"
puts "TL STD count ratio : [expr double($j_TL_count)/($j_TR_count+$j_TL_count+$j_TSL_count) ]"
puts "TL STD area ratio : [expr double($j_TL_area)/($j_TR_area+$j_TL_area+$j_TSL_area) ]"
puts "TSL STD count ratio : [expr double($j_TSL_count)/($j_TR_count+$j_TL_count+$j_TSL_count) ]"
puts "TSL STD area ratio : [expr double($j_TSL_area)/($j_TR_area+$j_TL_area+$j_TSL_area) ]"
puts "SEQ STD count : $j_seq_count"
puts "SEQ STD area : $j_seq_area"
puts "COMB STD count : $j_comb_count"
puts "COMB STD area : $j_comb_area"
puts "STD count : $j_std_count"
puts "STD area : $j_std_area"
puts "MEM count : $j_mem_count"
puts "MEM area : $j_mem_area"
|