- Rule applies to periphery only (outside :drc_tag:`areaid.ce`). A corresponding core rule may or may not exist.
* -
.._NE:
:drc_flag:`NE`
- Rule not checked for esd_nwell_tap. There are no corresponding rule for esd_nwell_tap.
* -
.._NC:
:drc_flag:`NC`
- Rule not checked by DRC. It should be used as a guideline only.
* -
.._TC:
:drc_flag:`TC`
- Rule not checked for cell name "*_tech_CD_top*"
* -
.._A:
:drc_flag:`A`
- Rule documents a functionality implemented in CL algorithms and may not be checked by DRC.
* -
.._AD:
:drc_flag:`AD`
- Rule documents a functionality implemented in CL algorithms and checked by DRC.
* -
.._DE:
:drc_flag:`DE`
- Rule not checked for source of Drain Extended device
* -
.._LVS:
:drc_flag:`LVS`
- Rule handled by LVS
* -
.._F:
:drc_flag:`F`
- Rule intended for Frame only, not checked inside Die
* -
.._DNF:
:drc_flag:`DNF`
- Drawn Not equal Final. The drawn rule does not reflect the final dimension on silicon. See table J for details.
* -
.._RC:
:drc_flag:`RC`
- Recommended rule at the chip level, required rule at the IP level.
* -
.._RR:
:drc_flag:`RR`
- Recommended rule at any IP level
* -
.._AL:
:drc_flag:`AL`
- Rules applicable only to Al BE flows
* -
.._CU:
:drc_flag:`CU`
- Rules applicable only to Cu BE flows
* -
.._IR:
:drc_flag:`IR`
- IR drop check compering Al database and slotted Cu database for the same product (2 gds files) must be clean
* -
.._EXEMPT:
:drc_flag:`EXEMPT`
- Rule is an exception?
:drc_rule:`(x.-)`
-----------------
..list-table:: Function: Defines General (FIXME)
:header-rows:1
:stub-columns:1
:widths:10 75 5 10
* - :drc_rule:`Name`
- Description
- :drc_flag:`Flags`
- Value
* - :drc_rule:`(x.1a)`
- p1m.md (OPC), DECA and AMKOR layers (pi1.dg, pmm.dg, rdl.dg, pi2.dg, ubm.dg, bump.dg) and mask data for p1m, met1, via, met2 must be on a grid of [mm]
-
- 0.001
* - :drc_rule:`(x.1b)`
- Data for SKY130 layout and mask on all layers except those mentioned in 1a must be on a grid of [mm] (except inside Seal ring)
- Angles permitted on: tap (except inside :drc_tag:`areaid.en`), poly (except for ESD flare gates or gated_npn), li1(periphery), licon1, capm, mcon, via, via2. Anchors are exempted.
-
- n x 90
* - :drc_rule:`(x.2)`
- Angles permitted on: via3 and via4. Anchors are exempted.
-
- n x 90
* - :drc_rule:`(x.2a)`
- Analog circuits identified by :drc_tag:`areaid.analog` to use rectangular diff and tap geometries only; that are not to be merged into more complex shapes (T's or L's)
-
-
* - :drc_rule:`(x.2c)`
- 45 degree angles allowed on diff, tap inside UHVI
-
-
* - :drc_rule:`(x.3)`
- Angles permitted on all other layers and in the seal ring for all the layers
-
-
* - :drc_rule:`(x.3a)`
- Angles permitted on all other layers except WLCSP layers (pmm, rdl, pmm2, ubm and bump)
-
- n x 45
* - :drc_rule:`(x.4)`
- Electrical DR cover layout guidelines for electromigration
- :drc_flag:`NC`
-
* - :drc_rule:`(x.5)`
- All "pin"polygons must be within the "drawing" polygons of the layer
- :drc_flag:`AL`
-
* - :drc_rule:`(x.6)`
- All intra-layer separation checks will include a notch check
-
-
* - :drc_rule:`(x.7)`
- Mask layer line and space checks must be done on all layers (checked with s.x rules)
- :drc_flag:`NC`
-
* - :drc_rule:`(x.8)`
- Use of areaid "core" layer ("coreid") must be approved by technology
- Spacing between features located across areaid:ce is checked by …
-
-
* - :drc_rule:`(x.14)`
- Width of features straddling areaid:ce is checked by …
-
-
* - :drc_rule:`(x.15a)`
- Drawn compatible, mask, and waffle-drop layers are allowed only inside areaid:mt (i.e., etest modules), or inside areaid:sl (i.e., between the outer and inner areaid:sl edges, but not in the die) or inside areaid:ft (i.e., frame, blankings). Exception: FOM/P1M/Metal waffle drop are allowed inside the die
- :drc_flag:`P`
-
* - :drc_rule:`(x.15b)`
- Rule X.15a exempted for cpmm.dg inside cellnames "PadPLfp", "padPLhp", "padPLstg" and "padPLwlbi" (for the SKY130di-5r-gsmc flow)
- :drc_flag:`EXEMPT`
-
* - :drc_rule:`(x.16)`
- Die must not overlap :drc_tag:`areaid.mt` (rule waived for test chips and exempted for cellnames "*tech_CD_*", "*_techCD_*", "lazX_*" or "lazY_*" )
-
-
* - :drc_rule:`(x.17)`
- All labels must be within the "drawing" polygons of the layer; This check is enabled by using switch "floating_labels"; Identifies floating labels which appear as warnings in LVS. Using this check would enable cleaner LVS run; Not a gate for tapeout
- | Use redundant mcon, via, via2, via3 and via4 (Locations where additional vias/contacts can be added to existing single vias/contacts will be identified by this rule).
| Single via under :drc_tag:`areaid.core` and :drc_tag:`areaid.standarc` are excluded from the single via check
- | No floating interconnects (poly, li1, met1-met5) or capm allowed; Rule flags interconnects with no path to poly, difftap or metal pins. Exempt floating layers can be excluded using poly_float, li1_float, m1_float, m2_float, m3_float, m4_float and m5_float text labels. Also flags an error if these text labels are placed on connected layers (not floating) and if the labels are not over the appropriate metal layer.
| If floating interconnects need to be connected at a higher level (Parent IP or Full chip), such floating interconnects can be exempted using poly_tie, li1_tie, m1_tie, m2_tie, m3_tie, m4_tie and m5_tie text labels.
| It is the responsibility of the IP owner and chip/product owner to communicate and agree to the node each of these texted lines is connected to, if there is any risk to how a line is tied, and to what node.
| Only metals outside :drc_tag:`areaid.stdcell` are checked.
|
The following are exempt from x.22 violations: _techCD_ , inductor.dg, modulecut, capacitors and s8blerf
The 'notPublicCell' switch will deactivate this rule
Spacing between nwell and deep nwell on the same net is set by the sum of the rules nwell.2 and nwell.5. By default, DRC run on a cell checks for the separate-net spacing, when nwell and deep nwell nets are separate within the cell hierarchy and are joined in the upper hierarchy. To allow net names to be joined and make the same-net rule applicable in this case, the "joinNets" switch should be turned on.
..list-table:: Function: Defines active regions and contacts to substrate
:header-rows:1
:stub-columns:1
:widths:10 75 5 10
* - :drc_rule:`Name`
- Description
- :drc_flag:`Flags`
- Value
* - :drc_rule:`(difftap.1)`
- Width of diff or tap
- :drc_flag:`P`
- 0.150
* - :drc_rule:`(difftap.2)`
- Minimum channel width (Diff And Poly) except for FETs inside :drc_tag:`areaid.sc`: Rule exempted in the SP8* flows only, for the cells listed in rule difftap.2a
- :drc_flag:`P`
- 0.420
* - :drc_rule:`(difftap.2a)`
- Minimum channel width (Diff And Poly) for cell names "s8cell_ee_plus_sseln_a", "s8cell_ee_plus_sseln_b", "s8cell_ee_plus_sselp_a", "s8cell_ee_plus_sselp_b" , "s8fpls_pl8", "s8fpls_rdrv4" , "s8fpls_rdrv4f" and "s8fpls_rdrv8"
- :drc_flag:`P`
- NA
* - :drc_rule:`(difftap.2b)`
- Minimum channel width (Diff And Poly) for FETs inside :drc_tag:`areaid.sc`
- :drc_flag:`P`
- 0.360
* - :drc_rule:`(difftap.3)`
- Spacing of diff to diff, tap to tap, or non-abutting diff to tap
-
- 0.270
* - :drc_rule:`(difftap.4)`
- Min tap bound by one diffusion
-
- 0.290
* - :drc_rule:`(difftap.5)`
- Min tap bound by two diffusions
- :drc_flag:`P`
- 0.400
* - :drc_rule:`(difftap.6)`
- Diff and tap are not allowed to extend beyond their abutting edge
-
-
* - :drc_rule:`(difftap.7)`
- Spacing of diff/tap abutting edge to a non-conciding diff or tap edge
- :drc_flag:`NE`
- 0.130
* - :drc_rule:`(difftap.8)`
- Enclosure of (p+) diffusion by N-well. Rule exempted inside UHVI.
- :drc_flag:`DE` :drc_flag:`NE` :drc_flag:`P`
- 0.180
* - :drc_rule:`(difftap.9)`
- Spacing of (n+) diffusion to N-well outside UHVI
- :drc_flag:`DE` :drc_flag:`NE` :drc_flag:`P`
- 0.340
* - :drc_rule:`(difftap.10)`
- Enclosure of (n+) tap by N-well. Rule exempted inside UHVI.
- :drc_flag:`NE` :drc_flag:`P`
- 0.180
* - :drc_rule:`(difftap.11)`
- Spacing of (p+) tap to N-well. Rule exempted inside UHVI.
-
- 0.130
* - :drc_rule:`(difftap.12)`
- ESD_nwell_tap is considered shorted to the abutting diff
..list-table:: Function: Defines FET gates, interconnects and resistors
:header-rows:1
:stub-columns:1
:widths:10 75 5 10
* - :drc_rule:`Name`
- Description
- :drc_flag:`Flags`
- Value
* - :drc_rule:`(poly.X.1)`
- All FETs would be checked for W/Ls as documented in spec 001-02735 (Exempt FETs that are pruned; exempt for W/L's inside :drc_tag:`areaid.sc` and inside cell name scs8*decap* and listed in the MRGA as a decap only W/L)
-
-
* - :drc_rule:`(poly.X.1a)`
- Min & max dummy_poly L is equal to min L allowed for corresponding device type (exempt rule for dummy_poly in cells listed on Table H3)
-
-
* - :drc_rule:`(poly.1a)`
- Width of poly
-
- 0.150
* - :drc_rule:`(poly.1b)`
- Min channel length (poly width) for pfet overlapping lvtn (exempt rule for dummy_poly in cells listed on Table H3)
-
- 0.350
* - :drc_rule:`(poly.2)`
- Spacing of poly to poly except for poly.c2 and poly.c3; Exempt cell: sr_bltd_eq where it is same as poly.c2
-
- 0.210
* - :drc_rule:`(poly.3)`
- Min poly resistor width
-
- 0.330
* - :drc_rule:`(poly.4)`
- Spacing of poly on field to diff (parallel edges only)
- :drc_flag:`P`
- 0.075
* - :drc_rule:`(poly.5)`
- Spacing of poly on field to tap
- :drc_flag:`P`
- 0.055
* - :drc_rule:`(poly.6)`
- Spacing of poly on diff to abutting tap (min source)
- :drc_flag:`P`
- 0.300
* - :drc_rule:`(poly.7)`
- Extension of diff beyond poly (min drain)
- :drc_flag:`P`
- 0.250
* - :drc_rule:`(poly.8)`
- Extension of poly beyond diffusion (endcap)
- :drc_flag:`P`
- 0.130
* - :drc_rule:`(poly.9)`
- Poly resistor spacing to poly or spacing (no overlap) to diff/tap
-
- 0.480
* - :drc_rule:`(poly.10)`
- Poly can't overlap inner corners of diff
-
-
* - :drc_rule:`(poly.11)`
- No 90 deg turns of poly on diff
-
-
* - :drc_rule:`(poly.12)`
- (Poly NOT (nwell NOT hvi)) may not overlap tap; Rule exempted for cell name "s8fgvr_n_fg2" and gated_npn and inside UHVI.
..list-table:: Function: Defines contacts between poly/diff/tap and Li1
:header-rows:1
:stub-columns:1
:widths:10 75 5 10
* - :drc_rule:`Name`
- Description
- :drc_flag:`Flags`
- Value
* - :drc_rule:`(licon.1)`
- Min and max L and W of licon (exempt licons inside prec_resistor)
-
- 0.170
* - :drc_rule:`(licon.1b)`
- Min and max width of licon inside prec_resistor
-
- 0.190
* - :drc_rule:`(licon.1c)`
- Min and max length of licon inside prec_resistor
-
- 2.000
* - :drc_rule:`(licon.2)`
- Spacing of licon to licon
- :drc_flag:`P`
- 0.170
* - :drc_rule:`(licon.2b)`
- Min spacing between two slotted_licon (when the both the edges are 0.19um in length)
-
- 0.350
* - :drc_rule:`(licon.2c)`
- Min spacing between two slotted_licon (except for rule licon.2b)
-
- 0.510
* - :drc_rule:`(licon.2d)`
- Min spacing between a slotted_licon and 0.17um square licon
-
- 0.510
* - :drc_rule:`(licon.3)`
- Only min. square licons are allowed except die seal ring where licons are (licon CD)*L
-
- 0.170 *L
* - :drc_rule:`(licon.4)`
- Licon1 must overlap li1 and (poly or diff or tap)
-
-
* - :drc_rule:`(licon.5a)`
- Enclosure of licon by diff
- :drc_flag:`P`
- 0.040
* - :drc_rule:`(licon.5b)`
- Min space between tap_licon and diff-abutting tap edge
- :drc_flag:`P`
- 0.060
* - :drc_rule:`(licon.5c)`
- Enclosure of licon by diff on one of two adjacent sides
- :drc_flag:`P`
- 0.060
* - :drc_rule:`(licon.6)`
- Licon cannot straddle tap
- :drc_flag:`P`
-
* - :drc_rule:`(licon.7)`
- Enclosure of licon by one of two adjacent edges of isolated tap
- :drc_flag:`P`
- 0.120
* - :drc_rule:`(licon.8)`
- Enclosure of poly_licon by poly
- :drc_flag:`P`
- 0.050
* - :drc_rule:`(licon.8a)`
- Enclosure of poly_licon by poly on one of two adjacent sides
- :drc_flag:`P`
- 0.080
* - :drc_rule:`(licon.9)`
- Spacing, no overlap, between poly_licon and psdm; In SKY130DIA/SKY130TMA/SKY130PIR-10 flows, the rule is checked only between (poly_licon outside rpm) and psdm
- :drc_flag:`P`
- 0.110
* - :drc_rule:`(licon.10)`
- Spacing of licon on (tap AND (nwell NOT hvi)) to Var_channel
- :drc_flag:`P`
- 0.250
* - :drc_rule:`(licon.11)`
- Spacing of licon on diff or tap to poly on diff (except for all FETs inside :drc_tag:`areaid.sc` and except s8spf-10r flow for 0.5um phv inside cell names "s8fs_gwdlvx4", "s8fs_gwdlvx8", "s8fs_hvrsw_x4", "s8fs_hvrsw8", "s8fs_hvrsw264", and "s8fs_hvrsw520" and for 0.15um nshort inside cell names "s8fs_rdecdrv", "s8fs_rdec8", "s8fs_rdec32", "s8fs_rdec264", "s8fs_rdec520")
- :drc_flag:`P`
- 0.055
* - :drc_rule:`(licon.11a)`
- Spacing of licon on diff or tap to poly on diff (for all FETs inside :drc_tag:`areaid.sc` except 0.15um phighvt)
- :drc_flag:`P`
- 0.050
* - :drc_rule:`(licon.11b)`
- Spacing of licon on diff or tap to poly on diff (for 0.15um phighvt inside :drc_tag:`areaid.sc`)
- :drc_flag:`P`
- 0.050
* - :drc_rule:`(licon.11c)`
- Spacing of licon on diff or tap to poly on diff (for 0.5um phv inside cell names "s8fs_gwdlvx4", "s8fs_gwdlvx8", "s8fs_hvrsw_x4", "s8fs_hvrsw8", "s8fs_hvrsw264", and "s8fs_hvrsw520")
- :drc_flag:`P`
- 0.040
* - :drc_rule:`(licon.11d)`
- Spacing of licon on diff or tap to poly on diff (for 0.15um nshort inside cell names "s8fs_rdecdrv", "s8fs_rdec8", "s8fs_rdec32", "s8fs_rdec264", "s8fs_rdec520")
- :drc_flag:`P`
- 0.045
* - :drc_rule:`(licon.12)`
- Max SD width without licon
- :drc_flag:`NC`
- 5.700
* - :drc_rule:`(licon.13)`
- Spacing (no overlap) of NPC to licon on diff or tap
- Min LI resistor width (rule exempted within :drc_tag:`areaid.ed`; Inside :drc_tag:`areaid.ed`, min width of the li resistor is determined by rule li.1)
- Max width of capacitor:dg; Rule not applicable for vpp_with_Met3Shield and vpp_with_LiShield and vpp_over_MOSCAP and vpp_with_Met5 and vpp_with_noLi
-
- 11.350
* - :drc_rule:`(vpp.1c)`
- Min/Max width of cell name "s8rf_xcmvpp1p8x1p8_m3shield "
-
- 3.880
* - :drc_rule:`(vpp.3)`
- capacitor:dg must not overlap (tap or diff or poly); (one exception: Poly is allowed to overlap vpp_with_Met3Shield and vpp_with_Met5PolyShield); (not applicable for vpp_over_Moscap or "s8rf2_xcmvppx4_2xnhvnative10x4" or vpp_with_LiShield)
-
-
* - :drc_rule:`(vpp.4)`
- capacitor:dg must not straddle (nwell or dnwell)
-
-
* - :drc_rule:`(vpp.5)`
- Min spacing between (capacitor:dg edge and (poly or li1 or met1 or met2)) to (poly or li1 or met1 or met2) on separate nets (Exempt area of the error shape less than 2.25 (um^2) and run length less than 2.0um); Rule not applicable for vpp_with_Met3Shield and vpp_with_LiShield and vpp_over_MOSCAP and vpp_with_Met5 and vpp_with_noLi
-
- 1.500
* - :drc_rule:`(vpp.5a)`
- Max pattern density of met3.dg over capacitor.dg (not applicable for vpp_with_Met3Shield and vpp_with_LiShield and vpp_over_MOSCAP and vpp_with_Met5)
-
- 0.25
* - :drc_rule:`(vpp.5b)`
- Max pattern density of met4.dg over capacitor.dg (not applicable for vpp_with_Met3Shield and vpp_with_Met5 and vpp_over_MOSCAP)
-
- 0.3
* - :drc_rule:`(vpp.5c)`
- Max pattern density of met5.dg over capacitor.dg (not applicable for vpp_with_Met3Shield and vpp_with_Met5 and vpp_over_MOSCAP and vpp_with_noLi); (one exception: rules does apply to cell "s8rf2_xcmvpp11p5x11p7_m1m4" and "s8rf2_xcmvpp_hd5_atlas*")
-
- 0.4
* - :drc_rule:`(vpp.8)`
- Min enclosure of capacitor:dg by nwell
-
- 1.500
* - :drc_rule:`(vpp.9)`
- Min spacing of capacitor:dg to nwell (not applicable for vpp_over_MOSCAP)
-
- 1.500
* - :drc_rule:`(vpp.10)`
- vpp capacitors must not overlap; Rule checks for capacitor.dg overlapping more than one pwell pin
-
-
* - :drc_rule:`(vpp.11)`
- Min pattern density of (poly and diff) over capacitor.dg; (vpp_over_Moscap only)
-
- 0.87
* - :drc_rule:`(vpp.12a)`
- Number of met4 shapes inside capacitor.dg of cell "s8rf2_xcmvpp8p6x7p9_m3_lim5shield" must overlap with size 2.01 x 2.01 (no other met4 shapes allowed)
-
- 9.00
* - :drc_rule:`(vpp.12b)`
- Number of met4 shapes inside capacitor.dg of cell "s8rf2_xcmvpp11p5x11p7_m3_lim5shield" must overlap with size 2.01 x 2.01 (no other met4 shapes allowed)
-
- 16.00
* - :drc_rule:`(vpp.12c)`
- Number of met4 shapes inside capacitor.dg of cell "s8rf2_xcmvpp4p4x4p6_m3_lim5shield" must overlap with size 1.5 x 1.5 (no other met4 shapes allowed)
- Min. spacing of features attached to or extending from huge_met1 for a distance of up to 0.280 um to metal1 (rule not checked over non-huge met1 features)
-
- 0.280
* - :drc_rule:`(m1.3b)`
- Min. spacing of huge_met1 to metal1 excluding features checked by m1.3a
-
- 0.280
* - :drc_rule:`(m1.4)`
- Mcon must be enclosed by Met1 by at least …(Rule exempted for cell names documented in rule m1.4a)
- :drc_flag:`P`
- 0.030
* - :drc_rule:`(m1.4a)`
- Mcon must be enclosed by Met1 by at least (for cell names "s8cell_ee_plus_sseln_a", "s8cell_ee_plus_sseln_b", "s8cell_ee_plus_sselp_a", "s8cell_ee_plus_sselp_b", "s8fpls_pl8", and "s8fs_cmux4_fm")
- :drc_flag:`P`
- 0.005
* - :drc_rule:`(m1.5)`
- Mcon must be enclosed by Met1 on one of two adjacent sides by at least …
- :drc_flag:`P` :drc_flag:`AL`
- 0.060
* - :drc_rule:`(m1.6)`
- Min metal 1 area [um2]
-
- 0.083
* - :drc_rule:`(m1.7)`
- Min area of metal1 holes [um2]
-
- 0.140
* - :drc_rule:`(m1.pd.1)`
- Min MM1_oxide_Pattern_density
- :drc_flag:`RR` :drc_flag:`AL`
- 0.7
* - :drc_rule:`(m1.pd.2a)`
- Rule m1.pd.1 has to be checked by dividing the chip into square regions of width and length equal to …
- :drc_flag:`A` :drc_flag:`AL`
- 700
* - :drc_rule:`(m1.pd.2b)`
- Rule m1.pd.1 has to be checked by dividing the chip into steps of …
- :drc_flag:`A` :drc_flag:`AL`
- 70
* - :drc_rule:`(m1.11)`
- Max width of metal1after slotting
- :drc_flag:`CU` :drc_flag:`NC`
- 4.000
* - :drc_rule:`(m1.12)`
- Add slots and remove vias and contacts if met1 wider than…..
- Min. spacing of features attached to or extending from huge_met2 for a distance of up to 0.280 um to metal2 (rule not checked over non-huge met2 features)
-
- 0.280
* - :drc_rule:`(m2.3b)`
- Min. spacing of huge_met2 to metal2 excluding features checked by m2.3a
-
- 0.280
* - :drc_rule:`(m2.3c)`
- Min spacing between floating_met2 with AR_met2_A >= 0.05 and AR_met2_B =< 0.032, outside areaid:sc must be greater than
- :drc_flag:`RR`
- 0.145
* - :drc_rule:`(m2.4)`
- Via must be enclosed by Met2 by at least …
- :drc_flag:`P` :drc_flag:`AL`
- 0.055
* - :drc_rule:`(m2.5)`
- Via must be enclosed by Met2 on one of two adjacent sides by at least …
- :drc_flag:`AL`
- 0.085
* - :drc_rule:`(m2.6)`
- Min metal2 area [um2]
-
- 0.0676
* - :drc_rule:`(m2.7)`
- Min area of metal2 holes [um2]
-
- 0.140
* - :drc_rule:`(m2.pd.1)`
- Min MM2_oxide_Pattern_density
- :drc_flag:`RR`
- 0.7
* - :drc_rule:`(m2.pd.2a)`
- Rule m2.pd.1 has to be checked by dividing the chip into square regions of width and length equal to …
- :drc_flag:`A`
- 700
* - :drc_rule:`(m2.pd.2b)`
- Rule m2.pd.1 has to be checked by dividing the chip into steps of …
- :drc_flag:`A`
- 70
* - :drc_rule:`(m2.11)`
- Max width of metal2
- :drc_flag:`CU`
- 4.000
* - :drc_rule:`(m2.12)`
- Add slots and remove vias and contacts if met2 wider than…..
- Min. spacing of features attached to or extending from huge_met3 for a distance of up to 0.480 um to metal3 (rule not checked over non-huge met3 features)
-
- N/A
* - :drc_rule:`(m3.3b)`
- Min. spacing of huge_met3 to metal3 excluding features checked by m3.3a
-
- N/A
* - :drc_rule:`(m3.3c)`
- Min. spacing of features attached to or extending from huge_met3 for a distance of up to 0.400 um to metal3 (rule not checked over non-huge met3 features)
-
- 0.400
* - :drc_rule:`(m3.3d)`
- Min. spacing of huge_met3 to metal3 excluding features checked by m3.3a
-
- 0.400
* - :drc_rule:`(m3.4)`
- Via2 must be enclosed by Met3 by at least …
- :drc_flag:`AL`
- 0.065
* - :drc_rule:`(m3.5)`
- Via2 must be enclosed by Met3 on one of two adjacent sides by at least …
-
- N/A
* - :drc_rule:`(m3.5a)`
- Via2 must be enclosed by Met3 on all sides by at least …(Rule not checked on a layout when it satisfies both rules m3.4 and m3.5)
-
- N/A
* - :drc_rule:`(m3.6)`
- Min area of metal3
-
- 0.240
* - :drc_rule:`(m3.7)`
- Min area of metal3 holes [um2]
- :drc_flag:`CU`
- 0.200
* - :drc_rule:`(m3.pd.1)`
- Min MM3_oxide_Pattern_density
- :drc_flag:`RR`
- 0.7
* - :drc_rule:`(m3.pd.2a)`
- Rule m3.pd.1 has to be checked by dividing the chip into square regions of width and length equal to …
- :drc_flag:`A`
- 700
* - :drc_rule:`(m3.pd.2b)`
- Rule m3.pd.1 has to be checked by dividing the chip into steps of …
- :drc_flag:`A`
- 70
* - :drc_rule:`(m3.11)`
- Max width of metal3
- :drc_flag:`CU`
- 4.000
* - :drc_rule:`(m3.12)`
- Add slots and remove vias and contacts if wider than…..
..list-table:: Function: Defines Nitride Seal Mask (FIXME)
:header-rows:1
:stub-columns:1
:widths:10 75 5 10
* - :drc_rule:`Name`
- Description
- :drc_flag:`Flags`
- Value
* - :drc_rule:`(nsm.1)`
- Min. width of nsm
-
- 3.000
* - :drc_rule:`(nsm.2)`
- Min. spacing of nsm to nsm
-
- 4.000
* - :drc_rule:`(nsm.3)`
- Min spacing, no overlap, between NSM_keepout to diff.dg, tap.dg, fom.dy, cfom.dg, cfom.mk, poly.dg, p1m.mk, li1.dg, cli1m.mk, metX.dg (X=1 to 5) and cmmX.mk (X=1 to 5). Exempt the following from the check: (a) cell name "nikon*" and (b) diff ring inside :drc_tag:`areaid.sl`
- :drc_flag:`AL`
- 1.000
* - :drc_rule:`(nsm.3a)`
- Min enclosure of diff.dg, tap.dg, fom.dy, cfom.dg, cfom.mk, poly.dg, p1m.mk, li1.dg, cli1m.mk, metX.dg (X=1 to 5) and cmmX.mk (X=1 to 5) by :drc_tag:`areaid.ft`. Exempt the following from the check: (a) cell name "s8Fab_crntic*" (b) blankings in the frame (rule uses :drc_tag:`areaid.dt` for exemption)
- Min spacing between :drc_tag:`areaid.dt` to diff.dg, tap.dg, fom.dy, cfom.dg, cfom.mk, poly.dg, p1m.mk, li1.dg, cli1m.mk, metX.dg (X=1 to 5) and cmmX.mk (X=1 to 5). Exempt the following from the check: (a) blankings in the frame (rule uses :drc_tag:`areaid.dt` for exemption)
..list-table:: Function: Defines third level of metal interconnects, buses and inductor; top_indmMetal is met3 for SKY130D* flows; Similarly top_padVia is Via2 for SKY130D*
:header-rows:1
:stub-columns:1
:widths:10 75 5 10
* - :drc_rule:`Name`
- Description
- :drc_flag:`Flags`
- Value
* - :drc_rule:`(indm.1)`
- Min width of top_indmMetal
-
- N/A
* - :drc_rule:`(indm.2)`
- Min spacing between two top_indmMetal
-
- N/A
* - :drc_rule:`(indm.3)`
- top_padVia must be enclosed by top_indmMetal by atleast
- Min area of met4 (rule exempted for probe pads which are exactly 1.42um by 1.42um)
-
- N/A
* - :drc_rule:`(m4.4a)`
- Min area of met4
-
- 0.240
* - :drc_rule:`(m4.5a)`
- Min. spacing of features attached to or extending from huge_met4 for a distance of up to 0.400 um to metal4 (rule not checked over non-huge met4 features)
-
- 0.400
* - :drc_rule:`(m4.5b)`
- Min. spacing of huge_met4 to metal4 excluding features checked by m4.5a
-
- 0.400
* - :drc_rule:`(m4.7)`
- Min area of meta4 holes [um2]
- :drc_flag:`CU`
- 0.200
* - :drc_rule:`(m4.pd.1)`
- Min MM4_oxide_Pattern_density
- :drc_flag:`RR`
- 0.7
* - :drc_rule:`(m4.pd.2a)`
- Rule m4.pd.1 has to be checked by dividing the chip into square regions of width and length equal to …
- :drc_flag:`A`
- 700
* - :drc_rule:`(m4.pd.2b)`
- Rule m4.pd.1 has to be checked by dividing the chip into steps of …
- :drc_flag:`A`
- 70
* - :drc_rule:`(m4.11)`
- Max width of metal4
- :drc_flag:`CU`
- 10.000
* - :drc_rule:`(m4.12)`
- Add slots and remove vias and contacts if wider than…..
- :drc_flag:`CU`
- 10.000
* - :drc_rule:`(m4.13)`
- Max pattern density (PD) of metal4; met4 overlapping pdm areas are excluded from the check
..list-table:: Function: Defines the Cu Inductor. Connects to met5 through the pad opening
:header-rows:1
:stub-columns:1
:widths:10 75 5 10
* - :drc_rule:`Name`
- Description
- :drc_flag:`Flags`
- Value
* - :drc_rule:`(rdl.1)`
- Min width of rdl
-
- 10
* - :drc_rule:`(rdl.2)`
- Min spacing between two rdl
-
- 10
* - :drc_rule:`(rdl.3)`
- Min enclosure of pad by rdl, except rdl interacting with bump
-
- 10.750
* - :drc_rule:`(rdl.4)`
- Min spacing between rdl and outer edge of the seal ring
-
- 15.000
* - :drc_rule:`(rdl.5)`
- (rdl OR ccu1m.mk) must not overlap :drc_tag:`areaid.ft`. Exempt the following from the check: (a) blankings in the frame (rule uses :drc_tag:`areaid.dt` for exemption)
..list-table:: Function: Defines rules for HV nwell; All nwell connected to voltages greater than 1.8V must be enclosed by hvi; Nets connected to LV nwell or nwell overlapping hvi but connected to LV voltages (i.e 1.8V) should be tagged "lv_net" using text.dg; This tag should be only on Li layer
- Min space between HV_nwell and any nwell on different nets
-
- 2.000
* - :drc_rule:`(hvnwell.9)`
- (Nwell overlapping hvi) must be enclosed by hvi
-
-
* - :drc_rule:`(hvnwell.10)`
- LVnwell and HnWell should not be on the same net (for the purposes of this check, short the connectivity through resistors); Exempt HnWell with li nets tagged "lv_net" using text.dg and Hnwell connected to nwell overlapping :drc_tag:`areaid.hl`
- Nwell connected to the nets mentioned in the "Power_Net_Hv" field of the latcup GUI must be enclosed by hvi (exempt nwell inside :drc_tag:`areaid.hl`). Also for the purposes of this check, short the connectivity through resistors. The rule will be checked in the latchup run and exempted for cells "s8tsg5_tx_ibias_gen" and "s8bbcnv_psoc3p_top_18", "rainier_top, indus_top*", "rainier_top, manas_top, ccg3_top"
High voltage rule apply for an operating voltage range of 5.5 - 12V; Nodes switching between 0 to 5.5V do not need to follow these rules
..list-table:: Function: Defines High Voltage Rules (FIXME)
:header-rows:1
:stub-columns:1
:widths:10 75 5 10
* - :drc_rule:`Name`
- Description
- :drc_flag:`Flags`
- Value
* - :drc_rule:`(hv.X.1)`
- High voltage source/drain regions must be tagged by diff:hv
-
-
* - :drc_rule:`(hv.X.3)`
- High voltage poly can be drawn over multiple diff regions that are ALL reverse-biased by at least 300 mV (existence of reverse-bias is not checked by the CAD flow). It can also be drawn over multiple diffs when all sources and all drain are shorted together. In these case, the high voltage poly can be tagged with the text:dg label with a value “hv_bb”. Exceptions to this use of the hv_bb label must be approved by technology. Under certain bias conditions, high voltage poly tagged with hv_bb can cross an nwell boundary. The poly of the drain extended device crosses nwell by construction and can be tagged with the "hv_bb" label. Use of the hv_bb label on high voltage poly crossing an nwell boundary must be approved by technology. All high voltage poly tagged with hv_bb will not be checked to hv.poly.1, hv.poly.2, hv.poly.3 and hv.poly.4.
-
-
* - :drc_rule:`(hv.X.4)`
- Any piece of layout that is shorted to hv_source/drain becomes a high voltage feature.
-
-
* - :drc_rule:`(hv.X.5)`
- In cases where an hv poly gate abuts only low voltage source and drain, the poly gate can be tagged with the text:dg label with a value "hv_lv". In this case, the "hv_lv" tagged poly gate and its extensions will not be checked to hv.poly.6, but is checked by rules in the poly.-.- section. The use of the hv_lv label must be approved by technology.
-
-
* - :drc_rule:`(hv.X.6)`
- Nwell biased at voltages >= 7.2V must be tagged with text "shv_nwell"
- :drc_flag:`NC`
-
* - :drc_rule:`(hv.nwell.1)`
- Min spacing of nwell tagged with text "shv_nwell" to any nwell on different nets
-
- 2.500
* - :drc_rule:`(hv.diff.1a)`
- Minimum hv_source/drain spacing to diff for edges of hv_source/drain and diff not butting tap
-
- 0.300
* - :drc_rule:`(hv.diff.1b)`
- Minimum spacing of (n+/p+ diff resistors and diodes) connected to hv_source/drain to diff
-
- 0.300
* - :drc_rule:`(hv.diff.2)`
- Minimum spacing of nwell connected to hv_source/drain to n+ diff
- :drc_flag:`DE`
- 0.430
* - :drc_rule:`(hv.diff.3a)`
- Minimum n+ hv_source/drain spacing to nwell
-
- 0.550
* - :drc_rule:`(hv.diff.3b)`
- Minimum spacing of (n+ diff resistors and diodes) connected to hv_source/drain to nwell
-
- 0.550
* - :drc_rule:`(hv.poly.1)`
- Hv poly feature hvPoly (including hv poly resistors) can be drawn over only one diff region and is not allowed to cross nwell boundary except (1) as allowed in rule .X.3 and (2) nwell hole boundary in depmos
-
-
* - :drc_rule:`(hv.poly.2)`
- Min spacing of hvPoly (including hv poly resistor) on field to diff (diff butting hvPoly are excluded)
-
- 0.300
* - :drc_rule:`(hv.poly.3)`
- Min spacing of hvPoly (including hv poly resistor) on field to n-well (exempt poly stradding nwell in a denmos/depmos)
-
- 0.550
* - :drc_rule:`(hv.poly.4)`
- Enclosure of hvPoly (including hv poly resistor) on field by n-well (exempt poly stradding nwell in a denmos/depmos)
-
- 0.300
* - :drc_rule:`(hv.poly.6a)`
- Min extension of poly beyond hvFET_gate (exempt poly extending beyond diff along the S/D direction in a denmos/depmos)
-
- 0.160
* - :drc_rule:`(hv.poly.6b)`
- Extension of hv poly beyond FET_gate (including hvFET_gate; exempt poly extending beyond diff along the S/D direction in a denmos/depmos)
..list-table:: Function: Identify nets working between 12-16V
:header-rows:1
:stub-columns:1
:widths:10 75 5 10
* - :drc_rule:`Name`
- Description
- :drc_flag:`Flags`
- Value
* - :drc_rule:`(vhvi.vhv.1)`
- Terminals operating at nominal 12V (maximum 16V) bias must be tagged as Very-High-Voltage (VHV) using vhvi:dg layer
- :drc_flag:`NC`
-
* - :drc_rule:`(vhvi.vhv.2)`
- A source or drain of a drain-extended device can be tagged by vhvi:dg. A device with either source or drain (not both) tagged with vhvi:dg serves as a VHV propagation stopper
- :drc_flag:`NC`
-
* - :drc_rule:`(vhvi.vhv.3)`
- Any feature connected to VHVSourceDrain becomes a very-high-voltage feature
- :drc_flag:`NC`
-
* - :drc_rule:`(vhvi.vhv.4)`
- Any feature connected to VHVPoly becomes a very-high-voltage feature
- :drc_flag:`NC`
-
* - :drc_rule:`(vhvi.vhv.5)`
- Diffusion that is not a part of a drain-extended device (i.e., diff not areaid:en) must not be on the same net as VHVSourceDrain. Only diffusion inside :drc_tag:`areaid.ed` and LV diffusion tagged with vhvi:dg are exempted.
-
-
* - :drc_rule:`(vhvi.vhv.6)`
- Poly resistor can act as a VHV propagation stopper. For this, it should be tagged with text "vhv_block"
- :drc_flag:`NC`
-
* - :drc_rule:`(vhvi.1.-)`
- Min width of vhvi:dg
-
- 0.020
* - :drc_rule:`(vhvi.2.-)`
- Vhvi:dg cannot overlap areaid:ce
-
-
* - :drc_rule:`(vhvi.3.-)`
- VHVGate must overlap hvi:dg
-
-
* - :drc_rule:`(vhvi.4.-)`
- Poly connected to the same net as a VHVSourceDrain must be tagged with vhvi:dg layer
-
-
* - :drc_rule:`(vhvi.5.-)`
- Vhvi:dg cannot straddle VHVSourceDrain
-
-
* - :drc_rule:`(vhvi.6.-)`
- Vhvi:dg overlapping VHVSourceDrain must not overlap poly
- Min space between nwell tagged with vhvi:dg and deep nwell, nwell, or n+diff on a separate net (except for n+diff overlapping nwell tagged with vhvi:dg).