The final result of combination leave us a long DPS containing all the nets in design; all the components are turned into a super component by CCPs. A notable fact is that the DPS should still hold the character of being a clockwise-ordered pin sequence of the design. To assign the layer of nets, we must select the maximum pin set from the DPS that can be routed without crossing. As the shapes of the blockage do not really matter in finding the routing topology, we can treat it as a circle, and the blank area outside this circle is our routing resource, as shown in Fig. 3.5. Applying a rough against wall route on the circle generate those stroked
by Lemma 3.1.1. From the figure, it occurs to us that an algorithm for maximum independent set(MIS) problem of string compatibility could be employed to solve the layer assignment and routing ordering. A work [17] on channel routing happens to satisfy our needs. The MIS problem on a general graph is an NP-complete problem, while utilize special structure of arcs, [17] can acquire optimal solution with an elegant dynamic programming(DP) algorithm. This algorithm was proposed to solve the problem in channel routing by modeling the pins on both side of channel as a closed ring; it finds maximum number of nets which can be routed inside single-layer channel without crossing. In [17], MIS of an arc from element i to j is the maximum number of cuts which can reside between i and j. It derived a recursive relationship between MIS of the arcs3 based on the property above where k is the element such that j and k forms a cut.
MIS(i, j) =
Further, it can be solved with a dynamic programming in time complexity of O(n2), where n is the number of elements in given sequence. Though our routing, opposite to this work, is routing outside the circle, they are conceptually identical problem.
Inspect Fig.3.5 carefully, we can see that if signal H is in the MIS of signal I, H must be routed before I, or it will be blocked; we say H is a prerequisite of I and this relation forms a partial order. This observation is also consistent with the fact that CCPs all have MIS of 0, they must be routed. Modifying the algorithm for channel routing slightly by adding an extra field in the DP table storing the MIS, we can simultaneously get the MIS of nets and serve them as our routing orders.
After order and layer assignment are figured out, we can finally apply the against wall routing on the design. The router is in fact a shortest-path router, say, maze
3The first case is the boundary condition, the second stands cutjk has a chance to be selected into MIS(i, j), and the last case is when the cutjk is outside the range ofi to j.
Figure 3.5: The left side is the design with all components connected. The right side is the combined DPS of example design arranged as a ring. Following the dashed arrow in both side, you will see they exactly express each other.
Figure 3.6: The routing result of against-the-wall routing. All nets are connected in order and routed against the “walls”. The results show that the nets will be close to the wires of the connection of the CCPs and have resembled wire shape for bus requirement.
router, which assigns strong costs on those grids not beside an obstacle. Despite being a grid based router, this router has only two directions to go, it either goes clockwise along border or inversely, and is hence very efficient in run time. In the long run, all the nets have been connected, and the topology route is finished. The example result is shown in Fig. 3.6.
Chapter 4
Peripheral Matching
The results could be still far from desirable, even if we have tried to prevent large skew by planing nets altogether in topology routing. As been discussed in introduction, the presence of skews among signals may lead to undesired degrading on signal integrity or, in extreme cases, cause malfunction of chips. Here we pro-pose a length-matching method that could enhance solution in terms of wire-length variation by reassembling routes by a linear programming(LP) framework.
Since we have found that dominating mismatches in bus often occur on those nets at a long distance from their groups members, our next algorithm focuses on matching the routing around components. That is, we assume the route we get from last step are virtually matched away from components. Usually, even if they are not exactly matched, the experiences suggest the responsible skews will be small relative to those caused by ill-placed pins. It is because our bus have been guided by its CCP and had similar shapes and distances in topology routing. Nevertheless, owing to the existence of obstacles, this assumption may fall impractical in some cases. We will relax this assumption later in Section. 4.3.2.
4.1 Preliminaries
Before we describe the algorithm, terms and notations that will be referred in problem formulations and explanations of our algorithm are defined.
Figure 4.1: Map the points around the component into our custom coordinate sys-tem.
Given a rectangle R, we say the rectangle having the same center with both width and height larger than R by X × 2W S to be the boxX relative to R, where W S is the specified wire space of nets.
For an arbitrary rectangle R, we can define a coordinate system called peripheral value(PV). PVs and peripheral points are one-to-one mapped, that is, there exists exactly one point on R for every unique PV and vice versa.