ch16.1.htm
来自「介绍asci设计的一本书」· HTM 代码 · 共 1,801 行 · 第 1/5 页
HTM
1,801 行
</A>
Ideally we would only need to design library pad cells for one orientation. For example, an edge pad for the south side of the chip, and a corner pad for the southeast corner. We could then generate other orientations by rotation and flipping (mirroring). Some ASIC vendors will not allow rotation or mirroring of logic cells in the mask file. To avoid these problems we may need to have separate horizontal, vertical, left-handed, and right-handed pad cells in the library with appropriate logical to physical pad mappings.</LI>
<LI CLASS="BulletList">
<A NAME="pgfId=1472">
</A>
If we mix pad-limited and core-limited edge pads in the same pad ring, this complicates the design of corner pads. Usually the two types of edge pad cannot abut. In this case a corner pad also becomes a <A NAME="marker=1468">
</A>
<SPAN CLASS="Definition">
pad-format changer</SPAN>
, or <A NAME="marker=1471">
</A>
<SPAN CLASS="Definition">
hybrid corner pad</SPAN>
.</LI>
<LI CLASS="BulletList">
<A NAME="pgfId=24651">
</A>
In single-supply chips we have one VDD net and one VSS net, both <A NAME="marker=24652">
</A>
<SPAN CLASS="Definition">
global power nets</SPAN>
. It is also possible to use <A NAME="marker=24653">
</A>
<SPAN CLASS="Definition">
mixed power supplies</SPAN>
(for example, 3.3 V and 5 V) or <SPAN CLASS="Definition">
multiple power supplies</SPAN>
<A NAME="marker=24656">
</A>
(<A NAME="marker=64323">
</A>
digital VDD, <A NAME="marker=64324">
</A>
analog VDD).</LI>
</UL>
<P CLASS="Body">
<A NAME="pgfId=1482">
</A>
<A HREF="CH16.1.htm#11801" CLASS="XRef">
Figure 16.13</A>
(a) and (b) are magnified views of the southeast corner of our example chip and show the different types of I/O cells. <A HREF="CH16.1.htm#11801" CLASS="XRef">
Figure 16.13</A>
(c) shows a <SPAN CLASS="Definition">
stagger-bond</SPAN>
<A NAME="marker=24635">
</A>
arrangement using two rows of I/O pads. In this case the design rules for bond wires (the spacing and the angle at which the bond wires leave the pads) become very important.</P>
<TABLE>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableFigure">
<A NAME="pgfId=26706">
</A>
<IMG SRC="CH16-13.gif" ALIGN="BASELINE">
</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableFigureTitle">
<A NAME="pgfId=26709">
</A>
FIGURE 16.13 <A NAME="11801">
</A>
Bonding pads. (a) This chip uses both pad-limited and core-limited pads. (b) A hybrid corner pad. (c) A chip with stagger-bonded pads. (d) An area-bump bonded chip (or flip-chip). The chip is turned upside down and solder bumps connect the pads to the lead frame.</P>
</TD>
</TR>
</TABLE>
<P CLASS="Body">
<A NAME="pgfId=42346">
</A>
<A HREF="CH16.1.htm#11801" CLASS="XRef">
Figure 16.13</A>
(d) shows an <SPAN CLASS="Definition">
area-bump</SPAN>
<A NAME="marker=42345">
</A>
bonding arrangement (also known as <A NAME="marker=42347">
</A>
flip-chip, <A NAME="marker=42359">
</A>
solder-bump or <A NAME="marker=42358">
</A>
C4, terms coined by IBM who developed this technology [<A NAME="Masleid91">
</A>
Masleid, 1991]) used, for example, with <SPAN CLASS="Definition">
ball-grid array</SPAN>
<A NAME="marker=42348">
</A>
(<A NAME="marker=42349">
</A>
<SPAN CLASS="Definition">
BGA</SPAN>
<A NAME="marker=83760">
</A>
) packages. Even though the bonding pads are located in the center of the chip, the I/O circuits are still often located at the edges of the chip because of difficulties in power supply distribution and integrating I/O circuits together with logic in the center of the die. </P>
<P CLASS="Body">
<A NAME="pgfId=1493">
</A>
In an MGA the pad spacing and I/O-cell spacing is fixed—each pad occupies a fixed <A NAME="marker=4466">
</A>
<SPAN CLASS="Definition">
pad slot</SPAN>
(or <SPAN CLASS="Definition">
pad site</SPAN>
<A NAME="marker=57672">
</A>
). This means that the properties of the pad I/O are also fixed but, if we need to, we can parallel adjacent output cells to increase the drive. To increase flexibility further the I/O cells can use a separation, the <SPAN CLASS="Definition">
I/O-cell pitch</SPAN>
<A NAME="marker=58779">
</A>
, that is smaller than the <SPAN CLASS="Definition">
pad pitch</SPAN>
<A NAME="marker=58780">
</A>
. For example, three 4 mA driver cells can occupy two pad slots. Then we can use two 4 mA output cells in parallel to drive one pad, forming an 8 mA output pad as shown in <A HREF="CH16.1.htm#35024" CLASS="XRef">
Figure 16.14</A>
. This arrangement also means the I/O pad cells can be changed without changing the base array. This is useful as bonding techniques improve and the pads can be moved closer together.</P>
<TABLE>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableFigure">
<A NAME="pgfId=50913">
</A>
<IMG SRC="CH16-14.gif" ALIGN="BASELINE">
</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableFigureTitle">
<A NAME="pgfId=50916">
</A>
FIGURE 16.14 <A NAME="35024">
</A>
Gate-array I/O pads. (a) Cell-based ASICs may contain pad cells of different sizes and widths. (b) A corner of a gate-array base. (c) A gate-array base with different I/O cell and pad pitches. </P>
</TD>
</TR>
</TABLE>
<TABLE>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableFigure">
<A NAME="pgfId=94876">
</A>
<IMG SRC="CH16-15.gif" ALIGN="BASELINE">
</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableFigureTitle">
<A NAME="pgfId=94879">
</A>
FIGURE 16.15 <A NAME="26887">
</A>
Power distribution. (a) Power distributed using m1 for VSS and m2 for VDD. This helps minimize the number of vias and layer crossings needed but causes problems in the routing channels. (b) In this floorplan m1 is run parallel to the longest side of all channels, the channel spine. This can make automatic routing easier but may increase the number of vias and layer crossings. (c) An expanded view of part of a channel (interconnect is shown as lines). If power runs on different layers along the spine of a channel, this forces signals to change layers. (d) A closeup of VDD and VSS buses as they cross. Changing layers requires a large number of via contacts to reduce resistance.</P>
</TD>
</TR>
</TABLE>
<P CLASS="Body">
<A NAME="pgfId=1510">
</A>
<A HREF="CH16.1.htm#26887" CLASS="XRef">
Figure 16.15</A>
shows two possible power distribution schemes. The long direction of a rectangular channel is the <A NAME="marker=1505">
</A>
<SPAN CLASS="Definition">
channel spine</SPAN>
. Some automatic routers may require that metal lines parallel to a channel spine use a <A NAME="marker=1507">
</A>
<SPAN CLASS="Definition">
preferred layer</SPAN>
(either m1, m2, or m3). Alternatively we say that a particular metal layer runs in a <A NAME="marker=1509">
</A>
<SPAN CLASS="Definition">
preferred direction</SPAN>
. Since we can have both horizontal and vertical channels, we may have the situation shown in <A HREF="CH16.1.htm#26887" CLASS="XRef">
Figure 16.15</A>
, where we have to decide whether to use a preferred layer or the preferred direction for some channels. This may or may not be handled automatically by the routing software. </P>
</DIV>
<DIV>
<H2 CLASS="Heading2">
<A NAME="pgfId=22852">
</A>
16.1.6 <A NAME="25832">
</A>
Clock Planning</H2>
<P CLASS="BodyAfterHead">
<A NAME="pgfId=57679">
</A>
<A HREF="CH16.1.htm#27899" CLASS="XRef">
Figure 16.16</A>
(a) shows a <SPAN CLASS="Definition">
clock spine</SPAN>
<A NAME="marker=57701">
</A>
(not to be confused with a channel spine) routing scheme with all clock pins driven directly from the clock driver. MGAs and FPGAs often use this fish bone type of clock distribution scheme. <A HREF="CH16.1.htm#27899" CLASS="XRef">
Figure 16.16</A>
(b) shows a clock spine for a cell-based ASIC. <A HREF="CH16.1.htm#27899" CLASS="XRef">
Figure 16.16</A>
(c) shows the clock-driver cell, often part of a special clock-pad cell. <A HREF="CH16.1.htm#27899" CLASS="XRef">
Figure 16.16</A>
(d) illustrates <SPAN CLASS="Definition">
clock skew</SPAN>
<A NAME="marker=57744">
</A>
and <SPAN CLASS="Definition">
clock latency</SPAN>
<A NAME="marker=57745">
</A>
. Since all clocked elements are driven from one net with a clock spine, skew is caused by differing interconnect lengths and loads. If the clock-driver delay is much larger than the interconnect delays, a clock spine achieves minimum skew but with long latency.</P>
<TABLE>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableFigure">
<A NAME="pgfId=57685">
</A>
<IMG SRC="CH16-16.gif" ALIGN="BASELINE">
</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableFigureTitle">
<A NAME="pgfId=57688">
</A>
FIGURE 16.16 <A NAME="27899">
</A>
Clock distribution. (a) A clock spine for a gate array. (b) A clock spine for a cell-based ASIC (typical chips have thousands of clock nets). (c) A clock spine is usually driven from one or more clock-driver cells. Delay in the driver cell is a function of the number of stages and the ratio of output to input capacitance for each stage (taper). (d) Clock latency and clock skew. We would like to minimize both latency and skew.</P>
</TD>
</TR>
</TABLE>
<P CLASS="Body">
<A NAME="pgfId=27618">
</A>
Clock skew represents a fraction of the clock period that we cannot use for computation. A clock skew of 500 ps with a 200 MHz clock means that we waste 500 ps of every 5 ns clock cycle, or 10 percent of performance. Latency can cause a similar loss of performance at the system level when we need to resynchronize our output signals with a master system clock.</P>
<P CLASS="Body">
<A NAME="pgfId=21553">
</A>
<A HREF="CH16.1.htm#27899" CLASS="XRef">
Figure 16.16</A>
(c) illustrates the construction of a clock-driver cell. The delay through a chain of CMOS gates is minimized when the ratio between the input capacitance <SPAN CLASS="EquationVariables">
C</SPAN>
<SUB CLASS="Subscript">
1</SUB>
and the output (load) capacitance <SPAN CLASS="EquationVariables">
C</SPAN>
<SUB CLASS="Subscript">
2</SUB>
is about 3 (exactly e <SPAN CLASS="Symbol">
ª </SPAN>
2.7, an exponential ratio, if we neglect the effect of parasitics). This means that the fastest way to drive a large load is to use a chain of buffers with their input and output loads chosen to maintain this ratio, or <SPAN CLASS="Definition">
taper</SPAN>
<A NAME="marker=58856">
</A>
(we use this as a noun and a verb). This is not necessarily the smallest or lowest-power method, though.</P>
<P CLASS="Body">
<A NAME="pgfId=52683">
</A>
Suppose we have an ASIC with the following specifications:</P>
<UL>
<LI CLASS="BulletFirst">
<A NAME="pgfId=23454">
</A>
40,000 flip-flops</LI>
<LI CLASS="BulletList">
<A NAME="pgfId=23456">
</A>
Input capacitance of the clock input to each flip-flop is 0.025 pF</LI>
<LI CLASS="BulletList">
<A NAME="pgfId=23459">
</A>
Clock frequency is 200 MHz</LI>
<LI CLASS="BulletList">
<A NAME="pgfId=52751">
</A>
<SPAN CLASS="EquationVariables">
V</SPAN>
<SUB CLASS="SubscriptVariable">
DD</SUB>
= 3.3 V</LI>
<LI CLASS="BulletList">
<A NAME="pgfId=23460">
</A>
Chip size is 20 mm on a side</LI>
<LI CLASS="BulletList">
<A NAME="pgfId=57361">
</A>
Clock spine consists of 200 lines across the chip</LI>
<LI CLASS="BulletLast">
<A NAME="pgfId=57362">
</A>
Interconnect capacitance is 2 pFcm<SUP CLASS="Superscript">
–1</SUP>
</LI>
</UL>
<P CLASS="Body">
<A NAME="pgfId=57363">
</A>
In this case the clock-spine capacitance <SPAN CLASS="EquationVariables">
C</SPAN>
<SUB CLASS="SubscriptVariable">
L</SUB>
= 200 <SPAN CLASS="Symbol">
¥</SPAN>
2 cm <SPAN CLASS="Symbol">
¥</SPAN>
2 pFcm<SUP CLASS="Superscript">
–1</SUP>
= 800 pF. If we drive the clock spine with a chain of buffers with taper equal to e <SPAN CLASS="Symbol">
ª</SPAN>
2.7, and with a first-stage input capacitance of 0.025 pF (a reasonable value for a 0.5 <SPAN CLASS="Symbol">
m</SPAN>
m process), we will need </P>
<TABLE>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnRight">
<A NAME="pgfId=109302">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnRight">
<A NAME="pgfId=109094">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnCenter">
<A NAME="pgfId=109096">
</A>
800 <SPAN CLASS="Symbol">
¥</SPAN>
10<SUP CLASS="Superscript">
–12</SUP>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnLeft">
<A NAME="pgfId=109098">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqn">
<A NAME="pgfId=109100">
</A>
</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnRight">
<A NAME="pgfId=109304">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnRight">
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?