ch17.1.htm
来自「介绍asci设计的一本书」· HTM 代码 · 共 2,690 行 · 第 1/5 页
HTM
2,690 行
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML EXPERIMENTAL 970324//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="Adobe FrameMaker 5.5/HTML Export Filter">
<TITLE> 17.1 Global Routing</TITLE></HEAD><!--#include file="top.html"--><!--#include file="header.html"-->
<DIV>
<P>[ <A HREF="CH17.htm">Chapter start</A> ] [ <A HREF="CH17.htm">Previous page</A> ] [ <A HREF="CH17.2.htm">Next page</A> ]</P><!--#include file="AmazonAsic.html"--><HR></DIV>
<H1 CLASS="Heading1">
<A NAME="pgfId=462">
</A>
17.1 <A NAME="39064">
</A>
Global Routing</H1>
<P CLASS="BodyAfterHead">
<A NAME="pgfId=466">
</A>
The details of global routing differ slightly between cell-based ASICs, gate arrays, and FPGAs, but the principles are the same in each case. A global router does not make any connections, it just plans them. We typically global route the whole chip (or large pieces if it is a large chip) before detail routing the whole chip (or the pieces). There are two types of areas to global route: inside the flexible blocks and between blocks (the Viterbi decoder, although a cell-based ASIC, only involved the global routing of one large flexible block).</P>
<DIV>
<H2 CLASS="Heading2">
<A NAME="pgfId=9351">
</A>
17.1.1 <A NAME="40081">
</A>
Goals and Objectives</H2>
<P CLASS="BodyAfterHead">
<A NAME="pgfId=32969">
</A>
The input to the global router is a floorplan that includes the locations of all the fixed and flexible blocks; the placement information for flexible blocks; and the locations of all the logic cells. The goal of global routing is to provide complete instructions to the detailed router on where to route every net. The objectives of global routing are one or more of the following:</P>
<UL>
<LI CLASS="BulletFirst">
<A NAME="pgfId=32975">
</A>
Minimize the total interconnect length.</LI>
<LI CLASS="BulletList">
<A NAME="pgfId=32994">
</A>
Maximize the probability that the detailed router can complete the routing.</LI>
<LI CLASS="BulletLast">
<A NAME="pgfId=32976">
</A>
Minimize the critical path delay.</LI>
</UL>
<P CLASS="Body">
<A NAME="pgfId=472">
</A>
In both floorplanning and placement, with minimum interconnect length as an objective, it is necessary to find the shortest total path length connecting a set of <SPAN CLASS="Emphasis">
terminals</SPAN>
. This path is the MRST, which is hard to find. The alternative, for both floorplanning and placement, is to use simple approximations to the length of the MRST (usually the half-perimeter measure). Floorplanning and placement both assume that interconnect may be put anywhere on a rectangular grid, since at this point nets have not been assigned to the channels, but the global router must use the wiring channels and find the actual path. Often the global router needs to find a path that minimizes the delay between two terminals—this is not necessarily the same as finding the shortest total path length for a set of terminals.</P>
</DIV>
<DIV>
<H2 CLASS="Heading2">
<A NAME="pgfId=33056">
</A>
17.1.2 <A NAME="20690">
</A>
<A NAME="30196">
</A>
Measurement of Interconnect Delay</H2>
<P CLASS="BodyAfterHead">
<A NAME="pgfId=39261">
</A>
Floorplanning and placement need a fast and easy way to estimate the interconnect delay in order to evaluate each trial placement; often this is a predefined look-up table. After placement, the logic cell positions are fixed and the global router can afford to use better estimates of the interconnect delay. To illustrate one method, we shall use the Elmore constant to estimate the interconnect delay for the circuit shown in <A HREF="CH17.1.htm#28148" CLASS="XRef">
Figure 17.3</A>
. </P>
<TABLE>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableFigure">
<A NAME="pgfId=39160">
</A>
<IMG SRC="CH17-3.gif" ALIGN="BASELINE">
</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableFigureTitle">
<A NAME="pgfId=39163">
</A>
FIGURE 17.3 <A NAME="28148">
</A>
Measuring the delay of a net. (a) A simple circuit with an inverter A driving a net with a fanout of two. Voltages <SPAN CLASS="EquationVariables">
V</SPAN>
<SUB CLASS="Subscript">
1</SUB>
, <SPAN CLASS="EquationVariables">
V</SPAN>
<SUB CLASS="Subscript">
2</SUB>
, <SPAN CLASS="EquationVariables">
V</SPAN>
<SUB CLASS="Subscript">
3</SUB>
, and <SPAN CLASS="EquationVariables">
V</SPAN>
<SUB CLASS="Subscript">
4</SUB>
are the voltages at intermediate points along the net. (b) The layout showing the net segments (pieces of interconnect). (c) The RC model with each segment replaced by a capacitance and resistance. The ideal switch and pull-down resistance <SPAN CLASS="EquationVariables">
R</SPAN>
<SUB CLASS="SubscriptVariable">
pd</SUB>
model the inverter A.</P>
</TD>
</TR>
</TABLE>
<P CLASS="Body">
<A NAME="pgfId=51039">
</A>
The problem is to find the voltages at the inputs to logic cells B and C taking into account the parasitic resistance and capacitance of the metal interconnect. <A HREF="CH17.1.htm#28148" CLASS="XRef">
Figure 17.3</A>
(c) models logic cell A as an ideal switch with a pull-down resistance equal to <SPAN CLASS="EquationVariables">
R</SPAN>
<SUB CLASS="SubscriptVariable">
pd</SUB>
and models the metal interconnect using resistors and capacitors for each segment of the interconnect. </P>
<P CLASS="Body">
<A NAME="pgfId=60096">
</A>
The Elmore constant for node 4 (labeled <SPAN CLASS="EquationVariables">
V</SPAN>
<SUB CLASS="Subscript">
4</SUB>
) in the network shown in <A HREF="CH17.1.htm#28148" CLASS="XRef">
Figure 17.3</A>
(c) is </P>
<TABLE>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnRight">
<A NAME="pgfId=81560">
</A>
<SPAN CLASS="Symbol">
</SPAN>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnCenter">
<A NAME="pgfId=81562">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnCenter">
<A NAME="pgfId=81564">
</A>
4</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnLeft">
<A NAME="pgfId=81566">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnLeft">
<A NAME="pgfId=81568">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqn">
<A NAME="pgfId=81570">
</A>
</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnRight">
<A NAME="pgfId=81572">
</A>
<SPAN CLASS="Symbol">
t</SPAN>
<SUB CLASS="SubscriptVariable">
D</SUB>
<SUB CLASS="Subscript">
4</SUB>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnCenter">
<A NAME="pgfId=81574">
</A>
=</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnCenter">
<A NAME="pgfId=81576">
</A>
<SPAN CLASS="BigMath">
S</SPAN>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnLeft">
<A NAME="pgfId=81578">
</A>
<SPAN CLASS="EquationVariables">
R</SPAN>
<SUB CLASS="SubscriptVariable">
k</SUB>
<SUB CLASS="Subscript">
4</SUB>
<SPAN CLASS="EquationVariables">
C</SPAN>
<SUB CLASS="SubscriptVariable">
k</SUB>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnLeft">
<A NAME="pgfId=81580">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnNumber">
<A NAME="pgfId=81582">
</A>
(17.1)</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnRight">
<A NAME="pgfId=81584">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnCenter">
<A NAME="pgfId=81586">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnCenter">
<A NAME="pgfId=81588">
</A>
<SPAN CLASS="EquationVariables">
k</SPAN>
= 1</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnLeft">
<A NAME="pgfId=81590">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnLeft">
<A NAME="pgfId=81592">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqn">
<A NAME="pgfId=81594">
</A>
</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnRight">
<A NAME="pgfId=81596">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnCenter">
<A NAME="pgfId=81598">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnCenter">
<A NAME="pgfId=81600">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnLeft">
<A NAME="pgfId=81602">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnLeft">
<A NAME="pgfId=81604">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqn">
<A NAME="pgfId=81606">
</A>
</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnRight">
<A NAME="pgfId=81608">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnCenter">
<A NAME="pgfId=81610">
</A>
=</P>
</TD>
<TD ROWSPAN="1" COLSPAN="2">
<P CLASS="TableEqnLeft">
<A NAME="pgfId=81612">
</A>
<SPAN CLASS="EquationVariables">
R</SPAN>
<SUB CLASS="Subscript">
14</SUB>
<SPAN CLASS="EquationVariables">
C</SPAN>
<SUB CLASS="Subscript">
1</SUB>
+ <SPAN CLASS="EquationVariables">
R</SPAN>
<SUB CLASS="Subscript">
24</SUB>
<SPAN CLASS="EquationVariables">
C</SPAN>
<SUB CLASS="Subscript">
2</SUB>
+ <SPAN CLASS="EquationVariables">
R</SPAN>
<SUB CLASS="Subscript">
34</SUB>
<SPAN CLASS="EquationVariables">
C</SPAN>
<SUB CLASS="Subscript">
3</SUB>
+ <SPAN CLASS="EquationVariables">
R</SPAN>
<SUB CLASS="Subscript">
44</SUB>
<SPAN CLASS="EquationVariables">
C</SPAN>
<SUB CLASS="Subscript">
4</SUB>
,</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnLeft">
<A NAME="pgfId=81616">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqn">
<A NAME="pgfId=81618">
</A>
</P>
</TD>
</TR>
</TABLE>
<P CLASS="BodyAfterHead">
<A NAME="pgfId=34797">
</A>
where, </P>
<TABLE>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnRight">
<A NAME="pgfId=81833">
</A>
<SPAN CLASS="EquationVariables">
R</SPAN>
<SUB CLASS="Subscript">
14</SUB>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnCenter">
<A NAME="pgfId=81835">
</A>
=</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnLeft">
<A NAME="pgfId=81837">
</A>
<SPAN CLASS="EquationVariables">
R</SPAN>
<SUB CLASS="SubscriptVariable">
pd</SUB>
+ <SPAN CLASS="EquationVariables">
R</SPAN>
<SUB CLASS="Subscript">
1</SUB>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnLeft">
<A NAME="pgfId=81839">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnNumber">
<A NAME="pgfId=81841">
</A>
<A NAME="17606">
</A>
(17.2)</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnRight">
<A NAME="pgfId=81875">
</A>
<SPAN CLASS="EquationVariables">
R</SPAN>
<SUB CLASS="Subscript">
24</SUB>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnCenter">
<A NAME="pgfId=81877">
</A>
=</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnLeft">
<A NAME="pgfId=81879">
</A>
<SPAN CLASS="EquationVariables">
R</SPAN>
<SUB CLASS="SubscriptVariable">
pd</SUB>
+ <SPAN CLASS="EquationVariables">
R</SPAN>
<SUB CLASS="Subscript">
1</SUB>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnLeft">
<A NAME="pgfId=81849">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqn">
<A NAME="pgfId=81851">
</A>
</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnRight">
<A NAME="pgfId=81881">
</A>
<SPAN CLASS="EquationVariables">
R</SPAN>
<SUB CLASS="Subscript">
34</SUB>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnCenter">
<A NAME="pgfId=81883">
</A>
=</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnLeft">
<A NAME="pgfId=81885">
</A>
<SPAN CLASS="EquationVariables">
R</SPAN>
<SUB CLASS="SubscriptVariable">
pd</SUB>
+ <SPAN CLASS="EquationVariables">
R</SPAN>
<SUB CLASS="Subscript">
1</SUB>
+ <SPAN CLASS="EquationVariables">
R</SPAN>
<SUB CLASS="Subscript">
3</SUB>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnLeft">
<A NAME="pgfId=81859">
</A>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqn">
<A NAME="pgfId=81861">
</A>
</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnRight">
<A NAME="pgfId=81887">
</A>
<SPAN CLASS="EquationVariables">
R</SPAN>
<SUB CLASS="Subscript">
44</SUB>
</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnCenter">
<A NAME="pgfId=81889">
</A>
=</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableEqnLeft">
<A NAME="pgfId=81891">
</A>
<SPAN CLASS="EquationVariables">
R</SPAN>
<SUB CLASS="SubscriptVariable">
pd</SUB>
+ <SPAN CLASS="EquationVariables">
R</SPAN>
<SUB CLASS="Subscript">
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?