Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
1990, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
…
11 pages
1 file
In the building block style layout, two-dimensional routers are often necessary. A switchbox router utilizing two layers i p presented in this paper. The routing technique we have implemented can roughly be described as follows. Each net is first partitioned into a set of subnets. This decompo4ition is driven by the minimum Steiner tree. The construction is then carried out on a step by step basis, which allows the system to dynamically take into account new information on the problem. This information is examined by a set of expert $)stems which decide which subnet \hould be routed next. This part has been implemented \\ith a blackboard architecture. The router can handle pins that are not on a grid on one set of parallel edges. In order to always protide a solution to a given problem, the router expands the switchbox by adding rows d,namicallj where the) are needed. This point will be justified. The program has been implemented in the Lisp programming language. Man) test cases have been run successfully and some results, including Burstein's difficult switchbox, are presented.
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 1988
A new fast switchbox router, BEAVER, is presented. BEAVER combines a delayed layering scheme with computational geometry techniques to heuristically produce a switchbox solution that minimizes both via usage and wire length, and maximizes the use of a preferred routing layer. Other important features are its use of priority queues to determine the order that nets are routed and its prioritized control of individual track and column usage to prevent routing conflicts. BEAVER consists of four tools that are run successively-a corner router, a line sweep router, a thread router, and a layerer. The corner router makes single-bend terminal-to-terminal connections. The line sweep router makes straight-line connections, single-bend connections, and two-bend connections. The thread router makes connections of arbitrary form. The layerer completes the switchbox by layering wires that have been assigned a location but not yet a layer. BEAVER has successfully routed all of the classic switchboxes. Its solution quality with respect to wire length was better than or comparable to the best previous solutions and its via usage was consistently the minimum. These characteristics make it appropriate for its intended use as the initial router invoked to solve a switchbox.
IEE Proceedings - Computers and Digital Techniques, 1995
The authors propose a new circularassignment-based switchbox router, CONVERGE , based on segment assignment in circular routing. The CONVERGE router is divided into three phases: the iterative phase, the merging phase and the via reduction phase. In the iterative phase, circular routing will be applied to assign vertical or horizontal segments cycle by cycle. In the merging phase, if switchbox routing is successful, the routing result can be further improved by merging adjacent segments of the same routing net. Finally, in the via reduction phase, constrained layer assignment can further reduce the number of vias. As a result, many benchmarks have been tested on the switchbox router, and these benchmarks are successfully routed. In addition, the proposed switchbox router has better routing results than other switchbox routers on vias and wire length.
Journal of Algorithms, 1986
We present an algorithm for the routing problem for two-terminal nets in generalized switchboxes. A generalized switchbox is any subset R of the pLanar rectangular grid with no nontrivial holes, i.e., every finite face has exactly four incident vertices. A net is a pair of nodes of nonmaximal degree on the boundary of R. A solution is a set of edge-disjoint paths, one for each net. Our algorithm solves standard generalized switchbox routing problems in time O(n(log n)*)
1986
ABSTRACT For the macro-cell design style and for routing problems where the routing regions are irregular, two dimensional routers are often necessary. In this paper a new routing technique that can be applied for general two-layer detailed routing problems including switch boxes, channels and partially routed areas, is presented.
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2003
This paper explores theories on designing optimal multipoint interconnection structures, and proposes a simple switch box design scheme which can be directly applied to field programmable gate arrays (FPGAs), switch box designs, and communication switching network designs. We present a new hyperuniversal switch box designs with four sides and terminals on each side, which is routable for every multipin net-routing requirement. This new design is proved to be optimum for = 1 . . . 5 and close to optimum for 6 with 6 3 switches. We also give a formal analysis and extensive benchmark experiments on routability comparisons between today's most well-known FPGA switch boxes like disjoint switch blocks (Xilinx XC4000 Type), Wilton's switch blocks, Universal switch blocks, and our Hyperuniversal switch boxes. We apply the design scheme to rearrangeable switching network designs targeting for applications of connecting multiple terminals (e.g., teleconferencing). Simply using a -sided hyperuniversal switch block with a crossbar attached to each side, one can build a three-stage one-sided polygonal switching network capable of realizing every multipoint connection requirement on terminals. Besides, due to the fine-grained decomposition property of our design scheme, the new switch box designs are highly scalable and simple on physical layout and routing algorithm implementations.
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 1996
IEEE Transactions on Computers, 2000
We consider the optimal design problem for arbitrary-shaped switch box, ðr 1 ; . . . ; r k Þ-SB, in which r i terminals are located on side i for i ¼ 1; . . . ; k and programmable switches are joining pairs of terminals from different sides. Previous investigations on switch box designs mainly focused on regular switch boxes in which all sides have the same number of terminals. By allowing different numbers of terminals on different sides, irregular switch boxes are more general and flexible for applications such as customized FPGAs and reconfigurable interconnection networks. The optimal switch box design problem is to design a switch box satisfying the given shape and routing capacity specifications with the minimum number of switches. We present a decomposition design method for a wide range of irregular switch boxes. The main idea of our method is to model a routing requirement as a nonnegative integer vector satisfying a system of linear equations and then derive a decomposition theory of routing requirements based on the theory of systems of linear Diophantine equations. The decomposition theory makes it possible to construct a large irregular switch box by combining small switch boxes of fixed sizes. Specifically, we can design a family of hyperuniversal (universal) ðwd þ cÞ-SBs with ÂðwÞ switches, where d and c are constant vectors and w is a scalar. We illustrate the design method by designing a class of optimal hyperuniversal irregular 3-sided switch boxes and a class of optimal rectangular universal switch boxes. Experimental results on the rectangular universal switch boxes with the VPR router show that the optimal design of irregular switch boxes does pay off.
Electronic Notes in Discrete Mathematics, 2010
Switchbox routing is one of the many problems arising in the field of VLSI routing. It requires interconnecting given sets of terminals that are placed on the boundaries of a rectangular circuit board using a 3-dimensional grid in a vertex-disjoint way. An important special case is the Manhattan Switchbox Routing problem. Here minimizing the number of layers of a routing (that is, the height of the grid) is known to be NP-hard. In this paper we provide a linear time algorithm that solves any such problem on a number of layers that is greater by at most 5 than the optimum.
Computers & Electrical Engineering, 1995
This paper presents a grid-based multi-layer, multi-terminal autorouter with the unique feature of diagonal routing. The router is suitable for routing memory boards and highly congested printed circuit boards. Diagonal routing is extremely useful in minimizing vias and in obtaining a high rate of completion with total route length reduced by up to 20% comparatively. The router employs an improved maze algorithm to incorporate multi-layer diagonal routing. The cost function used in the algorithm is complicated, but can be easily modified to meet specific needs. The algorithm models multi-terminal routing as a minimum spanning tree problem to use the least amount of wiring which is most desirable in the electronic industry. Intelligent net ordering and dynamic data structures reduce memory requirement and total route time by up to 30% compared to recently developed routers. The algorithm described in this paper was extensively tested against standard benchmarks and very inspiring results were achieved.
this paper presents implementation of 10x10 reconfigurable crossbar switch (RCS) architecture for Dynamic Self-Reconfigurable BiNoC Architecture for Network On Chip. Its main purpose is to increase the performance, flexibility. This paper presents a VHDL based cycle accurate register transfer level model for evaluating the, Power and Area of reconfigurable crossbar switch in BiNoC architectures. We implemented a parameterized register transfer level design of reconfigurable crossbar switch (RCS) architecture. The design is parameterized on (i) size of packets, (ii) length and width of physical links, (iii) number, and depth of arbiters, and (iv) switching technique. The paper discusses in detail the architecture and characterization of the various reconfigurable crossbar switch (RCS) architecture components. The characterized values were integrated into the VHDL based RTL design to build the cycle accurate performance model. In this paper we show the result of simple 10x10 crossbar switch .The results include VHDL simulation of RCS on Xilinx ISE 13.1 software tool.
I. INTRODUCTION N THE building block style layout, unlike some other
I design styles, we are confronted with routing regions with irregular boundaries. Therefore, a two-dimensional router able to cope with terminals appearing on the four edges may be needed. This paper describes a new switchbox router: CARIOCA. It is currently embedded in a circuit router where all the blocks are supposed to be rectangular and fixed, but where no restrictive assumption is made on the placement. This circuit router is not presented in the paper. One point which is important to know though, is that the routing regions definition procedure generates areas which may have at most two opposite edges in contact with blocks. This is possible with the restriction made on the shape of blocks. Therefore, CAR-IOCA was designed to handle pins that are not on a grid on one set of parallel edges.
Several two-dimensional routers [ 1 11, [ 161, [ 171, [ 141, [22], [5] have recently been presented. All of them consider a zone with fixed boundaries, which does not guarantee that a solution will be found. Our approach is different: we consider that one dimension of the switchbox is not fixed and a row is added automatically in case of blockage. This dimension is the one perpendicular to the edges in contact with blocks. It enables the router to provide a solution in all cases, without the user's help. This hypothesis has no effect upon most aspects of the problem, which is why we have used some of the heuristics and rules defined in the previous approaches as well as some of our own.
As the problem is known to be NP-hard [9], all the good switchbox routers which have been reported use a heuristic approach. In [17], it is shown that a set of five rules applied in a specific order routes the Burstein's difficult switchbox (21. WEAVER [ 141 is based on knowledgebased expert systems. It seems to be a very successful switchbox router. However, the system includes many experts and several hundred rules which make it very complex. Running time is very long, which is why it would not be very efficient to use it, as it is, in a circuit router. BEAVER [5] is the fastest switchbox router we have heard of. It uses three methods to find interconnections for nets: a comer router, a line sweep router, and a thread router. These three routers are always invoked in the same order; they are given a priority queue of nets to route. BEAVER delays as long as possible the assignment of wires to layers. One feature is important to notice: during initialization a net is given control of the tracks and columns that extend out from its terminals. This control is heuristically set; it gives the system a view of the interactions between nets still to route. MIGHTY [23] uses a technique based on routing modifications. The nets are put in a priority queue thanks to a very simple heuristic, and routed in that order. Each time an existing shortest path is far from optimal or no path can be found for a net, routing modifications are done: some segments of nets already routed are relocated or removed.
All these switchbox routers generally process the simplest nets first. Then except for MIGHTY, they try to predict where congested regions are or which nets are difficult to route. These estimates enable the program to put the nets in a queue and route them in the corresponding order. If these queues are static, the results are poor: the router works well on some specific examples but not on other ones. In a sense, MIGHTY is the switchbox router with the least static queue, as routed nets can be rescheduled. WEAVER, with its blackboard architecture, is also dynamic: the way the solution is found does not look the same between two different switchboxes. This may be the reason why they are the only switchbox routers which also 0278-0070/90/1200-1307$01 .OO 0 1990 IEEE
report good results on channel examples. BEAVER, which highly relies on its comer router, does not report such results.
Our approach remains "constructive." We have not implemented a kind of "intelligent" backtracking like a ripup and reroute strategy. To help ensure good results, we use a methodology whereby we assume the right path for each part of a net is found at the first attempt owing to a step by step approach. Like WEAVER we use a blackboard architecture, but to ensure some efficiency the number of experts and rules is much smaller. In case of blockage, the place where a row should be added is given by a specific algorithm. This is done dynamically.
The nets are first divided into subnets. This decomposition is driven by the minimum Steiner tree. A subnet is the basic structure of the program. The system then gets into the following loop until all subnets are routed: 1) all subnets still to be routed are given priority by a set of heuristics and one of them is selected and routed; and 2) the routing of this subnet provides a new situation where priorities may have changed; another subnet is selected, routed, etc.
Section I1 gives some definitions. Section 111 contains our partitioning algorithm which divides the nets into subnets. The router manipulates subnets and not nets. Section IV contains the heuristics implemented in order to choose which subnet should be routed next, and their combination through a blackboard architecture [l], [7]. Among these heuristics, some general rules already presented in [17] or [14] are used and applied to the subnets. The vertical and horizontal constraint graphs [24] are taken into account. We introduce new heuristics to deal with the interactions between pins on two adjacent sides. Section V describes the ''physical" router which solves the layering problem for the subnet chosen by the part presented in Section IV. Like WEAVER [14] and MIGHTY [23], CARIOCA accepts the overlapping of wires. We explain why and how we add a row when no path can be found to achieve a subnet. In Section VI, routing results of switchbox examples are evaluated. Conclusions are given in Section VII.
DEFINITIONS
To make the paper more precise, we give some definitions. We have tried to follow, as much as possible, previously known terminologies.
Net: A set of pins (or terminals) to be connected. Horizontal (or vertical) segments: A piece of wire running horizontally (or vertically) on a layer, described by two end points. Nets are connected by wire segments.
Route or path: A set of horizontal and vertical segments which implements all or part of a net.
Corner: A point where a vertical and a horizontal segment of the same net meet but do not form a cross.
Hanging connection: An end point of a segment which does not meet another segment of the same net, nor is it a terminal. Expansion Line: For a terminal or a hanging connection, it is a line which extends the segment on which the terminal (or hanging connection) is located. For a comer there may be two expansion lines.
A switchbox (Fig. 1) is a rectangular region with terminals on the four sides (namely north, south, east, west). A terminal is identified by its position on the side it lies on, by the layer, and by the net it belongs to. Therefore, a switch-box is fully specified by giving: its width and length, a description of the four edges such as:
Figure 1
{Fig 11): This example is simple; it was first introduced by Soukup and is known as the sample switchbox. It was run to test all combinations of experts (1 or 2 experts were disabled). The solution was always the same. Example 2 {Fig 12): This is a problem mentioned in [ 141, where cyclic conflicts are present in both directions (very few benchmarks contain this difficulty). There are MIGHTY IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN, VOL. 9, NO. 12. DECEMBER The sample switchbox. Rule DCl is essential in the routing of the upper left corner (nzts 1,
e }
As stated above, CARIOCA is designed to handle pins out of the grid on the northern and southern edges, and the width may be modified when no solution is found, by adding a row. These points only affect the part of our program presented in Section V. Section 111 and IV present parts that work on a virtual grid.
THE GENERATION OF SUBNETS
The router first extends all the pins inside by one unit to avoid possible connections along the boundaries of the switchbox. Then, before actually starting the routing, each net is divided into subparts called subnets, for which the rules and heuristics described in Section IV will apply. In this part all nets are processed independently, and their order is, therefore, of no importance.
The shortest path for a net defined by n pins in a nonobstructed rectangle is found with the minimal rectilinear Steiner tree (MRST) algorithm given in [14]. Various other exact algorithms or approximations may be found in [15], [13] or more recently in [22] and [ 6 ] . The result of this algorithm provides a set of segments for each net, which enables the system to divide the net into subnets using the following rules. 1) Pins on the same side and connected through the same segment in the MRST belong to the same subnet (subnet a 1 in Fig. 2).
Figure 2
2) Two pins connected through a path, which does not include a segment belonging to another subnet belong to the same subnet (subnet cl in Fig. 2).
3) The previous rule is applied to a pin and a subnet (subnet a2 in Fig. 2 ) and to two subnets. A subnet connecting two subnets will be routed after these two subnets. This procedure plans each net in a form of a MRST. This topology is used by the system to examine the conflicts between nets as it will be seen in Section IV. It also supplies the physical router presented in Section V with some information. After this procedure, a net is composed of subnets connecting subnets or pins. A pin may belong to several subnets.
The following definitions will be used in Section IV. A subnet connecting several pins placed on the same side will be of the ss-type, the other subnets will be of the ds-type. A subnet of the ds-type contains 1 , 2 , or 3 segments in the MRST.
A subnet will be eligible if it only connects pins or subnets already routed. Otherwise it will be non-eligible. For example, in Fig. 2, subnet a2 is noneligible as long as subnet al is not routed. Each net is represented by a graph. As it may be seen in Fig. 3, the fact that subnet a2 may only be routed after subnet a1 is represented by the fact that it is deeper in the graph.
Figure 3
In the few specific situations presented in the following sections, a subnet can be broken into two subnets. 0therwise a subnet is a basic structure which cannot be modified by the rest of our program. (see Fig. 4 for a similar example), but it may also apply to parts other than the comers and at any time during the routing.
Figure 4
Action of R1 Fig. 2. The generation of subnets. Net a is divided into 2 subnets a1 and a2, net b is divided into subnets bl and b2, net c is one subnet: c l . have coded a switchbox router know that this single rule may route the lower left comer of Burstein's switchbox / pin' Representation of a net.
This rule acts on its own and is executed at the beginning of the routing and each time a subnet is routed.
All the other rules, grouped in three different sets or "experts," intend to route a complete subnet. These experts deal with situations we have called absence of constraint, static constraints, and dynamic constraints. When a rule is applied to a subnet, a routing proposition with a preference factor is given. This factor is generally given in the paper after the name of each rule.
A. Absence of Constraints
The absence of constraint (AC) mainly consists of four rules, three of which are close to rules 2 , 3 , and 4 in [ 171.
None of these rules applies to noneligible or ss-type subnets. The main purpose of this expert is to route subnets which are very simple (straight lines or comers). When the other experts remain silent, it ensures that a proposition is made (see Rule ac4).
Rule ACl (100): If two pins or hanging connections of the same subnet are in the same column or row, and no obstacle is present on the line which joins them, then connect them with a straight line.
Rule AC2 (IO):
If the expansion lines of two pins or hanging connections belonging to the same subnet are convergent and no obstacle is present on these lines then route the subnet with straightline expansion. In Fig. 2, this rule may apply to subnet bl for example.
IV. THE CHOICE OF SUBNET
Rule AC3 (10): Same rule as AC2 with the expansion According to the state of the routing and the subnets not yet achieved, a set of rules decides which subnet should be routed next, with some information about how this routing should be performed. These rules and how they are organized are presented in this section. The information they provide is used by the physical router presented in Section V.
Before considering the other rules, the following one is applied, which is a generalization of rule 1 given in [17].
R1:
A pin or a hanging connection has theoretically four possibilities of being pulled: in the same direction, to the right, to the left or change of layer. If there is only one possibility left because of the presence of wires belonging to other nets then pull it. Repeat this step until there is more than one possibility. Most programmers who line from the comers of a routed subnet.
Rule AC4 ( I ) : If none of these rules may apply then propose any subnet (provided it is eligible and belongs to the ds-type).
The "comer routing" (rules AC2 and AC3) is very important and may be found in most switchbox routers:
In [17], many connections of the Burstein's example are "comer" routed.
In [ 5 ] , the comer router is essential. It sorts the corners which can be routed by taking into account the control of tracks and columns set for each terminal. Such an examination of conflicts is done in our system by the other experts as it will be seen later in this section. Please note that we do not have such problems as "overlap cycles" or "four terminals cycles" that must be examined by BEAVER as we manipulate subnets instead of nets. IEEF: TRANSACT10N.5 0s COMPL'TFK-AIDED DESIGN. VOL 9. NO. 12. DECEMBEK 1990
In [ 2 2 ] an "L-shape driven maze router" is pre-a a sented. This router expands first in the direction ( x or v ) which corresponds to the L-shape connecting the two terminals in the MRST. This is done thanks to a special sorting of the heap. If no obstacle is present, the subnet will be routed as a comer.
venical conmaint graph sbbl \bel b
B. Static Constraints
The static constraints (SC) correspond to the vertical and horizontal constraint graphs (VCG and HCG, respectively). WEAVER also uses these constraints to guide the solution. Taking into account these graphs enables CAR-IOCA and WEAVER to route channels as well as switchboxes without modifying the original algorithm. The solutions we obtain on small classical channels are excellent. However, on the Deutsch difficult example, the result was rather poor (24 rows) and is not presented in the paper. MIGHTY is the only switchbox router we know which also routed the Deutsch channel (in 19 rows), but the original algorithm had to be modified. The constraints coming from the VCG and HCG are called static as they are computed a! the beginning of the routing.
It should be pointed out that these graphs are slightly different from the original vertical constraint graph (see for example [24]). In fact, as we consider pins belonging to subnets rather than nets, the nodes of each graph correspond to subnets instead of nets: a directed edge from subnet i to subnetj in the VCG (respectively, HCG) means that subnet i must be placed above (respectively, right to) subnet j . As there are more subnets than nets, we generally obtain more edges. An example is given in Fig. 5 .
Figure 5
In our implementation, a graph edge disappears if one of the two subnets has been routed but also if an obstruction, due to the routing of other subnets present in the other graph, is present on the line which joins them.
When the static constraints propose a subnet, they always mention the track on which this subnet should be routed. They always take into account one graph at a time, that is to say a set of propositions is made considering only one dimension. During the process, both graphs will be examined according to the stage of the routing. At each step, a graph is selected considering the following rule, where G1 and G2 correspond to the two graphs.
If G1 contains more nodes corresponding to ss-type subnets than G2, then select G1. If there is the same number of ss-type subnets then G1 is selected if it contains more nodes than G2.
Once a graph has been selected, a list consisting of all the subnets which are the leaf and root nodes of this graph is given along with the two available tracks. Because of overlap, it often happens that all leaf nodes are not routable in the same track. Several heuristic algorithms have been proposed in the past (see [24]) to decide for each track which leaf nodes will be merged and routed together. To achieve this merging, our system has to take into consideration the priorities of subnets according to the static constraints expert, but also the priorities given b c Fig. 5. The SC's by the other experts. In our approach, a good combination is only possible if the other experts are taken into account. This is the reason why we kept very simple rules.
Rule SCl: If the subnet is of the ss-type, then the higher the ratio (number of pinshength of main segment), the higher the priority.
Rule SC2: All subnets of the ds-type have the same priority.
Rule SC3: These priorities are biased by the number of ancestors (leaf) or descendants (root) of the given subnet.
Rule SC4: If a proposition made by another expert does not respect one of the constraint graph then set the priority to 0.
A subnet may be divided into several subnets in two different situations.
When an ss-type subnet connecting n pins is not routable in ( n + 1 ) segments because of the routing of other nets, it is divided into ( n -1 ) subnets connecting 2 pins. If there is a cycle in one graph (Fig. 6 ) , a subnet belonging to this cycle is chosen and then divided into two subnets using the following heuristics (we suppose that the cycle is in the VCG):
Figure 6
How to break a cycle. A pseudopin is added; subnet 2 is divided into subnets 2a and 2h. The DC's.
For each subnet S belonging to this cycle, For each terminal Si belonging to this subnet Find the nearest column where no terminal to be connected is present on the side of Si end For If no column has been found for all terminals,
Then run this procedure again when a subnet in the VCG is routed
Else
(this should free a column)
Select the subnet for which the distance between a terminal and its associated column is minimum and add a pseudopin in this column.
End If.
C. Dynamic Constraints
The dynamic constraints (DC) mainly deal with the problem of having pins present on four sides. When a subnet is routed in a track, it may result in an obstruction on the line which joins two pins and an edge in the constraint graph will disappear as already mentioned. Two new constraints will appear. The situation is illustrated in Fig. 7 (taken from Fig. 2).
Figure 7
We consider that these two constraints appear during the routing, as this subnet could have been routed in a different track, which is why they are computed dynamically. Two switchbox routers have tried to explicitly address the interaction between nets due to the presence of pins on the four sides. Their methods are different.
In [17], the nets which cannot be connected simply are routed in such a way that the path is pushed to the boundary as much as possible. Selection of endpoints to be connected is based on a set of priorities which are listed in Rule 5 of the paper. In this approach, minimizing the constraints we have mentioned is done heuristically by connecting nets along the boundaries as much as possible.
During initialization, BEAVER gives each net control of the tracks and columns that extend out from its terminals. This parameter is heuristically set (in the examples which are reported, it goes from 40 to 100% of the track or column). It is a static representation of the interactions between pins present on different sides. It seems to be a good approximation for the different examples which are presented. However, the paper does not state how this parameter is computed.
CARIOCA examines the dynamic constraints which we have just introduced in two different ways: before routing subnet a: is this routing going to block b or c (information on a)?
after routing subnet a : has b or c become critical to route (information on b and c)? This may be measured by the length of the expansion line of pin b and pin c.
The first type of examination takes into account the type of subnet. It generally discriminates propositions made by the other experts. In Fig. 7, subnet a is of the ss-type. The static constraints tend to route this type of subnet close to the edge on which its pins stand. If the first track is not available, then it will try the second, etc. "Delaying" such a construction may not be a good thing as the wire length will increase as well as the risk of obstruction. This risk is even higher when the subnet is close to their comers.
Rule DCI: This consideration results in giving higher priority to ss-type subnets which are close to the comers of the box. This priority is even higher if a pin of the same net is present on the corresponding track (net 17 in Burstein's switchbox).
Rule DC2: If the subnet is of the ds-type, the number of the track is not a factor which theoretically affects the wire length. Therefore, dynamic constraints will accept or discriminate a track number for such a subnet only according to the constraints it may create.
The second type of examination takes into account all the pins of a given subnet and measures the length of their expansion line.
Rule DC3: The shorter these expansion lines, the higher the priority of the subnet.
The track number on which the subnet should be routed is selected according to a set of rules which is not given in this paper. When one track is not enough to route the subnet, a maze router is called (see the following section). A filter enables us to examine only the subnets with a good chance of having significantly high priority according to this criteria.
It should be noted that the dynamic nature of certain constraints is the main reason why the problem must be solved step by step.
D. Blackboard Organization
A blackboard organization has already been used recently [14]. Its goal is basically to enable several programs to exchange information through a common (generally very simple) data base. Each of the three modules described previously can solve a certain type of problem on its own. For example, a river may be routed with the AC module alone and a channel may be routed with the SC module alone. However, a general switchbox needs the three modules working in parallel. As may be seen in this subsection, our system is more simple than WEAVER. This is due to the fact that there are only three experts and that they share a single common data structure which enables them to exchange easily and efficiently information: subnets.
We saw that each of the three modules is able to give a list of propositions which depends on the subnets to be routed and the switchbox. As there are three experts, there will be three different lists of propositions. One of the goals of the blackboard is to make it possible to merge these lists.
A proposition made by an expert can roughly be described by the following structure: proposition subnet; information on path; priority; expert name.
Each field of the structure results from the application of the rules described previously. Even when the subnets are the same in the three lists, the field "information on path" may be different, which is why the merging is not easy. The merging is made possible by the fact that the three modules implementing the AC, the SC's and the DC's are "experts," not only because they may be implemented as expert systems [lo] but also because each of them can make propositions and give advice reflecting their single, however, complex, criterion. Some rules that we have presented were stated in such a way that they could be applied to subnets as well as propositions made by other experts. Therefore, one expert is able to give priority following its own criterion to a proposition made by another.
Three different phases enable the experts to exchange the information contained in their propositions.
All the experts make their propositions. All the experts judge the others' propositions.
A combination of propositions is selected. The combination of propositions enables the system to avoid identical examination of a subnet several times. The set of propositions which is selected is the input to the physical router which is described in the following section. The blackboard is then cleared and the subnets which have been routed are removed from the list of subnets to be routed. The experts can now make new propositions.
A description of the overall algorithm is now given As it can be seen in the previous description, only the three sets of rules we have described will actually exchange information through the blackboard. All the other modules will "write only" (generation of subnets) or "read only" (physical router) on this blackboard and, more important, will not work at the same time.
V . THE PHYSICAL ROUTER
The physical router modifies the switchbox by placing segments in order to route a subnet, or by adding a track when a subnet cannot be routed. These modifications are taken into consideration by the three experts. Subsections V-A and B describe what we called route the propositions in the given order in the previous algorithm.
A. Modi'ing the Switchbox by Adding Segments
The physical router is called each time a set of propositions is selected. As already mentioned, a proposition gives information on how the subnet should be routed. This information depends on the type of subnet and the rules applied.
There are four main types of information which correspond to four types of routing ( Fig. 8):
Figure 8
Four types of routing.
1) straight line when Rule AC1 is applied; 2) comer when Rule AC2 or AC3 are applied; 3) track number for SC and DC rules, 4) Lee router when no track number may be given as the subnet must be routed with more segments than the number given by the MRST.
The first three types of information are enough to describe how the routing of a subnet of any type should be routed in most cases. The physical router is very efficient in such situations. It also ensures that no weird path, which may block other subnets, is generated. Most nets may be routed very simply, if the relative position of paths is carefully chosen. However, when confronted with a difficult switchbox, not all subnets may be routed simply. In such cases, a maze router is called. For instance, in Burstein's difficult switchbox, the maze router is called for nets 6 and 11, all the other nets being routed using the three other types of paths.
Our Lee router finds a path for a subnet but takes into account the fact that it may connect other hanging connections belonging to the same net. We used the Rubin implementation [20]: as most of our subnets connect only two points it is easy to define a target. Using a technique such as the one presented in [22] would probably make it even more efficient.
There is one layer per direction, except in the three following situations. 1) When a segment connecting two segments in the other layer has a length equal to the contact spacing then it is put in the same layer as these two segments, and two contacts are saved. This is the case for net 8 in Burstein's s wi tc hbox .
2) R1 may result in putting a segment in the nonpreferred layer.
3) The Lee router may have the same consequence when no other possibility is available.
B. Modibing the Switchbox by Adding Tracks
When all the blocks of a circuit are rectangular, it is possible to divide the routing area into rectangles such that no more than two sides of each one are in contact with the blocks. From our current experiments which are not the subject of this paper, it seems that space may be saved in comparison with the classical channel approach (see for example [18] for slicing structures or [8] for nonslicing structures), on certain types of circuits with such a representation of the routing area and a two-dimensional router applied to each rectangle.
As it is not possible to know at the beginning of the process how much space will be needed and some blocks may move, the routing area is often affected. We must point out that our approach is different from the one used in the "PI" system [ 191 where the placement is modified and the routing restarted each time a channel or a switchbox fails. We do not need such iterations as all our structures may be modified dynamically except for nonslicing placements. A dynamic representation of the area and a constraints analysis has been thought of at the circuit level. We describe how our approach in global routing affected our local router.
The switchbox router must be able to add a track where it is needed without the user's help. This possibility is justified by the fact that each switchbox has only two opposite edges-north and south for instance-in contact with the blocks.
Two different situations may block the routing of a subnet: one hanging connection cannot be pulled and R1 deno path can be found by the Lee router for the given In the first case, a line is added immediately under or above the hanging connection, according to the position of the other hanging connection belonging to the same subnet. An illustration is given in Fig. 9.
Figure 9
(a) b cannot be pulled. (b) A line is added and 6 is maze routed. . IO. (a) Net I cannot be routed. (b) Net 1 is routed
In the second case, the Lee router gives the minimum and maximum coordinates which are attainable from each hanging connection. This information enables the router to choose a line number which is added. Fig. 10 gives an example.
Figure 10
Every time a line is added, the experts are given the information. It may modify some of their data during their reinitialization procedure. tects it, subnet.
C. Design Rules
As blocks may be present on two opposite edges (for instance, north and south), pins are not necessarily on a grid in this dimension. It is more difficult to cope with design rules in a switchbox than in a channel. Therefore, like all the other switchbox routers we have heard of, the problem is solved on a symbolic grid which takes into account these design rules. In order to accept pins which are out of grid on the northern and southern edges, we have developed an algorithm which brings the problem to this grid. This is done as a preprocessing step. Then, once the problem is solved using the approach described, the segments are modified to take into account the real positions of the pins. The algorithm scans the two edges from west to east and generates columns in which 0, 1, or 2 pins may be present according to the spacing between these pins. The segments are placed in these columns. At the end of the process, a vertical segment may generate three segments because of the offset. The position of the horizontal segment is chosen taking into consideration the segments which are present in'the column to the left of one being considered. An example is given in Section VI.
VI. EXPERIMENTAL RESULTS
All the classical benchmarks have been run successfully. In this section we report on CARIOCA'S solutions to some of these problems and compare them to other routers' solutions. We also propose two new benchmarks.
CARIOCA was implemented in Le-Lisp [4]. It runs on a SUN3 workstation. The other routers were implemented in C, except WEAVER which was implemented in OPS5. WEAVER and CARIOCA use some AI techniques, which is why they are slower. We have not been concerned with via usage but it is known that some post-processing can take care of via reduction. 2, 3 , and 4). Net 9 is maze routed. WEAVER used one row less but it is not known if it was routed without the "user expert." The wire length is basically the same. The example was run with different orientations. The results were very similar (two different orientations are given). CPU time: 23 s (WEAVER: not published).
Example 3: Table I gives some comparisons using Burstein's switchbox [2].
Table
To illustrate the last point mentioned in Section V-C, we present in Fig. 13 what we obtained using a version where the pins on the northern and southern edges are not on a grid. However, the VCG and the area are the same as those of the standard definition which means that the routing problem is basically the same. Please note how the offset affects the vertical wires.
Figure 13
Example 4:
It is conjectured that the dense switchbox [14] has no solution. Although many nets can be "corner routed," it is very difficult to find a solution to the last ones. Two variants with supplementary routing regions can be routed. The most difficult one adds only an extra column near the middle of the switchbox. This variant has only been routed by MIGHTY, WEAVER, and BEA-VER. On these two variants we obtained basically the same results. Table I1 gives a comparison for the modified dense switchbox.
Table 1
We present (Fig. 14) a new variant which illustrates the point presented in Section V-B. The dense switchbox was run without any free row or column. A row (#14) was dynamically added by CARIOCA in order to route net 11. The final result uses less area than any variant we have heard of as can be seen in Table 111.
Figure 14
Table 111
other channel routers we have heard of use at least 5 tracks and one extra column in the middle of the channel.Example 7(Fig. 16): CYCLE: This is a new example that we have created in order to test the ability of our router to deal with cyclic constraints in both directions.CPU time: 32 s.
Example 5: Cohoon and Heck 's pedagogical switchbox ([5]): Beaver's solution is better than CARIOCA'S: CARIOCA added one row in order to route net 3 and took nearly two minutes when Beaver took 1 s. Fig. 15): We have already reported (Section IV-B) that, on the Deutsch difficult example, the result was rather poor (24 rows). However, CARIOCA was run on other channel examples and obtained good results. We give the result of our router when applied to Burstein's difficult channel presented in [ 3 ] . CARIOCA obtained a very good result by using 5 tracks (two rows were added dynamically which is why some wires are twisted).
Figure 15
Example 6 (
MIGHTY was able to route this example in 4 tracks. All VII. CONCLUSION This paper describes a new switchbox router whose functions make it different from most existing local routers: it is gridless in one dimension and provides a solution in all cases while coping with pins present on four sides. The experimental results which are presented show that on standard benchmarks, it behaves as well as the best known switchbox routers. It gives also very good results on examples taken from real circuits. It has been implemented in Le-Lisp.
The division of nets into subnets provides the system with information which turned out to be useful. This common data structure simplifies the exchange of information between the experts.
A blackboard organization is justified by the different nature of constraints and the dynamic nature of some of them. It enables the programmer to test each expert separately as well as together. From our experiment, it does not seem that such a mechanism is costly in CPU time. Its flexibility fitted our approach without penalizing it. Our program has been relatively slow so far for other reasons which are mainly the following.
Each expert has been thought of independently, which is why there are many types of structures which are redundant.
A knowledge-base is slower than a procedural description.
We are currently working on a circuit router which uses the switchbox router described in this paper.
TABLE I ROUTER COMPARISON FOR BURSTEIN'S SWITCHBOX