m序列產生器(FPGA學習)

2021-09-20 15:25:59 字數 1141 閱讀 3233

摘自《altera fpga 系統設計實用教程》清華大學出版社

偽隨機數在密碼鄰域的應用無處不在,是很多密碼演算法和密碼協議的基礎,常見偽隨機數發生器基於線性反饋移位暫存器的偽隨機數發生器,簡稱lfsr(linear feedback shift register)

乙個反饋移位暫存器fsr由移位暫存器和反饋函式組成。其中,反饋函式由移位暫存器某些位的組合邏輯構成。

關於移位暫存器的設計方法:

1.基於行為的設計方法:由相應個數的d觸發器首位連線而成

2.基於結構的描述方法:通過元件例化語句迴圈呼叫觸發器

lfsr工作原理:移位暫存器所有位的值右移一位,最右邊的暫存器移出的值作為輸出,最左邊的暫存器輸入的值由反饋值填充,此過程稱為進動一拍。

進動m拍就產生m個輸出。

lfsr的週期定義:輸出序列從開始到重複所經歷的長度,n級最大週期為2*n-1,此時輸出最長週期序列成為m序列,即m序列是最長線性反饋移位暫存器序列。

f(x)=cnxn+c(n-1)x(n-1)… …c2x2+c1x+1 (n階本原多項式)

xn第n個觸發器

cn反饋係數,其值為1時表示反饋支路連線

暫存器級數和m序列長

反饋係數(八進位制)

2/37

3/713

4/15

235/31

456/63

1037/127

2118/255

4359/511

1021

10/1023

2011

例:設計乙個5級m序列,反饋為45,即100101

此時c5,c2,c0=1; c4,c3,c1=0

圖中非門為避免輸出全0 訊號。

altera庫中的dff元件定義如下

供自己fpga學習,如有錯誤,歡迎指出

Verilog學習筆記 (二)偽隨機序列產生器

下面用兩種方式產生偽隨機序列產生器 只要學習過數電知識的應該都不難理解上圖時序邏輯電路 module pn gen clk,n rst,y 利用verilog編寫,在vivado 實現 input clk,n rst output 7 0 y reg 7 0 lfsr,lfsr next reg 7...

Python日誌產生器

寫在前面 有的時候,可能就是我們做實時資料收集的時候,會有乙個頭疼的問題就是,你會發現,你可能一下子,沒有日誌的資料來源。所以,我們可以簡單使用python指令碼來實現產生實時的資料,這樣就很方便了 在編寫 之前,我們得知道我們的webserver日誌到底長什麼樣,下面我找了一段的nginx伺服器上...

隨機數產生器

最近在學習c 自己沒事做的關於隨機數和winform的練習 附上 using system using system.collections.generic using system.componentmodel using system.data using system.drawing usin...