Cell Design Issues: Reading
Cell Design Issues: Reading
Overview
Reading
W&E 6.3 to 6.3.6 - FPGA, Gate Array, and Std Cell design
W&E 5.3 - Cell design
Introduction
This lecture will look at some of the layout issues for cell designs. There are two
issues in cell layout, what are the internal constraints (how will the cell be built)
and what are the interface constraints (how will the cell be used). Datapath
cells, and other array cells, have more interface constraints to allow them to
connect by abutment.
This lecture first looks at different implementation styles, and then at the cell
layout problem in more detail. Wires are now a key component of the design, so
we examine the wire properties more closely. The lecture also looks at sizing of
Vdd, Gnd wires.
Wire Properties
Like a transistor, the resistance of layer is given by Rsq times the number of
squares. But unfortunately for wires L is usually much larger than W.
L L
R=
tW
t
R
W
Table 1:
nMOS 13K 1
pMOS 26K 2
Wire Resistance
Look at driving a wire that is 10000 long (that is only 5mm in our technology)
Wire cap 0.2fF/ * 5000 = 1000fF
- Size transistor to be 80 nMOS, 160 pMOS
- Resistance is 13K/4 = 325
Wire resistance is Rsq * 10000/3
- 166 for metal, 25K for poly
Diff
- This is a terrible wire because of its high capacitance.
- Only use is to connect to transistors
Poly
- Resistance is pretty high. Good for local (short interconnections)
- Dont use to route outside a cell, and dont as a jumper in a long wire
Metal1
- Only thing that can connect to poly and diffusion
- Densely used in a cell
Metal2 - MetalN-1
- General wiring areas
MetalN
- Thicker metal for Vdd, Gnd and clock routing
There are many constraints that might be placed on the cell design
To make the fabrication or CAD tool problem simpler
Big problem is that there are switches in the wires -- have high resistance
+Gate Array
The cell designer provides the metal patterns that forms the transistors into useful
logic units.
The logic units are then placed and routed on the large array of trans.
Transistor under wiring channels may not be used
Tie neighboring transistor gate stripes off to separate the transistor drains
actually getting used.
Cheaper (perhaps) and faster to manufacture (perhaps) than standard cells since
you need to customize fewer layers
nMOS
pMOS
pMOS
nMOS
Appropriate for all or part of a custom chip (defining all mask layers)
All cells are the same height with abutting power and gnd connections
Cells tiled into rows
Rows of cells separated by routing. If M3, maybe over-cell routing too.
Channel height can be set after the routing, so the wires always fit
Channel Height
Generally macros have more structured wires than standard cells, so you need to
use a little different implementation style for the cells. For structured wires, the
cells contain the wires and snap together.
Standard Cells
The logic is done in fixed height cells. The cells are assembled into rows, and
the wires that connect the logic together is done in wiring channels that are
outside of the cells. This routing is usually done by CAD tools trying to be more
automated than Magic.
Snap-Together Cells
Rather than having external channels for the wires, in this design style the wires
are contained in the cells. The wiring pattern is regular enough that the
connection between cells is done by simply abutting the cells. This layout style
is more restrictive than the Std Cell style since it supports a more limited wiring
topology. Its advantage is that if the wiring can be made to fit this layout style,
both the area and wire length (capacitance) can be reduced.
Snap-Together Cells
For this design the critical issue is pitch-matching the cells (like std-cells, but
requires matching in both dimensions, not just the height). Since we want them all
to fit together, not only do we need to have the wire connect at the cell
boundaries, but we also want the cells to be able to tile the surface. That is cells
that connect together should have the size in the connecting edge. In this design
style, smaller is not always better. You need all connecting cells to share height
and width on edges.
A A B
A A B
Two common examples of blocks that use these cells are regular arrays (usually
for memory) and datapath (for dataflow design).
In memory design, the core of the cells is a two dimensional array of bits. Since
the communication between the cells is fixed, it is easy to embed the needed
wires in the cells. Key here is to get all the edge decoder and mux cells to pitch-
match to the small memory cells:
Bit Line Clamps
Row Decode
Memory Array 2 Decoders
2 Decoders
bit 2
...
Often cells are mirrored every other row, so the cells share Vdd and Gnd rails.
Wire lengths (and hence required driver sizes) can be accurately estimated from a
slice plan like this
Datapath Cells
M2 Data bus
can connect here
Control lines
Two examples:
Drive a 32 bit bus, total load on bus wire is 2pf
We want the delay to be around 0.5ns
R for each transistor needs to be < 0.25k
to meet: RC = 0.5ns
Effective R of bits together is 250/32 = 7.5
For < 10% drop, Power R must be < ~1
That is only 8 squares.
Must support Total Power
Chips today dissipate 5-50W
Implies total current is 2-20A (Power = iV)
Use many supply pins (@.2mA each), and wide wires for low R
Grids of wire are goodness. Helps lower average resistance.
Electromigration
DC
AC AC
DC
So, sometimes need more contacts on transistor sources and drains to meet
electromigration limits. And width of power buses must support both iR and
electromigration requirements.
Usually on the top layer of metal, and then distributed to the lower levels.
Example Rules:
Must have a contact for each 16 of transistor width (more is better)
Wire must have less than 1mA/ of width
Power/Gnd width = Length of wire * Sum (all transistor connected to wire) /
3*106 (very approximate)
Now lets look at the components of the cells starting with transistors
For very large transistors you end up with a bad aspect ratio. To make it a more
square shape, fold the transistor. This folding also halves the size of the high
capacitance diffusion regions of the drains.
For series stack of devices fold the whole stack, not the individual transistors
1. P-N spacing is large --> Keep pMOS together and nMOS together. Often mirror
cells to keep nMOS in one cell close to nMOS in the other cell. Datapath cells
sometimes mirror in both dimensions.
2. Vdd and Gnd distribution needs to be in metal, and often needs wide wires. Vdd
runs near the pMOS groups, and Gnd runs near the nMOS
3. Poly can be used for intra-cell wires only
4. Layers alternate directions.
M1 and M2 should run (predominantly) in orthogonal directions.
Otherwise you can easily get into a situation where it is impossible to get any
wire into a region.
5. Every cell should be DRC correct in isolation. If a bus or contact is created by
abutment, put in both cells, and overlap the edges.
6. If you need to make several versions of something, put the common part in one
cell, and then make multiple parents. Dont squash (flatten and copy)
unnecessarily. Much easier to make fixes later.
Color plan
M1 horizontal, M2 vertical; power on M1
There are well and
substrate contacts under
the supply lines (on top
and bottom of cell)
Color plan
M1 vertical, M2 horizontal; power on M2
Notice the wide M2
power lines on the left
cell. Also notice that
the M1 wires
generally cant run on
top of stuff
A std-cell latch is more likely to be both static and have its own inverter for the
clock. Also, since we want to have a safe static latch, the feedback node would be
isolated from the output.
Phi
Out
In
And independent of this you get to choose the Vdd and Gnd routing
Power in the control direction (vertical)
Power in the data direction (horizontal)
This is a plan of the chip/block/cell, that shows not only the subcells/transistors,
but also the space needed for wires. Within a cell it is usually called the color
plan; at the top level it is called a floorplan.
For both the cells and the wiring areas the dominant direction of metal wires are
shown. If poly is used for wiring its direction should be shown too.
The floorplan should also note how Vdd and Gnd are being distributed, and the
width of the wires.
A little planning up front will save lots of time in the back end.