線性反饋移位寄存器(Linear Feedback Shift Register, LFSR)

線性反饋移位寄存器(LFSR):通常由移位寄存器和異或門邏輯組成。其主要應用在:僞隨機數,僞噪聲序列,計數器,BIST,數據的加密和CRC校驗等。

線性反饋移位寄存器(LFSR)主要包括兩大類

  • 伽羅瓦(內部LFSR),又稱one-to-many
    在這裏插入圖片描述
  • 斐波那契(外部LFSR),又稱many-to-one
    在這裏插入圖片描述
  • 其中,gn爲反饋係數,取值只能爲0或1,取爲0時表明不存在該反饋之路,取爲1時表明存在該反饋之路;這裏的反饋係數決定了產生隨機數的算法的不同。用反饋函數表示成
    y = a0x^0 + a1x + a2x^2…,反饋函數爲線性的叫線性移位反饋序列,否則叫非線性反饋移位序列。
  • Q1、Q2、Q3、Qn爲LFSR的輸出,M(x)是輸入的碼字多項式,如M(x)=x^4+ x^1+ 1,表示輸入端的輸入順序爲11001,同樣,LFSR的結構也可以表示爲多項式G(x),稱爲生成多項式:
    G(x) = gn*x^n+ …+g1*x^1+ g0

抽頭選擇與狀態個數最大

  • 影響線性反饋寄存器下一個狀態的比特位叫做抽頭,選取的“某些位”構成的序列叫做抽頭序列,理論表明,要使LFSR得到最長的週期,這個抽頭序列構成的多項式加1必須是一個本原多項式(所有係數的最大公因數爲1的多項式),也就是說這個多項式不可約,如:
    f(x) = x^4 + x + 1
  • n個D觸發器最多可以提供2^(n-1)個狀態(不包括全0的狀態),爲了保證這些狀態沒有重複,gn的選擇必須滿足一定的條件。下面以n=3,g0=1,g1=1,g2=0,g3=1爲例,說明LFSR的特性,具有該參數的LFSR結構如下圖:
    在這裏插入圖片描述

假設在開始時,D2D1D0=111(seed),那麼,當時鍾到來時,有:
D2=D1_OUT=1;
D1=D0_OUT^D2_OUT=0;
D0=D2_OUT=1;
即D2D1D0=101;同理,又一個時鐘到來時,可得D2D1D0=001.……

畫出狀態轉移圖如下:
在這裏插入圖片描述

從圖可以看出,正好有2^3-1=7個狀態,不包括全0;
如果您理解了上圖,至少可以得到三條結論:
1)初始狀態是由SEED提供的;
2)當反饋係數不同時,得到的狀態轉移圖也不同;必須保證gn===1,否則哪來的反饋?
3)D觸發器的個數越多,產生的狀態就越多,也就越“隨機”;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章