| # Floorplan information - core boundary coordinates, std. cell row height, |
| # minimum track pitch as defined in LEF |
| # |
| |
| set ::def_units $::env(DEF_UNITS_PER_MACRON) |
| set coreinfo [join [exec $::env(SCRIPTS_DIR)/extract_coreinfo.sh $::env(tapcell_tmp_file_tag).def] " "] |
| # DIEAREA ( 0 0 ) ( 93930 93930 ) ; |
| # ROW ROW_0 unit 0 0 FS DO 195 by 1 STEP 480 0 ; |
| # ROW ROW_27 unit 0 89910 N DO 195 by 1 STEP 480 0 ; |
| # 0 0 93930 93930 /// 0 0 0 89910 195 480 |
| set sites_per_row [lindex $coreinfo 8] |
| set step [lindex $coreinfo 9] |
| |
| set ::core_area_llx [expr { [lindex $coreinfo 4]/double($::def_units) }] |
| set ::core_area_lly [expr { [lindex $coreinfo 5]/double($::def_units) }] |
| set ::core_area_urx [expr { ([lindex $coreinfo 6]+$step*$sites_per_row)/double($::def_units) }] |
| set ::core_area_ury [expr { [lindex $coreinfo 7]/double($::def_units) }] |
| |
| puts "($::core_area_llx $::core_area_lly) ($::core_area_urx $::core_area_ury)" |
| |
| set ::halo 4 |
| |
| # POWER or GROUND #Std. cell rails starting with power or ground rails at the bottom of the core area |
| set ::rails_start_with "POWER" ; |
| |
| # POWER or GROUND #Upper metal stripes starting with power or ground rails at the left/bottom of the core area |
| set ::stripes_start_with "POWER" ; |
| |
| |
| |
| # Power nets |
| set ::power_nets "VDD" |
| set ::ground_nets "VSS" |
| |
| ## PDN STRATEGY: |
| |
| #set ::row_height $::env(PLACE_SITE_HEIGHT) |
| |
| pdn specify_grid stdcell { |
| rails met1 |
| layers { |
| met1 {width 0.14 pitch 3.33 offset 0.07} |
| met4 {width 0.3 pitch 153.6 offset 16.32} |
| met5 {width 1.6 pitch 153.6 offset 16.65} |
| } |
| connect {{met1 met4} {met4 met5}} |
| } |
| |
| pdn specify_grid macro { |
| orient {N FN S FS E FE W FW} |
| power_pins "$::env(VDD_PIN)" |
| ground_pins "$::env(GND_PIN)" |
| blockages "li1 met1 met2" |
| layers { |
| met3 {width 0.333 pitch 40.293 offset 2} |
| } |
| connect {{met2_PIN_ver met3} {met3 met5}} |
| } |