91精品一区二区三区久久久久久_欧美一级特黄大片色_欧美一区二区人人喊爽_精品一区二区三区av

位置:51電子網 » 技術資料 » 其它綜合

Nios SoC系統中的BCH編解碼IP核的設計

發布時間:2007/8/28 0:00:00 訪問次數:685

來源:電子工程師   作者:蘇勇 張劍峰等


0引 言

循環碼是最重要的一類線性分組糾錯碼,而BCH碼又是目前發現的性能很好且應用廣泛的循環碼,它具有嚴格的代數理論,對它的理論研究也非常透徹。BCH碼的實現途徑有軟件和硬件兩種。軟件實現方法靈活性強且較易實現,但硬件實現方法的工作速度快,在高數據速率和長幀應用場合時具有優勢。FPGA(現場可編程門陣列)為DSP算法的硬件實現提供了很好的平臺,但如果單獨使用一片FPGA實現BCH編解碼,對成本、功耗和交互速度都不利。最新的SoC(片上系統)設計方法可以很好地解決這個問題。


本文基于Altera公司的Nios軟核+可編程資源的SoC平臺設計了BCH編解碼IP核,這樣,在Nios系統中可以將BCH碼作為一種片內資源進行調用,在工程設計上具有積極的意義。


1 BCH碼


BCH碼于1960年前后發明,可以糾檢多個錯誤。通常的二進制BCH碼元是取自加羅瓦域GF(2m)。對于參數m和可糾錯碼元數目t,BCH碼的碼長為n=2m-1,對于m≥3,t<2m-1的BCH碼,監督碼元數目n-k=mt;dmin≥2t+1。同時,BCH碼元多項式的根為GF(2m)中的元素α,α3,…,α2t+1。例如一個m=6,t=3的BCH碼,其參數為:n=63,n-k=18,dmin=7。這就構成了可以糾正3個錯誤的(63,45)BCH碼。


BCH碼基于加羅瓦域,BCH編解碼的運算也是域內的閉合運算。加羅瓦有限域產生于一個本原多項式,GF(2m)有限域內有2m個元素。以GF(23)域為例,它的本原多項式p(x)假定為p(x)=x3+x+1,基本元素α定義為p(x)=0的根,GF(23)中的元素可以計算如下:


BCH碼的編碼取決于其生成多項式,令φ2i-1(x)是加羅瓦域元素α2i-1的最小多項式,則可以糾正t個錯誤的BCH碼的生成多項式為:



有了生成多項式,BCH編碼與普通的循環碼編碼相同,使用除法電路可以實現。
一個復雜度較低的BCH譯碼算法對于BCH碼的應用有著重要的意義。BCH譯碼可以分為伴隨式計算和Berlekamp迭代譯碼兩部分。設接收碼元多項式為r(x),由于生成多項式的性質,如果傳輸過程中信道沒有引入錯誤,α,α2,α3,…,α2t應是r(x)的根。因此,伴隨式計算即將加羅瓦域中的元素代入接收碼元多項式,如果所有伴隨式結果都為0,則說明沒有錯誤,否則就有錯誤。如果只使用BCH碼進行檢錯,則譯碼過程就結束了。


伴隨式計算結束后,如果有錯,首先需要計算錯誤位置多項式δ(x),譯碼的核心主要集中在這一步上。Berlekamp迭代算法不僅求解了錯誤位置多項式的關鍵方程,而且運算速度快,可以說它解決了BCH碼譯碼的工程實用問題。其次,使用錢搜索找出δ(x)的根,即錯誤位置。最后,由于是二進制編碼,只需把相應位置的碼元取反就完成了整個譯碼過程。


2 BCH編解碼IP核的設計


2.1 整體設計及CPU接口


在NiosⅡ系統中,平臺免費提供了各種常用接口IP核以及對這些外設的驅動程序包,例如UART接口、Flash接口等。作為一個自行設計的IP核,需要掛接在NiosⅡ系統的Avalon總線上。這個過程使用Sopc Builder工具中的Interface t0 user logic模塊可以方便地進行設計。NiosⅡ處理器和BCH IP核之間通過Avalon總線使用寄存器映射方式進行交互。圖1是整個IP核的實現方框圖。



其中與NiosⅡ的接口分為控制接口和數據接口兩部分。控制接口包括復位、編解碼控制、存儲器狀態報告和編解碼狀態報告等。數據接口為FPGA內部的RAM,分為發送和接收兩部分,它在NiosⅡ中映射成存儲空間。在NiosⅡ和BCH碼IP核之間設置簡單的數據協議,控制寄存器的起始控制位設置后,寫入數據緩存的第1個字節為編解碼輸入數據的長度字節。BCH編解碼模塊從數據緩存中讀入數據進行相應處理。其中,加羅瓦域的運算主要通過對域元素的查表得到。

2.2 BCH編碼


BCH碼屬于系統碼,其編碼與一般循環碼的編碼形式基本相同,即為信息碼元多項式與生成多項式之間的除法電路實現。除法電路采用帶反饋的移位寄存器完成。信息碼元發送完后,寄存器內存儲的就是監督碼元,再接著發送即可。其中反饋抽頭連接為生成多項式控制。其基本結構見圖2。



信息碼元首先從數據緩存中被讀出,然后通過并/串變換進入編碼器后,一方面直接輸出,同時送入除法電路,當信息碼元輸入結束后,開關進行相應的變換,存在寄存器中的監督碼元輸出。圖3為(31,16)BCH編碼的RTL(寄存器傳輸級)仿真結果。


來源:電子工程師   作者:蘇勇 張劍峰等


0引 言

循環碼是最重要的一類線性分組糾錯碼,而BCH碼又是目前發現的性能很好且應用廣泛的循環碼,它具有嚴格的代數理論,對它的理論研究也非常透徹。BCH碼的實現途徑有軟件和硬件兩種。軟件實現方法靈活性強且較易實現,但硬件實現方法的工作速度快,在高數據速率和長幀應用場合時具有優勢。FPGA(現場可編程門陣列)為DSP算法的硬件實現提供了很好的平臺,但如果單獨使用一片FPGA實現BCH編解碼,對成本、功耗和交互速度都不利。最新的SoC(片上系統)設計方法可以很好地解決這個問題。


本文基于Altera公司的Nios軟核+可編程資源的SoC平臺設計了BCH編解碼IP核,這樣,在Nios系統中可以將BCH碼作為一種片內資源進行調用,在工程設計上具有積極的意義。


1 BCH碼


BCH碼于1960年前后發明,可以糾檢多個錯誤。通常的二進制BCH碼元是取自加羅瓦域GF(2m)。對于參數m和可糾錯碼元數目t,BCH碼的碼長為n=2m-1,對于m≥3,t<2m-1的BCH碼,監督碼元數目n-k=mt;dmin≥2t+1。同時,BCH碼元多項式的根為GF(2m)中的元素α,α3,…,α2t+1。例如一個m=6,t=3的BCH碼,其參數為:n=63,n-k=18,dmin=7。這就構成了可以糾正3個錯誤的(63,45)BCH碼。


BCH碼基于加羅瓦域,BCH編解碼的運算也是域內的閉合運算。加羅瓦有限域產生于一個本原多項式,GF(2m)有限域內有2m個元素。以GF(23)域為例,它的本原多項式p(x)假定為p(x)=x3+x+1,基本元素α定義為p(x)=0的根,GF(23)中的元素可以計算如下:


BCH碼的編碼取決于其生成多項式,令φ2i-1(x)是加羅瓦域元素α2i-1的最小多項式,則可以糾正t個錯誤的BCH碼的生成多項式為:



有了生成多項式,BCH編碼與普通的循環碼編碼相同,使用除法電路可以實現。
一個復雜度較低的BCH譯碼算法對于BCH碼的應用有著重要的意義。BCH譯碼可以分為伴隨式計算和Berlekamp迭代譯碼兩部分。設接收碼元多項式為r(x),由于生成多項式的性質,如果傳輸過程中信道沒有引入錯誤,α,α2,α3,…,α2t應是r(x)的根。因此,伴隨式計算即將加羅瓦域中的元素代入接收碼元多項式,如果所有伴隨式結果都為0,則說明沒有錯誤,否則就有錯誤。如果只使用BCH碼進行檢錯,則譯碼過程就結束了。


伴隨式計算結束后,如果有錯,首先需要計算錯誤位置多項式δ(x),譯碼的核心主要集中在這一步上。Berlekamp迭代算法不僅求解了錯誤位置多項式的關鍵方程,而且運算速度快,可以說它解決了BCH碼譯碼的工程實用問題。其次,使用錢搜索找出δ(x)的根,即錯誤位置。最后,由于是二進制編碼,只需把相應位置的碼元取反就完成了整個譯碼過程。


2 BCH編解碼IP核的設計


2.1 整體設計及CPU接口


在NiosⅡ系統中,平臺免費提供了各種常用接口IP核以及對這些外設的驅動程序包,例如UART接口、Flash接口等。作為一個自行設計的IP核,需要掛接在NiosⅡ系統的Avalon總線上。這個過程使用Sopc Builder工具中的Interface t0 user logic模塊可以方便地進行設計。NiosⅡ處理器和BCH IP核之間通過Avalon總線使用寄存器映射方式進行交互。圖1是整個IP核的實現方框圖。



其中與NiosⅡ的接口分為控制接口和數據接口兩部分。控制接口包括復位、編解碼控制、存儲器狀態報告和編解碼狀態報告等。數據接口為FPGA內部的RAM,分為發送和接收兩部分,它在NiosⅡ中映射成存儲空間。在NiosⅡ和BCH碼IP核之間設置簡單的數據協議,控制寄存器的起始控制位設置后,寫入數據緩存的第1個字節為編解碼輸入數據的長度字節。BCH編解碼模塊從數據緩存中讀入數據進行相應處理。其中,加羅瓦域的運算主要通過對域元素的查表得到。

2.2 BCH編碼


BCH碼屬于系統碼,其編碼與一般循環碼的編碼形式基本相同,即為信息碼元多項式與生成多項式之間的除法電路實現。除法電路采用帶反饋的移位寄存器完成。信息碼元發送完后,寄存器內存儲的就是監督碼元,再接著發送即可。其中反饋抽頭連接為生成多項式控制。其基本結構見圖2。



信息碼元首先從數據緩存中被讀出,然后通過并/串變換進入編碼器后,一方面直接輸出,同時送入除法電路,當信息碼元輸入結束后,開關進行相應的變換,存在寄存器中的監督碼元輸出。圖3為(31,16)BCH編碼的RTL(寄存器傳輸級)仿真結果。


相關IC型號
版權所有:51dzw.COM
深圳服務熱線:13751165337  13692101218
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式


 復制成功!
祥云县| 刚察县| 周宁县| 阆中市| 建始县| 资溪县| 廊坊市| 姚安县| 剑阁县| 宁津县| 三江| 莱州市| 华池县| 通州市| 都江堰市| 古田县| 长葛市| 连山| 鄂伦春自治旗| 余江县| 德江县| 太白县| 通河县| 柘荣县| 吉水县| 新巴尔虎左旗| 江华| 蒙自县| 东平县| 青州市| 磴口县| 永清县| 兴海县| 商城县| 玉山县| 沁水县| 萨迦县| 慈溪市| 永川市| 寻甸| 泸溪县|