陳天成 王艷紅
摘 要: 為了產(chǎn)生性能良好且節(jié)省硬件資源的m序列,分別提出了基于現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)的邏輯法和核調(diào)用法兩種算法,并詳細(xì)介紹了兩種算法的實(shí)現(xiàn)步驟。通過(guò)在Xilinx公司的NEXYS3開(kāi)發(fā)板上進(jìn)行設(shè)計(jì)和編程,對(duì)兩種算法的可行性進(jìn)行了檢測(cè);并結(jié)合ISE編程軟件的仿真功能和Matlab對(duì)算法的自相關(guān)性、硬件占用率和實(shí)現(xiàn)難度等性能進(jìn)行了分析。最終,了解到核調(diào)用法在m序列產(chǎn)生中的優(yōu)越性。
關(guān)鍵詞: m序列; FPGA; IP核; ISE
中圖分類(lèi)號(hào): TN919?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)05?0058?03
0 引 言
偽隨機(jī)序列作為一種信號(hào)形式,具有良好的相關(guān)特性和偽隨機(jī)性,可應(yīng)用于擴(kuò)頻通信和信號(hào)加密等領(lǐng)域。根據(jù)應(yīng)用場(chǎng)合的不同,可以將偽隨機(jī)序列設(shè)計(jì)成具有不同特性的序列,其中,m序列便是應(yīng)用最廣泛的一種偽隨機(jī)序列[1?2]。
m序列是最長(zhǎng)線性反饋移位寄存器序列的簡(jiǎn)稱,由[N]級(jí)移位寄存器和模二加法器產(chǎn)生。對(duì)于一個(gè)[N]級(jí)移位寄存器來(lái)說(shuō),最多可以有[2N]個(gè)狀態(tài)。由于全“0”狀態(tài)不會(huì)轉(zhuǎn)入其他狀態(tài),所以線性移位寄存器的序列的最長(zhǎng)周期為 [2N-1。]當(dāng)[N]級(jí)線性移位寄存器產(chǎn)生的序列[{ai}]的周期為[T=2N-1]時(shí),稱[{ai}]為[N]級(jí)m序列[3]。
本文采用Xilinx公司的spartan?6開(kāi)發(fā)板來(lái)產(chǎn)生m序列。FPGA因其高速的計(jì)算速度和簡(jiǎn)便的編譯步驟被越來(lái)越廣泛的應(yīng)用于數(shù)字信號(hào)處理領(lǐng)域。Spartan?6自帶100 MHz內(nèi)部晶振,最高可以提供高達(dá)300 MHz的運(yùn)算速度。
1 m序列的實(shí)現(xiàn)算法
1.1 邏輯法
程序的移位寄存器功能模擬部分,根據(jù)特征方程,將序列Seq_r的第0、2、3和4位對(duì)應(yīng)數(shù)值進(jìn)行模二運(yùn)算并將結(jié)果作為新的數(shù)據(jù)輸入寄存器的高位。此處應(yīng)避免初始狀態(tài)為全零[4]。
程序的m序列輸出部分,在每個(gè)時(shí)鐘的上升沿提取Seq_r序列的第0位進(jìn)行輸出,產(chǎn)生的Seq序列即為m序列。
1.2 核調(diào)用法
Xilinx芯片配套的ISE編程軟件提供了集成的移位寄存器IP核供使用者調(diào)用。IP核具有使用方便、操作簡(jiǎn)單、節(jié)省資源等優(yōu)點(diǎn)。核調(diào)用法利用ISE編程軟件提供的移位寄存器IP核進(jìn)行設(shè)計(jì),使用者可將IP核視為黑匣子,僅僅通過(guò)對(duì)其端口進(jìn)行定義便可實(shí)現(xiàn)m序列的產(chǎn)生。
完成對(duì)IP核參數(shù)的設(shè)置后,在頂層文件中對(duì)IP核進(jìn)行聲明,將高位的輸出信號(hào)輸入低位的輸入端,并取第2,3,4和8位寄存器的輸出值進(jìn)行模二運(yùn)算,將結(jié)果輸入第8位寄存器的輸入端。將程序編譯后,即可在FPGA上實(shí)現(xiàn)對(duì)m序列的生成。
2 m序列的性能分析
2.1 算法可行性驗(yàn)證
為了驗(yàn)證算法的可行性,確定兩種算法是否能夠產(chǎn)生滿足特征方程的序列,需要對(duì)m序列波形進(jìn)行觀察。Xilinx對(duì)應(yīng)的編程軟件ISE可以利用軟件自帶的應(yīng)用工具ChipScope對(duì)產(chǎn)生的波形進(jìn)行檢測(cè)。利用邏輯法和核調(diào)用法產(chǎn)生的m序列波形如圖1所示。
圖1中,clk_r為時(shí)鐘信號(hào),是頻率固定的方波,程序在clk_r的上升沿進(jìn)行運(yùn)算。seq_r_r為算法產(chǎn)生的m序列,由圖1可以看出,兩種算法所產(chǎn)生的m序列波形相同,且在短時(shí)間內(nèi)可視為隨機(jī)序列。經(jīng)過(guò)檢測(cè),確定兩種算法皆能實(shí)現(xiàn)m序列的產(chǎn)生。
2.2 算法性能分析
m序列常常作為擴(kuò)頻序列應(yīng)用于擴(kuò)頻通信中。擴(kuò)頻通信對(duì)擴(kuò)頻序列一般有如下要求:尖銳的自相關(guān)特性;足夠多的序列數(shù);序列均衡性好;工程上易實(shí)現(xiàn)[7]。
在m序列的一個(gè)周期中,“1”的個(gè)數(shù)比“0”的個(gè)數(shù)值多一個(gè)。這表明,序列平均值很小,具有良好的均衡性。為了檢測(cè)序列的自相關(guān)性,可以結(jié)合Matlab中的xcorr函數(shù)和plot函數(shù)繪制序列的自相關(guān)函數(shù)圖像[8?9]。Matlab生成的自相關(guān)函數(shù)的坐標(biāo)如圖2所示。
由圖2可知,m序列的自相關(guān)性十分尖銳,可以應(yīng)用于擴(kuò)頻通信。
3 兩種算法的優(yōu)劣比較
3.1 硬件資源占用
FPGA的硬件資源是有限的,雖然隨著科技的進(jìn)步,芯片中集成的門(mén)數(shù)已經(jīng)高達(dá)500萬(wàn)門(mén)以上,但程序的復(fù)雜程度也與日俱增,導(dǎo)致硬件資源供不應(yīng)求的情況時(shí)有發(fā)生。m序列常常作為整體程序的一部分出現(xiàn),如果占用太多資源會(huì)導(dǎo)致程序的整體功能難以實(shí)現(xiàn)。因此,兩種算法硬件資源的占用量是考量算法優(yōu)劣的重要指標(biāo)。
編程軟件ISE會(huì)在程序編譯結(jié)束時(shí)自動(dòng)生成程序占用硬件資源的數(shù)據(jù),其中Slice Registers和Slice LUTs分別表示芯片中的兩種主要硬件資源,通過(guò)對(duì)比表1列出的資源占用情況可以了解兩種算法在資源占用上的優(yōu)劣[5]。
通過(guò)分析數(shù)據(jù)可得,雖然兩種算法的資源占用率數(shù)值相近,但隨著m序列特征方程階數(shù)的增加,程序所占用的資源會(huì)越來(lái)越多,兩種算法在資源占用上的差距也會(huì)增大??梢?jiàn)兩種算法中,核調(diào)用法在兩種主要資源的占用上都小于邏輯法。因而,在實(shí)現(xiàn)高階m序列時(shí),核調(diào)用法更具優(yōu)勢(shì)。
3.2 實(shí)現(xiàn)的難易度
FPGA以其強(qiáng)大的功能被越來(lái)越多的應(yīng)用于實(shí)現(xiàn)極為復(fù)雜的程序,在保證性能滿足要求的基礎(chǔ)上,如何降低開(kāi)發(fā)難度,縮短開(kāi)發(fā)周期也是考量算法優(yōu)劣的又一重要因素。
IP核是ISE軟件已經(jīng)集成好的程序模塊,經(jīng)過(guò)優(yōu)化,使得其中的程序性能更加優(yōu)越。而且在生成IP核時(shí)只需要對(duì)參數(shù)進(jìn)行修改即可,其中各參數(shù)的功用可以在IP核提供的DataSheet文檔中查看,因此利用IP核可以最大限度的縮短程序開(kāi)發(fā)所需的時(shí)間。
相對(duì)而言,邏輯法需要在邏輯層面進(jìn)行描述,需要花費(fèi)較多的時(shí)間。
4 結(jié) 語(yǔ)
經(jīng)過(guò)以上的論證,可得在利用FPGA進(jìn)行算法實(shí)現(xiàn)時(shí),充分利用軟件自帶的IP核不但能節(jié)省硬件資源,更能極大的縮短開(kāi)發(fā)周期,降低算法實(shí)現(xiàn)的難度。本文提供的兩種算法皆能產(chǎn)生性能良好的m序列,但核調(diào)用法更加節(jié)省資源,并且在開(kāi)發(fā)難度上相比于邏輯法更簡(jiǎn)單快捷,在縮短開(kāi)發(fā)周期,降低開(kāi)發(fā)成本上更有優(yōu)勢(shì)。
參考文獻(xiàn)
[1] 王昆,陳昕智.m序列產(chǎn)生和性能的Matlab仿真[J].水利電力機(jī)械,2007,29(12):170?171.
[2] 張雪峰,范九倫.基于線性反饋移位寄存器和混沌系統(tǒng)的偽隨機(jī)序列生成方法[J].物理學(xué)報(bào),2010,59(4):2289?2297.
[3] 樊昌信,曹麗娜.通信原理[M].6版.北京:國(guó)防工業(yè)出版社,2009.
[4] 段穎妮.基于FPGA的m序列發(fā)生器實(shí)現(xiàn)[J].電子元器件應(yīng)用,2009,11(7):45?47.
[5] 何賓.Xilinx FPGA設(shè)計(jì)權(quán)威指南[M].北京:清華大學(xué)出版社,2012.
[6] 田耘,胡彬,徐文波,等.ISE Design Suite 10.x[M].北京:人民郵電出版社,2008.
[7] 陳海龍,李宏.基于Matlab的偽隨機(jī)序列的產(chǎn)生和分析[J].計(jì)算機(jī)仿真,2005,22(5):98?100.
[8] 吳盼望,張善從.基于移位寄存器的偽隨機(jī)序列改進(jìn)算法[J].計(jì)算機(jī)工程,2012,38(18):265?267.
[9] 馬根,孫浩茗,孫靜.自編碼擴(kuò)頻序列的性能研究[J].山東輕工業(yè)學(xué)院學(xué)報(bào):自然科學(xué)版,2008,22(3):72?74.
摘 要: 為了產(chǎn)生性能良好且節(jié)省硬件資源的m序列,分別提出了基于現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)的邏輯法和核調(diào)用法兩種算法,并詳細(xì)介紹了兩種算法的實(shí)現(xiàn)步驟。通過(guò)在Xilinx公司的NEXYS3開(kāi)發(fā)板上進(jìn)行設(shè)計(jì)和編程,對(duì)兩種算法的可行性進(jìn)行了檢測(cè);并結(jié)合ISE編程軟件的仿真功能和Matlab對(duì)算法的自相關(guān)性、硬件占用率和實(shí)現(xiàn)難度等性能進(jìn)行了分析。最終,了解到核調(diào)用法在m序列產(chǎn)生中的優(yōu)越性。
關(guān)鍵詞: m序列; FPGA; IP核; ISE
中圖分類(lèi)號(hào): TN919?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)05?0058?03
0 引 言
偽隨機(jī)序列作為一種信號(hào)形式,具有良好的相關(guān)特性和偽隨機(jī)性,可應(yīng)用于擴(kuò)頻通信和信號(hào)加密等領(lǐng)域。根據(jù)應(yīng)用場(chǎng)合的不同,可以將偽隨機(jī)序列設(shè)計(jì)成具有不同特性的序列,其中,m序列便是應(yīng)用最廣泛的一種偽隨機(jī)序列[1?2]。
m序列是最長(zhǎng)線性反饋移位寄存器序列的簡(jiǎn)稱,由[N]級(jí)移位寄存器和模二加法器產(chǎn)生。對(duì)于一個(gè)[N]級(jí)移位寄存器來(lái)說(shuō),最多可以有[2N]個(gè)狀態(tài)。由于全“0”狀態(tài)不會(huì)轉(zhuǎn)入其他狀態(tài),所以線性移位寄存器的序列的最長(zhǎng)周期為 [2N-1。]當(dāng)[N]級(jí)線性移位寄存器產(chǎn)生的序列[{ai}]的周期為[T=2N-1]時(shí),稱[{ai}]為[N]級(jí)m序列[3]。
本文采用Xilinx公司的spartan?6開(kāi)發(fā)板來(lái)產(chǎn)生m序列。FPGA因其高速的計(jì)算速度和簡(jiǎn)便的編譯步驟被越來(lái)越廣泛的應(yīng)用于數(shù)字信號(hào)處理領(lǐng)域。Spartan?6自帶100 MHz內(nèi)部晶振,最高可以提供高達(dá)300 MHz的運(yùn)算速度。
1 m序列的實(shí)現(xiàn)算法
1.1 邏輯法
程序的移位寄存器功能模擬部分,根據(jù)特征方程,將序列Seq_r的第0、2、3和4位對(duì)應(yīng)數(shù)值進(jìn)行模二運(yùn)算并將結(jié)果作為新的數(shù)據(jù)輸入寄存器的高位。此處應(yīng)避免初始狀態(tài)為全零[4]。
程序的m序列輸出部分,在每個(gè)時(shí)鐘的上升沿提取Seq_r序列的第0位進(jìn)行輸出,產(chǎn)生的Seq序列即為m序列。
1.2 核調(diào)用法
Xilinx芯片配套的ISE編程軟件提供了集成的移位寄存器IP核供使用者調(diào)用。IP核具有使用方便、操作簡(jiǎn)單、節(jié)省資源等優(yōu)點(diǎn)。核調(diào)用法利用ISE編程軟件提供的移位寄存器IP核進(jìn)行設(shè)計(jì),使用者可將IP核視為黑匣子,僅僅通過(guò)對(duì)其端口進(jìn)行定義便可實(shí)現(xiàn)m序列的產(chǎn)生。
完成對(duì)IP核參數(shù)的設(shè)置后,在頂層文件中對(duì)IP核進(jìn)行聲明,將高位的輸出信號(hào)輸入低位的輸入端,并取第2,3,4和8位寄存器的輸出值進(jìn)行模二運(yùn)算,將結(jié)果輸入第8位寄存器的輸入端。將程序編譯后,即可在FPGA上實(shí)現(xiàn)對(duì)m序列的生成。
2 m序列的性能分析
2.1 算法可行性驗(yàn)證
為了驗(yàn)證算法的可行性,確定兩種算法是否能夠產(chǎn)生滿足特征方程的序列,需要對(duì)m序列波形進(jìn)行觀察。Xilinx對(duì)應(yīng)的編程軟件ISE可以利用軟件自帶的應(yīng)用工具ChipScope對(duì)產(chǎn)生的波形進(jìn)行檢測(cè)。利用邏輯法和核調(diào)用法產(chǎn)生的m序列波形如圖1所示。
圖1中,clk_r為時(shí)鐘信號(hào),是頻率固定的方波,程序在clk_r的上升沿進(jìn)行運(yùn)算。seq_r_r為算法產(chǎn)生的m序列,由圖1可以看出,兩種算法所產(chǎn)生的m序列波形相同,且在短時(shí)間內(nèi)可視為隨機(jī)序列。經(jīng)過(guò)檢測(cè),確定兩種算法皆能實(shí)現(xiàn)m序列的產(chǎn)生。
2.2 算法性能分析
m序列常常作為擴(kuò)頻序列應(yīng)用于擴(kuò)頻通信中。擴(kuò)頻通信對(duì)擴(kuò)頻序列一般有如下要求:尖銳的自相關(guān)特性;足夠多的序列數(shù);序列均衡性好;工程上易實(shí)現(xiàn)[7]。
在m序列的一個(gè)周期中,“1”的個(gè)數(shù)比“0”的個(gè)數(shù)值多一個(gè)。這表明,序列平均值很小,具有良好的均衡性。為了檢測(cè)序列的自相關(guān)性,可以結(jié)合Matlab中的xcorr函數(shù)和plot函數(shù)繪制序列的自相關(guān)函數(shù)圖像[8?9]。Matlab生成的自相關(guān)函數(shù)的坐標(biāo)如圖2所示。
由圖2可知,m序列的自相關(guān)性十分尖銳,可以應(yīng)用于擴(kuò)頻通信。
3 兩種算法的優(yōu)劣比較
3.1 硬件資源占用
FPGA的硬件資源是有限的,雖然隨著科技的進(jìn)步,芯片中集成的門(mén)數(shù)已經(jīng)高達(dá)500萬(wàn)門(mén)以上,但程序的復(fù)雜程度也與日俱增,導(dǎo)致硬件資源供不應(yīng)求的情況時(shí)有發(fā)生。m序列常常作為整體程序的一部分出現(xiàn),如果占用太多資源會(huì)導(dǎo)致程序的整體功能難以實(shí)現(xiàn)。因此,兩種算法硬件資源的占用量是考量算法優(yōu)劣的重要指標(biāo)。
編程軟件ISE會(huì)在程序編譯結(jié)束時(shí)自動(dòng)生成程序占用硬件資源的數(shù)據(jù),其中Slice Registers和Slice LUTs分別表示芯片中的兩種主要硬件資源,通過(guò)對(duì)比表1列出的資源占用情況可以了解兩種算法在資源占用上的優(yōu)劣[5]。
通過(guò)分析數(shù)據(jù)可得,雖然兩種算法的資源占用率數(shù)值相近,但隨著m序列特征方程階數(shù)的增加,程序所占用的資源會(huì)越來(lái)越多,兩種算法在資源占用上的差距也會(huì)增大??梢?jiàn)兩種算法中,核調(diào)用法在兩種主要資源的占用上都小于邏輯法。因而,在實(shí)現(xiàn)高階m序列時(shí),核調(diào)用法更具優(yōu)勢(shì)。
3.2 實(shí)現(xiàn)的難易度
FPGA以其強(qiáng)大的功能被越來(lái)越多的應(yīng)用于實(shí)現(xiàn)極為復(fù)雜的程序,在保證性能滿足要求的基礎(chǔ)上,如何降低開(kāi)發(fā)難度,縮短開(kāi)發(fā)周期也是考量算法優(yōu)劣的又一重要因素。
IP核是ISE軟件已經(jīng)集成好的程序模塊,經(jīng)過(guò)優(yōu)化,使得其中的程序性能更加優(yōu)越。而且在生成IP核時(shí)只需要對(duì)參數(shù)進(jìn)行修改即可,其中各參數(shù)的功用可以在IP核提供的DataSheet文檔中查看,因此利用IP核可以最大限度的縮短程序開(kāi)發(fā)所需的時(shí)間。
相對(duì)而言,邏輯法需要在邏輯層面進(jìn)行描述,需要花費(fèi)較多的時(shí)間。
4 結(jié) 語(yǔ)
經(jīng)過(guò)以上的論證,可得在利用FPGA進(jìn)行算法實(shí)現(xiàn)時(shí),充分利用軟件自帶的IP核不但能節(jié)省硬件資源,更能極大的縮短開(kāi)發(fā)周期,降低算法實(shí)現(xiàn)的難度。本文提供的兩種算法皆能產(chǎn)生性能良好的m序列,但核調(diào)用法更加節(jié)省資源,并且在開(kāi)發(fā)難度上相比于邏輯法更簡(jiǎn)單快捷,在縮短開(kāi)發(fā)周期,降低開(kāi)發(fā)成本上更有優(yōu)勢(shì)。
參考文獻(xiàn)
[1] 王昆,陳昕智.m序列產(chǎn)生和性能的Matlab仿真[J].水利電力機(jī)械,2007,29(12):170?171.
[2] 張雪峰,范九倫.基于線性反饋移位寄存器和混沌系統(tǒng)的偽隨機(jī)序列生成方法[J].物理學(xué)報(bào),2010,59(4):2289?2297.
[3] 樊昌信,曹麗娜.通信原理[M].6版.北京:國(guó)防工業(yè)出版社,2009.
[4] 段穎妮.基于FPGA的m序列發(fā)生器實(shí)現(xiàn)[J].電子元器件應(yīng)用,2009,11(7):45?47.
[5] 何賓.Xilinx FPGA設(shè)計(jì)權(quán)威指南[M].北京:清華大學(xué)出版社,2012.
[6] 田耘,胡彬,徐文波,等.ISE Design Suite 10.x[M].北京:人民郵電出版社,2008.
[7] 陳海龍,李宏.基于Matlab的偽隨機(jī)序列的產(chǎn)生和分析[J].計(jì)算機(jī)仿真,2005,22(5):98?100.
[8] 吳盼望,張善從.基于移位寄存器的偽隨機(jī)序列改進(jìn)算法[J].計(jì)算機(jī)工程,2012,38(18):265?267.
[9] 馬根,孫浩茗,孫靜.自編碼擴(kuò)頻序列的性能研究[J].山東輕工業(yè)學(xué)院學(xué)報(bào):自然科學(xué)版,2008,22(3):72?74.
摘 要: 為了產(chǎn)生性能良好且節(jié)省硬件資源的m序列,分別提出了基于現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)的邏輯法和核調(diào)用法兩種算法,并詳細(xì)介紹了兩種算法的實(shí)現(xiàn)步驟。通過(guò)在Xilinx公司的NEXYS3開(kāi)發(fā)板上進(jìn)行設(shè)計(jì)和編程,對(duì)兩種算法的可行性進(jìn)行了檢測(cè);并結(jié)合ISE編程軟件的仿真功能和Matlab對(duì)算法的自相關(guān)性、硬件占用率和實(shí)現(xiàn)難度等性能進(jìn)行了分析。最終,了解到核調(diào)用法在m序列產(chǎn)生中的優(yōu)越性。
關(guān)鍵詞: m序列; FPGA; IP核; ISE
中圖分類(lèi)號(hào): TN919?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)05?0058?03
0 引 言
偽隨機(jī)序列作為一種信號(hào)形式,具有良好的相關(guān)特性和偽隨機(jī)性,可應(yīng)用于擴(kuò)頻通信和信號(hào)加密等領(lǐng)域。根據(jù)應(yīng)用場(chǎng)合的不同,可以將偽隨機(jī)序列設(shè)計(jì)成具有不同特性的序列,其中,m序列便是應(yīng)用最廣泛的一種偽隨機(jī)序列[1?2]。
m序列是最長(zhǎng)線性反饋移位寄存器序列的簡(jiǎn)稱,由[N]級(jí)移位寄存器和模二加法器產(chǎn)生。對(duì)于一個(gè)[N]級(jí)移位寄存器來(lái)說(shuō),最多可以有[2N]個(gè)狀態(tài)。由于全“0”狀態(tài)不會(huì)轉(zhuǎn)入其他狀態(tài),所以線性移位寄存器的序列的最長(zhǎng)周期為 [2N-1。]當(dāng)[N]級(jí)線性移位寄存器產(chǎn)生的序列[{ai}]的周期為[T=2N-1]時(shí),稱[{ai}]為[N]級(jí)m序列[3]。
本文采用Xilinx公司的spartan?6開(kāi)發(fā)板來(lái)產(chǎn)生m序列。FPGA因其高速的計(jì)算速度和簡(jiǎn)便的編譯步驟被越來(lái)越廣泛的應(yīng)用于數(shù)字信號(hào)處理領(lǐng)域。Spartan?6自帶100 MHz內(nèi)部晶振,最高可以提供高達(dá)300 MHz的運(yùn)算速度。
1 m序列的實(shí)現(xiàn)算法
1.1 邏輯法
程序的移位寄存器功能模擬部分,根據(jù)特征方程,將序列Seq_r的第0、2、3和4位對(duì)應(yīng)數(shù)值進(jìn)行模二運(yùn)算并將結(jié)果作為新的數(shù)據(jù)輸入寄存器的高位。此處應(yīng)避免初始狀態(tài)為全零[4]。
程序的m序列輸出部分,在每個(gè)時(shí)鐘的上升沿提取Seq_r序列的第0位進(jìn)行輸出,產(chǎn)生的Seq序列即為m序列。
1.2 核調(diào)用法
Xilinx芯片配套的ISE編程軟件提供了集成的移位寄存器IP核供使用者調(diào)用。IP核具有使用方便、操作簡(jiǎn)單、節(jié)省資源等優(yōu)點(diǎn)。核調(diào)用法利用ISE編程軟件提供的移位寄存器IP核進(jìn)行設(shè)計(jì),使用者可將IP核視為黑匣子,僅僅通過(guò)對(duì)其端口進(jìn)行定義便可實(shí)現(xiàn)m序列的產(chǎn)生。
完成對(duì)IP核參數(shù)的設(shè)置后,在頂層文件中對(duì)IP核進(jìn)行聲明,將高位的輸出信號(hào)輸入低位的輸入端,并取第2,3,4和8位寄存器的輸出值進(jìn)行模二運(yùn)算,將結(jié)果輸入第8位寄存器的輸入端。將程序編譯后,即可在FPGA上實(shí)現(xiàn)對(duì)m序列的生成。
2 m序列的性能分析
2.1 算法可行性驗(yàn)證
為了驗(yàn)證算法的可行性,確定兩種算法是否能夠產(chǎn)生滿足特征方程的序列,需要對(duì)m序列波形進(jìn)行觀察。Xilinx對(duì)應(yīng)的編程軟件ISE可以利用軟件自帶的應(yīng)用工具ChipScope對(duì)產(chǎn)生的波形進(jìn)行檢測(cè)。利用邏輯法和核調(diào)用法產(chǎn)生的m序列波形如圖1所示。
圖1中,clk_r為時(shí)鐘信號(hào),是頻率固定的方波,程序在clk_r的上升沿進(jìn)行運(yùn)算。seq_r_r為算法產(chǎn)生的m序列,由圖1可以看出,兩種算法所產(chǎn)生的m序列波形相同,且在短時(shí)間內(nèi)可視為隨機(jī)序列。經(jīng)過(guò)檢測(cè),確定兩種算法皆能實(shí)現(xiàn)m序列的產(chǎn)生。
2.2 算法性能分析
m序列常常作為擴(kuò)頻序列應(yīng)用于擴(kuò)頻通信中。擴(kuò)頻通信對(duì)擴(kuò)頻序列一般有如下要求:尖銳的自相關(guān)特性;足夠多的序列數(shù);序列均衡性好;工程上易實(shí)現(xiàn)[7]。
在m序列的一個(gè)周期中,“1”的個(gè)數(shù)比“0”的個(gè)數(shù)值多一個(gè)。這表明,序列平均值很小,具有良好的均衡性。為了檢測(cè)序列的自相關(guān)性,可以結(jié)合Matlab中的xcorr函數(shù)和plot函數(shù)繪制序列的自相關(guān)函數(shù)圖像[8?9]。Matlab生成的自相關(guān)函數(shù)的坐標(biāo)如圖2所示。
由圖2可知,m序列的自相關(guān)性十分尖銳,可以應(yīng)用于擴(kuò)頻通信。
3 兩種算法的優(yōu)劣比較
3.1 硬件資源占用
FPGA的硬件資源是有限的,雖然隨著科技的進(jìn)步,芯片中集成的門(mén)數(shù)已經(jīng)高達(dá)500萬(wàn)門(mén)以上,但程序的復(fù)雜程度也與日俱增,導(dǎo)致硬件資源供不應(yīng)求的情況時(shí)有發(fā)生。m序列常常作為整體程序的一部分出現(xiàn),如果占用太多資源會(huì)導(dǎo)致程序的整體功能難以實(shí)現(xiàn)。因此,兩種算法硬件資源的占用量是考量算法優(yōu)劣的重要指標(biāo)。
編程軟件ISE會(huì)在程序編譯結(jié)束時(shí)自動(dòng)生成程序占用硬件資源的數(shù)據(jù),其中Slice Registers和Slice LUTs分別表示芯片中的兩種主要硬件資源,通過(guò)對(duì)比表1列出的資源占用情況可以了解兩種算法在資源占用上的優(yōu)劣[5]。
通過(guò)分析數(shù)據(jù)可得,雖然兩種算法的資源占用率數(shù)值相近,但隨著m序列特征方程階數(shù)的增加,程序所占用的資源會(huì)越來(lái)越多,兩種算法在資源占用上的差距也會(huì)增大??梢?jiàn)兩種算法中,核調(diào)用法在兩種主要資源的占用上都小于邏輯法。因而,在實(shí)現(xiàn)高階m序列時(shí),核調(diào)用法更具優(yōu)勢(shì)。
3.2 實(shí)現(xiàn)的難易度
FPGA以其強(qiáng)大的功能被越來(lái)越多的應(yīng)用于實(shí)現(xiàn)極為復(fù)雜的程序,在保證性能滿足要求的基礎(chǔ)上,如何降低開(kāi)發(fā)難度,縮短開(kāi)發(fā)周期也是考量算法優(yōu)劣的又一重要因素。
IP核是ISE軟件已經(jīng)集成好的程序模塊,經(jīng)過(guò)優(yōu)化,使得其中的程序性能更加優(yōu)越。而且在生成IP核時(shí)只需要對(duì)參數(shù)進(jìn)行修改即可,其中各參數(shù)的功用可以在IP核提供的DataSheet文檔中查看,因此利用IP核可以最大限度的縮短程序開(kāi)發(fā)所需的時(shí)間。
相對(duì)而言,邏輯法需要在邏輯層面進(jìn)行描述,需要花費(fèi)較多的時(shí)間。
4 結(jié) 語(yǔ)
經(jīng)過(guò)以上的論證,可得在利用FPGA進(jìn)行算法實(shí)現(xiàn)時(shí),充分利用軟件自帶的IP核不但能節(jié)省硬件資源,更能極大的縮短開(kāi)發(fā)周期,降低算法實(shí)現(xiàn)的難度。本文提供的兩種算法皆能產(chǎn)生性能良好的m序列,但核調(diào)用法更加節(jié)省資源,并且在開(kāi)發(fā)難度上相比于邏輯法更簡(jiǎn)單快捷,在縮短開(kāi)發(fā)周期,降低開(kāi)發(fā)成本上更有優(yōu)勢(shì)。
參考文獻(xiàn)
[1] 王昆,陳昕智.m序列產(chǎn)生和性能的Matlab仿真[J].水利電力機(jī)械,2007,29(12):170?171.
[2] 張雪峰,范九倫.基于線性反饋移位寄存器和混沌系統(tǒng)的偽隨機(jī)序列生成方法[J].物理學(xué)報(bào),2010,59(4):2289?2297.
[3] 樊昌信,曹麗娜.通信原理[M].6版.北京:國(guó)防工業(yè)出版社,2009.
[4] 段穎妮.基于FPGA的m序列發(fā)生器實(shí)現(xiàn)[J].電子元器件應(yīng)用,2009,11(7):45?47.
[5] 何賓.Xilinx FPGA設(shè)計(jì)權(quán)威指南[M].北京:清華大學(xué)出版社,2012.
[6] 田耘,胡彬,徐文波,等.ISE Design Suite 10.x[M].北京:人民郵電出版社,2008.
[7] 陳海龍,李宏.基于Matlab的偽隨機(jī)序列的產(chǎn)生和分析[J].計(jì)算機(jī)仿真,2005,22(5):98?100.
[8] 吳盼望,張善從.基于移位寄存器的偽隨機(jī)序列改進(jìn)算法[J].計(jì)算機(jī)工程,2012,38(18):265?267.
[9] 馬根,孫浩茗,孫靜.自編碼擴(kuò)頻序列的性能研究[J].山東輕工業(yè)學(xué)院學(xué)報(bào):自然科學(xué)版,2008,22(3):72?74.