13.07.2015 Views

Porosity Aware Buffered Steiner Tree Construction - Computer ...

Porosity Aware Buffered Steiner Tree Construction - Computer ...

Porosity Aware Buffered Steiner Tree Construction - Computer ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. XX, NO. Y, MONTH 2003 102SourceSourcev1v5v1v5v1v5v4v3v4v3v4v3v2v2v2(a)(b)(c)Fig. 3. (a) Candidate solutions are generated from v 2 and v 3 and propagated to every tile, which is shaded, in the plate for v 4 . Solution search is limitedto the bounding boxes indicated by the thickened dashed lines. (b) Solutions from v 1 and every tile in the plate for v 4 are propagated to the plate for v 5 . (c)Solutions from plate of v 5 are propagated to the source and the thin solid lines indicate an alternative tree that may result from this process.a van Ginneken style buffer insertion algorithm that employshigher order delay models, handles slew and load capacitanceconstraints, manages a library of inverting and non-invertingbuffers and trades off buffer resource utilization with solutionquality. Integrating a <strong>Steiner</strong> tree construction into this algorithmwhile maintaining all its features would be prohibitive.However, just constructing a <strong>Steiner</strong> tree without performingbuffer insertions cannot possibly yield the best topology.Therefore, we propose to solve the porosity aware buffered<strong>Steiner</strong> tree problem through the following four stages:1) Initial porosity ignorant timing-driven <strong>Steiner</strong> tree construction2) Plate-based adjustment for porosity improvement3) Local blockage avoidance4) Van Ginneken style buffer insertionFor stage one, one can construct a timing-driven <strong>Steiner</strong> treethrough any heuristics. We choose to apply the “buffer aware”C-<strong>Tree</strong> algorithm [3]. The C-<strong>Tree</strong> algorithm first clusters thesinks according to their timing criticality, signal polarity andlocation proximity. Then a timing driven <strong>Steiner</strong> tree algorithmis applied to obtain the intra-cluster and inter-cluster routings.Stage 2 contains the key ideas behind the algorithm. Theplate-based adjustment phase modifies the existing timingdriven<strong>Steiner</strong> in an effort to reduce congestion cost whilemaintaining the tree’s high performance. One of the key elementsis that it allows <strong>Steiner</strong> points to migrate outside of highporositytiles into lower-porosity tiles to reduce congestionwhile maintaining (if not improving) performance.After Stage 2, the <strong>Steiner</strong> tree is correct in that it goesthrough the tiles that optimize performance while minimizingporosity cost, though the routes may overlap blockages. Performinglocal blockage avoidance in Stage 3, manipulates theroutes within each tile to avoid blockages, thereby allowingmore buffer insertion candidates. However, this stage does notdisturb the tree topology uncovered from Stage 2.Finally, in Stage 4 the resulting tree topology is fixed for vanGinneken style buffer insertion [16]. Van Ginneken’s algorithmis a dynamic programming based bottom-up approach. A setof candidate solutions are propagated from leaf nodes towardthe source and the optimal solution is selected at the source.Since we use known algorithms for Stages 1 and 4, the restof the discussion focuses on the other two stages.B. Stage 2: Plate-based AdjustmentsThe basic idea for the plate-based adjustment is to perform asimplified simultaneous buffer insertion and local tree adjustmentso that the <strong>Steiner</strong> nodes and wiring paths can be movedto regions with greater porosity without significant disturbanceon the timing performance obtained in Stage 1.The buffer insertion scheme employed here is similar to thelength based buffer insertion in [2]. However, we allow the<strong>Steiner</strong> points and wiring paths to be adjusted. This approachis also distinctive from a simultaneous buffer insertion and<strong>Steiner</strong> tree construction approach [14] in which the <strong>Steiner</strong>tree is built from scratch. The plate-based adjustment traversesthe given <strong>Steiner</strong> topology in a bottom-up fashion similar tovan Ginneken’s algorithm. During this process, <strong>Steiner</strong> nodesand wiring paths may be adjusted together with buffer insertionto generate multiple candidate solutions.The range of the moves are restrained by the plates definedas follows. For a node v i ∈ T (V,E) which is located in a tileg k ,aplate P (v i ) for v i is a set of tiles in the neighborhood ofg k including g k itself. During the plate-based adjustment, weconfine the location change for each <strong>Steiner</strong> node within itscorresponding plate. If v i is a sink or the source node we letP (v i )={g k }. For example, when v i is a branch node, we setP (v i ) to be the 3 × 3 array of tiles centered at g k . Of course,if g k lies on the border of the entire tile graph, P (v i ) mayinclude fewer tiles. Figure 3(a) gives an example of the platecorresponding to <strong>Steiner</strong> node v 4 . The plate indicates any ofthe possible location which the <strong>Steiner</strong> node may be movedto. This example shows the <strong>Steiner</strong> node being moved up onetile and right one tile.The search for alternate wiring paths is limited to theminimum bounding box covering the plates of two endnodes. In Figure 3, such bounding boxes are indicated by thethickened dashed lines. Therefore, the size of plates definethe search range for both <strong>Steiner</strong> nodes and wiring paths.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!