⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch05.4.htm

📁 介绍asci设计的一本书
💻 HTM
📖 第 1 页 / 共 2 页
字号:
</TR>

</TABLE>

<P CLASS="Body">

<A NAME="pgfId=19238">

 </A>

Another common feature in complex PLDs, also used in some PLDs, is shown in <A HREF="CH05.4.htm#13458" CLASS="XRef">

Figure&nbsp;5.13</A>

. Programming one input of the XOR gate at the macrocell output allows you to choose whether or not to invert the output (a '1' for inversion or to a '0' for no inversion). This <SPAN CLASS="Definition">

programmable inversion</SPAN>

<A NAME="marker=35208">

 </A>

 can reduce the required number of product terms by using a <A NAME="marker=38145">

 </A>

de Morgan equivalent representation instead of a conventional sum-of-products form, as shown in <A HREF="CH05.4.htm#38723" CLASS="XRef">

Figure&nbsp;5.14</A>

. </P>

<P CLASS="Body">

<A NAME="pgfId=87759">

 </A>

As an example of using programmable inversion, consider the function</P>

<P CLASS="EqnNmbrdAlign">

<A NAME="pgfId=54391">

 </A>

	F = A &#183; B' + A &#183; C' + A &#183; D' + A' &#183; C &#183; D&nbsp;,(5.24)</P>

<P CLASS="BodyAfterHead">

<A NAME="pgfId=54389">

 </A>

which requires four product terms&#8212;one too many for a three-wide OR array.</P>

<P CLASS="Body">

<A NAME="pgfId=89108">

 </A>

If we generate the complement of F instead,</P>

<P CLASS="EqnNmbrdAlign">

<A NAME="pgfId=54403">

 </A>

	F ' = A &#183; B &#183; C &#183; D + A' &#183; D' + A' &#183; C'&nbsp;,(5.25)</P>

<P CLASS="BodyAfterHead">

<A NAME="pgfId=3909">

 </A>

this has only three product terms. To create F we invert F ', using programmable inversion.</P>

<P CLASS="Body">

<A NAME="pgfId=74002">

 </A>

<A HREF="CH05.4.htm#42342" CLASS="XRef">

Figure&nbsp;5.15</A>

 shows an Altera MAX macrocell and illustrates the architectures of several different product families. The implementation details vary among the families, but the basic features: wide programmable-AND array, narrow fixed-OR array, logic expanders, and programmable inversion&#8212;are very similar.<SUP CLASS="Superscript">

<A HREF="#pgfId=74005" CLASS="footnote">

1</A>

</SUP>

 Each family has the following individual characteristics:</P>

<UL>

<LI CLASS="BulletFirst">

<A NAME="pgfId=74039">

 </A>

A typical MAX 5000 chip has: 8 dedicated inputs (with both true and complement forms); 24 inputs from the chipwide interconnect (true and complement); and either 32 or 64 shared expander terms (single polarity). The MAX 5000 LAB looks like a <A NAME="marker=74006">

 </A>

32V16 PLD (ignoring the expander terms). </LI>

<LI CLASS="BulletList">

<A NAME="pgfId=74040">

 </A>

The MAX 7000 LAB has 36 inputs from the chipwide interconnect and 16 shared expander terms; the MAX 7000 LAB looks like a <A NAME="marker=74007">

 </A>

36V16 PLD. </LI>

<LI CLASS="BulletLast">

<A NAME="pgfId=74041">

 </A>

The MAX 9000 LAB has 33 inputs from the chipwide interconnect and 16 local feedback inputs (as well as 16 shared expander terms); the MAX 9000 LAB looks like a <A NAME="marker=74008">

 </A>

49V16 PLD.  </LI>

<TABLE>

<TR>

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

<P CLASS="TableFigure">

<A NAME="pgfId=74014">

 </A>

<IMG SRC="CH05-15.gif" ALIGN="BASELINE">

&nbsp;</P>

</TD>

</TR>

<TR>

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

<P CLASS="TableFigureTitle">

<A NAME="pgfId=74017">

 </A>

FIGURE&nbsp;5.15&nbsp;<A NAME="42342">

 </A>

The Altera MAX architecture. (a)&nbsp;Organization of logic and interconnect. (b)&nbsp;A MAX family LAB (Logic Array Block). (c)&nbsp;A MAX family macrocell. The macrocell details vary between the MAX families&#8212;the functions shown here are closest to those of the MAX 9000 family macrocells.</P>

</TD>

</TR>

</TABLE>

<TABLE>

<TR>

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

<P CLASS="TableFigure">

<A NAME="pgfId=74023">

 </A>

<IMG SRC="CH05-16.gif" ALIGN="BASELINE">

&nbsp;</P>

</TD>

</TR>

<TR>

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

<P CLASS="TableFigureTitle">

<A NAME="pgfId=74026">

 </A>

FIGURE&nbsp;5.16&nbsp;<A NAME="36397">

 </A>

The timing model for the Altera MAX architecture. (a)&nbsp; A direct path through the logic array and a register. (b) Timing for the direct path. (c)&nbsp;Using a parallel expander. (d)&nbsp;Parallel expander timing. (e)&nbsp;Making two passes through the logic array to use a shared expander. (f)&nbsp;Timing for the shared expander (there is no register in this path). All timing values are in nanoseconds for the MAX 9000 series, '15' speed grade. (<SPAN CLASS="Emphasis">

Source:</SPAN>

 Altera.)</P>

</TD>

</TR>

</TABLE>

</UL>

</DIV>

<DIV>

<H2 CLASS="Heading2">

<A NAME="pgfId=81345">

 </A>

5.4.2&nbsp;Timing Model</H2>

<P CLASS="BodyAfterHead">

<A NAME="pgfId=87877">

 </A>

<A HREF="CH05.4.htm#36397" CLASS="XRef">

Figure&nbsp;5.16</A>

 shows the Altera MAX timing model for local signals.<SUP CLASS="Superscript">

<A HREF="#pgfId=87885" CLASS="footnote">

2</A>

</SUP>

 For example, in <A HREF="CH05.4.htm#36397" CLASS="XRef">

Figure&nbsp;5.16</A>

(a) an internal signal, I1, enters the local array (the LAB interconnect with a fixed delay <SPAN CLASS="EquationNumber">

t</SPAN>

<SUB CLASS="Subscript">

1</SUB>

 = t<SUB CLASS="Subscript">

LOCAL</SUB>

 = 0.5 ns), passes through the AND array (delay <SPAN CLASS="EquationNumber">

t</SPAN>

<SUB CLASS="Subscript">

2</SUB>

 = t<SUB CLASS="Subscript">

LAD</SUB>

 = 4.0 ns), and to the macrocell flip-flop (with <SPAN CLASS="EquationNumber">

setup</SPAN>

 time, <SPAN CLASS="EquationNumber">

t</SPAN>

<SUB CLASS="Subscript">

3</SUB>

 = t<SUB CLASS="Subscript">

SU</SUB>

 = 3.0 ns, and clock&#8211;Q or <SPAN CLASS="Definition">

register delay</SPAN>

<A NAME="marker=53567">

 </A>

, <SPAN CLASS="EquationNumber">

t</SPAN>

<SUB CLASS="Subscript">

4</SUB>

 = t<SUB CLASS="Subscript">

RD</SUB>

= 1.0 ns). The path delay is thus: 0.5 + 4 +3 + 1 = 8.5 ns.</P>

<P CLASS="Body">

<A NAME="pgfId=53303">

 </A>

<A HREF="CH05.4.htm#36397" CLASS="XRef">

Figure&nbsp;5.16</A>

(c) illustrates the use of a <A NAME="marker=83476">

 </A>

<SPAN CLASS="Definition">

parallel logic expander</SPAN>

. This is different from the case of the <SPAN CLASS="Emphasis">

shared</SPAN>

 expander (<A HREF="CH05.4.htm#13458" CLASS="XRef">

Figure&nbsp;5.13</A>

), which required two passes in series through the product-term array. Using a parallel logic expander, the extra product term is generated in an adjacent macrocell in parallel with other product terms (not in series&#8212;as in a shared expander).</P>

<P CLASS="Body">

<A NAME="pgfId=109808">

 </A>

We can illustrate the difference between a parallel expander and a shared expander using an example function that we have used before (Eq.&nbsp;<A HREF="CH05.4.htm#11180" CLASS="XRef">

5.22</A>

),</P>

<P CLASS="EqnNmbrdAlign">

<A NAME="pgfId=109819">

 </A>

<A NAME="16819">

 </A>

	F = A' &#183; C &#183; D + B' &#183; C &#183; D + A &#183; B + B &#183; C' .(5.26)</P>

<P CLASS="Body">

<A NAME="pgfId=109824">

 </A>

This time we shall use macrocell M1 in <A HREF="CH05.4.htm#36397" CLASS="XRef">

Figure&nbsp;5.16</A>

(d) to implement F1 equal to the sum of the first three product terms in Eq.&nbsp;<A HREF="CH05.4.htm#16819" CLASS="XRef">

5.26</A>

. We use F1 (using the parallel expander connection between adjacent macrocells shown in <A HREF="CH05.4.htm#42342" CLASS="XRef">

Figure&nbsp;5.15</A>

) as an input to macrocell M2. Now we can form F = F1 + B &#183; C' without using more than three inputs of an OR gate (the MAX&nbsp;5000 has a three-wide OR array in the macrocell, the MAX&nbsp;9000, as shown in <A HREF="CH05.4.htm#42342" CLASS="XRef">

Figure&nbsp;5.15</A>

, is capable of handling five product terms in one macrocell&#8212;but the principle is the same). The total delay is the same as before, except that we add the delay of a parallel expander, t<SUB CLASS="Subscript">

PEXP</SUB>

 = 1.0 ns. Total delay is then 8.5 + 1 = 9.5 ns.</P>

<P CLASS="Body">

<A NAME="pgfId=53423">

 </A>

<A HREF="CH05.4.htm#36397" CLASS="XRef">

Figure&nbsp;5.16</A>

(e) and (f) shows the use of a shared expander&#8212;similar to <A HREF="CH05.4.htm#13458" CLASS="XRef">

Figure&nbsp;5.13</A>

. </P>

<P CLASS="Body">

<A NAME="pgfId=89105">

 </A>

The Altera MAX macrocell is more like a PLD than the other FPGA architectures discussed here; that is why Altera calls the MAX architecture a complex PLD. This means that the MAX architecture works well in applications for which PLDs are most useful: simple, fast logic with many inputs or variables.</P>

</DIV>

<DIV>

<H2 CLASS="Heading2">

<A NAME="pgfId=73863">

 </A>

5.4.3&nbsp;Power Dissipation in Complex PLDs</H2>

<P CLASS="BodyAfterHead">

<A NAME="pgfId=73967">

 </A>

A programmable-AND array in any PLD built using EPROM or EEPROM transistors uses a passive pull-up (a resistor or current source), and these macrocells consume <SPAN CLASS="Definition">

static power</SPAN>

<A NAME="marker=73968">

 </A>

. Altera uses a switch called the <SPAN CLASS="Definition">

Turbo Bit</SPAN>

<A NAME="marker=73972">

 </A>

 to control the current in the programmable-AND array in each macrocell. For the MAX 7000, static current varies between 1.4 mA and 2.2 mA per macrocell in high-power mode (the current depends on the part&#8212;generally, but not always, the larger 7000 parts have lower operating currents) and between 0.6 mA and 0.8 mA in low-power mode. For the MAX 9000, the static current is 0.6 mA per macrocell in high-current mode and 0.3 mA in low-power mode, independent of the part size.<SUP CLASS="Superscript">

<A HREF="#pgfId=73945" CLASS="footnote">

3</A>

</SUP>

 Since there are 16 macrocells in a LAB and up to 35 LABs on the largest MAX&nbsp;9000 chip (16 <SPAN CLASS="Symbol">

&#165;</SPAN>

 35 = 560 macrocells), just the static power dissipation in low-power mode can be substantial (560 <SPAN CLASS="Symbol">

&#165;</SPAN>

 0.3 mA <SPAN CLASS="Symbol">

&#165;</SPAN>

 5 V = 840 mW). If all the macrocells are in high-power mode, the static power will double. This is the price you pay for having an (up to) 114-wide AND gate delay of a few nanoseconds (t<SUB CLASS="Subscript">

LAD</SUB>

 = 4.0 ns) in the MAX 9000. For any MAX 9000 macrocell in the low-power mode it is necessary to add a delay of between 15 ns and 20 ns to any signal path through the local interconnect and logic array (including t<SUB CLASS="Subscript">

LAD</SUB>

 and t<SUB CLASS="Subscript">

PEXP</SUB>

). </P>

</DIV>

<HR>

<DIV CLASS="footnotes">

<DIV CLASS="footnote">

<P CLASS="Footnote">

<SPAN CLASS="footnoteNumber">

1.</SPAN>

<A NAME="pgfId=74005">

 </A>

1995 data book p.&nbsp;274 (5000), p.&nbsp;160 (7000), p.&nbsp;126 (9000).</P>

</DIV>

<DIV CLASS="footnote">

<P CLASS="Footnote">

<SPAN CLASS="footnoteNumber">

2.</SPAN>

<A NAME="pgfId=87885">

 </A>

 March 1995 data sheet, v2.</P>

</DIV>

<DIV CLASS="footnote">

<P CLASS="Footnote">

<SPAN CLASS="footnoteNumber">

3.</SPAN>

<A NAME="pgfId=73945">

 </A>

1995 data book, p.&nbsp;1-47.</P>

</DIV>

</DIV>

<HR><P>[&nbsp;<A HREF="CH05.htm">Chapter&nbsp;start</A>&nbsp;]&nbsp;[&nbsp;<A HREF="CH05.3.htm">Previous&nbsp;page</A>&nbsp;]&nbsp;[&nbsp;<A HREF="CH05.5.htm">Next&nbsp;page</A>&nbsp;]</P></BODY>



<!--#include file="Copyright.html"--><!--#include file="footer.html"-->

⌨️ 快捷键说明

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