cell statistic and pinmux config clean up
diff --git a/README.md b/README.md index edea902..2953916 100644 --- a/README.md +++ b/README.md
@@ -349,18 +349,16 @@ # SOC Size -| Block | Total Cell | Seq | Combo | -| ------ | --------- | -------- | ----- | -| RISC | 20982 | 3164 | 17818 | -| PINMUX | 5693 | 1022 | 4671 | -| SPI | 7120 | 1281 | 5839 | -| UART_I2C_USB_SPI | 11196 | 2448 | 8748 | -| WB_HOST | 2796 | 588 | 2208 | -| WB_INTC | 1878 | 108 | 1770 | -| SAR_ADC | 118 | 18 | 100 | -| MBIST | 3125 | 543 | 2582 | -| | | | | -| TOTAL | 52908 | 9172 | 43736 | +| Block | Total Cell | Combo | Seq | +| ------ | --------- | ----- | -------- | +| RISC | 46285 | 40434 | 5851 | +| QSPI | 8662 | 7157 | 1505 | +| UART_I2C_USB_SPI | 22813 | 13061 | 2865 | +| WB_HOST | 5800 | 4701 | 1099 | +| WB_INTC | 11477 | 10081 | 1396 | +| PINMUX | 6740 | 5568 | 1172 | +| | | | | +| TOTAL | 94890 | 81002 | 13888 |
diff --git a/openlane/pinmux/config.tcl b/openlane/pinmux/config.tcl index f844215..491ef7d 100755 --- a/openlane/pinmux/config.tcl +++ b/openlane/pinmux/config.tcl
@@ -85,9 +85,6 @@ set ::env(PL_TARGET_DENSITY) "0.30" set ::env(CELL_PAD) "4" -set ::env(FP_IO_VEXTEND) {6} -set ::env(FP_IO_HEXTEND) {6} - # helps in anteena fix set ::env(USE_ARC_ANTENNA_CHECK) "0"
diff --git a/sta/scripts/statistic.tcl b/sta/scripts/statistic.tcl new file mode 100644 index 0000000..343a4e1 --- /dev/null +++ b/sta/scripts/statistic.tcl
@@ -0,0 +1,86 @@ +######################################## +# 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" +} +