📄 ch05.4.htm
字号:
</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 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 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 · B' + A · C' + A · D' + A' · C · D ,(5.24)</P>
<P CLASS="BodyAfterHead">
<A NAME="pgfId=54389">
</A>
which requires four product terms—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 · B · C · D + A' · D' + A' · C' ,(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 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—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">
</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableFigureTitle">
<A NAME="pgfId=74017">
</A>
FIGURE 5.15 <A NAME="42342">
</A>
The Altera MAX architecture. (a) Organization of logic and interconnect. (b) A MAX family LAB (Logic Array Block). (c) A MAX family macrocell. The macrocell details vary between the MAX families—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">
</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableFigureTitle">
<A NAME="pgfId=74026">
</A>
FIGURE 5.16 <A NAME="36397">
</A>
The timing model for the Altera MAX architecture. (a) A direct path through the logic array and a register. (b) Timing for the direct path. (c) Using a parallel expander. (d) Parallel expander timing. (e) Making two passes through the logic array to use a shared expander. (f) 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 Timing Model</H2>
<P CLASS="BodyAfterHead">
<A NAME="pgfId=87877">
</A>
<A HREF="CH05.4.htm#36397" CLASS="XRef">
Figure 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 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–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 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 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—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. <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' · C · D + B' · C · D + A · B + B · 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 5.16</A>
(d) to implement F1 equal to the sum of the first three product terms in Eq. <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 5.15</A>
) as an input to macrocell M2. Now we can form F = F1 + B · C' without using more than three inputs of an OR gate (the MAX 5000 has a three-wide OR array in the macrocell, the MAX 9000, as shown in <A HREF="CH05.4.htm#42342" CLASS="XRef">
Figure 5.15</A>
, is capable of handling five product terms in one macrocell—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 5.16</A>
(e) and (f) shows the use of a shared expander—similar to <A HREF="CH05.4.htm#13458" CLASS="XRef">
Figure 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 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—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 9000 chip (16 <SPAN CLASS="Symbol">
¥</SPAN>
35 = 560 macrocells), just the static power dissipation in low-power mode can be substantial (560 <SPAN CLASS="Symbol">
¥</SPAN>
0.3 mA <SPAN CLASS="Symbol">
¥</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. 274 (5000), p. 160 (7000), p. 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. 1-47.</P>
</DIV>
</DIV>
<HR><P>[ <A HREF="CH05.htm">Chapter start</A> ] [ <A HREF="CH05.3.htm">Previous page</A> ] [ <A HREF="CH05.5.htm">Next page</A> ]</P></BODY>
<!--#include file="Copyright.html"--><!--#include file="footer.html"-->
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -