An approach for representing polygons in an integrated circuit (IC) layout
is provided. Polygons are represented by one or more wires, which in turn
are each represented by one or more wire segments. Each wire segment is
represented by a pair of directed line segments. A data structure
hierarchy includes polygon data, wire data, wire segment data and branch
data. The polygon data represents a set of IC devices to be represented in
the IC layout. The wire data represents the wires that represent the
polygons and specifies the associated wire segments and associated
polygons. The wire segment data represents the wire segments and specifies
the associated directed line segments for each wire segment that represent
the wires and references the wire data. The branch data specifies
connections between wires by specifying the connecting wire segments in
the wires. A spacing check between a first polygon and a second polygon
involves determining the canonical direction from the first polygon to the
second polygon and testing the two closest faces between the polygons. To
satisfy a spacing violation, an exclusion zone is constructed around the
first polygon and the second polygon is moved a distance outside the
exclusion zone which causes the minimum spacing required by a set of
predetermined spacing criteria to be satisfied.