| ### PDN Config. All units in micrometer (um) |
| ## The values used in this config are for reference only and do not correspond to any specific foundry |
| ## design name to be used in DEF |
| set ::design "ariane" |
| |
| ## DEF DBU |
| set ::def_units "2000" |
| |
| ##Input DEF with macros packed |
| set ::FpOutDef "/projects/ssg/pj10000064_diphda/users/colhol01/openroad/TritonFPlan/test/ariane/floorplan.def" |
| |
| #### input tech lef path |
| set ::techLef "/home/zf4_techdata/tsmc65/arm_nda/all_extracted_files/arm/tsmc/cln65lp/arm_tech/r2p0/lef/1p9m_6x2z/sc12_tech.lef" |
| |
| #### input cell lef path |
| set ::cellLef [list \ |
| /projects/ssg/pj10000064_diphda/users/colhol01/openroad/TritonFPlan/test/tsmc-65lp/merged.lef] |
| |
| #### input flat lef path. FLAT LEF that contains physical views of all standard cells and macros in the design |
| # Ensure that the file ends with END LIBRARY |
| set ::flatLef /projects/ssg/pj10000064_diphda/users/colhol01/openroad/TritonFPlan/test/tsmc-65lp/merged.lef |
| |
| set ::macro_power_pins "VDDPE VDDCE" |
| set ::macro_ground_pins "VSSE" |
| |
| #### placement SITE name from LEF |
| set ::site_name "sc12_cln65lp" |
| set ::site_width 0.2 |
| |
| # Floorplan information - core boundary coordinates, std. cell row height, |
| # minimum track pitch as defined in LEF |
| set ::core_area_llx "14.0000" |
| set ::core_area_lly "14.0000" |
| set ::core_area_urx "1663.800" |
| set ::core_area_ury "1331.600" |
| set ::die_area_llx "0" |
| set ::die_area_lly "0" |
| set ::die_area_urx "1677.8" |
| set ::die_area_ury "1345.6" |
| set ::row_height "2.4" |
| |
| # Power nets |
| set ::power_nets "VDD" |
| set ::ground_nets "VSS" |
| |
| set ::macro_blockage_layer_list "M1 M2 M3 M4" |
| |
| # Details from techlef (BEOL LEF) |
| set ::met_layer_list "M1 M2 M3 M4 M5 M6 M7 M8 M9" ;#From M1 and upwards |
| set ::met_layer_dir "hor ver hor ver hor ver hor ver hor" |
| |
| # Ensure pitches will make the stripes fall on track |
| # Ensure offsets will make the stripes fall on track |
| |
| pdn specify_grid stdcell [list \ |
| layers "M1 M4 M7" \ |
| dir "hor ver hor" \ |
| widths "0.64 0.93 0.93" \ |
| pitches "2.40 40.0 40.0" \ |
| loffset "0 2 2" \ |
| boffset "0 2 2" \ |
| connect "{M1 M4} {M4 M7}" \ |
| vias "VIA1_RULE_1 VIA2_RULE_1 VIA3_RULE_1 VIA4_RULE_1 VIA5_RULE_264 VIA6_RULE_18 VIA7_RULE_18 VIA8_RULE_1" \ |
| ] |
| pdn specify_grid macro [list \ |
| layers "M6" \ |
| dir "ver" \ |
| widths "0.93" \ |
| pitches "40" \ |
| loffset 2 \ |
| boffset 0 \ |
| min_pitch 0.2 \ |
| connect "{M4_PIN_hor M6} {M6 M7}" \ |
| vias "VIA1_RULE_1 VIA2_RULE_1 VIA3_RULE_1 VIA4_RULE_293 VIA5_RULE_360 VIA6_RULE_21 VIA7_RULE_18 VIA8_RULE_1" \ |
| ] |
| |
| set ::halo 4 |
| |
| # Metal layer for rails on every row |
| set ::rails_mlayer "M1" ; |
| |
| # POWER or GROUND #Std. cell rails starting with power or ground rails at the bottom of the core area |
| set ::rails_start_with "GROUND" ; |
| |
| # POWER or GROUND #Upper metal stripes starting with power or ground rails at the left/bottom of the core area |
| set ::stripes_start_with "GROUND" ; |
| |
| proc generate_viarules {} { |
| pdn def_out "\n\nVIAS 14 ;\n" |
| |
| pdn def_out "- VIA1_RULE_1 \n + VIARULE VIA1_RULE \n + CUTSIZE 200 200 \n + LAYERS M1 VIA1 M2 \n + CUTSPACING 260 260 \n + ENCLOSURE 140 80 140 80 \n + ROWCOL 1 4 \n ;" |
| pdn def_out "- VIA2_RULE_1 \n + VIARULE VIA2_RULE \n + CUTSIZE 200 200 \n + LAYERS M2 VIA2 M3 \n + CUTSPACING 260 260 \n + ENCLOSURE 140 80 140 80 \n + ROWCOL 1 4 \n ;" |
| pdn def_out "- VIA3_RULE_1 \n + VIARULE VIA3_RULE \n + CUTSIZE 200 200 \n + LAYERS M3 VIA3 M4 \n + CUTSPACING 260 260 \n + ENCLOSURE 140 80 140 80 \n + ROWCOL 1 4 \n ;" |
| |
| pdn def_out "- VIA4_RULE_1 \n + VIARULE VIA4_RULE \n + CUTSIZE 200 200 \n + LAYERS M4 VIA4 M5 \n + CUTSPACING 260 260 \n + ENCLOSURE 140 80 140 80 \n + ROWCOL 1 4 \n ;" |
| pdn def_out "- VIA4_RULE_6 \n + VIARULE VIA4_RULE \n + CUTSIZE 200 200 \n + LAYERS M4 VIA4 M5 \n + CUTSPACING 260 260 \n + ENCLOSURE 140 20 140 20 \n + ROWCOL 1 4 \n ;" |
| pdn def_out "- VIA4_RULE_293 \n + VIARULE VIA4_RULE \n + CUTSIZE 200 200 \n + LAYERS M4 VIA4 M5 \n + CUTSPACING 260 260 \n + ENCLOSURE 140 20 140 20 \n + ROWCOL 1 4 \n ;" |
| pdn def_out "- VIA4_RULE_294 \n + VIARULE VIA4_RULE \n + CUTSIZE 200 200 \n + LAYERS M4 VIA4 M5 \n + CUTSPACING 260 260 \n + ENCLOSURE 60 100 60 100 \n + ROWCOL 4 1 \n ;" |
| |
| pdn def_out "- VIA5_RULE_275 \n + VIARULE VIA5_RULE \n + CUTSIZE 200 200 \n + LAYERS M5 VIA4 M6 \n + CUTSPACING 260 260 \n + ENCLOSURE 140 20 140 20 \n + ROWCOL 1 4 \n ;" |
| pdn def_out "- VIA5_RULE_264 \n + VIARULE VIA5_RULE \n + CUTSIZE 200 200 \n + LAYERS M5 VIA5 M6 \n + CUTSPACING 260 260 \n + ENCLOSURE 140 80 140 80 \n + ROWCOL 1 4 \n ;" |
| pdn def_out "- VIA5_RULE_360 \n + VIARULE VIA5_RULE \n + CUTSIZE 200 200 \n + LAYERS M5 VIA5 M6 \n + CUTSPACING 260 260 \n + ENCLOSURE 20 220 20 220 \n + ROWCOL 1 4 \n ;" |
| |
| pdn def_out "- VIA6_RULE_18 \n + VIARULE VIA6_RULE \n + CUTSIZE 200 200 \n + LAYERS M6 VIA6 M7 \n + CUTSPACING 260 260 \n + ENCLOSURE 140 220 140 220 \n + ROWCOL 2 2 \n ;" |
| pdn def_out "- VIA6_RULE_21 \n + VIARULE VIA6_RULE \n + CUTSIZE 200 200 \n + LAYERS M6 VIA6 M7 \n + CUTSPACING 260 260 \n + ENCLOSURE 20 220 20 220 \n + ROWCOL 2 2 \n ;" |
| |
| pdn def_out "- VIA7_RULE_18 \n + VIARULE VIA7_RULE \n + CUTSIZE 720 720 \n + LAYERS M7 VIA7 M8 \n + CUTSPACING 1120 680 \n + ENCLOSURE 1040 140 1040 140 \n + ROWCOL 2 2 \n ;" |
| pdn def_out "- VIA8_RULE_1 \n + VIARULE VIA8_RULE \n + CUTSIZE 720 720 \n + LAYERS M8 VIA8 M9 \n + CUTSPACING 680 1120 \n + ENCLOSURE 40 280 40 280 \n + ROWCOL 2 2 \n ;" |
| pdn def_out "END VIAS" |
| } |
| |