當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]Nios SoC系統(tǒng)中的BCH編解碼IP核的設(shè)計

0引 言

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

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

1 BCH碼

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

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

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



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

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

2 BCH編解碼IP核的設(shè)計

2.1 整體設(shè)計及CPU接口

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

其中與NiosⅡ的接口分為控制接口和數(shù)據(jù)接口兩部分??刂平涌诎◤臀?、編解碼控制、存儲器狀態(tài)報告和編解碼狀態(tài)報告等。數(shù)據(jù)接口為FPGA內(nèi)部的RAM,分為發(fā)送和接收兩部分,它在NiosⅡ中映射成存儲空間。在NiosⅡ和BCH碼IP核之間設(shè)置簡單的數(shù)據(jù)協(xié)議,控制寄存器的起始控制位設(shè)置后,寫入數(shù)據(jù)緩存的第1個字節(jié)為編解碼輸入數(shù)據(jù)的長度字節(jié)。BCH編解碼模塊從數(shù)據(jù)緩存中讀入數(shù)據(jù)進行相應處理。其中,加羅瓦域的運算主要通過對域元素的查表得到。

2.2 BCH編碼

BCH碼屬于系統(tǒng)碼,其編碼與一般循環(huán)碼的編碼形式基本相同,即為信息碼元多項式與生成多項式之間的除法電路實現(xiàn)。除法電路采用帶反饋的移位寄存器完成。信息碼元發(fā)送完后,寄存器內(nèi)存儲的就是監(jiān)督碼元,再接著發(fā)送即可。其中反饋抽頭連接為生成多項式控制。其基本結(jié)構(gòu)見圖2。

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

2.3 BCH譯碼
前面已經(jīng)介紹了BCH迭代譯碼的基本步驟。譯碼過程中的運算都為有限域運算,在運算過程中經(jīng)常計算加羅瓦域的元素是不明智的,查表實現(xiàn)是通用的方法。例如GF(23)中,可以設(shè)計表1所示的表格來實現(xiàn)域元素的查找,同時,運算中還經(jīng)常需要通過元素值反查元素類型,因此需要設(shè)計兩張表格來正向和反向查找。圖1中的GF域查表RAM模塊就完成了這個功能。通過以上查表方法可以輕松實現(xiàn)有限域的加、減和乘運算。


首先進行伴隨式計算,在設(shè)計中利用片內(nèi)較高的工作頻率和FPGA的并發(fā)實現(xiàn)優(yōu)勢,同時完成所有伴隨式的計算。圖4為伴隨式計算的RTL仿真結(jié)果,當傳輸引入錯誤后,伴隨式相或的結(jié)果Data_Out輸出高電平,表示需要進行糾錯。

然后進行迭代譯碼,迭代過程可以通過表2表示。其中μ為算法迭代的次數(shù),第1次為了表示方便,可以認為初始值是0。δμ(x)就是錯誤位置多項式。dμ是一種差值,用于運算。ιμ是第μ次運算時δμ(x)的多項式階數(shù),2μ-ιμ是運算中應用的變量。

算法流程步驟如下:
a) 按如上μ為0和-1/2時初始化各個變量。

b) 如果dμ=0,此時,則往下進行。

c) 如果dμ≠0,則尋找以前運算的某一行ρ,其具有2μ-ιμ最大(正值),且dρ≠0。

此時,



如果μ=t-1,則算法結(jié)束。
d)ιμ+1=deg(δμ+1(x)),即δμ+1(x)的多項式階數(shù)。
e) dμ+1 =s2μ+3+δ1μ+1s2μ+2+δ2μ+1s2μ+1+…+δLμ+1s2μ+3-L,其中,L為ιμ+1,δu(x)的第i階系數(shù)。

f) 增加μ,從步驟b開始。

得到錯誤多項式后,通過錢搜索和取反即可完成整個譯碼工作。

3 結(jié)束語

SoC技術(shù)以其低成本、低功耗和小體積已經(jīng)成為電子設(shè)計領(lǐng)域的一個重要發(fā)展方向。BCH碼是一種經(jīng)典的分組糾錯碼,在通信系統(tǒng)中應用較為廣泛。通過這兩者的結(jié)合,本文設(shè)計的BCH碼IP核嵌入NiosSoC中,使得BCH編解碼在單片系統(tǒng)中可以自由調(diào)用,對SoC中的應用軟件而言,調(diào)用接口簡單,IP核屏蔽了所有算法細節(jié)。同時,由于采用硬件實現(xiàn),具有高速、穩(wěn)定的特點。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉