基于SRL16E的PN碼生成器的設(shè)計
引言
近年來,擴(kuò)頻通信技術(shù)在移動通信、個人通信、室內(nèi)無線通信以及衛(wèi)星通信中得到越來越廣泛的應(yīng)用。對于DS-CDMA(Direct Sequence-Code Division Multiple Access,直接序列-碼分多址)移動通信系統(tǒng),因其具有較好的抗干擾性能而成為軍事通信、民用通信以及宇宙通信的一種重要的通信體制。擴(kuò)頻通信的一項關(guān)鍵技術(shù)是擴(kuò)頻信號的設(shè)計,以及對它的捕捉和跟蹤。在DS-CDMA移動通信中,也正是利用擴(kuò)頻碼來實現(xiàn)用戶多址,從而使多用戶能同時共享同一頻帶進(jìn)行通信。
在擴(kuò)頻通信中,通常在偽隨機(jī)序列(Pseudo-random Noise,PN)的基礎(chǔ)上產(chǎn)生擴(kuò)頻碼。然而,擴(kuò)頻碼(PN序列)的生成一直是通信工程師最關(guān)心的問題之一。隨著FPGA(Field Programmable Gate Array,現(xiàn)場可編程邏輯門陣列)技術(shù)的發(fā)展,很多人采用FPGA來實現(xiàn)PN序列發(fā)生器。通常情況下應(yīng)用FPGA來實現(xiàn)PN碼生成器所采用的方法是利用觸發(fā)器及邏輯門來組成線性反饋移位寄存器,從而產(chǎn)生所需的PN序列。然而這種方法會占用大量的觸發(fā)器資源,不利于縮小芯片面積及制造成本。SRL16 E是Xilinx公司Virtex II等系列FPGA的Slice中的基本單元,應(yīng)用它來實現(xiàn)PN碼生成器可以大大降低FPGA中專用觸發(fā)器的使用量,從而減少FPGA片上面積的占用。
基本原理
PN碼生成器的核心是LFSR(Linear Feedback Shift Regisiter,線性反饋移位寄存器),LFSR序列共有(2N-1)種狀態(tài)(其中N為LFSR中寄存器的個數(shù)),寄存器中的數(shù)據(jù)在每個觸發(fā)時鐘周期右移一位。反饋由預(yù)先確定的寄存器引出,共同經(jīng)過異或邏輯后,加到LFSR的左端。通常寄存器的個數(shù)越多生成的PN序列的長度就越長,其中生成的最長的序列成為M序列。
要實現(xiàn)LFSR序列的填充,需要在LFSR的反饋路徑中加入一個多路復(fù)用器,利用這個多路復(fù)用器將實現(xiàn)期望的狀態(tài)加載進(jìn)去。需要注意的是在用一個特定的序列來填充時必須事先知道合適新填充的第一位從LFSR中輸出。新的填充序列必須在相同的時鐘周期內(nèi)加載到LFSR中,并且新序列的第一位必須在并行加載完成后的第一個時鐘周期被移出。如圖1所示PN碼生成器的原理圖,共有17種寄存狀態(tài)。下面來看并行加載是如何實現(xiàn)的。如果一個并行加載發(fā)生在T=0時鐘周期,那么在T=17時鐘周期時,通過fillsel指示反饋加入。這時,移位寄存器包含反饋加入前的長度為17位原序列,這17位的原序列在反饋加入時并未受影響。在接下來的17個時鐘周期(即從T=17到T=0),原序列被移出,新的序列被移出,在T=0周期,新的序列移入完畢,反饋路徑被斷開,并在下一個時鐘周期開始驅(qū)動新序列的第一位。這樣,就如同新序列在一個單個的時鐘周期T=0被并行加載一樣。
圖1 PN碼生成器的原理圖
PN碼生成器的實現(xiàn)
SRL16E是一種基于查找表的移位寄存器,可以非常方便地配置成多個觸發(fā)器級聯(lián)輸出的形式,因此應(yīng)用SRL16E來實現(xiàn)PN序列,是非常高效的,并且能夠很大程度地減少FPGA資源的占用。原先SRL16E由于在配制時需要注冊而被認(rèn)為比ASIC(Application Specific Integrated Circuit,特定用途集成電路)開銷更大。現(xiàn)在,它已成為FPGA中LUT(Look Up Table,查找表)配制模式的基本單元,可以非常方便地應(yīng)用。并且這些基本單元在設(shè)計中應(yīng)用得越多,那么設(shè)計所占用的專用觸發(fā)器資源就越少。如圖2所示為Xilinx公司Virtex II系列FPGA中的基本Slice結(jié)構(gòu)示意圖。
圖2 Virtex II中的Slice結(jié)構(gòu)示意圖
應(yīng)用SRL16E來實現(xiàn)LFSR時,一個Slice就可以生成一個16階的LFSR,而用觸發(fā)器來實現(xiàn)時,所用Slice的數(shù)量激增為16個。由此可見,應(yīng)用SRL16E可以大大降低FPGA資源的占用。
假設(shè)LFSR多項式為g(x)=1+x5+x17,即圖1所示的PN碼生成器,則應(yīng)用SRL16E來實現(xiàn)PN碼生成器的電路圖如圖3所示。
圖3 SRL 16E構(gòu)成PN碼生成器的電路圖
圖4為以SRL16E為基本單元,使用ISE軟件設(shè)計的PN碼生成器所得到的模塊圖。其中輸出pn_out_i對應(yīng)的LFSR多項式為:
圖4 PN碼生成器模塊圖
輸出pn_out_q對應(yīng)的LSFR多項式為:
對于圖4所示PN碼生成器,我們應(yīng)用ISE軟件內(nèi)嵌的XST(Xilinx Synthesis Technology)綜合工具對其進(jìn)行綜合,得到的仿真波形如圖5所示。
圖5 PN碼生成器的XST仿真波形圖
根據(jù)ISE生成的綜合報告可得到圖4所示PN碼生成器僅僅占用4個Xilinx公司Virtex II系列FPGA的基本Slice單元,可見應(yīng)用SRL16E來設(shè)計PN碼生成器可以非常有效地節(jié)省FPGA資源。
結(jié)論
應(yīng)用SRL16E來實現(xiàn)PN碼生成器的方法可以大大節(jié)省FPGA資源的占用量,并且由于SRL16E是被優(yōu)化設(shè)計的模塊,相較于傳統(tǒng)的方法可提高所設(shè)計PN碼生成器的效率。同時,SRL16E還可以用來實現(xiàn)濾波器、除法器以及波形發(fā)生器等,在大的系統(tǒng)中,例如整個CDMA系統(tǒng),通過使用SRL16E可有效降低整個FPGA資源的占用量,從而使功耗及成本等得到進(jìn)一步的降低。
評論