ch03.a.htm

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

HTM
2,595
字号
 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

AOI2-2<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

((A'&#183;B')<SPAN CLASS="Symbol">

 </SPAN>

+<SPAN CLASS="Symbol">

 </SPAN>

(C&#183;D))' = (A<SPAN CLASS="Symbol">

 </SPAN>

+<SPAN CLASS="Symbol">

 </SPAN>

B)(C'<SPAN CLASS="Symbol">

 </SPAN>

+<SPAN CLASS="Symbol">

 </SPAN>

D')<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

OA2-2</LI>

<LI CLASS="BulletList">

<A NAME="pgfId=54674">

 </A>

FN04<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

OAI2-2</LI>

<LI CLASS="BulletLast">

<A NAME="pgfId=54675">

 </A>

FN05<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

A&#183;B'<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

(A'<SPAN CLASS="Symbol">

 </SPAN>

+<SPAN CLASS="Symbol">

 </SPAN>

B)'</LI>

<LI CLASS="ExercisePartFirst">

<A NAME="pgfId=211182">

 </A>

a.&nbsp;Draw schematics for these cells. </LI>

<LI CLASS="ExercisePart">

<A NAME="pgfId=211183">

 </A>

b.&nbsp;Calculate the logical effort and logical area for each cell. </LI>

<LI CLASS="ExercisePart">

<A NAME="pgfId=211184">

 </A>

c.&nbsp;Can you explain where and why these cells might be useful?</LI>

</UL>

<P CLASS="ExerciseHead">

<A NAME="pgfId=223915">

 </A>

3.10&nbsp;<A NAME="31313">

 </A>

(Euler paths, 60 min.) There are several ways to arrange the stacks in the AOI211 cell shown in Figure&nbsp;<A HREF="#28256" CLASS="XRef">

3.25</A>

. For example, the<SPAN CLASS="EmphasisPrefix">

 n</SPAN>

-channel transistor A can be below B without altering the function. Which arrangement would you predict gives a faster delay from A to Z and why? The <SPAN CLASS="EmphasisPrefix">

p</SPAN>

-channel transistors A and B can be above or below transistors C and D. How many distinct ways of arranging the transistors are there for this cell? What effect do the different arrangements have on layout? What effects do these different arrangements have on the cell performance?</P>

<TABLE>

<TR>

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

<P CLASS="TableFigure">

<A NAME="pgfId=223925">

 </A>

&nbsp;</P>

<DIV>

<IMG SRC="CH03-43.gif">

</DIV>

</TD>

</TR>

<TR>

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

<P CLASS="TableFigureTitle">

<A NAME="pgfId=223929">

 </A>

FIGURE&nbsp;3.25&nbsp;<A NAME="28256">

 </A>

There are several ways to arrange the transistors in this AOI211 cell (Problem <A HREF="#31313" CLASS="XRef">

3.10</A>

).</P>

</TD>

</TR>

</TABLE>

<P CLASS="ExerciseHead">

<A NAME="pgfId=223934">

 </A>

3.11&nbsp;<A NAME="14410">

 </A>

(*AOI and OAI cell efficiency, 60 min.) A standard-cell library data book contains the following data:</P>

<UL>

<LI CLASS="BulletFirst">

<A NAME="pgfId=213807">

 </A>

AOI221:&nbsp;<SPAN CLASS="EquationVariables">

t</SPAN>

<SUB CLASS="SubscriptVariable">

R</SUB>

<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

1.06&#8211;1.15 ns;&nbsp;<SPAN CLASS="EquationVariables">

t</SPAN>

<SUB CLASS="SubscriptVariable">

F</SUB>

<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

1.09&#8211;1.55 ns;&nbsp;<SPAN CLASS="EquationNumber">

C</SPAN>

<SUB CLASS="Subscript">

in</SUB>

<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

0.21&#8211;0.28 pF; <SPAN CLASS="EquationNumber">

W</SPAN>

<SUB CLASS="Subscript">

C</SUB>

<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

28.8 <SPAN CLASS="Symbol">

m</SPAN>

m</LI>

<LI CLASS="BulletLast">

<A NAME="pgfId=213808">

 </A>

OAI221:&nbsp;<SPAN CLASS="EquationVariables">

t</SPAN>

<SUB CLASS="SubscriptVariable">

R</SUB>

<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

0.77&#8211;1.05 ns;&nbsp;<SPAN CLASS="EquationVariables">

t</SPAN>

<SUB CLASS="SubscriptVariable">

F</SUB>

<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

0.81&#8211;0.96 ns;&nbsp;<SPAN CLASS="EquationNumber">

C</SPAN>

<SUB CLASS="Subscript">

in</SUB>

<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

0.25&#8211;0.39 pF; <SPAN CLASS="EquationNumber">

W</SPAN>

<SUB CLASS="Subscript">

C</SUB>

<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

22.4 <SPAN CLASS="Symbol">

m</SPAN>

m</LI>

</UL>

<P CLASS="ExerciseNoIndent">

<A NAME="pgfId=148855">

 </A>

(<SPAN CLASS="EquationNumber">

W</SPAN>

<SUB CLASS="Subscript">

C</SUB>

 is the cell width, the cell height is 25.6<SPAN CLASS="Symbol">

 m</SPAN>

m.) Calculate the <SPAN CLASS="Bold">

(a)</SPAN>

&nbsp;logical effort and <SPAN CLASS="Bold">

(b)</SPAN>

&nbsp;logical area for the AOI221 and OAI221 cells. </P>

<P CLASS="Exercise">

<A NAME="pgfId=148885">

 </A>

The implementation of the OAI221 in this library uses a single stage,</P>

<P CLASS="EquationAlign">

<A NAME="pgfId=148886">

 </A>

	 OAI221<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

OAI221(a1, a2, b1, b2, c),</P>

<P CLASS="Exercise">

<A NAME="pgfId=148892">

 </A>

whereas the AOI221 uses the following multistage implementation:</P>

<P CLASS="EquationAlign">

<A NAME="pgfId=148893">

 </A>

	 AOI221<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

NOT(NAND(NAND(a1, a2), AOI21(b1, b2, c))).</P>

<P CLASS="Exercise">

<A NAME="pgfId=148890">

 </A>

<SPAN CLASS="Bold">

(c)</SPAN>

&nbsp;What are the alternative implementations for these two cells? <SPAN CLASS="Bold">

(d)</SPAN>

&nbsp;From your answers attempt to explain the implementations chosen.</P>

<P CLASS="ExerciseHead">

<A NAME="pgfId=159504">

 </A>

3.12&nbsp;(**Logical efficiency, 60 min.) Extending Problem&nbsp;<A HREF="#14410" CLASS="XRef">

3.11</A>

, let us compare an AOI33 with an OAI33 cell. <SPAN CLASS="Bold">

(a)</SPAN>

&nbsp;Calculate the logical effort and <SPAN CLASS="Bold">

(b)</SPAN>

&nbsp;logical areas for these cells.</P>

<P CLASS="Exercise">

<A NAME="pgfId=159505">

 </A>

The AOI33 uses a single-stage implementation as follows:</P>

<P CLASS="EquationAlign">

<A NAME="pgfId=159506">

 </A>

	 AOI33<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

aoi33(a1, a2, a3, b1, b2, b3).</P>

<P CLASS="Exercise">

<A NAME="pgfId=149147">

 </A>

The OAI33 uses the following multistage implementation:</P>

<P CLASS="EquationAlign">

<A NAME="pgfId=149148">

 </A>

	 OAI33<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

not[nor[nor(a1, a2, a3), nor(b1, b2, b3)]].</P>

<P CLASS="Exercise">

<A NAME="pgfId=149164">

 </A>

<SPAN CLASS="Bold">

(c)</SPAN>

&nbsp;Calculate the path delay, <SPAN CLASS="EquationVariables">

D</SPAN>

, as a function of path electrical effort, <SPAN CLASS="EquationVariables">

H</SPAN>

, for both of these implementations ignoring parasitic and nonideal delays. <SPAN CLASS="Bold">

(d)</SPAN>

&nbsp;Use Eq.&nbsp;<A HREF="CH03.3.htm#30070" CLASS="XRef">

3.42</A>

 to calculate the optimum path delay for these cells. <SPAN CLASS="Bold">

(e)</SPAN>

&nbsp;Compare and explain the differences between your answers to parts d and e for <SPAN CLASS="EquationVariables">

H</SPAN>

<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

1, 2, 4, and 8.</P>

<P CLASS="Exercise">

<A NAME="pgfId=149212">

 </A>

The timing data from the data book is as follows (the cell height is 25.6<SPAN CLASS="Symbol">

 m</SPAN>

m):</P>

<UL>

<LI CLASS="BulletFirst">

<A NAME="pgfId=149165">

 </A>

AOI33: <SPAN CLASS="EquationVariables">

t</SPAN>

<SUB CLASS="SubscriptVariable">

R</SUB>

<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

0.70&#8211;1.06 ns;&nbsp;<SPAN CLASS="EquationVariables">

t</SPAN>

<SUB CLASS="SubscriptVariable">

F</SUB>

<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

0.72&#8211;1.15 ns;<SPAN CLASS="EquationVariables">

&nbsp;C</SPAN>

<SUB CLASS="Subscript">

in</SUB>

<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

0.21&#8211;0.28 pF;&nbsp;<SPAN CLASS="EquationNumber">

W</SPAN>

<SUB CLASS="Subscript">

C</SUB>

<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

35.2 <SPAN CLASS="Symbol">

m</SPAN>

m</LI>

<LI CLASS="BulletFirst">

<A NAME="pgfId=213813">

 </A>

OAI33: <SPAN CLASS="EquationVariables">

t</SPAN>

<SUB CLASS="SubscriptVariable">

R</SUB>

<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

1.06&#8211;1.70 ns;&nbsp;<SPAN CLASS="EquationVariables">

t</SPAN>

<SUB CLASS="SubscriptVariable">

F</SUB>

<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

1.42&#8211;1.98 ns;&nbsp;<SPAN CLASS="EquationVariables">

C</SPAN>

<SUB CLASS="Subscript">

in</SUB>

<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

0.31&#8211;0.36 pF;&nbsp;<SPAN CLASS="EquationNumber">

W</SPAN>

<SUB CLASS="Subscript">

C</SUB>

<SPAN CLASS="Symbol">

 </SPAN>

=<SPAN CLASS="Symbol">

 </SPAN>

48 <SPAN CLASS="Symbol">

m</SPAN>

m</LI>

</UL>

<P CLASS="Exercise">

<A NAME="pgfId=213814">

 </A>

<SPAN CLASS="Bold">

(f)</SPAN>

&nbsp;How does this data compare with your theoretical analysis?</P>

<P CLASS="ExerciseHead">

<A NAME="pgfId=213818">

 </A>

3.13&nbsp;(EXOR cells and logical effort, 60 min.) Show how to implement a two-input EXOR cell using an AOI22 and two inverters. Using logical effort, compare this with an implementation using an AOI21 cell and a NOR cell.</P>

<P CLASS="ExerciseHead">

<A NAME="pgfId=89681">

 </A>

3.14&nbsp;<A NAME="38899">

 </A>

(***XNOR cells, 60 min.) Table&nbsp;<A HREF="#36434" CLASS="XRef">

3.3</A>

 shows the implementation of XNOR cells in a standard-cell library. Analyze this data using the concept of logical effort. </P>

<TABLE>

<TR>

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

<P CLASS="TableTitle">

<A NAME="pgfId=57572">

 </A>

TABLE&nbsp;3.3&nbsp;<A NAME="36434">

 </A>

Implementations of XNOR cells in CMOS (Problem <A HREF="#38899" CLASS="XRef">

3.14</A>

).</P>

</TD>

</TR>

<TR>

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

<P CLASS="Table">

<A NAME="pgfId=57576">

 </A>

<SPAN CLASS="TableHeads">

Cell</SPAN>

</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=57578">

 </A>

<SPAN CLASS="TableHeads">

	Implementation</SPAN>

</P>

</TD>

</TR>

<TR>

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

<P CLASS="Table">

<A NAME="pgfId=57580">

 </A>

Library 1: XNOR2D1</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=211965">

 </A>

nand[or(a1,a2),nand(a1,a2)]</P>

</TD>

</TR>

<TR>

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

<P CLASS="Table">

<A NAME="pgfId=57584">

 </A>

Library 2: XNOR2D1</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=57586">

 </A>

NOT[NOT[MUX[a1, NOT(a1),a2)]]</P>

</TD>

</TR>

<TR>

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

<P CLASS="Table">

<A NAME="pgfId=57588">

 </A>

Library 1: XNOR2D2</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=57590">

 </A>

NOT[NOT[MUX(a1,NOT(a1),a2)]]</P>

</TD>

</TR>

<TR>

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

<P CLASS="Table">

<A NAME="pgfId=57592">

 </A>

Library 2: XNOR2D2</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=57594">

 </A>

nand[or(a1,a2),nand(a1,a2)]</P>

</TD>

</TR>

<TR>

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

<P CLASS="Table">

<A NAME="pgfId=57596">

 </A>

Library 1: XNOR3D1</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=211994">

 </A>

NOT[NOT[MUX(a1, NOT(a1), NOT(MUX(a3, NOT(a3),a2)))]]</P>

</TD>

</TR>

<TR>

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

<P CLASS="Table">

<A NAME="pgfId=57600">

 </A>

Library 1: XNOR3D2</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=57602">

 </A>

NOT[NOT[MUX(a1, NOT(a1), NOT(MUX(a3, NOT(a3),a2)))]]</P>

</TD>

</TR>

</TABLE>

<P CLASS="ExerciseHead">

<A NAME="pgfId=55462">

 </A>

3.15&nbsp;(***Extensions to logical effort, 60 min.) The <SPAN CLASS="Definition">

path branching effort</SPAN>

<A NAME="marker=55461">

 </A>

 <SPAN CLASS="EquationVariables">

B</SPAN>

 is the product of branching efforts:  </P>

<TABLE>

<TR>

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

<P CLASS="TableEqn">

<A NAME="pgfId=327977">

 </A>

&nbsp;</P>

⌨️ 快捷键说明

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