鄒學(xué)玉 (長(zhǎng)江大學(xué)電子信息學(xué)院,湖北荊州434023)
m序列是一種偽隨機(jī)序列,具有優(yōu)良的自相關(guān)函數(shù),容易產(chǎn)生和復(fù)制,在數(shù)字基帶信號(hào)的加擾、擴(kuò)頻通信、雷達(dá)、通信系統(tǒng)的測(cè)量、石油地震勘探等領(lǐng)域都有著廣泛的應(yīng)用,因而m序列的產(chǎn)生一直是國(guó)內(nèi)外信息領(lǐng)域的研究熱點(diǎn)[1~4]。近年來(lái),隨著可編程邏輯器件FPGA/CPLD的不斷發(fā)展,在很多高速設(shè)計(jì)和高速測(cè)試的場(chǎng)合,都希望能夠在FPGA中直接實(shí)現(xiàn)不同級(jí)數(shù)的m序列發(fā)生器。傳統(tǒng)的大數(shù)乘法產(chǎn)生偽隨機(jī)數(shù)方法受到時(shí)鐘頻率不能太高的限制,并且需要消耗FPGA/CPLD內(nèi)大量的資源[4],因而要找到一種合適的邏輯結(jié)構(gòu)來(lái)高速產(chǎn)生任意級(jí)數(shù)的m序列并運(yùn)行于較高的工作頻率。基于Fabonacci結(jié)構(gòu)的FPGA設(shè)計(jì)一種任意級(jí)數(shù)和初始相位均可調(diào)的m序列發(fā)生器,因Fabonacci結(jié)構(gòu)的反饋網(wǎng)絡(luò)較大延時(shí)隨級(jí)數(shù)的增加而增加,制約了m序列產(chǎn)生速度的提升[5]?;贕alois結(jié)構(gòu)的m序列發(fā)生器,其反饋網(wǎng)絡(luò)簡(jiǎn)單,其運(yùn)算延時(shí)基本不隨級(jí)數(shù)的變化而變化,這有利于以相同的高速產(chǎn)生不同級(jí)數(shù)的m序列。由于Galois結(jié)構(gòu)與Fabonacci結(jié)構(gòu)的反饋系數(shù)不同,因而需要從 Fabonacci結(jié)構(gòu)的反饋系數(shù)中導(dǎo)出Galois結(jié)構(gòu)的反饋系數(shù)[6]。為此,筆者基于Galois結(jié)構(gòu)的反饋系數(shù)表設(shè)計(jì)出快速m序列發(fā)生器。
m序列信號(hào)發(fā)生器是在n級(jí)線性移位寄存器[6~8]的基礎(chǔ)上,加上反饋邏輯電路構(gòu)成的。m序列信號(hào)發(fā)生器有2種結(jié)構(gòu),即Fabonacci型和Galois型[4,6~8]。筆者采用Galois型移位寄存器產(chǎn)生m序列。該結(jié)構(gòu)的特點(diǎn)是只有第n位觸發(fā)器的狀態(tài)作為反饋,而且其反饋網(wǎng)絡(luò)延時(shí)小,但移位寄存器的反饋抽頭位置與本原多項(xiàng)式不一致,需要經(jīng)過(guò)某種變換才能得到Galois結(jié)構(gòu),其結(jié)構(gòu)如圖1所示。
圖1 n級(jí) Galois結(jié)構(gòu)模型
圖1表示一個(gè)有限狀態(tài)機(jī),其中D為延時(shí)環(huán)節(jié),該狀態(tài)機(jī)的轉(zhuǎn)換方程和輸出方程分別為:
若從最后一級(jí)輸出m序列,則C可簡(jiǎn)化為:
A與n級(jí)線性移位寄存器構(gòu)成的偽隨機(jī)序列的本原多項(xiàng)式有關(guān),反饋系數(shù)g0,g1,…,gn-2將決定m序列發(fā)生器的結(jié)構(gòu)。因此,只要初態(tài)s0≠0和任意級(jí)數(shù)n的反饋系數(shù)已知,就可以設(shè)計(jì)出相應(yīng)的Galois型m序列發(fā)生器。該設(shè)計(jì)主要基于二元有限域GF(2)上的n級(jí)反饋系數(shù)g0,g1,…,gn-2表來(lái)實(shí)現(xiàn)GF(2)上的m序列發(fā)生器。
根據(jù)上述分析,設(shè)計(jì)任意級(jí)數(shù)m序列發(fā)生器的總體框圖,如圖2所示。
圖2 任意可變級(jí)數(shù)n的Galois型m序列發(fā)生器框圖
圖3 Galois型反饋系數(shù)表存儲(chǔ)器結(jié)構(gòu)圖
以Altera公司的EPM1270T144C5芯片為例,在級(jí)數(shù)n值在3~29時(shí)系統(tǒng)中2個(gè)最為關(guān)鍵的模塊設(shè)計(jì)具體內(nèi)容如下。
1)Galois型反饋系數(shù)表存儲(chǔ)器設(shè)計(jì) 設(shè)計(jì)Galois型反饋系數(shù)表存儲(chǔ)器結(jié)構(gòu)如圖3所示。該結(jié)構(gòu)由FPGA中內(nèi)嵌的E2PROM構(gòu)成,只要給定n,經(jīng)過(guò)級(jí)數(shù)調(diào)整模塊運(yùn)算得到其相應(yīng)地址addr,即可從E2PROM的輸出端feedfactor輸出其相應(yīng)的反饋系數(shù)。故存儲(chǔ)器中要存儲(chǔ)27組反饋系數(shù)值,若設(shè)計(jì)級(jí)數(shù)的最小級(jí)數(shù)為ns,最大級(jí)數(shù)為ne,則E2PROM的地址空間范圍是從0至ne-ns。將這27組反饋系數(shù)值做成一個(gè)ROM表,則需要一個(gè)5位二進(jìn)制數(shù)字作為地址輸入來(lái)提取與之相應(yīng)的反饋系數(shù)值。該模塊的VHDL程序如下:
2)Galois型移位存儲(chǔ)器設(shè)計(jì) 為實(shí)現(xiàn)級(jí)數(shù)n值在3~29可調(diào)的m序列,先生成一個(gè)29級(jí)的Galois型移位寄存器,該結(jié)構(gòu)的第29位D觸發(fā)器的輸出是否反饋取決于級(jí)數(shù)n??捎靡粋€(gè)信號(hào)X來(lái)表征相應(yīng)級(jí)數(shù)的Galois型結(jié)構(gòu)中的反饋特征,X在移位寄存器狀態(tài)輸出(S(1),…,S(28))中取值。通過(guò)輸入5位二進(jìn)制信號(hào)addr[4,…,0]來(lái)確定末位反饋信號(hào)X的取值。如當(dāng)輸入addr[4,…,0]為00000時(shí),反饋信號(hào)X<=S(1),這樣就生成了一個(gè)3級(jí)的m序列發(fā)生器;當(dāng)輸入addr[4,…,0]為00001時(shí),反饋信號(hào)X<=S(2),這樣就生成了一個(gè)4級(jí)的m序列發(fā)生器;依此類(lèi)推。該模塊的VHDL程序如下:
該模塊有4個(gè)輸入 (clk,rst,addr[4,…,0],G[0,…,27])、1個(gè)輸出 (Q)和1個(gè)緩沖口(S[n-1,…,0])。clk為器件的工作時(shí)鐘;rst為器件的控制信號(hào),為 “1”時(shí)器件工作;G[0,…,27]是位于地址addr[4,…,0]的反饋系數(shù)表存儲(chǔ)器中輸出的反饋系數(shù);Q為n級(jí)的m序列信號(hào)的輸出。
筆者在QuartusⅡ上對(duì)級(jí)數(shù)n分別為3~29的m序列發(fā)生器進(jìn)行了仿真,給出了級(jí)數(shù)n分別為3和29的m序列發(fā)生器的仿真結(jié)果 (見(jiàn)圖4),并對(duì)系統(tǒng)的延時(shí)進(jìn)行分析。
為便于分析,筆者對(duì)系統(tǒng)中各寄存器的初始狀態(tài)都設(shè)定為 “1”,所以m序列的輸出應(yīng)該從 “1”開(kāi)始。由圖4可知,m序列的每一位的寬度均為一個(gè)時(shí)鐘周期;m序列輸出的起始位置為rst置 “1”后的第一個(gè)時(shí)鐘上升沿是在35ns處。圖4(a)中m序列在57.599ns開(kāi)始輸出,系統(tǒng)延時(shí)22.599ns;圖4(b)中m序列在57.472ns開(kāi)始輸出,系統(tǒng)延時(shí)22.472ns。由此可見(jiàn),系統(tǒng)延時(shí)受級(jí)數(shù)n的影響較小。
用VHDL語(yǔ)言描述復(fù)雜的數(shù)字系統(tǒng)設(shè)計(jì)效率顯著提高,對(duì)于任意級(jí)數(shù)的m序列發(fā)生器,充分利用FPGA芯片內(nèi)置的ROM構(gòu)建任意級(jí)數(shù)的Galois型反饋系數(shù)表,極大地簡(jiǎn)化了快速m序列發(fā)生器的實(shí)現(xiàn)過(guò)程。由于其產(chǎn)生的速率快,且基本不受級(jí)數(shù)n的影響,因而該m序列產(chǎn)生方法具有較強(qiáng)的適應(yīng)性和較廣的應(yīng)用范圍,尤其適用于級(jí)數(shù)n可變的應(yīng)用場(chǎng)合。
圖4 m序列發(fā)生器的仿真結(jié)果
[1]Zeng Kencheng,Yang Chung-Huang,Wei Dah-Yea,et al.Pseudorandom Bit Generators in Stream-Cipher Cryptograph[J].Computer,1991,24(2):8~17.
[2]Ali Kanso.Clock-controlled shrinking generator of feedback shift registers[A].8th Australasian Conference on Information Security and Privacy-ACISP[C].2003.
[3]蒲海,陳自力,胡玫榮.基于CP LD的高速m序列碼發(fā)生器的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2005,21(4):172~173.
[4]束禮寶,宋克柱.偽隨機(jī)數(shù)發(fā)生器的FPGA實(shí)現(xiàn)與研究[J].電路與系統(tǒng)學(xué)報(bào),2003,8(3):121~124.
[5]鄒學(xué)玉,易國(guó)華.一類(lèi)基于FPGA的m序列發(fā)生器的設(shè)計(jì) [J].長(zhǎng)江大學(xué)學(xué)報(bào) (自然科學(xué)版),2006,3(3):84~86.
[6]Zepernick H J,Finger A.Pseudo Random Signal Processing:Theory and Application[M].Chichester:John Wiley&Sons,2005.
[7]林可祥,汪一飛.偽隨機(jī)碼的原理與應(yīng)用[M].北京:人民郵電出版社,1998.
[8]梅文華,楊義先.跳頻通信地址編碼理論[M].北京:國(guó)防工業(yè)出版社,1996.
長(zhǎng)江大學(xué)學(xué)報(bào)(自科版)2010年7期