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

📄 ch14.7.htm

📁 介绍asci设计的一本书
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<A NAME="pgfId=84751">

 </A>

22</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84753">

 </A>

0, 1, 22</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84755">

 </A>

32</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84757">

 </A>

0, 1, 27, 28, 32</P>

</TD>

</TR>

<TR>

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

<P CLASS="Table">

<A NAME="pgfId=84759">

 </A>

3</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84761">

 </A>

0, 1, 3</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84763">

 </A>

13</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84765">

 </A>

0, 1, 3, 4, 13</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84767">

 </A>

23</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84769">

 </A>

0, 5, 23</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84771">

 </A>

40</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84773">

 </A>

0, 2, 19, 21, 40</P>

</TD>

</TR>

<TR>

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

<P CLASS="Table">

<A NAME="pgfId=84775">

 </A>

4</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84777">

 </A>

0, 1, 4</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84779">

 </A>

14</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84781">

 </A>

0, 1, 11, 12, 14</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84783">

 </A>

24</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84785">

 </A>

0, 1, 3, 4, 24</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84787">

 </A>

50</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84789">

 </A>

0, 1, 26, 27, 50</P>

</TD>

</TR>

<TR>

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

<P CLASS="Table">

<A NAME="pgfId=84791">

 </A>

5</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84793">

 </A>

0, 2, 5</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84795">

 </A>

15</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84797">

 </A>

0, 1, 15</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84799">

 </A>

25</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84801">

 </A>

0, 3, 25</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84803">

 </A>

60</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84805">

 </A>

0, 1, 60</P>

</TD>

</TR>

<TR>

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

<P CLASS="Table">

<A NAME="pgfId=84807">

 </A>

6</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84809">

 </A>

0, 1, 6</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84811">

 </A>

16</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84813">

 </A>

0, 2, 3, 5, 16</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84815">

 </A>

26</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84817">

 </A>

0, 1, 7, 26</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84819">

 </A>

70</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84821">

 </A>

0, 1, 15, 16, 70</P>

</TD>

</TR>

<TR>

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

<P CLASS="Table">

<A NAME="pgfId=84823">

 </A>

7</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84825">

 </A>

0, 1, 7</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84827">

 </A>

17</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84829">

 </A>

0, 3, 17</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84831">

 </A>

27</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84833">

 </A>

0, 1, 7, 27</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84835">

 </A>

80</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84837">

 </A>

0, 1, 37, 38, 80</P>

</TD>

</TR>

<TR>

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

<P CLASS="Table">

<A NAME="pgfId=84839">

 </A>

8</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84841">

 </A>

0, 1, 5, 6, 8</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84843">

 </A>

18</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84845">

 </A>

0, 7, 18</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84847">

 </A>

28</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84849">

 </A>

0, 3, 28</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84851">

 </A>

90</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84853">

 </A>

0, 1, 18, 19, 90</P>

</TD>

</TR>

<TR>

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

<P CLASS="Table">

<A NAME="pgfId=84855">

 </A>

9</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84857">

 </A>

0, 4, 9</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84859">

 </A>

19</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84861">

 </A>

0, 1, 5, 6, 19</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84863">

 </A>

29</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84865">

 </A>

0, 2, 29</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84867">

 </A>

100</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84869">

 </A>

0, 37, 100</P>

</TD>

</TR>

<TR>

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

<P CLASS="Table">

<A NAME="pgfId=84871">

 </A>

10</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84873">

 </A>

0, 3, 10</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84875">

 </A>

20</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84877">

 </A>

0, 3, 20</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84879">

 </A>

30</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84881">

 </A>

0, 1, 15, 16, 30</P>

</TD>

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

<P CLASS="Table">

<A NAME="pgfId=84883">

 </A>

256</P>

</TD>

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

<P CLASS="TableLeft">

<A NAME="pgfId=84885">

 </A>

0, 1, 3, 16, 256</P>

</TD>

</TR>

</TABLE>

<P CLASS="Body">

<A NAME="pgfId=85391">

 </A>

There is confusion over naming, labeling, and drawing of LFSRs in texts and test programs. Looking at the schematic in <A HREF="CH14.7.htm#14685" CLASS="XRef">

Figure&nbsp;14.27</A>

, we can draw the LFSR with signals flowing from left to right or vice versa (two ways), we can name the leftmost flip-flop output <SPAN CLASS="EquationVariables">

Q</SPAN>

<SUB CLASS="Subscript">

0</SUB>

 or <SPAN CLASS="EquationVariables">

Q</SPAN>

<SUB CLASS="SubscriptVariable">

n</SUB>

 (two more ways), and we can name the coefficient that goes with <SPAN CLASS="EquationVariables">

Q</SPAN>

<SUB CLASS="Subscript">

0</SUB>

 either <SPAN CLASS="EquationVariables">

c</SPAN>

<SUB CLASS="Subscript">

0</SUB>

 or <SPAN CLASS="EquationVariables">

c</SPAN>

<SUB CLASS="SubscriptVariable">

n</SUB>

 <SUB CLASS="Subscript">

&#8211;</SUB>

 <SUB CLASS="Subscript">

1</SUB>

 (two more ways). There are thus at least 2<SUP CLASS="Superscript">

3</SUP>

 <SPAN CLASS="Symbol">

&#165;</SPAN>

 4 different ways to draw an LFSR for a given polynomial. Four of these are distinct. You can connect the LFSR feedback in the reverse order and the LFSR will still work&#8212;you will, however, get a different sequence. Usually this does not matter.</P>

</DIV>

<DIV>

<H2 CLASS="Heading2">

<A NAME="pgfId=85139">

 </A>

14.7.6&nbsp;LFSR Example</H2>

<P CLASS="BodyAfterHead">

<A NAME="pgfId=85140">

 </A>

We can use a cell compiler to produce LFSR and signature register BIST structures. For example, we might complete a property sheet as follows:</P>

<P CLASS="ComputerFirst">

<A NAME="pgfId=85209">

 </A>

property name 										value 				property name 										value </P>

<P CLASS="Computer">

<A NAME="pgfId=85228">

 </A>

------------------										-----				------------------										-----</P>

<P CLASS="Computer">

<A NAME="pgfId=85210">

 </A>

LFSR_is_bilbo 										false 				LFSR_configuration 										generator </P>

<P CLASS="Computer">

<A NAME="pgfId=85212">

 </A>

LFSR_length 										3				LFSR_init_hex_value 										4 </P>

<P CLASS="Computer">

<A NAME="pgfId=85214">

 </A>

LFSR_scan 										false 				LFSR_mux_data 										false </P>

<P CLASS="Computer">

<A NAME="pgfId=85216">

 </A>

LFSR_mux_output 										false 				LFSR_xor_hex_function 										max_length </P>

<P CLASS="ComputerLast">

<A NAME="pgfId=85218">

 </A>

LFSR_zero_state 										false 				LFSR_signature_inputs 										1 </P>

<P CLASS="Body">

<A NAME="pgfId=85677">

 </A>

The Verilog structural netlist for the compiled type 2 LFSR generator is shown in <A HREF="CH14.7.htm#40827" CLASS="XRef">

Table&nbsp;14.12</A>

. According to our notation and the primitive polynomials in <A HREF="CH14.7.htm#14685" CLASS="XRef">

Figure&nbsp;14.27</A>

, the corresponding primitive polynomial is <SPAN CLASS="EquationVariables">

P*(x)</SPAN>

 = 1 <SPAN CLASS="Symbol">

&#8853;</SPAN>

 <SPAN CLASS="EquationVariables">

x</SPAN>

<SUP CLASS="Superscript">

2</SUP>

 <SPAN CLASS="Symbol">

&#8853;</SPAN>

 <SPAN CLASS="EquationVariables">

x</SPAN>

<SUP CLASS="Superscript">

3</SUP>

. The LFSR has both serial and parallel outputs (taken from the inverted flip-flop outputs with inverting buffers, cell names <SPAN CLASS="BodyComputer">

in02d1</SPAN>

). The clock and reset inputs are buffered (with noninverting buffers, cell names <SPAN CLASS="BodyComputer">

ni01d1</SPAN>

) since these inputs would normally have to drive a load of more than 3 bits. Looking in the cell data book we find that the flip-flop corresponding to the MSB, instance <SPAN CLASS="BodyComputer">

FF0</SPAN>

 with cell name <SPAN CLASS="BodyComputer">

dfptnb</SPAN>

, has an active-low set input <SPAN CLASS="BodyComputer">

SDN</SPAN>

. The remaining flip-flops, cell name <SPAN CLASS="BodyComputer">

dfctnb</SPAN>

, have active-low clears, <SPAN CLASS="BodyComputer">

CDN</SPAN>

. This gives us the initial value '100'.</P>

<P CLASS="Body">

<A NAME="pgfId=85372">

 </A>

<A HREF="CH14.7.htm#39672" CLASS="XRef">

Table&nbsp;14.13</A>

 shows the serial-input signature register compiled using the reciprocal polynomial. Again the compiler has included buffers. All the flip-flops, cell names <SPAN CLASS="BodyComputer">

dfctnb</SPAN>

, have active-low clear so that the initial content of the register is '000'.</P>

<TABLE>

<TR>

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

<P CLASS="TableTitle">

<A NAME="pgfId=125736">

 </A>

TABLE&nbsp;14.12&nbsp;<A NAME="40827">

 </A>

Compiled LFSR generator, using P*(x) = 1 <SPAN CLASS="Symbol">

&#8853;</SPAN>

 x<SUP CLASS="Superscript">

2</SUP>

 <SPAN CLASS="Symbol">

&#8853;</SPAN>

 x<SUP CLASS="Superscript">

3</SUP>

.</P>

</TD>

</TR>

<TR>

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

<P CLASS="Computer">

<A NAME="pgfId=125738">

 </A>

<B CLASS="Keyword">

module</B>

 lfsr_generator (OUT, SERIAL_OUT, INITN, CP);</P>

<P CLASS="Computer">

<A NAME="pgfId=125739">

 </A>

<B CLASS="Keyword">

output</B>

 [2:0] OUT; <B CLASS="Keyword">

output</B>

 SERIAL_OUT; <B CLASS="Keyword">

⌨️ 快捷键说明

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