📄 a linear feedback shift register is a sequential shift register with combinational logic that causes it to pseudo-randomly cycle through a sequence of binary values.mht
字号:
From: <Saved by Windows Internet Explorer 7>
Subject: A Linear Feedback Shift Register is a sequential shift register with combinational logic that causes it to pseudo-randomly cycle through a sequence of binary values
Date: Wed, 18 Mar 2009 10:15:46 +0530
MIME-Version: 1.0
Content-Type: multipart/related;
type="text/html";
boundary="----=_NextPart_000_0000_01C9A7B2.80FAD7F0"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3350
This is a multi-part message in MIME format.
------=_NextPart_000_0000_01C9A7B2.80FAD7F0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.ee.ualberta.ca/~elliott/ee552/studentAppNotes/1999f/Drivers_Ed/lfsr.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>A Linear Feedback Shift Register is a sequential =
shift register with combinational logic that causes it to =
pseudo-randomly cycle through a sequence of binary values</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.6000.16809" name=3DGENERATOR>
<META content=3D"D:\microsoft office\Office\html.dot" =
name=3DTemplate></HEAD>
<BODY vLink=3D#800080 link=3D#0000ff><B><FONT size=3D7>
<P align=3Dcenter>Linear Feedback Shift Register</P></FONT><FONT =
size=3D5>
<P> </P>
<P>Abstract</P></B>
<P> </P>
<P>A Linear Feedback Shift Register is a sequential shift register with=20
combinational logic that causes it to pseudo-randomly cycle through a =
sequence=20
of binary values. Linear feedback shift registers have multiple uses in =
digital=20
systems design.</P>
<P>Applications Include:</P>
<UL>
<LI>Data Encryption/Decryption=20
<LI>Digital Signal Processing=20
<LI>Wireless Communications=20
<LI>Built-in Self Test (BIST)=20
<LI>Data Integrity Checksums=20
<LI>Data Compression=20
<LI>Pseudo-random Number Generation (PN)=20
<LI>Direct Sequence Spread Spectrum=20
<LI>Scrambler/Descrambler=20
<LI>Optimized Counters</LI></UL>
<P> </P>
<P>A design modeled after LFSRs often has both speed and area advantages =
over a=20
functionally equivialent design that does not use LFSRs.</P>
<P> </P>
<P>An explanation of how to use LFSRs for these applications can be =
found in the=20
sales primer for a <A=20
href=3D"http://www.altera.com/document/sb/sb11_01.pdf">Linear Feedback =
Shift=20
Register Megafunction sold by Altera</A>. This is a PDF file.</P>
<P> </P><B>
<P>Theory of Operation</P>
<P> </P></B>
<P>Feedback around an LFSR's shift register comes from a selection of =
points=20
(taps) in the register chain and constitutes XORing these taps to =
provide tap(s)=20
back into the register. Register bits that do not need an input tap, =
operate as=20
a standard shift register. It is this feedback that causes the register =
to loop=20
through repetitive sequences of pseudo-random value. The choice of taps=20
determines how many values there are in a given sequence before the =
sequence=20
repeats. The implemented LFSR uses a one-to-many structure, rather than =
a=20
many-to-one structure, since this structure always has the shortest=20
clock-to-clock delay path.</P>
<P> </P>
<P>A diagram of an eight bit LFSR is as follows:</P>
<P><IMG=20
src=3D"http://www.ee.ualberta.ca/~elliott/ee552/studentAppNotes/1999f/Dri=
vers_Ed/lfsr.jpg"></P>
<P> </FONT>8-Bit LFSR</P>
<P align=3Dcenter> </P><B><FONT size=3D5>
<P>Optimum Tap Points</P>
<P> </P></B>
<P>The choice of which taps to use determines how many values are =
included in a=20
sequence of pseudo-random values before the sequence is repeated. =
Certain tap=20
settings yield the maximal length sequences of (2<SUP>N</SUP>-1).</P>
<P> </P>
<P>The following table shows a minimum number of taps that yield maximal =
length=20
sequences for LFSRs ranging from 2 to 32 bits.</P>
<P> </P></FONT>
<TABLE cellSpacing=3D1 cellPadding=3D7 width=3D590 border=3D1>
<TBODY>
<TR>
<TD vAlign=3Dtop width=3D"33%">
<P><FONT size=3D5>Number of Bits</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>Length of Loop</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>Taps</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>2</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>3</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>0,1</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>3</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>7</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>0,2</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>4</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>15</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>0,3</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>5</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>31</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>1,4</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>6</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>63</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>0,5</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>7</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>127</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>0,6</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>8</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>255</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>1,2,3,7</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>9</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>511</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>3,8</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>10</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>1023</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>2,9</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>11</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>2047</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>1,10</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>12</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>4095</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>0,3,5,11</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>13</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>8191</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>0,2,3,12</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>14</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>16383</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>0,2,4,13</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>15</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>32767</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>0,14</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>16</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>65535</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>1,2,4,15</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>17</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>131071</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>2,16</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>18</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>262143</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>6,17</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>19</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>524287</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>0,1,4,18</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>20</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>1048575</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>2,19</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>21</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>2097151</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>1,20</FONT></P></TD></TR>
<TR>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>22</FONT></P></TD>
<TD vAlign=3Dtop width=3D"33%"><FONT size=3D5>
<P>4194303</FONT></P></TD>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -