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