Routing

Deputy Commissioner Routing. Yeah, that's right. I know your name. I know all about you : your wife, that big-legged daughter of yours, and even that CENSORED son. Do it, yeah, go ahead. To the point, I ain't afraid to die. But you kill me, you and your whole CENSORED family die. Can you dig it?



Routing was definitely the most interesting part of this circuit, keeping us in the lab for fifteen hours or more each day for the last week, with a continuous seventy-two hour stretch in the lab the last weekend. Routing this circuit is what inspired us with the name Jagged Edge, although it probably should have been Jogged Edge. To begin with, we completely discarded all "Manhattan" rules outside of our subcells. (Most of our subcells are pretty Manhattanish, and some of them are auto-routed). Second, we learned the value of jogging our lines -- this made all the difference. We used minimum width wires nearly everywhere, and minimum separations in some places. In a few cases, we use repeated series of contacts in order to get wires through otherwise "blocked" gaps. Here are some examples of nightmarish wiring:

In the multiplier

At the edge of the circuit, near the shifter

Bringing a control signal from the PLA to the multiplier

We had to use many optimizations in order to fit. For example, we route 5 of the wires of our multiply control bus on one side of the barrel shifter, and the other three on the other side.

We would not have fit had we used larger block sizes to begin with. In retrospect, we found that while we did get excellent building-block (fundamental circuit) reuse within a larger subcell, we got little building-block reuse across subcells. Thus, we could have broken the 50 micron Vdd to GND separation for some of the subcells where possible without affecting the separation in other subcells where the 50 micron gap is needed. Such planning at the beginning may have made our routing a little easier. However, our main goal at the beginning was efficiency and reuse; our inability to reuse did not become clear until afterward.

Another possible flaw in our circuit is the use of non-minimum width wires inside some of our subcells. This was a clear mistake from a space point of view. We changed as many of these as needed while routing, but this would have cleared more space from the beginning if these had been set early on. Similarly, building block cells should never include "stubs" for wiring. Future 422 students learning from our mistakes should never leave dangling stubs like this -- if you don't wire it within that specific subcell, leave only the minimum needed for late wiring (for example, leave a contact, but no actual wires). Such stubs may integrate well in subcell design, but extraneous ones get in the way during overall routing.