13.0 Dummy Fill Rules And Guidelines
====================================

This part of the document covers rules for dummy COMP, dummy Poly2 and dummy metal. Dummy COMP is mandatory to put in the empty field area in order to control STI CMP dishing however dummy Poly2 and dummy metals requirement is based on the total pattern density.

**Input Layers Required for Dummy generation**

The layers required to generate the dummy COMP is COMP, POLY2, Nwell, LVPWEL, Dualgate. Use “NDMY” mark layer to exclude dummy COMP generation in any area if needed (to exclude dummy COMP in that area).

a. Use the “RES_MK” layer in all resistors to avoid generation of dummy COMP in those areas. It is necessary to avoid dummy COMP generation underneath all well and poly2 resistors. Hence RES_MK layer is necessary for all resistors. Use IND_MK layer in inductors (applicable for RF processes only)

b. The layers required to generate dummy Poly2 includes COMP, POLY2, Nwell, Metal1, Metal2 and PMNDMY for dummy Poly2 exclusion.

c. Use “PMNDMY” layer for excluding any dummy Poly2 generation in any area if needed (to exclude dummy Poly2 generation in that area).

d. The layers required to generate dummy metal are: metal layers, MIM, Poly fuse and Metal fuse, Poly2 and PMNDMY.

e. Use “PMNDMY” layer for excluding any dummy metal generation in any area if needed (to exclude dummy metal generation in that area).

**The hierarchical database is to be sent to the CAD group in GlobalFoundries for dummy generation if dummies are to be generated by GlobalFoundries.**


.. toctree::
    :glob:

    drm_13_1
    drm_13_2
    drm_13_3
