ch03.3.htm

来自「介绍asci设计的一本书」· HTM 代码 · 共 2,812 行 · 第 1/5 页

HTM
2,812
字号
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML EXPERIMENTAL 970324//EN">

<HTML>

<HEAD>

<META NAME="GENERATOR" CONTENT="Adobe FrameMaker 5.5/HTML Export Filter">



<TITLE> 3.3&nbsp;Logical Effort</TITLE></HEAD><!--#include file="top.html"--><!--#include file="header.html"-->



<DIV>

<P>[&nbsp;<A HREF="CH03.htm">Chapter&nbsp;start</A>&nbsp;]&nbsp;[&nbsp;<A HREF="CH03.2.htm">Previous&nbsp;page</A>&nbsp;]&nbsp;[&nbsp;<A HREF="CH03.4.htm">Next&nbsp;page</A>&nbsp;]</P><!--#include file="AmazonAsic.html"--><HR></DIV>

<H1 CLASS="Heading1">

<A NAME="pgfId=87855">

 </A>

3.3&nbsp;<A NAME="29192">

 </A>

Logical Effort</H1>

<P CLASS="BodyAfterHead">

<A NAME="pgfId=107375">

 </A>

In this section we explore a delay model based on logical effort, a term coined by Ivan Sutherland and Robert Sproull [1991], that has as its basis the time-constant analysis of Carver Mead, Chuck Seitz, and others.</P>

<P CLASS="Body">

<A NAME="pgfId=107935">

 </A>

We add a &#8220;catch all&#8221; nonideal component of delay, <SPAN CLASS="EquationVariables">

t</SPAN>

<SUB CLASS="SubscriptVariable">

q</SUB>

, to Eq.&nbsp;<A HREF="CH03.1.htm#10713" CLASS="XRef">

3.2</A>

 that includes: (1)&nbsp;delay due to internal parasitic capacitance; (2)&nbsp;the time for the input to reach the switching threshold of the cell; and (3)&nbsp;the dependence of the delay on the slew rate of the input waveform. With these assumptions we can express the delay as follows:  </P>

<TABLE>

<TR>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqnCenter">

<A NAME="pgfId=222007">

 </A>

<SPAN CLASS="EquationVariables">

t</SPAN>

<SUB CLASS="SubscriptVariable">

PD</SUB>

 = <SPAN CLASS="EquationVariables">

R</SPAN>

(<SPAN CLASS="EquationVariables">

C</SPAN>

<SUB CLASS="Subscript">

out</SUB>

 + <SPAN CLASS="EquationVariables">

C</SPAN>

<SUB CLASS="SubscriptVariable">

p</SUB>

) + <SPAN CLASS="EquationVariables">

t</SPAN>

<SUB CLASS="SubscriptVariable">

q</SUB>

 .</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqnNumber">

<A NAME="pgfId=222009">

 </A>

<A NAME="22525">

 </A>

(3.10)</P>

</TD>

</TR>

</TABLE>

<P CLASS="BodyAfterHead">

<A NAME="pgfId=87862">

 </A>

(The input capacitance of the logic cell is <SPAN CLASS="EquationVariables">

C</SPAN>

, but we do not need it yet.)</P>

<P CLASS="Body">

<A NAME="pgfId=377061">

 </A>

We will use a standard-cell library for a 3.3<SPAN CLASS="Symbol">

 </SPAN>

V, 0.5<SPAN CLASS="Symbol">

 m</SPAN>

m (0.6<SPAN CLASS="Symbol">

 m</SPAN>

m drawn) technology (from Compass) to illustrate our model. We call this technology <SPAN CLASS="Definition">

C5</SPAN>

<A NAME="marker=377062">

 </A>

; it is almost identical to the G5 process from Section&nbsp;2.1 (the Compass library uses a more accurate and more complicated SPICE model than the generic process). The equation for the delay of a 1X drive, two-input NAND cell is in the form of Eq.&nbsp;<A HREF="#22525" CLASS="XRef">

3.10</A>

 (<SPAN CLASS="EquationVariables">

C</SPAN>

<SUB CLASS="Subscript">

out</SUB>

 is in pF):  </P>

<TABLE>

<TR>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqnCenter">

<A NAME="pgfId=377071">

 </A>

<SPAN CLASS="EquationVariables">

t</SPAN>

<SUB CLASS="SubscriptVariable">

PD</SUB>

 = (0.07 + 1.46<SPAN CLASS="EquationVariables">

C</SPAN>

<SUB CLASS="Subscript">

out</SUB>

 + 0.15) ns .</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqnNumber">

<A NAME="pgfId=377074">

 </A>

<A NAME="11565">

 </A>

(3.11)</P>

</TD>

</TR>

</TABLE>

<P CLASS="Body">

<A NAME="pgfId=302953">

 </A>

The delay due to the intrinsic output capacitance (0.07<SPAN CLASS="Symbol">

 </SPAN>

ns, equal to <SPAN CLASS="EquationVariables">

RC</SPAN>

<SUB CLASS="SubscriptVariable">

p</SUB>

) and the nonideal delay (<SPAN CLASS="EquationVariables">

t</SPAN>

<SUB CLASS="SubscriptVariable">

q</SUB>

 <SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

0.15<SPAN CLASS="Symbol">

 </SPAN>

ns) are specified separately. The nonideal delay is a considerable fraction of the total delay, so we may hardly ignore it. If data books do not specify these components of delay separately, we have to estimate the fractions of the constant part of a delay equation to assign to <SPAN CLASS="EquationVariables">

RC</SPAN>

<SUB CLASS="SubscriptVariable">

p</SUB>

 and <SPAN CLASS="EquationVariables">

t</SPAN>

<SUB CLASS="SubscriptVariable">

q</SUB>

 (here the ratio <SPAN CLASS="EquationVariables">

RC</SPAN>

<SUB CLASS="SubscriptVariable">

p</SUB>

/<SPAN CLASS="EquationVariables">

t</SPAN>

<SUB CLASS="SubscriptVariable">

q</SUB>

 is approximately 2).</P>

<P CLASS="Body">

<A NAME="pgfId=87880">

 </A>

The data book tells us the input trip point is 0.5 and the output trip points are 0.35 and 0.65. We can use Eq.&nbsp;<A HREF="#11565" CLASS="XRef">

3.11</A>

 to estimate the pull resistance for this cell as <SPAN CLASS="EquationVariables">

R</SPAN>

<SPAN CLASS="Symbol">

 &#170; </SPAN>

1.46<SPAN CLASS="Symbol">

 </SPAN>

nspF <SUP CLASS="Superscript">

&#8211;1</SUP>

 or about 1.5<SPAN CLASS="Symbol">

 </SPAN>

k<SPAN CLASS="Symbol">

W </SPAN>

. Equation&nbsp;<A HREF="#11565" CLASS="XRef">

3.11</A>

 is for the falling delay; the data book equation for the rising delay gives slightly different values (but within 10 percent of the falling delay values).</P>

<P CLASS="Body">

<A NAME="pgfId=302972">

 </A>

We can <SPAN CLASS="Definition">

scale</SPAN>

<A NAME="marker=302971">

 </A>

 any logic cell by a scaling factor <SPAN CLASS="EquationVariables">

s</SPAN>

 (transistor gates become <SPAN CLASS="EquationVariables">

s</SPAN>

 times wider, but the gate lengths stay the same), and as a result the pull resistance <SPAN CLASS="EquationVariables">

R</SPAN>

 will decrease to <SPAN CLASS="EquationVariables">

R</SPAN>

/<SPAN CLASS="EquationVariables">

s</SPAN>

 and the parasitic capacitance <SPAN CLASS="EquationVariables">

C</SPAN>

<SUB CLASS="SubscriptVariable">

p</SUB>

 will increase to <SPAN CLASS="EquationVariables">

sC</SPAN>

<SUB CLASS="SubscriptVariable">

p</SUB>

. Since <SPAN CLASS="EquationVariables">

t</SPAN>

<SUB CLASS="SubscriptVariable">

q</SUB>

 is nonideal, by definition it is hard to predict how it will scale. We shall assume that <SPAN CLASS="EquationVariables">

t</SPAN>

<SUB CLASS="SubscriptVariable">

q</SUB>

 scales linearly with <SPAN CLASS="EquationVariables">

s</SPAN>

 for all cells. The total cell delay then scales as follows:  </P>

<TABLE>

<TR>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqnCenter">

<A NAME="pgfId=302975">

 </A>

<SPAN CLASS="EquationVariables">

t</SPAN>

<SUB CLASS="SubscriptVariable">

PD</SUB>

 = (<SPAN CLASS="EquationVariables">

R</SPAN>

/<SPAN CLASS="EquationVariables">

s</SPAN>

)&#183;(<SPAN CLASS="EquationVariables">

C</SPAN>

<SUB CLASS="Subscript">

out</SUB>

 + <SPAN CLASS="EquationVariables">

sC</SPAN>

<SUB CLASS="SubscriptVariable">

p</SUB>

) + <SPAN CLASS="EquationVariables">

st</SPAN>

<SUB CLASS="SubscriptVariable">

q</SUB>

 .</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqnNumber">

<A NAME="pgfId=302977">

 </A>

<A NAME="33273">

 </A>

(3.12)</P>

</TD>

</TR>

</TABLE>

<P CLASS="Body">

<A NAME="pgfId=302983">

 </A>

For example, the delay equation for a 2X drive (<SPAN CLASS="EquationVariables">

s</SPAN>

<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

2), two-input NAND cell is  </P>

<TABLE>

<TR>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqnCenter">

<A NAME="pgfId=302986">

 </A>

<SPAN CLASS="EquationVariables">

t</SPAN>

<SUB CLASS="SubscriptVariable">

PD</SUB>

 = (0.03 + 0.75<SPAN CLASS="EquationVariables">

C</SPAN>

<SUB CLASS="Subscript">

out</SUB>

 + 0.51) ns .</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqnNumber">

<A NAME="pgfId=302988">

 </A>

(3.13)</P>

</TD>

</TR>

</TABLE>

<P CLASS="Body">

<A NAME="pgfId=87899">

 </A>

Compared to the 1X version (Eq.&nbsp;<A HREF="#11565" CLASS="XRef">

3.11</A>

), the output parasitic delay has decreased to 0.03<SPAN CLASS="Symbol">

 </SPAN>

ns (from 0.07<SPAN CLASS="Symbol">

 </SPAN>

ns), whereas we predicted it would remain constant (the difference is because of the layout); the pull resistance has decreased by a factor of 2 from 1.5<SPAN CLASS="Symbol">

 </SPAN>

k<SPAN CLASS="Symbol">

W</SPAN>

 to 0.75<SPAN CLASS="Symbol">

 </SPAN>

k<SPAN CLASS="Symbol">

W </SPAN>

, as we would expect; and the nonideal delay has increased to 0.51<SPAN CLASS="Symbol">

 </SPAN>

ns (from 0.15<SPAN CLASS="Symbol">

 </SPAN>

ns). The differences between our predictions and the actual values give us a measure of the model accuracy.</P>

<P CLASS="Body">

<A NAME="pgfId=87903">

 </A>

We rewrite Eq.&nbsp;<A HREF="#33273" CLASS="XRef">

3.12</A>

 using the input capacitance of the scaled logic cell, <SPAN CLASS="EquationVariables">

C</SPAN>

<SUB CLASS="Subscript">

in</SUB>

<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

s<SPAN CLASS="EquationVariables">

C</SPAN>

,  </P>

<TABLE>

<TR>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqn">

<A NAME="pgfId=294699">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqn">

<A NAME="pgfId=294701">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqnCenter">

<A NAME="pgfId=294703">

 </A>

<SPAN CLASS="EquationVariables">

C</SPAN>

<SUB CLASS="Subscript">

out</SUB>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqn">

<A NAME="pgfId=294705">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqn">

<A NAME="pgfId=294707">

 </A>

&nbsp;</P>

</TD>

</TR>

<TR>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqn">

<A NAME="pgfId=294709">

 </A>

<SPAN CLASS="EquationVariables">

t</SPAN>

<SUB CLASS="SubscriptVariable">

PD</SUB>

<SPAN CLASS="Symbol">

 =</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqn">

<A NAME="pgfId=294711">

 </A>

<SPAN CLASS="EquationVariables">

RC</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqnCenter">

<A NAME="pgfId=294713">

 </A>

&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqn">

<A NAME="pgfId=294715">

 </A>

 + <SPAN CLASS="EquationVariables">

RC</SPAN>

<SUB CLASS="SubscriptVariable">

p</SUB>

 + <SPAN CLASS="EquationVariables">

st</SPAN>

<SUB CLASS="SubscriptVariable">

q</SUB>

 .</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqnNumber">

<A NAME="pgfId=294717">

 </A>

<A NAME="26866">

 </A>

(3.14)</P>

</TD>

</TR>

<TR>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqn">

<A NAME="pgfId=294719">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqn">

<A NAME="pgfId=294721">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqnCenter">

<A NAME="pgfId=294723">

 </A>

<SPAN CLASS="EquationVariables">

C</SPAN>

<SUB CLASS="Subscript">

in</SUB>

<SPAN CLASS="EquationVariables">

&nbsp;</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqn">

<A NAME="pgfId=294725">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqn">

<A NAME="pgfId=294727">

 </A>

&nbsp;</P>

</TD>

</TR>

</TABLE>

<P CLASS="Body">

<A NAME="pgfId=294768">

 </A>

Finally we normalize the delay using the time constant formed from the pull resistance <SPAN CLASS="EquationVariables">

R</SPAN>

<SUB CLASS="Subscript">

inv</SUB>

 and the input capacitance <SPAN CLASS="EquationVariables">

C</SPAN>

<SUB CLASS="Subscript">

inv</SUB>

 of a minimum-size inverter:  </P>

<TABLE>

<TR>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqn">

<A NAME="pgfId=294867">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqnCenter">

<A NAME="pgfId=294869">

 </A>

(<SPAN CLASS="EquationVariables">

RC</SPAN>

) (<SPAN CLASS="EquationVariables">

C</SPAN>

<SUB CLASS="Subscript">

out</SUB>

 / <SPAN CLASS="EquationVariables">

C</SPAN>

<SUB CLASS="Subscript">

in </SUB>

) + <SPAN CLASS="EquationVariables">

RC</SPAN>

<SUB CLASS="SubscriptVariable">

p</SUB>

 + <SPAN CLASS="EquationVariables">

st</SPAN>

<SUB CLASS="SubscriptVariable">

q</SUB>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqnCenter">

<A NAME="pgfId=294914">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqn">

<A NAME="pgfId=294871">

 </A>

&nbsp;</P>

</TD>

</TR>

<TR>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqn">

<A NAME="pgfId=294873">

 </A>

<SPAN CLASS="EquationVariables">

d</SPAN>

<SPAN CLASS="Symbol">

 =</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqnCenter">

<A NAME="pgfId=294875">

 </A>

&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;&#8211;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqnCenter">

<A NAME="pgfId=294916">

 </A>

= <SPAN CLASS="EquationVariables">

f</SPAN>

 + <SPAN CLASS="EquationVariables">

p</SPAN>

 + <SPAN CLASS="EquationVariables">

q .</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqnNumber">

<A NAME="pgfId=294877">

 </A>

<A NAME="28075">

 </A>

(3.15)</P>

</TD>

</TR>

<TR>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqn">

<A NAME="pgfId=294879">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqnCenter">

<A NAME="pgfId=294881">

 </A>

<SPAN CLASS="Symbol">

t</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqnCenter">

<A NAME="pgfId=294918">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableEqn">

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?