| tech |
| format 32 |
| TECHNAME-GDS |
| end |
| |
| version |
| version REVISION |
| description "Google/SkyWater SKY130: Vendor GDS layers and supplementary DRC" |
| requires magic-8.3.124 |
| end |
| |
| #------------------------------------------------------------------------------ |
| # This tech file represents all GDS layers exactly in magic with no boolean |
| # transforms to generated layer types. It can be used to manipulate GDS and |
| # is better for some DRC checks and for fill pattern generation. However, it |
| # does not properly understand connectivity and cannot be used for extraction. |
| #------------------------------------------------------------------------------ |
| |
| planes |
| dnwell,dw |
| well,w |
| implant1,i1 |
| implant2,i2 |
| implant3,i3 |
| implant4,i4 |
| implant5,i5 |
| implant6,i6 |
| implant7,i7 |
| implant8,i8 |
| active,a |
| poly,p |
| mcon,mc |
| locali,li1,li |
| licon,lc |
| metal1,m1 |
| #ifdef RERAM |
| reram,rr |
| #endif |
| via1,v1 |
| metal2,m2 |
| via2,v2 |
| metal3,m3 |
| cap1,c1 |
| via3,v3 |
| metal4,m4 |
| cap2,c2 |
| via4,v4 |
| metal5,m5 |
| glass,g |
| blockd,bd |
| blockp,bp |
| blockl,bl |
| block1,b1 |
| block2,b2 |
| block3,b3 |
| block4,b4 |
| block5,b5 |
| ident1,id1 |
| ident2,id2 |
| ident3,id3 |
| ident4,id4 |
| ident5,id5 |
| ident6,id6 |
| ident7,id7 |
| ident8,id8 |
| ident9,id9 |
| comment,c |
| error,e |
| end |
| |
| types |
| dw DNWELL |
| |
| w NWELL |
| w NWELLTXT |
| w NWELLPIN |
| w PWELL |
| w PWELLTXT |
| w PWELLPIN |
| w PWELLRES |
| |
| a TAP |
| a DIFF |
| a DIFFTXT |
| a DIFFPIN |
| a DIFFRES |
| a DIFFCUT |
| a DIFFFILL |
| |
| i1 LVTN |
| i1 HVTP |
| i1 TUNM |
| i1 NCM |
| i2 THKOX |
| i3 NPC |
| i4 PSDM,PPLUS |
| i5 NSDM,NPLUS |
| i6 HVTR |
| i6 RPM |
| i6 URPM |
| i7 LDNTM |
| i8 HVNTM |
| |
| p POLY |
| p POLYPIN |
| p POLYTXT |
| p POLYRES |
| p POLYMOD |
| p POLYCUT |
| p POLYGATE |
| p POLYFILL |
| p POLYSHORT |
| |
| mc MCON |
| |
| li LI1,LI |
| li LI1TXT,LITXT |
| li LI1PIN,LIPIN |
| li LI1RES,LIRES |
| li LI1FILL,LIFILL |
| li LI1SHORT,LISHORT |
| |
| lc LICON1,LICON |
| |
| m1 MET1 |
| m1 MET1TXT |
| m1 MET1PIN |
| m1 MET1RES |
| m1 MET1FILL |
| m1 MET1SHORT |
| |
| v1 VIA1 |
| #ifdef RERAM |
| #undef RERAM |
| rr RERAM |
| #define RERAM 1 |
| #endif |
| |
| m2 MET2 |
| m2 MET2TXT |
| m2 MET2PIN |
| m2 MET2RES |
| m2 MET2FILL |
| m2 MET2SHORT |
| |
| v2 VIA2 |
| |
| m3 MET3 |
| m3 MET3TXT |
| m3 MET3PIN |
| m3 MET3RES |
| m3 MET3FILL |
| m3 MET3SHORT |
| |
| c1 CAPM |
| v3 VIA3 |
| |
| m4 MET4 |
| m4 MET4TXT |
| m4 MET4PIN |
| m4 MET4RES |
| m4 MET4FILL |
| m4 MET4SHORT |
| |
| c2 CAPM2,CAP2M |
| v4 VIA4 |
| |
| m5 MET5 |
| m5 MET5TXT |
| m5 MET5PIN |
| m5 MET5RES |
| m5 MET5FILL |
| m5 MET5SHORT |
| |
| g PAD |
| g PADTXT |
| g PADPIN |
| |
| id1 SUBCUT |
| id2 COREID |
| id2 HVNWELLID |
| id3 STDCELLID |
| id4 ESDID |
| id5 BOUND |
| id5 BOUND2 |
| id6 PNPID,PNP |
| id6 NPNID,NPN |
| id6 DIODEID,DIODE |
| id6 PHOTOID,PHOTO |
| id6 SEALID,SEAL |
| id6 PADDIFFID |
| id6 LVID,LOWVOLTAGE |
| id7 INDID,IND |
| id7 EDID,EXTDRAINID |
| id7 CAPID,CAP |
| id7 PADMETALID |
| id8 LOWTAPDENSITY |
| id8 PADCENTERID |
| id8 OUTLINE |
| id9 V5 |
| id9 V12 |
| id9 V20 |
| |
| bd DIFFBLOCK |
| bp POLYBLOCK |
| bl LIBLOCK |
| b1 MET1BLOCK |
| b2 MET2BLOCK |
| b3 MET3BLOCK |
| b4 MET4BLOCK |
| b5 MET5BLOCK |
| |
| bp CP1MADD |
| bp CP1MDROP |
| bd CFOMDROP |
| bl CLI1MADD |
| bl CLI1MDROP |
| id7 CNTMADD |
| |
| c TEXT |
| c LVSTEXT |
| c COMMENT |
| c UNKNOWN1 |
| c UNKNOWN2 |
| c UNKNOWN3 |
| |
| e ERROR |
| |
| end |
| |
| contact |
| end |
| |
| aliases |
| ALLNWELL NWELL,NWELLTXT,NWELLPIN |
| ALLPWELL PWELL,PWELLTXT,PWELLPIN,PWELLRES |
| ALLDIFF TAP,DIFF,DIFFTXT,DIFFPIN,DIFFRES,DIFFCUT |
| ALLPOLY POLY,POLYTXT,POLYPIN,POLYRES,POLYMOD,POLYCUT,POLYGATE |
| ALLLI LI1,LI1TXT,LI1PIN,LI1RES |
| ALLM1 MET1,MET1TXT,MET1PIN,MET1RES |
| ALLM2 MET2,MET2TXT,MET2PIN,MET2RES |
| ALLM3 MET3,MET3TXT,MET3PIN,MET3RES |
| ALLM4 MET4,MET4TXT,MET4PIN,MET4RES |
| ALLM5 MET5,MET5TXT,MET5PIN,MET5RES |
| ALLPAD PAD,PADTXT,PADPIN |
| end |
| |
| styles |
| styletype mos |
| |
| NWELL nwell |
| NWELLTXT nwell |
| NWELLPIN nwell |
| PWELL pwell |
| PWELLTXT pwell |
| PWELLPIN pwell |
| PWELLRES pwell poly_resist_stripes |
| DNWELL cwell |
| TAP pdiffusion |
| DIFF ndiffusion |
| DIFFTXT ndiffusion |
| DIFFPIN ndiffusion |
| DIFFFILL ndiffusion |
| DIFFCUT ndiffusion |
| DIFFRES ndiffusion poly_resist_stripes |
| BOUND subcircuit |
| BOUND2 subcircuit |
| OUTLINE subcircuit |
| POLY polysilicon |
| POLYTXT polysilicon |
| POLYPIN polysilicon |
| POLYRES poly_resist poly_resist_stripes |
| POLYCUT polysilicon |
| POLYSHORT polysilicon |
| POLYFILL polysilicon |
| POLYGATE polysilicon |
| POLYMOD polysilicon |
| PSDM pdop_stripes |
| NSDM ndop_stripes |
| MCON contact_X'es |
| LI1 metal1 |
| LI1TXT metal1 |
| LI1PIN metal1 |
| LI1FILL metal1 |
| LI1RES metal1 poly_resist_stripes |
| LI1SHORT metal1 |
| LICON metal1 metal2 via1 |
| MET1 metal2 |
| MET1TXT metal2 |
| MET1PIN metal2 |
| MET1FILL metal2 |
| MET1RES metal2 poly_resist_stripes |
| MET1SHORT metal2 |
| VIA1 metal2 metal3 via2 |
| MET2 metal3 |
| MET2TXT metal3 |
| MET2PIN metal3 |
| MET2FILL metal3 |
| MET2RES metal3 poly_resist_stripes |
| MET2SHORT metal3 |
| VIA2 metal3 metal4 via3 |
| MET3 metal4 |
| MET3TXT metal4 |
| MET3PIN metal4 |
| MET3FILL metal4 |
| MET3RES metal4 poly_resist_stripes |
| MET3SHORT metal4 |
| CAPM mim_top |
| VIA3 metal4 metal5 via4 |
| MET4 metal5 |
| MET4TXT metal5 |
| MET4PIN metal5 |
| MET4FILL metal5 |
| MET4SHORT metal5 |
| MET4RES metal5 poly_resist_stripes |
| CAP2M mim_bottom |
| VIA4 metal5 metal6 via5 |
| MET5 metal6 |
| MET5TXT metal6 |
| MET5PIN metal6 |
| MET5FILL metal6 |
| MET5RES metal6 poly_resist_stripes |
| MET5SHORT metal6 |
| PAD overglass |
| PADTXT overglass |
| PADPIN overglass |
| THKOX implant1 |
| NPC implant2 |
| RPM implant3 |
| URPM implant3 |
| LVTN implant4 |
| LVTN implant1 |
| HVTP implant2 |
| TUNM implant3 |
| NCM implant4 |
| V5 subcircuit |
| V12 subcircuit |
| V20 subcircuit |
| HVTR implant1 |
| LDNTM implant2 |
| HVNTM implant3 |
| SUBCUT subcircuit |
| STDCELLID subcircuit |
| DIFFBLOCK poly_resist_stripes |
| POLYBLOCK poly_resist_stripes |
| LIBLOCK poly_resist_stripes |
| MET1BLOCK poly_resist_stripes |
| MET2BLOCK poly_resist_stripes |
| MET3BLOCK poly_resist_stripes |
| MET4BLOCK poly_resist_stripes |
| MET5BLOCK poly_resist_stripes |
| TEXT electrode |
| LVSTEXT electrode |
| COMMENT comment |
| ERROR error_waffle |
| error_p error_waffle |
| error_s error_waffle |
| error_ps error_waffle |
| end |
| |
| compose |
| end |
| |
| connect |
| # This is a very primitive connection table, and may not be useful. |
| # It does not correctly handle ReRAM or MiM caps. |
| DIFF MCON |
| TAP MCON |
| POLY MCON |
| MCON LI1 |
| LI1 LICON |
| LICON MET1 |
| MET1 VIA1 |
| VIA1 MET2 |
| MET2 VIA2 |
| VIA2 MET3 |
| MET3 VIA3 |
| VIA3 MET4 |
| MET4 VIA4 |
| VIA4 MET5 |
| end |
| |
| cifoutput |
| style sky130 variants (),(altfill) |
| scalefactor 10 nanometers |
| options calma-permissive-labels |
| gridlimit 1 |
| |
| layer NWELL ALLNWELL |
| calma 64 20 |
| |
| layer NWELLTXT |
| labels NWELLTXT noport |
| calma 64 16 |
| |
| layer NWELLPIN |
| labels NWELLPIN port |
| calma 64 5 |
| |
| layer PWELL PWELL |
| labels PWELL |
| calma 81 53 |
| |
| layer PWELLTXT PWELLTXT |
| labels PWELLTXT noport |
| calma 122 16 |
| |
| layer PWELLPIN PWELLPIN |
| labels PWELLPIN port |
| calma 64 59 |
| |
| layer DNWELL DNWELL |
| labels DNWELL |
| calma 64 18 |
| |
| layer DIFF DIFF |
| labels DIFF |
| calma 65 20 |
| |
| layer DIFFTXT |
| labels DIFFTXT noport |
| calma 65 6 |
| |
| layer DIFFPIN |
| labels DIFFPIN noport |
| calma 65 16 |
| |
| layer DIFFRES DIFFRES |
| labels DIFFRES |
| calma 65 13 |
| |
| layer DIFFCUT DIFFCUT |
| labels DIFFCUT |
| calma 65 14 |
| |
| layer TAP TAP |
| labels TAP |
| calma 65 44 |
| |
| layer POLY ALLPOLY |
| calma 66 20 |
| |
| layer POLYTTXT |
| labels POLYTXT noport |
| calma 66 16 |
| |
| layer POLYPIN |
| labels POLYPIN port |
| calma 66 5 |
| |
| layer POLYCUT POLYCUT |
| labels POLYCUT |
| calma 66 14 |
| |
| layer POLYGATE POLYGATE |
| labels POLYGATE |
| calma 66 9 |
| |
| layer POLYMOD POLYMOD |
| labels POLYMOD |
| calma 66 83 |
| |
| layer POLYSHORT POLYSHORT |
| labels POLYSHORT |
| calma 66 15 |
| |
| layer LVTN LVTN |
| labels LVTN |
| calma 125 44 |
| |
| layer HVTP HVTP |
| labels HVTP |
| calma 78 44 |
| |
| layer HVI THKOX |
| labels THKOX |
| calma 75 20 |
| |
| layer TUNM TUNM |
| labels TUNM |
| calma 80 20 |
| |
| layer NPC NPC |
| labels NPC |
| calma 95 20 |
| |
| layer NCM NCM |
| labels NCM |
| calma 92 44 |
| |
| layer PSDM PSDM |
| labels PSDM |
| calma 94 20 |
| |
| layer NSDM NSDM |
| labels NSDM |
| calma 93 44 |
| |
| layer LICON1 LICON1 |
| labels LICON1 |
| calma 66 44 |
| |
| layer LI1 ALLLI |
| calma 67 20 |
| |
| layer LI1TXT |
| labels LI1TXT noport |
| calma 67 16 |
| |
| layer LI1PIN |
| labels LI1PIN port |
| calma 67 5 |
| |
| layer MET1 ALLM1 |
| calma 68 20 |
| |
| layer MET1TXT |
| labels MET1TXT noport |
| calma 68 16 |
| |
| layer MET1PIN |
| labels MET1PIN port |
| calma 68 5 |
| |
| layer MCON MCON |
| labels MCON |
| calma 67 44 |
| |
| layer MET2 ALLM2 |
| calma 69 20 |
| |
| layer MET2TXT |
| labels MET2TXT noport |
| calma 69 16 |
| |
| layer MET2PIN |
| labels MET2PIN port |
| calma 69 5 |
| |
| layer VIA1 VIA1 |
| labels VIA1 |
| calma 68 44 |
| |
| #ifdef RERAM |
| #undef RERAM |
| layer RERAM RERAM |
| labels RERAM |
| calma 201 20 |
| #define RERAM 1 |
| #endif |
| |
| layer MET3 ALLM3 |
| calma 70 20 |
| |
| layer MET3TXT |
| labels MET3TXT noport |
| calma 70 16 |
| |
| layer MET3PIN |
| labels MET3PIN port |
| calma 70 5 |
| |
| layer VIA2 VIA2 |
| labels VIA2 |
| calma 69 44 |
| |
| layer CAPM CAPM |
| labels CAPM |
| calma 89 44 |
| |
| layer MET4 ALLM4 |
| calma 71 20 |
| |
| layer MET4TXT |
| labels MET4TXT noport |
| calma 71 16 |
| |
| layer MET4PIN |
| labels MET4PIN port |
| calma 71 5 |
| |
| layer VIA3 VIA3 |
| labels VIA3 |
| calma 70 44 |
| |
| layer CAP2M CAP2M |
| labels CAP2M |
| calma 97 44 |
| |
| layer MET5 ALLM5 |
| calma 72 20 |
| |
| layer MET5TXT |
| labels MET5TXT noport |
| calma 72 16 |
| |
| layer MET5PIN |
| labels MET5PIN port |
| calma 72 5 |
| |
| layer VIA4 VIA4 |
| labels VIA4 |
| calma 71 44 |
| |
| layer PAD ALLPAD |
| calma 76 20 |
| |
| layer PADTXT |
| labels PADTXT noport |
| calma 76 16 |
| |
| layer PADPIN |
| labels PADPIN port |
| calma 76 5 |
| |
| layer STDCELLID STDCELLID |
| labels STDCELLID |
| calma 81 4 |
| |
| layer TEXT TEXT |
| labels TEXT |
| calma 83 44 |
| |
| layer HVTR HVTR |
| labels HVTR |
| calma 18 20 |
| |
| layer RPM RPM |
| labels RPM |
| calma 86 20 |
| |
| layer URPM URPM |
| labels URPM |
| calma 79 20 |
| |
| layer LDNTM LDNTM |
| labels LDNTM |
| calma 11 44 |
| |
| layer HVNTM HVNTM |
| labels HVNTM |
| calma 125 20 |
| |
| layer PNP PNP |
| labels PNP |
| calma 82 44 |
| |
| layer NPN NPN |
| labels NPN |
| calma 82 20 |
| |
| layer CAP CAP |
| labels CAP |
| calma 82 64 |
| |
| layer IND IND |
| labels IND |
| calma 82 24 |
| |
| layer LVID LVID |
| labels LVID |
| calma 81 60 |
| |
| layer CP1MADD CP1MADD |
| labels CP1MADD |
| calma 33 43 |
| |
| layer CP1MDROP CP1MDROP |
| labels CP1MDROP |
| calma 33 42 |
| |
| layer CFOMDROP CFOMDROP |
| labels CFOMDROP |
| calma 22 22 |
| |
| layer CLI1MADD CLI1MADD |
| labels CLI1MADD |
| calma 115 43 |
| |
| layer CLI1MDROP CLI1MDROP |
| labels CLI1MDROP |
| calma 115 42 |
| |
| layer CNTMADD CNTMADD |
| labels CNTMADD |
| calma 22 21 |
| |
| layer PWELLRES PWELLRES |
| labels PWELLRES |
| calma 64 13 |
| |
| layer POLYRES POLYRES |
| labels POLYRES |
| calma 66 13 |
| |
| layer DIODE DIODE |
| labels DIODE |
| calma 81 23 |
| |
| layer COREID COREID |
| labels COREID |
| calma 81 2 |
| |
| # Is BOUND2 preferable here? |
| layer BOUND BOUND |
| labels BOUND |
| calma 235 4 |
| |
| layer BOUND2 BOUND2 |
| labels BOUND2 |
| calma 235 0 |
| |
| layer OUTLINE OUTLINE |
| labels OUTLINE |
| calma 236 0 |
| |
| layer ESDID ESDID |
| labels ESDID |
| calma 81 19 |
| |
| layer UNKNOWN1 UNKNOWN1 |
| labels UNKNOWN1 |
| calma 230 241 |
| |
| layer UNKNOWN2 UNKNOWN2 |
| labels UNKNOWN2 |
| calma 230 242 |
| |
| layer UNKNOWN3 UNKNOWN3 |
| labels UNKNOWN3 |
| calma 64 44 |
| |
| variants () |
| |
| layer DIFFFILL DIFFFILL |
| labels DIFFFILL |
| calma 23 28 |
| |
| layer POLYFILL POLYFILL |
| labels POLYFILL |
| calma 28 28 |
| |
| layer LI1FILL LI1FILL |
| labels LI1FILL |
| calma 56 28 |
| |
| layer MET1FILL MET1FILL |
| labels MET1FILL |
| calma 36 28 |
| |
| layer MET2FILL MET2FILL |
| labels MET2FILL |
| calma 41 28 |
| |
| layer MET3FILL MET3FILL |
| labels MET3FILL |
| calma 34 28 |
| |
| layer MET4FILL MET4FILL |
| labels MET4FILL |
| calma 51 28 |
| |
| layer MET5FILL MET5FILL |
| labels MET5FILL |
| calma 59 28 |
| |
| layer DIFFBLOCK DIFFBLOCK |
| labels DIFFBLOCK |
| calma 22 24 |
| |
| layer POLYBLOCK POLYBLOCK |
| labels POLYBLOCK |
| calma 33 24 |
| |
| layer MET1BLOCK MET1BLOCK |
| labels MET1BLOCK |
| calma 62 24 |
| |
| layer MET2BLOCK MET2BLOCK |
| labels MET2BLOCK |
| calma 105 52 |
| |
| layer MET3BLOCK MET3BLOCK |
| labels MET3BLOCK |
| calma 107 24 |
| |
| layer MET4BLOCK MET4BLOCK |
| labels MET4BLOCK |
| calma 112 4 |
| |
| layer MET5BLOCK MET5BLOCK |
| labels MET5BLOCK |
| calma 117 4 |
| |
| variants (altfill) |
| |
| layer DIFFFILL DIFFFILL |
| labels DIFFFILL |
| calma 65 99 |
| |
| layer POLYFILL POLYFILL |
| labels POLYFILL |
| calma 66 99 |
| |
| layer LI1FILL LI1FILL |
| labels LI1FILL |
| calma 67 99 |
| |
| layer MET1FILL MET1FILL |
| labels MET1FILL |
| calma 68 99 |
| |
| layer MET2FILL MET2FILL |
| labels MET2FILL |
| calma 69 99 |
| |
| layer MET3FILL MET3FILL |
| labels MET3FILL |
| calma 70 99 |
| |
| layer MET4FILL MET4FILL |
| labels MET4FILL |
| calma 71 99 |
| |
| layer MET5FILL MET5FILL |
| labels MET5FILL |
| calma 72 99 |
| |
| layer DIFFBLOCK DIFFBLOCK |
| labels DIFFBLOCK |
| calma 65 98 |
| |
| layer POLYBLOCK POLYBLOCK |
| labels POLYBLOCK |
| calma 67 98 |
| |
| layer MET1BLOCK MET1BLOCK |
| labels MET1BLOCK |
| calma 68 98 |
| |
| layer MET2BLOCK MET2BLOCK |
| labels MET2BLOCK |
| calma 69 98 |
| |
| layer MET3BLOCK MET3BLOCK |
| labels MET3BLOCK |
| calma 70 98 |
| |
| layer MET4BLOCK MET4BLOCK |
| labels MET4BLOCK |
| calma 71 98 |
| |
| layer MET5BLOCK MET5BLOCK |
| labels MET5BLOCK |
| calma 72 98 |
| |
| variants * |
| |
| layer LISHORT LISHORT |
| labels LISHORT |
| calma 67 15 |
| |
| layer MET1SHORT MET1SHORT |
| labels MET1SHORT |
| calma 68 15 |
| |
| layer MET2SHORT MET2SHORT |
| labels MET2SHORT |
| calma 69 15 |
| |
| layer MET3SHORT MET3SHORT |
| labels MET3SHORT |
| calma 70 15 |
| |
| layer MET4SHORT MET4SHORT |
| labels MET4SHORT |
| calma 71 15 |
| |
| layer MET5SHORT MET5SHORT |
| labels MET5SHORT |
| calma 72 15 |
| |
| layer MET1RES MET1RES |
| labels MET1RES |
| calma 68 13 |
| |
| layer MET2RES MET2RES |
| labels MET2RES |
| calma 69 13 |
| |
| layer MET3RES MET3RES |
| labels MET3RES |
| calma 70 13 |
| |
| layer MET4RES MET4RES |
| labels MET4RES |
| calma 71 13 |
| |
| layer MET5RES MET5RES |
| labels MET5RES |
| calma 72 13 |
| |
| #---------------------------------------------------------------- |
| style wafflefill variants (),(tiled) |
| #---------------------------------------------------------------- |
| # Style used by scripts for automatically generating fill layers |
| # NOTE: Be sure to generate output on flattened layout. |
| #---------------------------------------------------------------- |
| scalefactor 10 nanometers |
| options calma-permissive-labels |
| gridlimit 5 |
| |
| #---------------------------------------------------------------- |
| # Generate and retain a layer representing the bounding box. |
| # |
| # For variant (): |
| # The bounding box is the full extent of geometry on the top level |
| # cell. |
| # |
| # For variant (tiled): |
| # Use with a script that breaks layout into flattened tiles and runs |
| # fill individually on each. The tiles should be larger than the |
| # step size, and each should draw a layer "COMMENT" the size of the |
| # step box. |
| #---------------------------------------------------------------- |
| |
| variants () |
| templayer topbox |
| bbox top |
| |
| variants (tiled) |
| templayer topbox COMMENT |
| # Each tile imposes the full keepout distance rule of |
| # 3um on all sides. |
| shrink 1500 |
| |
| variants * |
| |
| #---------------------------------------------------------------- |
| # Generate guard-band around nwells to keep FOM from crossing |
| # Spacing from LV nwell = Diff/Tap 9 = 0.34um |
| # Spacing from HV nwell = Diff/Tap 18 = 0.43um (= 0.18 + 0.25) |
| # Enclosure by nwell = Diff/Tap 8 = 0.18um |
| #---------------------------------------------------------------- |
| |
| templayer alldiffmv ALLDIFF |
| and THKOX |
| |
| templayer mvnwell |
| bloat-all alldiffmv ALLNWELL |
| |
| templayer lvnwell ALLNWELL |
| and-not mvnwell |
| |
| templayer well_shrink mvnwell |
| shrink 250 |
| or lvnwell |
| shrink 180 |
| |
| templayer well_guardband ALLNWELL |
| grow 340 |
| and-not well_shrink |
| |
| # Generate guard-band around THKOX edge to keep FOM from crossing |
| # spacing from THKOX to diff 0.18um |
| |
| templayer hvi_shrink THKOX |
| shrink 180 |
| |
| templayer hvi_guardband THKOX |
| grow 180 |
| and-not hvi_shrink |
| |
| #--------------------------------------------------- |
| # Diffusion and poly keep-out areas |
| #--------------------------------------------------- |
| templayer obstruct_fom ALLDIFF,ALLPOLY,DIFFFILL,POLYFILL,DIFFBLOCK,POLYBLOCK |
| or PWELLRES,PNP,NPN |
| grow 500 |
| or well_guardband,hvi_guardband,NSDM,PSDM |
| |
| templayer obstruct_poly ALLDIFF,ALLPOLY,DIFFFILL,POLYFILL,DIFFBLOCK,POLYBLOCK |
| or PWELLRES,PNP,NPN |
| grow 1000 |
| or NSDM,PSDM |
| |
| #--------------------------------------------------- |
| # FOM and POLY fill |
| #--------------------------------------------------- |
| templayer fomfill_pass1 topbox |
| slots 0 4080 1600 0 4080 1600 1360 0 |
| and-not obstruct_fom |
| and topbox |
| orthogonal remove |
| shrink 2035 |
| grow 2035 |
| |
| #--------------------------------------------------- |
| |
| templayer obstruct_poly_pass1 fomfill_pass1 |
| grow 300 |
| or obstruct_poly |
| templayer polyfill_pass1 topbox |
| slots 0 720 360 0 720 360 240 0 |
| and-not obstruct_poly_pass1 |
| and topbox |
| orthogonal remove |
| shrink 355 |
| grow 355 |
| |
| #--------------------------------------------------- |
| |
| templayer obstruct_fom_pass2 fomfill_pass1 |
| grow 1290 |
| or polyfill_pass1 |
| grow 300 |
| or obstruct_fom |
| templayer fomfill_pass2 topbox |
| slots 0 2500 1320 0 2500 1320 1360 0 |
| and-not obstruct_fom_pass2 |
| and topbox |
| orthogonal remove |
| shrink 1245 |
| grow 1245 |
| |
| #--------------------------------------------------- |
| |
| templayer obstruct_poly_coarse polyfill_pass1 |
| grow 60 |
| or fomfill_pass1,fomfill_pass2 |
| grow 300 |
| or obstruct_poly |
| templayer polyfill_coarse topbox |
| slots 0 720 360 0 720 360 240 120 |
| and-not obstruct_poly_coarse |
| and topbox |
| orthogonal remove |
| shrink 355 |
| grow 355 |
| |
| #--------------------------------------------------- |
| templayer obstruct_poly_medium polyfill_pass1,polyfill_coarse |
| grow 60 |
| or fomfill_pass1,fomfill_pass2 |
| grow 300 |
| or obstruct_poly |
| templayer polyfill_medium topbox |
| slots 0 540 360 0 540 360 240 100 |
| and-not obstruct_poly_medium |
| and topbox |
| orthogonal remove |
| shrink 265 |
| grow 265 |
| |
| #--------------------------------------------------- |
| templayer obstruct_poly_fine polyfill_pass1,polyfill_coarse,polyfill_medium |
| grow 60 |
| or fomfill_pass1,fomfill_pass2 |
| grow 300 |
| or obstruct_poly |
| templayer polyfill_fine topbox |
| slots 0 480 360 0 480 360 240 200 |
| and-not obstruct_poly_fine |
| and topbox |
| orthogonal remove |
| shrink 235 |
| grow 235 |
| |
| #--------------------------------------------------- |
| |
| templayer obstruct_fom_coarse fomfill_pass1,fomfill_pass2 |
| grow 1290 |
| or polyfill_pass1,polyfill_coarse,polyfill_medium,polyfill_fine |
| grow 300 |
| or obstruct_fom |
| templayer fomfill_coarse topbox |
| slots 0 1500 1320 0 1500 1320 1360 0 |
| and-not obstruct_fom_coarse |
| and topbox |
| orthogonal remove |
| shrink 745 |
| grow 745 |
| |
| #--------------------------------------------------- |
| |
| templayer obstruct_fom_fine fomfill_pass1,fomfill_pass2,fomfill_coarse |
| grow 1290 |
| or polyfill_pass1,polyfill_coarse,polyfill_medium,polyfill_fine |
| grow 300 |
| or obstruct_fom |
| templayer fomfill_fine topbox |
| slots 0 500 400 0 500 400 160 0 |
| and-not obstruct_fom_fine |
| and topbox |
| orthogonal remove |
| shrink 245 |
| grow 245 |
| |
| #--------------------------------------------------- |
| layer FOMFILL fomfill_pass1 |
| or fomfill_pass2 |
| or fomfill_coarse |
| or fomfill_fine |
| # calma 23 28 |
| calma 65 99 |
| |
| layer POLYFILL polyfill_pass1 |
| or polyfill_coarse |
| or polyfill_medium |
| or polyfill_fine |
| # calma 28 28 |
| calma 66 99 |
| |
| #--------------------------------------------------------- |
| # LI fill |
| # Note requirement that LI fill may not overlap (non-fill) |
| # diff or poly. |
| # |
| # Important note: sky130 does not define an LI mask fill |
| # blockage layer, because LI fill requirements were added |
| # to the process after the open PDK was made. While |
| # obstruction layers can be used in magic to block LI |
| # fill, this does not translate into GDS, so running fill |
| # on a GDS top level cell will result in LI fill shapes |
| # being placed in the corner and under the seal ring. To |
| # work around this, I have added obsm1 to the layers that |
| # obstruct LI, which is a bit of a hack but should not |
| # cause issues in practice. |
| #--------------------------------------------------------- |
| |
| templayer obstruct_li_coarse ALLLI,LI1FILL,LIBLOCK |
| grow 2800 |
| or ALLDIFF,ALLPOLY |
| grow 200 |
| or MET1BLOCK |
| templayer lifill_coarse topbox |
| # slots 0 3000 650 0 3000 650 700 0 |
| slots 0 3000 900 0 3000 900 700 0 |
| and-not obstruct_li_coarse |
| and topbox |
| orthogonal remove |
| shrink 1495 |
| grow 1495 |
| |
| templayer obstruct_li_medium ALLLI,LI1FILL,LIBLOCK |
| grow 2500 |
| or lifill_coarse |
| grow 300 |
| or ALLDIFF,ALLPOLY |
| grow 200 |
| or MET1BLOCK |
| templayer lifill_medium topbox |
| slots 0 1500 500 0 1500 500 700 0 |
| and-not obstruct_li_medium |
| and topbox |
| orthogonal remove |
| shrink 745 |
| grow 745 |
| |
| templayer obstruct_li_fine ALLLI,LI1FILL,LIBLOCK |
| or lifill_coarse,lifill_medium |
| grow 300 |
| or ALLDIFF,ALLPOLY |
| grow 200 |
| or MET1BLOCK |
| templayer lifill_fine topbox |
| slots 0 580 500 0 580 500 700 0 |
| and-not obstruct_li_fine |
| and topbox |
| orthogonal remove |
| shrink 285 |
| grow 285 |
| |
| layer LIFILL lifill_coarse |
| or lifill_medium |
| or lifill_fine |
| # calma 56 28 |
| calma 67 99 |
| |
| #--------------------------------------------------- |
| # MET1 fill |
| #--------------------------------------------------- |
| |
| templayer obstruct_m1_coarse ALLM1,PAD,MET1FILL,MET1BLOCK |
| grow 3000 |
| templayer met1fill_coarse topbox |
| # slots 0 2000 200 0 2000 200 700 0 |
| slots 0 2000 800 0 2000 800 700 350 |
| and-not obstruct_m1_coarse |
| and topbox |
| orthogonal remove |
| shrink 995 |
| grow 995 |
| |
| templayer obstruct_m1_medium ALLM1,PAD,MET1FILL,MET1BLOCK |
| grow 2800 |
| or met1fill_coarse |
| grow 200 |
| templayer met1fill_medium topbox |
| slots 0 1000 200 0 1000 200 700 0 |
| and-not obstruct_m1_medium |
| and topbox |
| orthogonal remove |
| shrink 495 |
| grow 495 |
| |
| templayer obstruct_m1_fine ALLM1,PAD,MET1FILL,MET1BLOCK |
| grow 300 |
| or met1fill_coarse,met1fill_medium |
| grow 200 |
| templayer met1fill_fine topbox |
| slots 0 580 200 0 580 200 700 0 |
| and-not obstruct_m1_fine |
| and topbox |
| orthogonal remove |
| shrink 285 |
| grow 285 |
| |
| templayer obstruct_m1_veryfine ALLM1,PAD,MET1FILL,MET1BLOCK |
| grow 100 |
| or met1fill_coarse,met1fill_medium,met1fill_fine |
| grow 200 |
| templayer met1fill_veryfine topbox |
| slots 0 300 200 0 300 200 100 50 |
| and-not obstruct_m1_veryfine |
| and topbox |
| orthogonal remove |
| shrink 145 |
| grow 145 |
| |
| layer MET1FILL met1fill_coarse |
| or met1fill_medium |
| or met1fill_fine |
| or met1fill_veryfine |
| # calma 36 28 |
| calma 68 99 |
| |
| #--------------------------------------------------- |
| # MET2 fill |
| #--------------------------------------------------- |
| templayer obstruct_m2 ALLM2,PAD,MET2FILL,MET2BLOCK |
| grow 3000 |
| templayer met2fill_coarse topbox |
| # slots 0 2000 200 0 2000 200 700 350 |
| slots 0 2000 800 0 2000 800 700 350 |
| and-not obstruct_m2 |
| and topbox |
| orthogonal remove |
| shrink 995 |
| grow 995 |
| |
| templayer obstruct_m2_medium ALLM2,PAD,MET2FILL,MET2BLOCK |
| grow 2800 |
| or met2fill_coarse |
| grow 200 |
| templayer met2fill_medium topbox |
| slots 0 1000 200 0 1000 200 700 350 |
| and-not obstruct_m2_medium |
| and topbox |
| orthogonal remove |
| shrink 495 |
| grow 495 |
| |
| templayer obstruct_m2_fine ALLM2,PAD,MET2FILL,MET2BLOCK |
| grow 300 |
| or met2fill_coarse,met2fill_medium |
| grow 200 |
| templayer met2fill_fine topbox |
| slots 0 580 200 0 580 200 700 350 |
| and-not obstruct_m2_fine |
| and topbox |
| orthogonal remove |
| shrink 285 |
| grow 285 |
| |
| templayer obstruct_m2_veryfine ALLM2,PAD,MET2FILL,MET2BLOCK |
| grow 100 |
| or met2fill_coarse,met2fill_medium,met2fill_fine |
| grow 200 |
| templayer met2fill_veryfine topbox |
| slots 0 300 200 0 300 200 100 100 |
| and-not obstruct_m2_veryfine |
| and topbox |
| orthogonal remove |
| shrink 145 |
| grow 145 |
| |
| layer MET2FILL met2fill_coarse |
| or met2fill_medium |
| or met2fill_fine |
| or met2fill_veryfine |
| # calma 41 28 |
| calma 69 99 |
| |
| #--------------------------------------------------- |
| # MET3 fill |
| #--------------------------------------------------- |
| templayer obstruct_m3 ALLM3,PAD,MET3FILL,MET3BLOCK |
| grow 3000 |
| templayer met3fill_coarse topbox |
| # slots 0 2000 300 0 2000 300 700 700 |
| slots 0 2000 800 0 2000 800 700 350 |
| and-not obstruct_m3 |
| and topbox |
| orthogonal remove |
| shrink 995 |
| grow 995 |
| |
| templayer obstruct_m3_medium ALLM3,PAD,MET3FILL,MET3BLOCK |
| grow 2700 |
| or met3fill_coarse |
| grow 300 |
| templayer met3fill_medium topbox |
| slots 0 1000 300 0 1000 300 700 700 |
| and-not obstruct_m3_medium |
| and topbox |
| orthogonal remove |
| shrink 495 |
| grow 495 |
| |
| templayer obstruct_m3_fine CAPM |
| grow 840 |
| or ALLM3,PAD,MET3FILL,MET3BLOCK |
| grow 200 |
| or met3fill_coarse,met3fill_medium |
| grow 300 |
| templayer met3fill_fine topbox |
| slots 0 580 300 0 580 300 700 700 |
| and-not obstruct_m3_fine |
| and topbox |
| orthogonal remove |
| shrink 285 |
| grow 285 |
| |
| templayer obstruct_m3_veryfine CAPM |
| grow 940 |
| or ALLM3,PAD,MET3FILL,MET3BLOCK |
| # Note: Adding 0.1 to waffle rule to clear wide spacing rule |
| grow 100 |
| or met3fill_coarse,met3fill_medium,met3fill_fine |
| grow 300 |
| templayer met3fill_veryfine topbox |
| slots 0 500 300 0 500 300 150 200 |
| and-not obstruct_m3_veryfine |
| and topbox |
| orthogonal remove |
| shrink 245 |
| grow 245 |
| |
| layer MET3FILL met3fill_coarse |
| or met3fill_medium |
| or met3fill_fine |
| or met3fill_veryfine |
| # calma 34 28 |
| calma 70 99 |
| |
| #--------------------------------------------------- |
| # MET4 fill |
| #--------------------------------------------------- |
| templayer obstruct_m4 PAD |
| grow 2500 |
| or ALLM4,MET4FILL,MET4BLOCK |
| grow 3000 |
| templayer met4fill_coarse topbox |
| # slots 0 2000 300 0 2000 300 700 1050 |
| slots 0 2000 800 0 2000 800 700 350 |
| and-not obstruct_m4 |
| and topbox |
| orthogonal remove |
| shrink 995 |
| grow 995 |
| |
| templayer obstruct_m4_medium PAD |
| grow 2500 |
| or ALLM4,MET4FILL,MET4BLOCK |
| grow 2700 |
| or met4fill_coarse |
| grow 300 |
| templayer met4fill_medium topbox |
| slots 0 1000 300 0 1000 300 700 1050 |
| and-not obstruct_m4_medium |
| and topbox |
| orthogonal remove |
| shrink 495 |
| grow 495 |
| |
| templayer obstruct_m4_fine PAD |
| grow 4160 |
| or CAPM2 |
| grow 840 |
| or ALLM4,MET4FILL,MET4BLOCK |
| grow 200 |
| or met4fill_coarse,met4fill_medium |
| grow 300 |
| templayer met4fill_fine topbox |
| slots 0 580 300 0 580 300 700 1050 |
| and-not obstruct_m4_fine |
| and topbox |
| orthogonal remove |
| shrink 285 |
| grow 285 |
| |
| templayer obstruct_m4_veryfine PAD |
| grow 4160 |
| or CAPM2 |
| grow 940 |
| or ALLM4,MET4FILL,MET4BLOCK |
| # Note: Adding 0.1 to waffle rule to clear wide spacing rule |
| grow 100 |
| or met4fill_coarse,met4fill_medium,met4fill_fine |
| grow 300 |
| templayer met4fill_veryfine topbox |
| slots 0 500 300 0 500 300 150 300 |
| and-not obstruct_m4_veryfine |
| and topbox |
| orthogonal remove |
| shrink 245 |
| grow 245 |
| |
| layer MET4FILL met4fill_coarse |
| or met4fill_medium |
| or met4fill_fine |
| or met4fill_veryfine |
| # calma 51 28 |
| calma 71 99 |
| |
| #--------------------------------------------------- |
| # MET5 fill |
| #--------------------------------------------------- |
| templayer obstruct_m5 ALLM5,PAD,MET5FILL,MET5BLOCK |
| grow 3000 |
| templayer met5fill_coarse topbox |
| slots 0 5000 1600 0 5000 1600 1000 100 |
| and-not obstruct_m5 |
| and topbox |
| orthogonal remove |
| shrink 2495 |
| grow 2495 |
| |
| templayer obstruct_m5_medium ALLM5,PAD,MET5FILL,MET5BLOCK |
| grow 1400 |
| or met5fill_coarse |
| grow 1600 |
| templayer met5fill_medium topbox |
| slots 0 3000 1600 0 3000 1600 1000 100 |
| and-not obstruct_m5_medium |
| and topbox |
| orthogonal remove |
| shrink 1495 |
| grow 1495 |
| |
| layer MET5FILL met5fill_coarse |
| or met5fill_medium |
| # calma 59 28 |
| calma 72 99 |
| end |
| |
| cifinput |
| style sky130 |
| scalefactor 10 nanometers |
| layer DNWELL DNWELL |
| |
| layer NWELL NWELL,NWELLTXT,NWELLPIN |
| labels NWELL |
| labels NWELLPIN port |
| labels NWELLTXT text |
| |
| layer PWELL PWELL,PWELLTXT,PWELLPIN |
| labels PWELL |
| labels PWELLPIN port |
| labels PWELLTXT text |
| |
| layer LVTN LVTN |
| layer HVTP HVTP |
| layer THKOX HVI |
| layer TUNM TUNM |
| |
| layer DIFF DIFF,TAP,DIFFTXT,DIFFPIN |
| labels DIFF |
| labels DIFFPIN port |
| labels DIFFTXT text |
| |
| layer DIFFCUT DIFFCUT |
| layer DIFFRES DIFFRES |
| layer DIFFFILL DIFFFILL,ALTDIFFFILL |
| layer DIFFBLOCK DIFFBLOCK,ALTDIFFBLOCK |
| |
| layer POLY POLY,POLYTXT,POLYPIN |
| labels POLY |
| labels POLYPIN port |
| labels POLYTXT text |
| |
| layer POLYMOD POLYMOD |
| layer POLYRES POLYRES |
| layer POLYCUT POLYCUT |
| layer POLYGATE POLYGATE |
| layer POLYFILL POLYFILL,ALTPOLYFILL |
| layer POLYBLOCK POLYBLOCK,ALTPOLYBLOCK |
| layer POLYSHORT POLYSHORT |
| |
| layer NPC NPC |
| layer NCM NCM |
| layer PSDM PSDM |
| layer NSDM NSDM |
| |
| layer LICON LICON1 |
| |
| layer LI1 LI1,LI1TXT,LI1PIN |
| labels LI1 |
| labels LI1PIN port |
| labels LI1TXT text |
| |
| layer LI1RES LI1RES |
| layer LI1FILL LI1FILL,ALTLI1FILL |
| layer LIBLOCK LIBLOCK,ALTLIBLOCK,OLDLIBLOCK |
| layer LISHORT LISHORT |
| |
| layer MCON MCON |
| |
| layer MET1 MET1,MET1TXT,MET1PIN |
| labels MET1 |
| labels MET1PIN port |
| labels MET1TXT text |
| |
| layer MET1RES MET1RES |
| layer MET1FILL MET1FILL,ALTMET1FILL |
| layer MET1BLOCK MET1BLOCK,ALTMET1BLOCK,OLDMET1BLOCK |
| layer MET1SHORT MET1SHORT |
| |
| layer VIA1 VIA1 |
| |
| layer MET2 MET2,MET2TXT,MET2PIN |
| labels MET2 |
| labels MET2PIN port |
| labels MET2TXT text |
| |
| layer MET2RES MET2RES |
| layer MET2FILL MET2FILL,ALTMET2FILL |
| layer MET2BLOCK MET2BLOCK,ALTMET2BLOCK,OLDMET2BLOCK |
| layer MET2SHORT MET2SHORT |
| |
| layer VIA2 VIA2 |
| |
| layer MET3 MET3,MET3TXT,MET3PIN |
| labels MET3 |
| labels MET3PIN port |
| labels MET3TXT text |
| |
| layer MET3RES MET3RES |
| layer MET3FILL MET3FILL,ALTMET3FILL |
| layer MET3BLOCK MET3BLOCK,ALTMET3BLOCK,OLDMET3BLOCK |
| layer MET3SHORT MET3SHORT |
| |
| layer VIA3 VIA3 |
| |
| layer MET4 MET4,MET4TXT,MET4PIN |
| labels MET4 |
| labels MET4PIN port |
| labels MET4TXT text |
| |
| layer MET4RES MET4RES |
| layer MET4FILL MET4FILL,ALTMET4FILL |
| layer MET4BLOCK MET4BLOCK,ALTMET4BLOCK,OLDMET4BLOCK |
| layer MET4SHORT MET4SHORT |
| |
| layer VIA4 VIA4 |
| |
| layer MET5 MET5,MET5TXT,MET5PIN |
| labels MET5 |
| labels MET5PIN port |
| labels MET5TXT text |
| |
| layer MET5RES MET5RES |
| layer MET5FILL MET5FILL,ALTMET5FILL |
| layer MET5BLOCK MET5BLOCK,ALTMET5BLOCK,OLDMET5BLOCK |
| layer MET5SHORT MET5SHORT |
| |
| layer PAD PAD,PADTXT,PADPIN |
| labels PAD |
| labels PADPIN port |
| labels PADTXT text |
| |
| layer STDCELLID STDCELLID |
| layer COREID COREID |
| layer TEXT TEXT |
| layer HVTR HVTR |
| layer RPM RPM |
| layer URPM URPM |
| layer LDNTM LDNTM |
| layer HVNTM HVNTM |
| layer PNP PNP |
| layer NPN NPN |
| layer CAP CAP |
| layer LVID LVID |
| layer IND IND |
| layer ESD ESDID |
| layer DIODE DIODE |
| layer BOUND BOUND |
| layer BOUND2 BOUND2 |
| layer OUTLINE OUTLINE |
| #ifdef RERAM |
| #undef RERAM |
| layer RERAM RERAM |
| #define RERAM 1 |
| #endif |
| layer CAPM CAPM |
| layer CAP2M CAP2M |
| layer PWELLRES PWELLRES |
| layer LOWTAPDENSITY LOWTAPDENSITY |
| layer PADDIFFID PADDIFFID |
| layer PADMETALID PADMETALID |
| layer PADCENTERID PADCENTERID |
| layer CP1MADD CP1MADD |
| layer CP1MDROP CP1MDROP |
| layer CNTMADD CNTMADD |
| layer CLI1MADD CLI1MADD |
| layer CLI1MDROP CLI1MDROP |
| layer CFOMDROP CFOMDROP |
| layer UNKNOWN1 UNKNOWN1 |
| layer UNKNOWN2 UNKNOWN2 |
| layer UNKNOWN3 UNKNOWN3 |
| |
| calma NWELL 64 20 |
| calma PWELL 81 53 |
| calma DNWELL 64 18 |
| calma DIFF 65 20 |
| calma TAP 65 44 |
| calma LVTN 125 44 |
| calma HVTP 78 44 |
| calma HVI 75 20 |
| calma TUNM 80 20 |
| calma POLY 66 20 |
| calma NPC 95 20 |
| calma NCM 92 44 |
| calma PSDM 94 20 |
| calma NSDM 93 44 |
| calma LICON1 66 44 |
| calma LI1 67 20 |
| calma LI1TXT 67 16 |
| calma LI1PIN 67 5 |
| calma MCON 67 44 |
| calma MET1 68 20 |
| calma MET1TXT 68 16 |
| calma MET1PIN 68 5 |
| calma VIA1 68 44 |
| #ifdef RERAM |
| #undef RERAM |
| calma RERAM 201 20 |
| #define RERAM 1 |
| #endif |
| calma MET2 69 20 |
| calma MET2TXT 69 16 |
| calma MET2PIN 69 5 |
| calma VIA2 69 44 |
| calma MET3 70 20 |
| calma MET3TXT 70 16 |
| calma MET3PIN 70 5 |
| calma CAPM 89 44 |
| calma VIA3 70 44 |
| calma MET4 71 20 |
| calma MET4TXT 71 16 |
| calma MET4PIN 71 5 |
| calma CAP2M 97 44 |
| calma VIA4 71 44 |
| calma MET5 72 20 |
| calma MET5TXT 72 16 |
| calma MET5PIN 72 5 |
| calma PAD 76 20 |
| calma PADTXT 76 16 |
| calma PADPIN 76 5 |
| calma STDCELLID 81 4 |
| calma TEXT 83 44 |
| calma HVTR 18 20 |
| calma RPM 86 20 |
| calma URPM 79 20 |
| calma LDNTM 11 44 |
| calma HVNTM 125 20 |
| calma PNP 82 44 |
| calma NPN 82 20 |
| calma CAP 82 64 |
| calma LVID 81 60 |
| calma IND 82 24 |
| calma LOWTAPDENSITY 81 14 |
| calma PWELLRES 64 13 |
| calma POLYRES 66 13 |
| calma POLYGATE 66 9 |
| calma POLYCUT 66 14 |
| calma DIFFRES 65 13 |
| calma DIFFCUT 65 14 |
| calma DIODE 81 23 |
| calma POLYMOD 66 83 |
| calma COREID 81 2 |
| calma PADDIFFID 81 6 |
| calma PADMETALID 81 8 |
| calma PADCENTERID 81 20 |
| calma CP1MADD 33 43 |
| calma CP1MDROP 33 42 |
| calma CNTMADD 22 21 |
| calma CLI1MADD 115 43 |
| calma CLI1MDROP 115 42 |
| calma CFOMDROP 22 22 |
| calma UNKNOWN1 230 241 |
| calma UNKNOWN2 230 242 |
| calma UNKNOWN3 64 44 |
| calma NWELLTXT 64 16 |
| calma PWELLTXT 122 16 |
| calma NWELLPIN 64 5 |
| calma POLYTXT 66 16 |
| calma POLYPIN 66 5 |
| calma PWELLPIN 64 59 |
| calma BOUND 235 4 |
| calma BOUND2 235 0 |
| calma OUTLINE 236 0 |
| calma ESDID 81 19 |
| calma DIFFBLOCK 22 24 |
| calma POLYBLOCK 33 24 |
| calma LIBLOCK 67 10 |
| calma MET1BLOCK 62 24 |
| calma MET2BLOCK 105 52 |
| calma MET3BLOCK 107 24 |
| calma MET4BLOCK 112 4 |
| calma MET5BLOCK 117 4 |
| calma DIFFFILL 23 28 |
| calma POLYFILL 28 28 |
| calma LI1FILL 56 28 |
| calma MET1FILL 36 28 |
| calma MET2FILL 41 28 |
| calma MET3FILL 34 28 |
| calma MET4FILL 51 28 |
| calma MET5FILL 59 28 |
| calma POLYSHORT 66 15 |
| calma LISHORT 67 15 |
| calma MET1SHORT 68 15 |
| calma MET2SHORT 69 15 |
| calma MET3SHORT 70 15 |
| calma MET4SHORT 71 15 |
| calma MET5SHORT 72 15 |
| calma LI1RES 67 13 |
| calma MET1RES 68 13 |
| calma MET2RES 69 13 |
| calma MET3RES 70 13 |
| calma MET4RES 71 13 |
| calma MET5RES 72 13 |
| calma ALTDIFFFILL 65 99 |
| calma ALTPOLYFILL 66 99 |
| calma ALTLI1FILL 67 99 |
| calma ALTMET1FILL 68 99 |
| calma ALTMET2FILL 69 99 |
| calma ALTMET3FILL 70 99 |
| calma ALTMET4FILL 71 99 |
| calma ALTMET5FILL 72 99 |
| calma ALTDIFFBLOCK 65 98 |
| calma ALTPOLYBLOCK 66 98 |
| calma ALTLIBLOCK 67 98 |
| calma ALTMET1BLOCK 68 98 |
| calma ALTMET2BLOCK 69 98 |
| calma ALTMET3BLOCK 70 98 |
| calma ALTMET4BLOCK 71 98 |
| calma ALTMET5BLOCK 72 98 |
| calma OLDLIBLOCK 67 10 |
| calma OLDMET1BLOCK 68 10 |
| calma OLDMET2BLOCK 69 10 |
| calma OLDMET3BLOCK 70 10 |
| calma OLDMET4BLOCK 71 10 |
| calma OLDMET5BLOCK 72 10 |
| |
| end |
| |
| mzrouter |
| end |
| |
| #--------------------------------------------------------------------- |
| # DRC style used to check DRC errors GDS layers directly. Generally, |
| # this covers rules not found in sky130A.tech |
| #--------------------------------------------------------------------- |
| |
| drc |
| scalefactor 10 |
| |
| # NPC rules |
| |
| width NPC 270 "NPC width < %d (NPC.1)" |
| spacing NPC NPC 270 touching_ok "NPC to NPC spacing < %d (NPC.2)" |
| spacing NPC LICON 90 surround_ok "NPC to non-poly LICON spacing < %d (LICON.13)" |
| angles NPC 45 "Only 45 degree angles allowed on NPC (X.3)" |
| off_grid NPC 5 "NPC shape not on %d grid (X.1b)" |
| |
| # HVTP rules |
| |
| width HVTP 380 "HVTP width < %d (HVTP.1)" |
| spacing HVTP HVTP 700 touching_ok "HVTP to HVTP spacing < %d (HVTP.2)" |
| area HVTP 265000 380 "HVTP minimum area < %a (HVTP.5)" |
| angles HVTP 45 "Only 45 degree angles allowed on HVTP (X.3)" |
| off_grid HVTP 5 "HVTP shape not on %d grid (X.1b)" |
| |
| # THKOX rules |
| |
| width THKOX 600 "HVI width < %d (HVI.1)" |
| spacing THKOX THKOX 700 touching_ok "THKOX to THKOX spacing < %d (HVI.2)" |
| spacing THKOX NWELL 700 surround_ok "THKOX to NWELL spacint < %d (HVI.5)" |
| no_overlap THKOX TUNM |
| off_grid THKOX 5 "THKOX shape not on %d grid (X.1b)" |
| |
| # NSDM rules |
| |
| width NSDM 380 "NSDM width < %d (NSDM.1)" |
| spacing NSDM NSDM 380 touching_ok "NSDM to NSDM spacing < %d (NSDM.2)" |
| angles NSDM 45 "Only 45 degree angles allowed on NSDM (X.3)" |
| off_grid NSDM 5 "NSDM shape not on %d grid (X.1b)" |
| |
| # PSDM rules |
| |
| width PSDM 380 "PSDM width < %d (PSDM.1)" |
| spacing PSDM PSDM 380 touching_ok "PSDM to PSDM spacing < %d (PSDM.2)" |
| angles PSDM 45 "Only 45 degree angles allowed on PSDM (X.3)" |
| off_grid PSDM 5 "PSDM shape not on %d grid (X.1b)" |
| |
| end |
| |
| extract |
| style default |
| planeorder dw 0 |
| planeorder w 1 |
| planeorder i1 2 |
| planeorder i2 3 |
| planeorder i3 4 |
| planeorder i4 5 |
| planeorder i5 6 |
| planeorder i6 7 |
| planeorder i7 8 |
| planeorder i8 9 |
| planeorder a 10 |
| planeorder p 11 |
| planeorder mc 12 |
| planeorder li 13 |
| planeorder lc 14 |
| #ifdef RERAM |
| planeorder rr 15 |
| planeorder m1 16 |
| planeorder v1 17 |
| planeorder m2 18 |
| planeorder v2 19 |
| planeorder m3 20 |
| planeorder c1 21 |
| planeorder v3 22 |
| planeorder m4 23 |
| planeorder c2 24 |
| planeorder v4 25 |
| planeorder m5 26 |
| planeorder g 27 |
| planeorder bd 28 |
| planeorder bp 29 |
| planeorder bl 30 |
| planeorder b1 31 |
| planeorder b2 32 |
| planeorder b3 33 |
| planeorder b4 34 |
| planeorder b5 35 |
| planeorder id1 36 |
| planeorder id2 37 |
| planeorder id3 38 |
| planeorder id4 39 |
| planeorder id5 40 |
| planeorder id6 41 |
| planeorder id7 42 |
| planeorder id8 43 |
| planeorder id9 44 |
| planeorder c 45 |
| planeorder e 46 |
| #else |
| planeorder m1 15 |
| planeorder v1 16 |
| planeorder m2 17 |
| planeorder v2 18 |
| planeorder m3 19 |
| planeorder c1 20 |
| planeorder v3 21 |
| planeorder m4 22 |
| planeorder c2 23 |
| planeorder v4 24 |
| planeorder m5 25 |
| planeorder g 26 |
| planeorder bd 27 |
| planeorder bp 28 |
| planeorder bl 29 |
| planeorder b1 30 |
| planeorder b2 31 |
| planeorder b3 32 |
| planeorder b4 33 |
| planeorder b5 34 |
| planeorder id1 35 |
| planeorder id2 36 |
| planeorder id3 37 |
| planeorder id4 38 |
| planeorder id5 39 |
| planeorder id6 40 |
| planeorder id7 41 |
| planeorder id8 42 |
| planeorder id9 43 |
| planeorder c 44 |
| planeorder e 45 |
| #endif |
| end |