Professional Documents
Culture Documents
Area.
Speed. Power dissipation. Design time. Testability.
PHYSICAL DESIGN
Converts a circuit description into a geometric description. This description is used for fabrication of the chip. Basic steps in the physical design cycle: Partitioning Floorplanning and placement Routing Compaction
LAYOUT COMPACTION
After P&R, the layout is functionally complete. Some vacant space may still be present in the layout. Due to non-optimality of P&R Compaction = removing vacant space Improves cost, performance, and yield Key for high-performance full-custom layouts Standard cells only channel heights may be minimized But channel compactors are near-optimal
Compaction tries to minimize total layout area while Retaining speed Respecting violating design rules and designer-specified constraints Three ways to minimize the layout area
Reshaping features
DESIGN RULES
Interface between Design Engineer and Process Engineer Guidelines for constructing process masks Unit dimension: Minimum line width Scalable design rules: lambda parameter Absolute dimensions (micron rules)
PROCESS LAYERS
Compaction Algorithms
Based on minimum distance between features
Constraint graph based Virtual grid based
Connectivity Constraints
If two features X and Y are required to be within a
distance s of each other. A physical connection can be represented in the graph as a pair of edges between X and Y, each with weight s.
Separation Constraints
Two features X and Y are required to be at least d units apart from each other. Represented as an edge from X to Y of weight d.
Example
Example
2- Dimensional Compaction
2-D compaction is in general much better than performing 1-D compaction. 2-D compaction, if solved optimally, produces minimum-area layouts. It is very time consuming. Thus 1-D compaction techniques have been proposed. Perform x-direction compaction moves while making small moves in the y-direction.
Example
1-Dimensional Compaction
A deterministic algorithm.
Key idea is to provide enough lateral movements to blocks during compaction to resolve interferences. This is called 1-dimensional compactor, since the geometry is not as free as in true 2dimensional compaction. The algorithm maintains an X-Y adjacency graph.
Vertices represent blocks. Edges represent horizontal and vertical adjacency.
Two blocks have a horizontal edge if they share a vertical boundary. Two blocks have a vertical edge if they share a horizontal boundary. The labels on the edges represent the minimum allowable distance between blocks. Four additional vertices are added to keep all the blocks within the required bounded rectangle. Free space is ignored in computing the neighborhood edges between blocks The algorithm assumes that the input is a partially completed layout, obtained by two applications of a 1-D compactor.
Maintains two lists floor and ceiling. Floor consists of all the blocks which are visible from the top, and may become a neighbor of future block. Ceiling is a list of all blocks which can be moved immediately (namely, those which are visible from the bottom). Selects the lowest block in the ceiling list and moves it to the place on the floor which maximizes the gap between floor and ceiling. The process is continued until all blocks are moved from ceiling to floor.
Layout Constraints
For a given layout instance, all features may be described by a set of placement constraints These layout constraints are imposed by design rules Min spacing (separation) design rules
Expressing constraints
Goal of 1-D compaction is to generate a minimum width layout. Determination of minimum width is equivalent to solving a longest path problem. The longest path from source to a vertex is the coordinate of the vertex. In practical layouts, the constraints graphs are very local. Most edges represent very local constraints in the layout. Theoretically, run time is O(|V|+|E|) Practically, run time is close to linear in |V|, the size of the layout!
Compute the longest path in a graph G = <V,E,constraints,Origin> (constraints is a set of labels, Origin is the super-source of the DAG) Forward-prop(W){ for each vertex v in W for each edge <v,w> from v value(w) = max(value(w), value(v) + value(w) + constraint(<v,w>)) if all incoming edges of w have been traversed add w to W } Longest path(G) Forward_prop(Origin) }
Compute the longest path in a graph G = <V, E, constraints, ,Origin> (constraints is a set of labels, Origin is the super-source of the DAG) Forward-prop(W) { for each vertex v in W for each edge <v,w> from v value(w) = max(value(w), value(v) + value(w) + constraint(<v,w>)) if all incoming edges of w have been traversed add w to W } Longest path(G) Forward_prop(Origin) }
Compute the longest path in a graph G = <V,E,constraints,Origin> (constraints is a set of labels, Origin is the super-source of the DAG) Forward-prop(W){ for each vertex v in W for each edge <v,w> from v value(w) = max(value(w), value(v) + value(w) + constraint(<v,w>)) if all incoming edges of w have been traversed add w to W } Longest path(G) Forward_prop(Origin) }
Compute the longest path in a graph G = <V,E,constraints,Origin> (constraints is a set of labels, Origin is the super-source of the DAG) Forward-prop(W){ for each vertex v in W for each edge <v,w> from v value(w) = max(value(w), value(v) + value(w) + constraint(<v,w>)) if all incoming edges of w have been traversed add w to W } Longest path(G) Forward_prop(Origin) }
Compute the longest path in a graph G = <V,E,constraints,Origin> (constraints is a set of labels, Origin is the super-source of the DAG) Forward-prop(W){ for each vertex v in W for each edge <v,w> from v value(w) = max(value(w), value(v) + value(w) + constraint(<v,w>)) if all incoming edges of w have been traversed add w to W } Longest path(G) Forward_prop(Origin) }
References
Algorithms for VLSI Design AutomationSabih H.Gerez Layout compaction - Prof. A. R. Newton Prof. Kurt Keutzer www.wikipedia.com www.gigapedia.com
THANK YOU