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