# Metal fill This module inserts floating metal fill shapes to meet metal density design rules while obeying DRC constraints. It is driven by a `json` configuration file. ## Commands ``` % density_fill -rules [-area ] ``` If `-area` is not specified, the core area will be used. ## Example scripts The rules `json` file controls fill and you can see an example [here](https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/blob/master/flow/platforms/sky130hd/fill.json). The schema for the `json` is: ``` json { "layers": { "": { "layers": "", "names": "", "opc": { "datatype": "", "width": "", "height": "", "space_to_fill": "", "space_to_non_fill": "", "space_line_end": "" }, "non-opc": { "datatype": "", "width": "", "height": "", "space_to_fill": "", "space_to_non_fill": "" } }, ... } } ``` The `opc` section is optional depending on your process. The width/height lists are effectively parallel arrays of shapes to try in left to right order (generally larger to smaller). The layer grouping is for convenience. For example in some technologies many layers have similar rules so it is convenient to have a `Mx`, `Cx` group. This all started out in `klayout` so there are some obsolete fields that the parser accepts but ignores (e.g., `space_to_outline`). ## Regression tests ## Limitations ## FAQs Check out [GitHub discussion](https://github.com/The-OpenROAD-Project/OpenROAD/discussions/categories/q-a?discussions_q=category%3AQ%26A+metal%20fill+in%3Atitle) about this tool. ## License BSD 3-Clause License. See [LICENSE](LICENSE) file.