Lec 23
Lec 23
Lec 23
Lecture – 23
Detailed Routing (Part IV)
So, in this last lecture on detailed routing, we shall be looking at some more techniques
mean one more technique for channel routing then we shall be moving to some other
very specialized routing techniques. We shall not be going in the detail because the
algorithms are a bit involved there and I do not intend to discuss complex algorithm as
part of this course. Rather I shall try to motivate you try to make you appreciate what the
problems are and with the illustrations I should try to explain how the problems are
typically solved.
So, first let us compare the channel routers that we have already seen so you have the left
edge algorithm. The extension with doglegs’ the Yoshimura Kuh Net Merge and the last
one that you discuss the greedy algorithm these are all grid based models.
Doglegs the basically a does not supports doglegs, but the others they support. Vertical
constraints the basic LEA did not support it, but the extended LEA that supports, but
others they support slightly constraint only the greedy algorithm supports so we see if
you have a cyclic constraint in the VCG you have 2 alternatives to start with. So either
you can move some of the terminals around if possible so that you break the vertical
constraint make some edge non existing.
For example, one was top of 2 if you can move 2 by 1 position, so that there was a there
will be no connection below 1, that 1 to 2 that edge will go out. So if possible, if it is
possible to move such terminals around we move them which means we are moving
some cells around in this standard cell layout. If it is allowed otherwise we will have to
go for something like greedy algorithm which can handle doglegs and also the cyclic
constraints in VCG.
Now, shall briefly talk about 3-layer channel routing with that going into much detail.
Where of course, several approaches which are there, but we shall be looking at one
possible approach. There is an extension to the Net Merge Yoshimura Kuh router. There
is another approach which starts with a 2 layer a solution and extends into 3-layer
solution. And there is a hybrid router which considers horizontal, vertical, horizontal and
also vertical, horizontal, vertical combined both of them together and try to complete
with 3-layer channel routing.
(Refer Slide Time: 03:24)
So, let us try to see. So the method that we are briefly talking about is the one of getting
a 3-layer solution from a 2-layer solution. Conceptually this approach is similarly to the
Yoshimura Kuh algorithm. So what we do? We systematically transform a 2-layer
solution into a 3-layer solution. Let us try to understand. So what happens in a 3-layer
solution I have 3 metal layers m 1, m 2 and m 3. Now in 2-layer solution I have only m
1and m 2 I put all horizontal segments on one layers all vertical solution the other layer.
Now, in the Yoshimura Kuh algorithm Net Merge algorithm, what we are doing we were
trying to merge 2 or more nets to form a composite net such that all of them would be
laid out on the same row let us say, same horizontal track, but now when we think of a 3
layer solution, suppose we think of horizontal, vertical, horizontal HVH model, so I have
2 layers in which I can run my lines horizontally and one layer where I can run the line
vertical, so now, my extended problem becomes something like this, that when I merge 2
nets into a horizontal composite net, composite net can be laid out either in layer 1 or
layer 1 layer 3 together one on top of the other, same relative location.
So, this layer 1 and 3 both allows horizontal segments to be run. I can consider them as 2
composite nets and I can run them together in the 2 nets 2 layers. So the concept is
something like this. So in the conventional Net Merge algorithm, so what we do? We
merge the nets such that the merge nets are assigned to a single track on a single layer,
but here what you are doing, that such composite nets we are again merging to form a
super composite net. Like you see in Yoshimura Kuh algorithm when I merge 2 nets it
means that their horizontal constraints do not conflict. Then vertical constraints also do
not conflict. So they can be easily put on the same track in this same layer.
Now, suppose I have run Yoshimura Kuh algorithm like this. I have several such
composite nets. So early example that is that you saw, there are 5 such composite nets
we laid it on 5 layers. Now what we will look at is among this 5 composite nets can we
merge 2 of them together remembering, that now we have another additional horizontal
layer available with us. Do we have 2 composite nets which we can possible place on
this m 1 and m 3 in the same location, same track position that will of course, reduce our
total channel height. This is what we are looking at.
So, we are trying to merge the composite nets to create something called super composite
nets there is an additional step here. So our objective is to reduce the number of super
composite nets. See super composite nets basically means a set of composite nets which
are placed on the same track, but possibly on 2 different layers. So now, our target is to
minimize the number of super composite nets which means minimizing number of
tracks. If you can reduce the number of tracks, we reduce the total area of routing
because the height of the channel can be reduced.
So what I said is a 2 composite nets, in the super composite nets can be assigned to this
same track, but may be 2, 2 different layers m 1 and m 3. So without going into 2 much
detail here I am just giving you the overall approach. We use some kind of a track
ordering graph which is means one level abstraction beyond what was used in the
Yoshimura Kuh algorithm. In the basic Net Merge algorithm, we are using the graph
depicted the vertices that we can merge together to assign to the same track, but now we
have another high level graph presentation where this composite nets were further
merging to create something called super composite nets.
So, now we have a choice where m 1 and m 3, I have 2 super composite nets let say m 1
and m 2 let say c 1 and c 2. So I can put c 1 in layer m 1 and c 2 in m 3 or the reverse. So
I have chosen which one to put below which one to put up. There are 2 layers available
now. So this graph will reflect that. So vertices in this track ordering graph will represent
the composite nets of tracks.
And this, showing the example graph without going to into some details. This was
channel routing problem which was given and this was the corresponding track ordering
graph, that which track as to be placed before the other.
So, I am not going into detail how this was done, but this is fairly straight forward. So
this track as to be this is a graph which was created using the Yoshimura Kuh algorithm.
This is the graph corresponding to the one which you obtained after merging the nets as
the Yoshimura Kuh 2 layers have you shown. So this graph will tell you how many
tracks are required and the dependency which one as to going top t 1 as going to top then
you can have t 2, t 1 and t 2 anyone can be one top and like this. Now you see t 1 and t 2
can be because they do not have a dependency. Similarly, you see t 3, t 4 do not have a
dependency neither t 3 can be about t 4 or t 4 can be among t 3.
Now, we have a graph representation like this, that t 1 and t 2 their independent. You see
this is the solution you get out of the Yoshimura Kuh algorithm. I have not shown this
steps. So you can work out this steps yourself if you want for this channel routing
problem. We will be getting final track ordering graph like this. Now this graph says that
t 1 and t 2 does not have any kind of dependency between them which means you can
place t 1 on top of t 2, t 2 on top of t 1 or even we can put them on the same track one
among the other one in m 1 in m 3 there is no constraint between them.
Similarly, there is no constraint between t 3 and t 4, but between others there is some
constraint t 1 as to be among t 3, t 1 as to be among t 5, t 2 as to be among t 5 and so on.
So looking at this scenario from this graph so what you can do we can create a
scheduling table what you say that we have this is time we are using this notional time
actually this will indicate the tracks. In the first track we can place t 1 and t 2. In the
second track we can place t 3 and t 4, because now track contains 2 different layers m 1
and m 3. I can place one of them in m 1 in m 3 and t 5 remains.
Now, I can have a graph representation like this which tells you that I can put t 1 in m 3 t
2 in m 1 or the other t 2 in m 3 t 1 in above. Similarly, in next stage between t 3 and t 4 I
can place either t 3 or t 4 or t 4 by t 3 and last one t 5 this t 5 this t 5 I can put either in
the m 3 layer or in the m 2 layer. So you have so many alternatives and the edges will
indicate the corresponding cost say given this graph we try to find out a path which gives
you the lowest cost. Like here the lowest part will be this t 1 on top of t 2 t 4 on top of t 1
t 3 and bend it t 5 will the lower layer.
So, this will be here, this will be your final solution. So t 1 will be laying an m 3 t 2 on m
1 then t 4 on m 3 t 3 on m 1 then t 5 on m 1, this will be your final solution in 3 layers.
So this is just the basic idea behind how we are extending the output of the Yoshimura
Kuh algorithm to extend it to the HVH 3-layer model. So the basic idea is like this.
So, we briefly have a look at switchbox routing. So we shall not go into the detail of any
algorithm because of 2 reasons. Number one no systematic algorithms exist, most of the
algorithms that are been proposed and are used for switchbox routing they are based on
some rules and some heuristics which are not very interesting to discuss or teach so when
you want you can and is refer to them from standard textbooks and lot of materials
available you can see the various approach.
Switchbox routing you recall in the sub problems where the pins are located on all 4
boundaries of a rectangular region. It is an extension of the channel routing problems. So
terminals exist an all 4 sides. Now in a channel routing problems there are so many good
algorithms available. Their objective is to minimize the channel height, but in switchbox
you see the constraints is different, your pins coming from all 4 sides which means that it
is not easily to compress the size of the switchbox, maybe there are blocks already
placed on all 4 sides. Switchboxes shall not have appeared in standard cell base layout
they are we have only channels, but for full custom based designs style switch boxes
may appear because once they appear the blocks on the 4 sides are often fixed. You
cannot move them around.
So, your objective is not to reduce the area, but to ensure hundred percent computational
of routing. This is the main objective is to ensure, but all the nets are routed so there are
many algorithms which have been proposed, one may be a greedy router based on set of
simple rules rip up and reroute; that means, you proceed with the routing. So once you
get stuck go back remove some of the nets which are already been laid out again retry
and there was another interesting approach that was based on computation geometry
some algorithms there. It is called BEAVER.
BEAVER is quite popular in that sense. And I am just showing one example these are
example switchbox. I mean you can appreciate the complexity of the problem. There are
pins coming from all 4 sides. And you have to interconnect them. Now that constraint
remains that horizontal and vertical lines may be on 2 different tracks. This is a 2-layer
solution which is shown, so horizontal connections may be on layer m 1 vertical
connections on layer m 2. And you can have multi terminal nets as well. So this is the
final solution for an example switchbox.
So, I shall have go into the detail of any algorithm there. So to summarize this detailed
routing algorithm, so you can by the channels or switchboxes the routing models are
typically grid based you have assigned layers to the different net segments, segments of a
given net. So here main objective is to minimize the height of a channel, sometimes
length of nets. So as to minimize the delay and also as I said that the wire connections
are expensive. So whenever you make a wire connection it means that you are putting
some kind of drill I mean inside the fabrication process and use a metal to connect one
layer to the other.
So, once you do this you can have a additional resistive and capacity effects. So less the
number of BEAVERs is better that is one criteria and of course, switchbox routing as I
said the objective is mainly to determine routability not to minimize. Now we shall look
at new convey of routing called over the cell routing. Now this over the cell routing
appears only for standard cell kind of a layout. Let us try to understand the motivation
behind this over the cell routing and the some of the basic algorithm or some algorithmic
steps which you can follow for this, the idea is as follows.
(Refer Slide Time: 17:54)
So, the idea is that, the area outside the channel we are trying to use them in the
interconnection. Because the additional layers are not used to that extend.
That means, what I mean to say is that in a standard cell kind of a layout, you have the
roles and you have the channel. This is your channel. Suppose in a 3-layer channel
routing, if I say a 3 layer channels routing, so inside the channel here using, let us say
HVH model so there are 3 metal layers you are laying out wires on these 3 layers inside
this channel only, but what about on top of these regions.
So, here the actual devices are fabricated the transistors decades. So on top of it may be
one of the metal layers is available to you that is free. So why not some of the connection
say for example, I want to connect this point to this point instead of going through the
channels why not directly connect like this. Similarly, if I have a way of connecting them
so why not we say for example, I want to connect this point to this point I find that there
is a free space here, there is a free space here, so what you can instead of going through
the channel here this region may be quite congested, so what I can do I can take it out
here, from here I can make a connection here and from the free space I can again bring it
here. So a part of the net I can lay out on top of the sense. That is why this is called so
called over this cell routing.
So, let us see. So there are several algorithms which have been proposed for OTC or over
the cell routing. So I am suggesting the basic steps in one such approach. In the first step
we are doing some kind of net decomposition, which means if we have multi terminal
net is partitioned them into a set of 2 terminal nets. So again it is like the electric
algorithm based on the x coordinates of the leftmost terminal you partition them like 2a,
2a, 2b, 2b, 2c, 2c like that. Then the nets you classify as one of 3 different types. So I
shall be illustrating this one by one. Type one says there is a vacant terminal directly
opposite to one of the terminals of the net this means something like this.
(Refer Slide Time: 20:54)
So, again I am illustrating suppose I have a channel between standard cells like this.
Suppose I have a scenario where I have a pin here which is marked as one. Just write
opposite there is a pin marked as 0. Which means this is not currently assigned. So if I
want I can take a connection on top of it and do a over cell routing here. Because may be
this part of the channels is very congested they cannot take it here, but I can possibly
take it above here bring it here and then again bring down here. So this is the so called
type 1, which says that there is a vacant terminal directly opposite to one of the terminals
of the net.
Type 2 says there is a vacant terminal between the 2 terminals of the net is to some of the
example. So it can be 2 type either there is a 2 there is a 2 here with a 0 in between or
there can be a 3 here, there can be a 3 on the other side with a 0 in between. These are
examples of type 2. Type 2 says that there is a vacant terminal between the 2 terminals of
the net. And type 3 means if none of this exist. So for type 1 and type 2 you can carry out
some kind of over this cell routing if you want. This is the basic idea and step 3 is vacant
terminal assignment.
(Refer Slide Time: 22:41)
Vacant terminals are assigned to each net depending on it is type and weight. And how
you define the weight? It can be defined as the improvement in channel congestion that
can be achieved if you do over the cell routing for this net. So there are many weight s to
make an estimate of this improvement in congestion.
Like what I mean to say here is that vacant terminals are assigned to each net means like
here. So when you want to let us say this assign this 3 to 3. You can assign this vacant
terminal 0 if the net out here is congested. So what you do? You do over the cell routing
from here to here, from here you move out to and here. You can connect it here. So you
are avoiding the congested region. You are moving it out taking a vacant cell taking up
from there and from there you can do another over the cell routing, and one thing is there
during over the cell routing you are not seeking from 1 layer, to the other the entire net
both horizontal and vertical they are laid out on the same metal layer. This is one
difference because in the over the cell routing, you are not allow to use the wire
connections. You are doing it on the same metal layer right.
After you do this step 4 says now you do the over the cell routing. So after you identify
the vacant terminals and in the last step you select which net segments can be routed in
the channel and which net segments can be routed over this cell. So once you make a
take this decision, then you have an idea that which one will move to within the channel
and which one will be move not within the channels, but outside the channel. So let us
take an example to illustrate. This is an example channel.
So, let us say this is a typical snapshot of this standard cell design style. So here I have
shown 4 cells which are placed. Here also there are 6 cells which are placed. And this
connection I am showing in between this may represent feed through cells, but I am just
showing it like this without showing it in a rectangle close rectangle.
So, this allows a vertical connection to go through it. Suppose this is one solution. So
here you can see which nets are connected to which nets. So this solution was obtained
by a greedy channel router. So you can see that how many tracks are required 1 2, 3, 4 to
the 4 tracks are required. It requests this as to be the mistake here. This will be the brown
connection the horizontal one will be brown not blue. Now this same problem if you do
the over the cell routing so the possible final solution will look like this.
So, the over the cell connections I am showing in red. You see this pin was supposed to
be connected to this pin. This is a type one problem there is a vacant pin just opposite to
it. So you use it just for vertical segment you connect to the pin like and try to write
opposite to it and from there you do a over the cell connection to connect to this pin. So
you are avoiding this horizontal segment. Similarly, you can see you can this connection
was there, but here this also type one we have a vacant terminal opposite so you again do
the same thing, move right connected so in this way you did. Similarly, you can take
some example where it is a type 2.
Let say this pin. This pin was connected to this pin. This pin and this pin are connected.
And type 2 mean there is some vacant blank terminals in between. So what you do
instead of starting from here and going like this, you do over the cell routing here come
here. Over the cell routing here come here we will find that this reduces congestion in the
net, in the sense that you can take a straight segment are connected. So in this way you
identify the all type one and type 2 connection, but again do not blindly use what you say
routing for type 1 and type 2 all of them you use them only if it reduces the channel
congestion with respect to some cross matrix.
So, once you do this, you will get a final solution like this, when you see instead of 4
tracks you require only 2 tracks in the channel which means the rows can be brought
very close to each other. So the other connections are carried out over the channels, over
the cell. Now in general in fabrication technologies where more than 3 layers are also
available multiple metal layers are available, you can possibly do the entire routing on
top of this in itself. So there is a conflict which is called channel less routing.
So, all we the interconnections are carried out on top of the cells. So you do not need any
area for the channels basically so, but here I am not discussing that, so here we talked
about the basic idea behind over this cell routing, height works and height helps in
reducing the number of tracks in the channel, but one thing I am repeating greedy,
channels although it appears to be very simple that it is still considered to be a very
powerful tool because it can handle problem instances where there are cycles in the
vertical constraint graph.
So, with this we come to the end of lecture series on routing. So in our next lecture we
shall be starting with some other very important problems of timing and clocking. In
fact, we shall be using several weeks to discuss issues related to this. And I shall be
trying to go slow there with a lot of examples and illustrations because clocking timing
noise cross talk these are issues which are very important in modern day high
performance system design. And we shall be starting this from our next lecture onwards.
Thank you.