This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

Topology for Substrate Routing
in Semiconductor Package Design

Rak-Kyeong Seong 11footnotemark: 1 Jaeho Yang Sang-Hoon Han Samsung SDS, AI Advanced Research Lab, Samsung R&D Campus, Seocho-Gu, Seoul, South Korea
Abstract

In this work, we propose a new signal routing method for solving routing problems that occur in the design process of semiconductor package substrates. Our work uses a topological transformation of the layers of the package substrate in order to simplify the routing problem into a problem of connecting points on a circle with non-intersecting straight line segments. The circle, which we call the Circular Frame, is a polygonal schema, which is originally used in topology to study the topological structure of 2-manifolds. We show through experiments that our new routing method based on the Circular Frame competes with certain grid-based routing algorithms.

1 Introduction

Refer to caption
Figure 1: Fine Pitch Ball Grid Array (FBGA) Package Substrate Layout. (a) An illustration of a 3-layered FBGA package substrate with vias connecting different substrate layers. (b) Each individual layer (here layer 2) has its own set of start and end points that need to be connected with non-intersecting paths.

Semiconductor devices are at the forefront of innovation in the information technology (IT) industry and play an essential role in driving innovations in areas such as consumer electronics, telecommunications, artificial intelligence or data analysis and security. Although semiconductor devices play such a pivotal role in IT innovation, the integrated circuit (IC) packaging process of semiconductor devices still heavily relies on human expertise. For substrates in, for example, chip-scale packages such as multi-layered Fine Pitched Ball Grid Array (FBGA) packages as illustrated in Fig. 1, most of the design process is about finding the optimal connections between bond fingers, vias and solder balls. Given the variety of types for semiconductor packages, the problem of substrate routing is challenging. As a result, substrate routing problems are often solved with the help of routing methods that are implemented in many computer-aided design (CAD) solutions. In line with recent advances in Electronic Design Automation (EDA), in this work, we outline a new routing method for package substrate design that competes with the performance of other routing methods.

Refer to caption
Figure 2: Geometrical and Topological Routers. (a) In geometrical routers, start (sis_{i}) and end (tit_{i}) points are sequentially connected with shortest paths, which can result in a lack of clearance for any following pairs, in this case s3s_{3} and t3t_{3}. (b) In topological routers, the connection problem only deals with relative positions, avoiding problems of clearance.

The problem of finding non-intersecting paths that connect a set of start and end points on a plane is one of the oldest problems in computational geometry and graph theory. We know that Dijkstra’s algorithm and the A*-algorithm [9, 14] are examples of graph traversal algorithms, which are used to solve such routing problems. However, substrate routing becomes exponentially more complicated with an increasing number of start and end point pairs.

Most routing algorithms such as Dijkstra’s algorithm, the A*-algorithm and other grid-based Maze Router algorithms [18, 17, 16, 1, 6] are known as geometrical routers. Their disadvantage is that when start and end point pairs are connected sequentially on consecutive shortest paths, it becomes increasingly more likely that there will be not enough clearance left for consecutive connections between pairs of points. This problem with geometrical routers is illustrated in Fig. 2.

In this work, we are interested in a different class of routers known as topological routers [10]. In order to connect fully all points, topological routers aim to find the topological class of the connections first, i.e. the relative positions of paths. After the topological class of the connecting paths is found, with a choice of representation scheme, absolute coordinates are assigned to represent the routing result in real space. This avoids situations where there is a lack of clearance as it is often the case for geometrical routers. For topological routers, paths can always be inserted between already routed paths in order to solve the connection problem. Fig. 2 illustrates this difference between geometrical and topological routers.

Our work is based on the concept of topological routers and proposes a novel topological representation and routing algorithm for substrate routing that competes with the performance of conventional geometrical routers. We make use of topology, more specifically the study of 2-manifolds and polygonal schema [13, 20, 11, 12] in mathematics in order to topologically transform the package substrate into a simpler abstract environment where routing design can be performed more straightforwardly.

In an earlier work [21], we outlined the general principle of our new method for general routing problems. In the current work, we extend our proposal with a focus on the problem of substrate routing in semiconductor chip package design. In particular, we apply our substrate routing method to an explicit example of a Fine Pitch Ball Grid Array (FBGA) package.

Note that our work concentrates on a substrate routing method that finds a fully connected routing solution and does not take into account other metrics such as the wire length or optimal placement of via points.222Our routing method can be adjusted to take into account an optimization metric and this will be the subject of upcoming work. Our work also concentrates on signal routing in substrates where the routing problem involves connections between a single start and a single corresponding end point.333Multi-pin routing that occurs in power and ground routing or plating lines can be covered in a generalized version of our method, which we plan to cover in future works.

We test our routing method’s performance against geometrical routers and conclude with a summary of results and an actual FBGA package substrate design that was completed using our new routing method.

2 Background

Refer to caption
Figure 3: Preserving Routing Topology. (a) Rubber-band sketch representation of a connected set of start and end points, (b) compared to a rectilinear representation of the same connected solution with the same routing topology.

In this work, we propose based on our earlier work in [21] a new method of solving routing problems that occur during the package substrate design process by using topology. The idea of making use of concepts in topology for designing circuits is not new as shown by the works on rubber-band routing in [10, 8]. These works discuss how certain design features in circuit design can be altered without changing the connections between points, i.e. the topology of the paths, as illustrated in Fig. 3. Moreover, they give an insight into how paths can be bent and moved in such a way that problems of clearance occurring with traditional geometrical routers can be avoided.

Several routing algorithms have been proposed for EDA since the 1990s [17, 16, 8, 6], which are based on the idea of grid-dependent geometrical routers. Moreover, more recent work in EDA considers applications and improvements on geometrical routers in areas such as length matching routing [7], escape routing [4, 2, 3, 22], routing with obstacle avoidance [19] and pin assignment and placement algorithms [15]. In comparison, topological routers have been studied less extensively [10, 8] although, as mentioned above, they have considerable advantages over geometrical routers.

Refer to caption
Figure 4: Polygonal Schema. (a) A torus with its corresponding polygonal schema, which is a rectangle with opposite edges identified with each other. (b) A path on the torus can be represented as a path on the corresponding polygonal schema.

In contrast to the developments made in geometrical routing, our work tries to push forward the development of topological routing. In particular, our work proposes the use of a novel topological transformation to completely transform the substrate routing environment into a topologically equivalent environment. This is a completely new approach for routing in package substrates. Our proposed transformation maps the routing problem to a topologically simpler space where the problem can be solved more straightforwardly. This is the case when in the new environment only relative positions are preserved under the transformation. Given that the transformation is reversible, after all nets are connected, the space with the routing result is transformed back to its original substrate environment.

Such topological transformations and representations that preserve relative positions rather than absolute positions occur extensively in the study of compact 2-manifolds through polygonal schema [13]. These were introduced in mathematics to study the topology of compact 2-manifolds and are particularly useful in representing the homotopy of paths on these manifolds [11]. As a result, polygonal schema appeared also extensively in relation to so-called non-crossing walk problems on compact 2-manifolds [20, 12].

Let us illustrate briefly the concept behind polygonal schema using one of the simplest compact 2-manifolds, the Riemann surface of genus 1, which is also known as a torus or doughnut. The torus can be represented by a rectangle when opposite sides of the rectangle are identified with each other. Any such simple convex polygon together with a boundary gluing pattern shown in Fig. 4 is known as a polygonal schema of the represented 2-manifold. Using the example of the 2-torus, we learn that a rectangle with its opposite boundary sides identified with each other is topologically equivalent to a torus. We can see from this example that even though a torus is 3-dimensional, it can be much more straightforwardly represented by its 2-dimensional polygonal schema.

Refer to caption
Figure 5: Routing Problem in a multi-layered FBGA Package Substrate. Each layer of the package substrate has its own set of start and end points. After solving the routing problem on each substrate layer, the layers can be connected again along the vias.

We claim that a semiconductor package substrate, which usually contains multiple interconnected layers, can be described topologically in terms of polygonal schema. Substrate layers, which are connected by vias, can be separated and individually represented by polygonal schema. Because we split the layers for the topological transformation, each layer has its layer-specific start and end points corresponding to either pins, solder balls or vias. We keep track of which via connects which layers together so that when we reverse the topological transformation, we are able to sew back together the vias between each pair of layers to form the original multi-layered package substrate as shown in Fig. 5. Note that the locations of the via points plays an important role in the overall global routing solution. Since we focus on the problem of finding a fully connected routing solution and consider no other optimization metrics, we refer to future work on optimizing the routing solution using our method.

In the following section, we describe how we make use of the topological transformation specific to our problem and describe a method of how to complete the routing in the topologically transformed routing environment.

Refer to caption
Figure 6: Start Points, End Points and Trees. (a) Start points siSs_{i}\in S and end points tiTt_{i}\in T on a plane bounded by BB. (b) Trees RR made of edges rir_{i} connect all sis_{i} and tit_{i} to points bjb_{j} on the boundary BB.

3 Circular Frame

Let there be a set SS of start points sis_{i} and a set TT of end points tit_{i} with pairwise identification sitis_{i}\rightarrow t_{i}. For our routing problem, we call such a pair a net. These points are on a plane bounded by BB as shown in Fig. 6 (a). In order to transform this environment, we introduce trees RR consisting of a set of edges rir_{i} such that these edges have at their ends either siSs_{i}\in S, tiTt_{i}\in T or biBb_{i}\in B. All points in SS and TT are each connected to a single tree. Note that a tree RR is always connected by exactly one edge with the boundary BB at a point bib_{i} as shown in Fig. 6 (b). These trees RR can be found using a minimum spanning tree algorithm such as Kruskal’s algorithm.444Note that the choice of method for finding the spanning trees may lead to a single tree. Furthermore, the choice will impact the routing result and leads to questions about optimization that will be studied in future work [5]. Such an algorithm needs to be generalized such that each tree RR gets connected to the boundary BB at a point bib_{i} by a single edge rir_{i}. The start and end points do not need to be connected to BB by a single tree RR. Each point can be connected to the boundary BB by separate trees where each tree is separately connected to BB.

Refer to caption
Figure 7: Cutting along Trees. (a) Cutting the plane along the tree edges riRr_{i}\in R (b) splits the points connected to the edges.

Our proposed topological transformation cuts the plane along all the edges rir_{i} such that all points in SS and TT are now placed on a new boundary that includes the cut-lines along rir_{i} as shown in Fig. 7. The cutting process splits some of the points sis_{i} and tit_{i} to multiple copies if the original points are connected to more than one tree edge rir_{i}. The boundary points at which trees are attached to the original boundary BB are always separated into a pair bib_{i} and bib_{i}^{\prime}. We also notice that during the cutting process the edges rir_{i} separate into pairs rir_{i} and rir_{i}^{\prime}.

Refer to caption
Figure 8: Tree Lines as Points. (a) The cutting process splits the edges into pairs rir_{i}, rir_{i}^{\prime}. (b) Each of the edges can be represented as points on the combined boundary HH. All points are now on HH.

We pinch the edges rir_{i} and rir_{i}^{\prime} originating from the trees RR in such a way that they are also represented by points on the new boundary HH as shown in Fig. 8. As a result, the start points sis_{i}, end points tit_{i}, the tree edges rir_{i}, boundary points bib_{i} and their corresponding partners generated by the cutting process are all represented as points on a single combined boundary HH as shown in Fig. 8.

Refer to caption
Figure 9: Circular Frame. (a) The combined boundary HH can be deformed to form (b) a circle. The interior of the circle represents the original substrate layer that was cut, and the start, end, boundary and tree edge points are all on the circle. We call this representation of the original substrate layer the Circular Frame.

The combined boundary HH can be deformed into a circle as illustrated in Fig. 9. We call this representation of the original substrate layer the Circular Frame. The order in which the points appear along the circle is the same as they appear when one traverses HH in a given orientation as shown in Fig. 9.

The Circular Frame is topologically equivalent to the original substrate layer where the routing is taking place. The advantage of using the Circular Frame representation of the routing problem is that paths connecting pairs of points are represented as straight line segments connecting points on the boundary of the Circular Frame. These points are either start or end points of the original path, points representing rir_{i} or rir_{i}^{\prime}, or points on the original boundary BB. When a path is connected to rir_{i} or rir_{i}^{\prime} in the Circular Frame, it corresponds in the substrate layer to a path that crosses the associated tree edge rir_{i} as illustrated in Fig. 10. A further advantage of the Circular Frame is that line intersections can be easily detected by going through the ordering of line ends on the boundary of the Circular Frame.

Refer to caption
Figure 10: Routing Representation in the Circular Frame. (a) Paths connecting start and end points in the Circular Frame via the point pairs (ri,ri)(r_{i},r_{i}^{\prime}) (b) are combined by glueing together rir_{i} with rir_{i}^{\prime} to form (c) the original substrate layer with the complete routing solution.

The fact that the topological transformation is reversible enables us to solve the routing problem in the simpler Circular Frame environment and then transform the routing solution back to the original substrate layer environment. This is done by reversing the transformation as illustrated in Fig. 10. Within the Circular Frame, the routing problem is simply a problem of connecting points on the boundary of a circle with non-intersecting straight line segments as illustrated in Fig. 10 (a).

4 Routing Method

In this section, we outline a method of connecting the nets in the Circular Frame. As noted in the section above, although the Circular Frame is topologically equivalent to the original planar substrate layer bounded by BB, it simplifies the routing problem to a problem of connecting points on a circle with straight line segments that do not intersect in the interior of the circle. The following section outlines how the Circular Frame simplifies the routing problem.

Starting from a Circular Frame with no points connected, as illustrated in Fig. 9 (b), we can choose to connect the first net, i.e. s1s_{1} with t1t_{1}. Due to the cutting process of the original routing plane, as shown in Fig. 8, the end point t1t_{1} is split into 3 copies in the Circular Frame, i.e. t1t_{1}, t1t_{1}^{\prime} and ti′′t_{i}^{\prime\prime}. We note that in the Circular Frame, connecting s1s_{1} to either t1t_{1}, t1t_{1}^{\prime} or t1′′t_{1}^{\prime\prime} is possible. In the actual routing plane, the choice will determine in which direction the connecting path is going to enter the end point t1t_{1} in the original substrate layer environment.

Refer to caption
Figure 11: Slices in the Circular Frame. (a) A path connecting two points on the boundary of the Circular Frame (b) divides the Circular Frame into 2 slices σ1\sigma_{1} (green) and σ2\sigma_{2} (blue).

For the moment, without loss of generality, let us assume that we connect in the Circular Frame s1s_{1} with t1′′t_{1}^{\prime\prime} as illustrated in Fig. 11. Note that any connection between two points in the Circular Frame can be realized in terms of straight line segments that do not intersect in the interior of the Circular Frame. Due to the line segment connecting s1s_{1} with t1′′t_{1}^{\prime\prime}, the Circular Frame gets divided into two sections, which we call slices. Fig. 11 shows the two slices σ1\sigma_{1} and σ2\sigma_{2}. Each slice has its own boundary with a subset of points from the boundary of the Circular Frame. For our example in Fig. 11, the two slices σ1\sigma_{1} and σ2\sigma_{2} have the points {s1,t1′′,r1,b1,b1,r1,t1,r2,s2,r3}\{s_{1},t_{1}^{\prime\prime},r_{1}^{\prime},b_{1}^{\prime},b_{1},r_{1},t_{1},r_{2},s_{2},r_{3}\} and {s1,r3,s2,r2,t1,r4,t2,r4,t1′′}\{s_{1},r_{3}^{\prime},s_{2}^{\prime},r_{2}^{\prime},t_{1}^{\prime},r_{4},t_{2},r_{4}^{\prime},t_{1}^{\prime\prime}\} each on their respective boundaries. Note that the points that we connected, s1s_{1} and t1′′t_{1}^{\prime\prime}, are both shared by the boundary of the two slices. The line segment, which connects s1s_{1} with t1′′t_{1}^{\prime\prime}, is precisely the overlap of the two boundaries.

Refer to caption
Figure 12: Moving Between Slices. (a) Points rir_{i} and rir_{i}^{\prime}, which always appear in pairs, correspond to the tree edges along which the original substrate layer was cut to give the Circular Frame. (b) The pairs can be pulled together along the dotted lines to give (c) the original substrate layer. We can consider these pairs as ‘tunnels’ along which a connecting path can move between different slices of the Circular Frame.

As shown in Fig. 12, the two slices σ1\sigma_{1} and σ2\sigma_{2} are not completely disconnected. We recall that the points rir_{i} and rir_{i}^{\prime} that represent tree edges in the Circular Frame always come in pairs as explained in Section 3. rir_{i} and rir_{i}^{\prime} precisely identify the tree edges along which the original substrate layer was cut in order to obtain the Circular Frame as illustrated in Fig. 7. Accordingly, they represent points that need to be pairwise glued together when the Circular Frame is transformed back to the original substrate layer environment. Fig. 12 shows these pairwise connections as dotted lines. The two slices σ1\sigma_{1} and σ2\sigma_{2} in Fig. 12 are connected by the pairs (r2,r2)(r_{2},r_{2}^{\prime}) and (r3,r3)(r_{3},r_{3}^{\prime}).

When we now attempt to connect start point s2s_{2}, which is on the boundary of σ1\sigma_{1}, with its corresponding end point t2t_{2}, which is on the boundary of σ2\sigma_{2}, we have to move between the two slices σ1\sigma_{1} and σ2\sigma_{2}. As we noted above, the two slices are connected by the point pairs (r2,r2)(r_{2},r_{2}^{\prime}) and (r3,r3)(r_{3},r_{3}^{\prime}). Without loss of generality, by choosing point pair (r2,r2)(r_{2},r_{2}^{\prime}), s2s_{2} is connected with r2r_{2} in σ1\sigma_{1}, and then its partner r2r_{2}^{\prime} is connected with t2t_{2} in σ2\sigma_{2} as illustrated in Fig. 13. Note that by connecting s2s_{2} to t2t_{2} through the point pair (r2,r2)(r_{2},r_{2}^{\prime}), the original slices σ1\sigma_{1} and σ2\sigma_{2} are each divided into two slices by the two line segments connecting s2s_{2} with r2r_{2} and r2r_{2}^{\prime} with t2t_{2}. As a result, we end up with a total of four slices.

Refer to caption
Figure 13: Multiple Slices. (a) By connecting s2s_{2} to t2t_{2} through (r2,r2)(r_{2},r_{2}^{\prime}), the original slices σ1\sigma_{1} and σ2\sigma_{2} are each divided into two slices giving a total of four slices. (b) By glueing together rir_{i} with rir_{i}^{\prime}, we obtain (c) the original substrate layer.
Refer to caption
Figure 14: Slice Ordering. (a) Both (s1,t1)(s_{1},t_{1}^{\prime}) and (s2,t2)(s_{2},t_{2}) are connected through the point pair (r1,r1)(r_{1},r_{1}^{\prime}). (b) In order to make sure that when the points r1r_{1} and r1r_{1}^{\prime} are glued together the correct slices recombine with each other, (c) we need o(σ1,r1)=o(σ5,r1)o(\sigma_{1},r_{1})=o(\sigma_{5},r_{1}^{\prime}), o(σ2,r1)=o(σ4,r1)o(\sigma_{2},r_{1})=o(\sigma_{4},r_{1}^{\prime}) and o(σ3,r1)=o(σ3,r1)o(\sigma_{3},r_{1})=o(\sigma_{3},r_{1}^{\prime}).

There is also the possibility that more than one path goes through a point pair (r1,r1)(r_{1},r_{1}^{\prime}) as shown in Fig. 14. In the example in Fig. 14, both (s1,t1)(s_{1},t_{1}^{\prime}) and (s2,t2)(s_{2},t_{2}) are connected through the point pair (r1,r1)(r_{1},r_{1}^{\prime}). In such a situation, one has to make sure that the slice containing the origin point and the slice containing the destination point are in the same order. Let us define the order o(σ,ri)o(\sigma,r_{i}) of σ\sigma with respect to the point rir_{i} as the segment number of σ\sigma attached to rir_{i} in the Circular Frame when one counts anti-clockwise around rir_{i} starting from the boundary of the Circular Frame. In analogy, let us define the order o(σ,ri)o(\sigma,r_{i}^{\prime}) of σ\sigma with respect to the point rir_{i}^{\prime} as the segment number of σ\sigma attached to rir_{i}^{\prime} in the Circular Frame when one counts clockwise around rir_{i} starting from the boundary of the Circular Frame. For example, in Fig. 14, we note that o(σ1,r1)=o(σ5,r1)=1o(\sigma_{1},r_{1})=o(\sigma_{5},r_{1}^{\prime})=1, o(σ2,r1)=o(σ4,r1)=2o(\sigma_{2},r_{1})=o(\sigma_{4},r_{1}^{\prime})=2 and o(σ3,r1)=o(σ3,r1)=3o(\sigma_{3},r_{1})=o(\sigma_{3},r_{1}^{\prime})=3. Accordingly, anything starting in slice σ1\sigma_{1} can go through (r1,r1)(r_{1},r_{1}^{\prime}) to slice σ5\sigma_{5}, not any other slice. Similarly, we have o(σ2,r1)=o(σ4,r1)o(\sigma_{2},r_{1})=o(\sigma_{4},r_{1}^{\prime}) and o(σ3,r1)=o(σ3,r1)o(\sigma_{3},r_{1})=o(\sigma_{3},r_{1}^{\prime}), meaning that anything in slice σ2\sigma_{2} can be connected to σ4\sigma_{4} and anything in slice σ3\sigma_{3} can be connected to σ4\sigma_{4} via the edge point pair (ri,ri)(r_{i},r_{i}^{\prime}). Note that slice ordering is essential to make sure that when the edge points are glued together, the correct slices recombine with each other to give the original substrate layer as shown in Fig. 14 (c).

1:for each siSs_{i}\in S do 2:  select a copy si(u)s_{i}^{(u)} of sis_{i} 3:  select a copy ti(v)t_{i}^{(v)} of tit_{i} 4:  identify slice σ\sigma containing si(u)s_{i}^{(u)} 5:  identify slice ρ\rho containing ti(v)t_{i}^{(v)} 6:  if σ=ρ\sigma=\rho then 7:    connect si(u)s_{i}^{(u)} and ti(v)t_{i}^{(v)} 8:  else 9:    p=si(u)p=s_{i}^{(u)} 10:    repeat 11:     identify slice π\pi containing pp 12:     identify closest rkr_{k} to pp 13:     connect pp with rkr_{k} 14:     identify slice τ\tau containing rkr_{k}^{\prime} with o(π,rk)=o(τ,rk)o(\pi,r_{k})=o(\tau,r_{k}^{\prime}) 15:     if τ=ρ\tau=\rho then 16:      connect rkr_{k}^{\prime} with ti(v)t_{i}^{(v)} 17:     else 18:      p=rkp=r_{k}^{\prime}       19:    until si(u)s_{i}^{(u)} is connected with ti(v)t_{i}^{(v)}   

Figure 15: A Basic Circular Frame Routing Algorithm. Pseudocode for connecting nets in the Circular Frame.
Refer to caption
Figure 16: Routing Algorithm Example. (a) The original substrate layer consists of 4 start points sis_{i} placed on the boundary BB of the plane and 4 corresponding end points tit_{i}. By cutting the substrate layer along the tree edges rir_{i}, we obtain (b) the corresponding Circular Frame. We select s1s_{1} and t1t_{1} as the first pair to be connected. (c) Since both s1s_{1} and t1t_{1} are in slice σ1\sigma_{1}, we connect them. We select s2s_{2} and t2t_{2} as the second pair to be connected. (d) Because s2s_{2} and t2t_{2} are both in slice σ1\sigma_{1}, we connect them. We select s3s_{3} and t3t_{3} as the next pair to be connected. (e) Because s3s_{3} and t3t_{3} are both in slice σ1\sigma_{1}, we connect them. The final pair to be connected is selected as s4s_{4} and t4t_{4}. Here, s4s_{4} is in σ4\sigma_{4} and t4t_{4} is in σ1\sigma_{1}. (f) In σ4\sigma_{4}, the closest tunnelling point to σ4\sigma_{4} is r3r_{3} and we connect σ4\sigma_{4} with r3r_{3}. The partner of r3r_{3}, r3r_{3}^{\prime}, is in σ2\sigma_{2}. (g) Since in σ2\sigma_{2}, we still have not t4t_{4}, we look for the closest tunnelling point to r3r_{3}^{\prime}. We identify r4r_{4}^{\prime} and connect r3r_{3}^{\prime} with r4r_{4}^{\prime}. (h) The partner of r4r_{4}^{\prime}, r4r_{4}, is in slice σ1\sigma_{1} where we also have our destination point t4t_{4}. We connect r4r_{4} with t4t_{4} and hence have connected using tunnelling points s4s_{4} with t4t_{4}. (i) We reverse transform the Circular Frame with the routing result back to the original substrate layer by glueing together the edge point pairs (ri,ri)(r_{i},r_{i}^{\prime}).

Following these rules on connecting points in the Circular Frame, we outline a basic algorithm for connecting all points in Fig. 15. In line 12 of the algorithm in Fig. 15, the closest rkr_{k} to a given point pp in a slice π\pi is identified by the smallest number of points one needs to pass in order to go from pp to rkr_{k} along the boundary of π\pi.

We note that the algorithm in Fig. 15 is one example amongst many possible connection algorithms that one can formulate with the help of the Circular Frame. We plan to present variations of this algorithm in future work. For now, the algorithm in Fig. 15 does not have the aim to find the shortest possible paths between start and end point pairs. Instead, the algorithm in Fig. 15 simply has the aim to achieve full connection for all start and end point pairs. In fact, with the Circular Frame and the algorithm in Fig. 15, complete connection is always guaranteed. This is because the Circular Frame is only encoding the topology of the routing problem as illustrated in Fig. 2 and as a result there is no problem of clearance as it is the case for geometrical routers. Furthermore, in signal routing, paths always connect a single start point sis_{i} with a single end point tit_{i} and hence there is no possibility that a path completely encircles points that need to be connected by other paths in the Circular Frame.555Note that there is an optimization problem in terms of the choice of geometric sketch one uses to represent the routing solution given by its corresponding topological class. The problem of optimization will be the subject of future work. Fig. 16 illustrates an example where the algorithm in Fig. 15 is applied to solve the connection problem in the Circular Frame.

5 Embedding

We call the process of transforming the routing result in the Circular Frame back to the original substrate layer the embedding process. As discussed in the sections above, the Circular Frame can be transformed back to the original substrate layer by glueing together the point pairs (ri,ri)(r_{i},r_{i}^{\prime}) for all ii. Under this reverse transformation, the topology of the routing result, i.e. the identified paths connecting start points with corresponding end points, is preserved.

The information about which points correspond to which slices in the Circular Frame and the information about which slices are adjacent to each other is called the topological class TT [13] of the routing solution. The geometric sketch [10, 13] of a topological class is a specific embedding of the connecting paths in the routing solution.

An example of such a topological class Ti(Pi,Wi,Hi)T_{i}(P_{i},W_{i},H_{i}) for a path ρi\rho_{i} is the following information:

  • 1.

    The set of points Pi={pk(i)}P_{i}=\{p_{k}^{(i)}\} a path ρi\rho_{i} passes starting from sis_{i} and ending at tit_{i}.

  • 2.

    The set of orientations Wi={wk(i)}W_{i}=\{w_{k}^{(i)}\} a path ρi\rho_{i} takes when it passes points {pk(i)}\{p_{k}^{(i)}\}. If ρi\rho_{i} passes pk(i)p_{k}^{(i)} anti-clockwise wk(i)=+1w_{k}^{(i)}=+1, if ρi\rho_{i} passes pk(i)p_{k}^{(i)} clockwise wk(i)=1w_{k}^{(i)}=-1, and if pk(i)=sip_{k}^{(i)}=s_{i} or tit_{i} then wk(i)=0w_{k}^{(i)}=0.

  • 3.

    The set of heights Hi={hk(i)}H_{i}=\{h_{k}^{(i)}\} a path ρi\rho_{i} has when it passes points {pk(i)}\{p_{k}^{(i)}\}. A height hk(i)=mh_{k}^{(i)}=m indicates that between ρi\rho_{i} and pk(i)p_{k}^{(i)} there are m1m-1 other paths passing pk(i)p_{k}^{(i)}. If pk(i)=sip_{k}^{(i)}=s_{i} or tit_{i} then hk(i)=0h_{k}^{(i)}=0.

Note that Ti(Pi,Wi,Hi)T_{i}(P_{i},W_{i},H_{i}) for any path ρi\rho_{i} can be obtained from the Circular Frame of the routing solution.666 We note that one can introduce several other topological classes that encapsulate the routing result in the Circular Frame, for instance including the edges rir_{i}. We hope to present further versions in future work. In the example in Fig. 16, for path ρ4\rho_{4} connecting s4s_{4} with t4t_{4}, T4T_{4} is given by P4=(s4,t3,t2,t4)P_{4}=(s_{4},t_{3},t_{2},t_{4}), W4=(0,+1,+1,0)W_{4}=(0,+1,+1,0) and H4=(0,1,1,0)H_{4}=(0,1,1,0).

Refer to caption
Figure 17: Topological Class and Rubber-Band Sketch. (a) A topological class T(P,W,H)T(P,W,H) for a 3-path routing solution with (b) the corresponding rubber-band sketch representation. Note that the separation between paths passing t1t_{1} is given by the height interval Δh=0.5\Delta h=0.5. The paths are made of line segments (blue) and concentric arcs (red).

We make use of the rubber-band sketch from [10, 8] in order to represent the topological class of the routing result from the Circular Frame on the original planar environment. Fig. 3 (a) shows the rubber-band sketch of the same topological class represented in Fig. 3 (b). A characteristic feature of the rubber-band sketch is that paths are represented as line segments that can have any angle and the line segments are connected by arcs whenever the path passes a point. Fig. 17 illustrates an example of a topological class and its corresponding rubber-band representation.

For the purpose of this work, which is to present a new topological routing method that results in a topological class of a fully-connected routing result via the Circular Frame, we keep the review on topological classes and the rubber-band sketch representation short and refer to the works in [10, 8].

6 Experiment

Let us design experiments to compare the performance of the proposed routing algorithm based on the Circular Frame (CF) with variations of the A*-algorithm (AS).

6.1 General Setup

Let us first construct a planar environment with a boundary BB having 50.0x50.0-50.0\leq x\leq 50.0 and 50.0y50.0-50.0\leq y\leq 50.0. The start points S={s1,,sn}S=\{s_{1},\dots,s_{n}\} and end points T={t1,,tn}T=\{t_{1},\dots,t_{n}\} are represented as circles with radius r=0.5r=0.5 and their positions are given by the coordinates of their centers. For our experiment, we vary nn by setting it to n=2,4,6,8,10n=2,4,6,8,10.777Note that in many substrate designs, nets can be grouped into independent substrate segments containing on average around 10 start and end points in signal routing. The number of start points SS increases by adding consecutively (50.0,±4.0)(50.0,\pm 4.0), (50.0,±12.0)(50.0,\pm 12.0), (50.0,±20.0)(50.0,\pm 20.0), (50.0,±28.0)(50.0,\pm 28.0) and (50.0,±36.0)(50.0,\pm 36.0).

Refer to caption
Figure 18: Random Positions for End Points. N=1000N=1000 randomly generated end points t1t_{1} for s1s_{1} in an environment with n=2n=2 start and end point pairs. We have shown all end points t1t_{1} for s1s_{1} (red) at once to illustrate the random distribution of the points within the boundary of the environment.

For each nn, we generate N=1000N=1000 end ball sets TT whose coordinates are generated randomly within the boundary of the planar environment. The randomly generated end points tit_{i} have a minimum center-to-center separation dmin(ti,tj)=11d_{\min}(t_{i},t_{j})=11 to other end points tjt_{j} as well as a minimum center-to-center separation dmin(ti,sj)=11d_{\min}(t_{i},s_{j})=11 to start points sjs_{j}. The randomly generated end points also satisfy a minimum distance dmin(ti,bj)=3d_{\min}(t_{i},b_{j})=3 to any boundary point bjBb_{j}\in B of the plane.

We call each generated set (S,T)(S,T) a routing environment Eh=1NE_{h=1\dots N}. Fig. 18 shows an environment with n=2n=2, where all N=1000N=1000 randomly generated end points for s1s_{1} are illustrated simultaneously in order to illustrate that the randomly generated points are evenly distributed on the bounded plane.

6.2 Measurements

For each environment EhE_{h}, the routing problem is to connect all sis_{i} with the corresponding tit_{i} with non-intersecting paths. We run different routing algorithms for each environment EhE_{h} and measure the time tht_{h} that the algorithms take to complete the routing for all nets. Note that all algorithms are run on a laptop with CPU at 1.80 GHz (Intel i7-8550U) and 8 GB memory. If any of the nets are left disconnected, we label the routing result as incomplete.

For completed routing environments, we also measure for each connecting path between sis_{i} and tit_{i} the Euclidean path length lihl_{i}^{h}. The mean path length l¯h\overline{l}^{h} and the corresponding standard deviation σh\sigma^{h} for all connecting paths in EhE_{h} are also obtained.

In addition, we also measure the Manhattan distance between the start node sis_{i} and corresponding end node tit_{i},

dih(si,ti)=|x(si)x(ti)|+|y(si)y(ti)|,d_{i}^{h}(s_{i},t_{i})=|x(s_{i})-x(t_{i})|+|y(s_{i})-y(t_{i})|~,~ (1)

and compare it to the Euclidean path length lihl_{i}^{h} of the path that was found by the chosen routing algorithm. In particular, we calculate the ratio rih(si,ti)=lih(si,ti)/dih(si,ti)r_{i}^{h}(s_{i},t_{i})=l_{i}^{h}(s_{i},t_{i})/d_{i}^{h}(s_{i},t_{i}). The Manhattan distance is the shortest path length between start and end points on a square grid and is a measure of how direct a path has been taken between a start point and its corresponding end point. Accordingly, a smaller rihr_{i}^{h} indicates that the path is closer to the shortest path on a square grid.

For all our measurements, we have two different types of means. A measurement XihX_{i}^{h} corresponding to (si,ti)(s_{i},t_{i}) in environment EhE_{h} can be averaged over all paths in EhE_{h} to give X¯h=1niXih\overline{X}^{h}=\frac{1}{n}\sum_{i}X_{i}^{h} and then further averaged over all environments EhE_{h} to give X¯=1NhX¯h\overline{X}=\frac{1}{N}\sum_{h}\overline{X}^{h}. The corresponding standard deviation of sample means is denoted as σX¯\sigma_{\overline{X}}. We are going to use this notation when we summarize our experimental results in Section 7.

6.3 A*-Algorithm

Let us give a brief overview of the A*-algorithm used in this work for the purpose of benchmarking our new routing algorithm based on the Circular Frame. The reader is referred to previous work for a more extended overview of the A*-algorithm [14].

Refer to caption
Figure 19: A*-Algorithm. Implementations of the A*-algorithm using a square grid with (a) 4 directions of movement and a Manhattan distance heuristic (AS1), and (b) 8 directions of movement and a Chebyshev distance heuristic (AS2).

The A*-algorithm is a graph traverser algorithm, which at each iteration of the algorithm extends a tree of candidate paths originating from the start node sis_{i} until one of the branches of the tree reaches the end node tit_{i}. The incremental extension is made at a given node pp of the graph if a cost function f(p)f(p) is minimized by the extension. The cost function is defined as f(p)=g(p)+h(p)f(p)=g(p)+h(p), where g(p)g(p) is the cost of the path from the start node to pp and h(p)h(p) is the heuristic function that estimates the cost of the cheapest path from pp to the end node. Without loss of generality we define g(p)g(p) as the Euclidean path length from the start point to pp unless the path intersects with another path in which case its value is set to infinity.

Table 1: Routing Completion Results.
nn 2 4 6 8 10
NN 1000 1000 1000 1000 1000
NCFN_{CF} 1000 1000 1000 1000 1000
NAS1N_{AS1} 1000 931 742 424 209
NAS2N_{AS2} 934 913 749 496 220
NCN_{C} 934 868 628 320 116
Refer to caption
Figure 20: Average Routing Times. Average routing times t¯\overline{t} to complete the routing problem at given nn for the Circular Frame algorithm (CF) and A*-algorithms (AS1 and AS2). The error bars show the standard deviation σt¯\sigma_{\overline{t}} of t¯\overline{t}.
Refer to caption
Figure 21: Routing Sample. Complete routing result for the same routing environment under (a) the Circular Frame algorithm, (b) the A*-algorithm with Manhattan distance heuristic (AS1) and (c) the A*-algorithm with the Chebyshev distance heuristic (AS2).

For our experiments, we consider two different implementations of the A*-algorithm. The first implementation (AS1) uses as the graph the integer square grid of the plane bounded by BB with the neighbourhood of a given node defined by the 4 direction vectors (±1,0)(\pm 1,0) and (0,±1)(0,\pm 1). The corresponding heuristic uses the Manhattan distance between a given node pp and the corresponding destination tit_{i},

hAS1(p)=D(dx+dy),h_{AS1}(p)=D(dx+dy)~,~ (2)

where here we set D=1D=1, and dx=|x(p)x(ti)|dx=|x(p)-x(t_{i})| and dy=|y(p)y(ti)|dy=|y(p)-y(t_{i})|. The second implementation (AS2) defines the neighbourhood of a node in the integer square grid by the 8 direction vectors (±1,0)(\pm 1,0), (0,±1)(0,\pm 1) and (±1,±1)(\pm 1,\pm 1). We use here the Chebyshev distance heuristic,

hAS2(p)=D1(dx+dy)+(D22D1)min(dx,dy),h_{AS2}(p)=D_{1}(dx+dy)+(D_{2}-2D_{1})\min(dx,dy)~~,~~ (3)

where we set D1=1D_{1}=1 and D2=1D_{2}=1. Fig. 19 illustrates the difference between the two implementations of the A*-algorithm that we use in this work.

For our experiments we use Python implementations of the above A*-algorithms and a Python implementation of the Circular Frame algorithm described in Section 4.

7 Results and Discussions

Let us summarize the results of the experiments in the following section.

7.1 Reliability and Performance

Table 2: Average Routing Completion Times.
nn 2 4 6 8 10
NCN_{C} 934 868 628 320 116
CF t¯\overline{t} 0.0041 0.0122 0.0269 0.0494 0.0846
σt¯\sigma_{\overline{t}} 0.0009 0.0032 0.0088 0.0163 0.0312
AS1 t¯\overline{t} 1.94452 8.25649 18.35662 38.50646 46.85451
σt¯\sigma_{\overline{t}} 1.0035 4.0399 9.1618 16.3210 14.5456
AS2 t¯\overline{t} 1.04229 4.12858 9.16055 18.71960 22.36284
σt¯\sigma_{\overline{t}} 0.4988 2.0021 4.8156 8.7838 7.8897

Table 1 shows the number of successfully completed routing problems under the Circular Frame algorithm (NCFN_{C}F), the A*-algorithm under the Manhattan distance heuristic (NAS1N_{AS1}) and the A*-algorithm under Chebyshev distance heuristic (NAS2N_{AS2}). Originally N=1000N=1000 routing environments were generated as outlined in Section 6. We can see that for all number of start points nn, the Circular Frame algorithm consistently completes the routing for all generated environments, whereas the number of routing failures increases with increasing nn for the two implementations of the A*-algorithm.

Table 1 also shows the number NCN_{C} of environments where the routing was completed by all 3 tested routing algorithms. For these completed environments and for each nn, we measure the mean routing times t¯\overline{t} with the corresponding standard deviations σt¯\sigma_{\overline{t}}. Fig. 20 shows that the average routing time for the Circular Frame algorithm stays consistently below the average routing times for the two implementations of the A*-algorithm.

From the routing completion numbers in Table 1 and the average routing times illustrated in Fig. 20, we conclude for the test environments that the Circular Frame algorithm is more reliable and faster than the two implementations of the A*-algorithm. This is not a surprising result since the number of points that needs to be traversed on the boundary of the Circular Frame is far less than the grid points used for grid-based geometrical routers. Moreover, as a topological router, the Circular Frame algorithm does not suffer from clearance problems as the A*-algorithms do as illustrated in Fig. 2.

7.2 Routing Accuracy

Table 3 shows the grand mean of the path lengths l¯\overline{l} with the corresponding standard deviation of the mean σl¯\sigma_{\overline{l}} for the NCN_{C} completed routing environments under the 3 tested algorithms. We observe that paths connecting nets under the Circular Frame algorithms tend to be shorter than for the two implementations of the A*-algorithm for all nn. This is not surprising since the rubber-band sketch representation of the resulting topological class uses arcs and any-angle straight lines for paths, making the overall routing more compact than grid-based representations.

Table 3: Routing Path Length Results.
nn 2 4 6 8 10
NCN_{C} 934 868 628 320 116
Manhattan d¯\overline{d} 73.926 76.836 77.789 78.220 79.055
σd¯\sigma_{\overline{d}} 29.004 29.090 30.362 30.964 30.755
CF l¯\overline{l} 62.787 76.221 85.638 92.658 103.115
σl¯\sigma_{\overline{l}} 18.662 19.451 24.711 26.031 34.285
r¯\overline{r} 0.951 1.151 1.308 1.439 1.591
σr¯\sigma_{\overline{r}} 0.386 0.574 0.743 0.862 1.084
AS1 l¯\overline{l} 87.565 115.357 126.014 130.207 128.716
σl¯\sigma_{\overline{l}} 32.862 35.974 35.765 32.015 25.660
r¯\overline{r} 1.327 1.754 1.940 2.034 2.005
σr¯\sigma_{\overline{r}} 0.663 0.990 1.180 1.244 1.301
AS2 l¯\overline{l} 83.903 108.047 116.246 120.616 119.095
σl¯\sigma_{\overline{l}} 32.070 31.939 30.476 27.257 20.304
r¯\overline{r} 1.277 1.645 1.791 1.889 1.857
σr¯\sigma_{\overline{r}} 0.669 0.927 1.058 1.153 1.181

We also calculated the ratio rihr_{i}^{h} between the Euclidean path length lihl_{i}^{h} and the corresponding Manhattan distance dihd_{i}^{h} between the connected start and end points (si,ti)(s_{i},t_{i}) for all completed EhE_{h}. The grand mean of the ratio r¯\overline{r} with σr¯\sigma_{\overline{r}} is shown in Table 3. As noted in Section 6, a smaller ratio rr indicates that the connection is closer to the shortest path on a square grid. As we can see in Table 3, the Circular Frame algorithm at n=2n=2 has a mean ratio r¯<1\overline{r}<1, indicating that for some routing results, the Circular Frame identified connecting paths that are even shorter than the Manhattan distance dd. Moreover, consistently the Circular Frame algorithm achieved on average a smaller value of r¯\overline{r} than the two implementations of the A*-algorithm, indicating that overall the Circular Frame algorithm found more direct and hence more accurate connections.

Refer to caption
Figure 22: FBGA Routing Sample. 2-layered FBGA package substrate that has been connected using the Circular Frame routing algorithm. Layer 1 consists of fingers (red and blue) and net connections (gray) while layer 2 consists of solder balls (blue) and net connections (green). The two layers are connected by vias (white circles).

Fig. 21 shows the completed routing results under the Circular Frame algorithm and the two implementations of the A*-algorithm for a given routing environment. We note that our observations here are as expected since the Circular Frame algorithm avoids as a topological router problems caused by a lack of clearance as discussed in Fig. 2. Furthermore, the rubber-band sketch representation optimizes the length of the connecting paths in comparison to grid-based geometrical routers.

8 Conclusions

In this paper, we have proposed a new method based on our earlier work in [21] for solving substrate routing problems using topology. Our proposed topological transformation of the original routing environment into the Circular Frame has accelerated in experiments the substrate routing process significantly in comparison to grid-based geometrical routers such as the A*-algorithm. Moreover, the Circular Frame representation guarantees for substrate routing problems with start and end point pairs full connection as a topological router.

In addition, Fig. 22 shows a 2-layered substrate for a FBGA package with 200 solder balls and a completed routing design that was obtained using our new Circular Frame algorithm. Our experiments and the positive routing results on real semiconductor package substrates are a clear indication that our new Circular Frame routing method has the potential to significantly improve and at the end fully automate the package substrate routing process.

We note that the Circular Frame routing algorithm can lead to different routing solutions given by topological classes depending on via placement, spanning tree generation and even net ordering during the routing process in the Circular Frame. Moreover, in our work we have given only a single basic routing method based on the Circular Frame representation and depending on other routing algorithms based on the Circular Frame representation, the routing result can differ significantly. Finding the most optimal routing solution based on the Circular Frame representation depends on metrics such as wire length or wire widths and is an optimization problem that we hope to cover in future work.

We are currently testing the Circular Frame routing algorithm on larger FBGA packages and other package designs. Moreover, beyond semiconductor package design, we are applying our routing method on problems related to the design of printed circuit boards (PCB) and the logistics and manufacturing industry. We hope to report on our progress in these areas in future work.

Acknowledgements

The authors would like to thank Minsoo Kim for suggesting the problem and Seungjai Min and Youngjae Gwon at Samsung SDS for helpful discussions. The authors are also grateful to Joung Oh Yun and Minkyu Jung for helpful guidance during the project, and Chanho Min for collaborating on an earlier project.

References

  • Alb [01] Albrecht C.: Global routing by new approximation algorithms for multicommodity flow. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 20, 5 (2001), 622–632.
  • AZN [17] Ali A., Zeeshan M., Naveed A.: A network flow approach for simultaneous escape routing in pcb. In 2017 14th International Conference on Smart Cities: Improving Quality of Life Using ICT IoT (HONET-ICT) (2017), pp. 78–82.
  • BHH [16] Bayless S., Hoos H. H., Hu A. J.: Scalable, high-quality, sat-based multi-layer escape routing. In 2016 IEEE/ACM International Conference on Computer-Aided Design (ICCAD) (2016), pp. 1–8.
  • CKK [19] Cho B. G., Kam D. G., Koo H. I.: Mixed-signal escape routing algorithm for multilayer pcbs. IEEE Transactions on Components, Packaging and Manufacturing Technology 9, 8 (2019), 1576–1586.
  • CKT [13] Chin C., Kuan C., Tsai T., Chen H., Kajitani Y.: Escaped boundary pins routing for high-speed boards. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 32, 3 (2013), 381–391. doi:10.1109/TCAD.2012.2221714.
  • CRN [97] Cha Y.-J., Rim C. S., Nakajima K.: A simple and effective greedy multilayer router for mcms. In Proceedings of the 1997 International Symposium on Physical Design (New York, NY, USA, 1997), ISPD ’97, Association for Computing Machinery, p. 67–72. URL: https://doi.org/10.1145/267665.267686, doi:10.1145/267665.267686.
  • CWC [19] Chang Y., Wen H., Chang Y.: Obstacle-aware group-based length-matching routing for pre-assignment area-i/o flip-chip designs. In 2019 IEEE/ACM International Conference on Computer-Aided Design (ICCAD) (2019), pp. 1–8.
  • DDS [91] Dai W. W.-M., Dayan T., Staepelaere D.: Topological routing in surf: Generating a rubber-band sketch. In Proceedings of the 28th ACM/IEEE Design Automation Conference (New York, NY, USA, 1991), DAC ’91, Association for Computing Machinery, p. 39–44. URL: https://doi.org/10.1145/127601.127622, doi:10.1145/127601.127622.
  • Dij [59] Dijkstra E. W.: A note on two problems in connexion with graphs. Numerische Mathematik 1, 1 (1959), 269–271.
  • DKJS [90] Dai W. W. ., Kong R., Jue J., Sato M.: Rubber band routing and dynamic data representation. In 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers (1990), pp. 52–55.
  • EKL [06] Efrat A., Kobourov S. G., Lubiw A.: Computing homotopic shortest paths efficiently. Computational Geometry 35, 3 (2006), 162 – 172. doi:https://doi.org/10.1016/j.comgeo.2006.03.003.
  • EN [11] Erickson J., Nayyeri A.: Shortest non-crossing walks in the plane. In SODA ’11 (2011).
  • Ful [13] Fulton W.: Algebraic topology: a first course, vol. 153. Springer Sci. & Business Media, 2013.
  • HNR [68] Hart P. E., Nilsson N. J., Raphael B.: A formal basis for the heuristic determination of minimum cost paths. IEEE Transactions on Systems Science and Cybernetics 4, 2 (1968), 100–107.
  • HXF [19] Huang Y., Xie Z., Fang G., Yu T., Ren H., Fang S., Chen Y., Hu J.: Routability-driven macro placement with embedded cnn-based prediction model. In 2019 Design, Automation Test in Europe Conference Exhibition (DATE) (2019), pp. 180–185.
  • JKRS [94] Jun Dong Cho, Kuo-Feng Liao, Raje S., Sarrafzadeh M.: M/sup 2/r: multilayer routing algorithm for high-performance mcms. IEEE Transactions on Circuits and Systems I: Fundamental Theory and Applications 41, 4 (1994), 253–265.
  • KC [93] Kei-Yong Khoo, Cong J.: An efficient multilayer mcm router based on four-via routing. In 30th ACM/IEEE Design Automation Conference (1993), pp. 590–595.
  • Lee [61] Lee C. Y.: An algorithm for path connections and its applications. IRE Transactions on Electronic Computers EC-10, 3 (1961), 346–365.
  • MCS [19] Mondal K., Chatterjee S., Samanta T.: An algorithm for obstacle-avoiding clock routing tree construction with multiple tsvs on a 3d ic. IET Computers Digital Techniques 13, 2 (2019), 102–109.
  • Pap [96] Papadopoulou E.: k-pairs non-crossing shortest paths in a simple polygon. In Int. Symp. on Alg. and Comp. (1996), Springer, pp. 305–314.
  • SMH [21] Seong R.-K., Min C., Han S.-H., Yang J., Nam S., Oh K.: Topology and Routing Problems: The Circular Frame. arXiv e-prints (May 2021), arXiv:2105.03386. arXiv:2105.03386.
  • WHJ [20] Weng J., Ho T., Ji W., Liu P., Bao M., Yao H.: Urber: Ultrafast rule-based escape routing method for large-scale sample delivery biochips. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 39 (2020), 157–170.