www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > EDA > 電子設(shè)計自動化
[導(dǎo)讀]本文通過對長BCH碼優(yōu)化方法的研究與討論,針對標(biāo)準(zhǔn)中二進(jìn)制BCH碼的特性,設(shè)計了實現(xiàn)該譯碼器的FPGA硬件結(jié)構(gòu)。

1引言

第二代數(shù)字衛(wèi)星廣播標(biāo)準(zhǔn)DVB-S2自發(fā)布以來一直廣受關(guān)注,他采用了由BCH外碼和LDPC內(nèi)碼級聯(lián)而成的前向糾錯編碼(FEC)系統(tǒng),有效地降低了系統(tǒng)解調(diào)門限,幾乎可以接近香農(nóng)限,此外還使用了多種具有高頻帶利用率的調(diào)制方式,大幅度提高了信道傳輸能力。DVB-S2技術(shù)上的突破擴(kuò)大了他的應(yīng)用范圍,服務(wù)范圍包括廣播業(yè)務(wù)(BS)、數(shù)字新聞采集(DSNG)、數(shù)據(jù)分配/中繼,以及Internet接人等交互式業(yè)務(wù)。同時新的編碼技術(shù)使其可以工作在更為惡劣的信道環(huán)境中,保證了衛(wèi)星傳輸?shù)耐ㄐ刨|(zhì)量。衛(wèi)星數(shù)字電視直播產(chǎn)業(yè)已經(jīng)在全球形成發(fā)展熱點,隨著業(yè)務(wù)的拓展,數(shù)字衛(wèi)星接收機將具有廣闊的市場前景。

DVB-S2的前向糾錯系統(tǒng)(FEC)中配合LDPC碼使用了長BCH,其碼字長度為16 200~58 320 b(正常幀模式)及14 400~3 240 b(縮短幀模式)不等。長BCH碼極大地增加了硬件的實現(xiàn)難度,滿足芯片面積要求的同時,更要求其譯碼速度能夠符合前級LDPC譯碼器輸出。本文通過對長BCH碼優(yōu)化方法的研究與討論,針對標(biāo)準(zhǔn)中二進(jìn)制BCH碼的特性,設(shè)計了實現(xiàn)該譯碼器的FPGA硬件結(jié)構(gòu)。

2 BCH編譯碼原理及算法

BCH碼是可以糾正多個隨即錯誤的循環(huán)碼,可以用生成多項式g(x)來構(gòu)成,循環(huán)碼的生成多項式可以表示成g(x)=LCM[g1(x),g2(x),…,gi(x)],其中g(shù)1(x),g2(x),…,gi(x)是g(x)零點的最小多項式,LCM表示這些最小多項式的最小公倍式。倘若給定一個BCH碼的碼長n和糾錯能力t,我們可以計算a,a2,a3,…,a2t在GF(q)上的最小多項式gi(x),i=1,2,…,2t(其中a是GF(qm)上的本原域元素),來構(gòu)成該BCH碼的生成多項式:

g(x)=LCM[g1(x),g2(x),…,gi(x)]

BCH碼的譯碼方法主要分兩大類:時域譯碼和頻域譯碼,目前普遍使用的是時域中迭代譯碼的方法。BCH碼的譯碼過程遵循循環(huán)碼和線性碼的一般譯碼步驟:

(1)計算接收碼字R(x)的伴隨S(x);

(2)根據(jù)伴隨式S(x)找出估計錯誤圖樣E(x);

(3)R(x)-E(x)=C1,得到譯碼器輸出的估計值;若C1=C,則譯碼正確,否則譯碼錯誤。

其中對于可糾正t個錯誤的BCH碼而言,需要計算2t個伴隨式。由伴隨式Sj求出錯誤位置多項式Λ(x)和錯誤值多項式ω(x)。這一過程有多種實現(xiàn)算法,常用的有Peterson算法,Berlekamp算法以及Euclid算法。其中Peterson算法需要完成矩陣求逆運算,當(dāng)糾錯數(shù)t較小時,該算法有很高的效率,但隨著糾錯能力t的增加,其運算量迅速增加。對于糾錯數(shù)t較大的情況下,后兩種基于迭代的方法更常用。之后一般利用錢氏搜索算法來計算錯誤位置多項式Λ(x)的根,即位錯誤位置X1,X2,…,Xt。該算法實質(zhì)是一種窮盡法,將每個位置代人多項式驗證是否為錯誤位置,在工程上很好地解決了錯誤位置求解的問題。同時一般利用Forney算法通過錯誤位置多項式Λ(x)和錯誤值多項式ω(x)來計算錯誤值Y1,Y2,…,Yt。最后由錯誤位置Xi和錯誤值Yi得到錯誤圖樣E(x),通過R(x)-E(x)=C1糾正錯誤值,并輸出最終譯碼值。

3 BCH譯碼器硬件結(jié)構(gòu)

在這一節(jié)中,本文將針對DVB-S2中BCH碼的特性,提出一種高效、低復(fù)雜度的譯碼器硬件結(jié)構(gòu)。根據(jù)譯碼原理,譯碼器一般由5個部分組成,如圖1所示。

其中R(x)為接收的碼字,S為所求的伴隨式,Λ(x)為錯誤位置多項式,C1為輸出的譯碼值。

針對標(biāo)準(zhǔn)中二進(jìn)制BCH碼的特殊性,對各模塊作了如下優(yōu)化:

(1)利用二進(jìn)制BCH碼的特性,減少伴隨式的計算數(shù)量,以并行結(jié)構(gòu)實現(xiàn);

(2)采用無逆二進(jìn)制Berlekamp算法,減少迭代次數(shù),并從算法上去除了錯誤值多項式ω(x)的求解、求逆運算,省去相應(yīng)硬件開銷;采用序列化硬件結(jié)構(gòu),復(fù)用迦羅華域乘法器數(shù)量;

(3)并行結(jié)構(gòu)實現(xiàn)錢氏搜索;

(4)利用遞歸匹配和群組遞歸匹配的方法,優(yōu)化伴隨式、錢氏搜索中使用的迦羅華域固定因子乘法器。

3.1 伴隨式計算

在BCH譯碼過程中所需計算的伴隨式個數(shù)為2t,即可糾正錯誤數(shù)t的2倍。DVB-S2中正常幀長模式下的BCH碼分別由(65 535,65 343,12),(65 535,65 375,10)和(65 535,65 407,8)三種碼截短而得,可糾正12,10,8個錯誤,相應(yīng)需要計算24,20,16個伴隨式。伴隨式計算公式如下:

從伴隨式的計算公式可知,完成一個伴隨式的計算,需要一個碼字所有碼元輸入花費的時間。因此碼長為n的情況下,碼元逐一輸入,計算一個伴隨式則需要n個時鐘。為了減少伴隨式計算時間,采用圖2并行結(jié)構(gòu)計算伴隨式。一個時鐘并行輸入P位,則計算一個伴隨式只需要[n/P]個時鐘。

因此對于DVB-S2中的BCH碼,最多只需計算12個伴隨式,減少了一半的計算數(shù)量。最后由于P位并行輸入,寄存器D中的值進(jìn)入下一次累加之前,需要乘以一個常數(shù)api。對于迦羅華域上的固定因子乘法器,可通過遞歸匹配的方法,消除冗余的公共子項,達(dá)到優(yōu)化的目的。

3.2 關(guān)鍵方程的求解

關(guān)鍵方程的求解有多種適于硬件實現(xiàn)的算法,例如Peterson、Berlekamp-Massey或者Euclid的算法。關(guān)鍵方程的求解主要用于計算錯誤位置多項式Λ(x)和錯誤值多項式ω(x),對于DVB-S2中的二進(jìn)制BCH碼,無需計算錯誤值多項式ω(x),此外還要考慮迦羅華域上求逆、乘法器等大面積的運算單元數(shù)量。通過比較,本文選擇了針對二進(jìn)制BCH碼改進(jìn)的無逆Berlekamp算法(inversionless Berlekamp)。

算法描述如下:

其中d(2k)為(1+S)Λ(2k)乘積項中X(2k+1)的系數(shù),迭代至Ssk+1不存在時,迭代結(jié)束,Λ(x)即為所求的錯誤位置多項式。

首先該算法避免了迦羅華域上的求逆運算,大大簡化了電路,同時針對二進(jìn)制BCH碼,簡化了迭代算法,所需的迭代步驟減少為原來的一半,因此對于可糾正錯誤數(shù)t=12的BCH碼只需迭代12次就可以得到錯誤位置多項式Λ(x),同時該算法中并未涉及到錯誤值多項式ω(x)的計算,從算法上去除了錯誤值多項式的求解,減少了不必要的硬件開銷。

該算法易于硬件實現(xiàn),但若使用并行結(jié)構(gòu)實現(xiàn)此算法,那么整個關(guān)鍵方程的求解只需12個時鐘,但需要38個16位的迦羅華域乘法器。16位的迦羅華域乘法器相當(dāng)消耗資源,該模塊所占的面積由乘法器的數(shù)量決定。若采用序列化的結(jié)構(gòu)復(fù)用乘法器,雖然增加了一定譯碼延時,但可將乘法器個數(shù)減至3個,大大減少了硬件面積。因此本文采用圖3所示序列化的結(jié)構(gòu),該結(jié)構(gòu)一共只使用了3個16位的迦羅華域乘法器,迭代一次需要14個時鐘,迭代次數(shù)為可糾正錯誤數(shù)(t次)。當(dāng)t=12時,最多需要168個時鐘。增加了少量譯碼延時,但大大減少硬件面積,同時所增加的譯碼延時要遠(yuǎn)小于一個碼字的譯碼周期,對于整個碼字的譯碼速度影響不是很大。

3.3 錢氏搜索

得到錯誤位置多項式Λ(x)后,需要求解該方程的根來確定錯誤位置,錢氏搜索法在工程上很好地解決了對于該方程求根的問題。其本質(zhì)上是一種窮舉法,將可能的錯誤位置逐一代入方程驗證,以確定是否在該位置發(fā)生了錯誤,即驗證ai是否為Λ(x)的根:

同樣的n個可能的位置都需要逐一代人驗證,一共需要n個時鐘;同伴隨式計算一樣,為了提高運算速度,本文采用并行結(jié)構(gòu)實現(xiàn)錢氏搜索。

3.4 迦羅華域上固定因子乘法器的優(yōu)化

在伴隨式及錢氏搜索模塊中都用到了迦羅華域上的固定因子乘法器,根據(jù)文獻(xiàn)[1]中描述的Iterative Matc- hing Algorithm(IMA)算法,通過迭代找出公共子項,減少冗余計算單元,以減小電路面積。

算法描述如下:設(shè)B為迦羅華域上的變量,C是B與常數(shù)ai的乘積;

用自然基表示法表示域上的常數(shù),也即用[ai0,ai1,ai2,…,aim-1]來表示ai。由于ai為已知常數(shù),故乘積C的各元素也就是B各元素的加權(quán)組合,二進(jìn)制加法可由異或門來實現(xiàn),系數(shù)矩陣即由a的i~(i+m-1)次方組成。通過迭代匹配的算法,逐次找出系數(shù)矩陣中的公共子項,通過最大限度地共享公共項來減少面積。迭代過程分為以下4個步驟:

(1)找出a系數(shù)矩陣中各行相匹配的位數(shù);

(2)確定最多匹配的位數(shù);

(3)從匹配的兩行中去除冗余部分(匹配部分),并將去除的冗余部分作為一個新行添加到系數(shù)矩陣末;

(4)重復(fù)執(zhí)行步驟(1)~(3),直到匹配數(shù)<2,尋找匹配時包括新添加的行。

伴隨式計算中可以利用該算法,減少固定因子乘法器的面積,對于錢氏搜索模塊可以利用群組匹配作進(jìn)一步的優(yōu)化,如圖4中,P個位置并行驗證時,系數(shù)Λi需要乘以P個固定常數(shù),可將P個常數(shù)以組的形式進(jìn)行匹配,最大化地消除冗余子項。

4 仿真結(jié)果

用Verilog硬件描述語言完成了BCH碼譯碼器的RTL級設(shè)計,用Modelsim進(jìn)行了功能仿真,并用QuartusII進(jìn)行了綜合。本文提出的結(jié)構(gòu)中,關(guān)鍵方程模塊相對獨立、固定,伴隨式及錢搜索的并行位數(shù)取值,應(yīng)根據(jù)整個系統(tǒng)時鐘及內(nèi)碼LDPC輸出速率綜合考慮。仿真設(shè)計中采用了15位的并行輸入/輸出,Modelsim功能仿真波形圖如圖5所示。

5 結(jié)語

本文針對DVB-B2標(biāo)準(zhǔn)中BCH碼的特殊性,提出了一種適合FPGA實現(xiàn)的硬件結(jié)構(gòu)。該結(jié)構(gòu)采用并行方式實現(xiàn)伴隨式計算、錢氏搜索,選擇針對二進(jìn)制BCH碼的無逆Berlekamp算法,減少了迭代次數(shù),并以序列化的結(jié)構(gòu)實現(xiàn)該算法,將16位迦羅會域乘法器減少至3個,大幅度減少了所占硬件資源。并在伴隨式計算及錢氏搜索中使用利用遞歸匹配和群組遞歸匹配的方法,對固定因子乘法器作了優(yōu)化。本文提出者的硬件結(jié)構(gòu),對BCH譯碼器各模塊都作了一定的優(yōu)化處理,保證譯碼速度的前提下,盡可能地減少了芯片面積。

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

一種帶自動斷電功能的煙霧報警器,屬于煙霧報警器技術(shù)領(lǐng)域。本設(shè)計包括主控芯片、AD轉(zhuǎn)換芯片、電源模塊、煙霧模塊、溫度模塊、液晶顯示模塊、按鍵模塊、報警模塊、LED模塊、驅(qū)動模塊和繼電器模塊,電源模塊與主控芯片、AD...

關(guān)鍵字: 煙霧報警器 智能家居 硬件設(shè)計

數(shù)字濾波器是由數(shù)字乘法器、加法器和延時單元組成的一種算法或裝置。數(shù)字濾波器的功能是對輸入離散信號的數(shù)字代碼進(jìn)行運算處理,以達(dá)到改變信號頻譜的目的。

關(guān)鍵字: 數(shù)字濾波器 乘法器 加法器

用技術(shù)之眼,尋世間情愛,@硬門芯思嵌入式系統(tǒng)設(shè)計不僅要求了解硬件,還要求了解軟件的作用方式,以及如何與之交互。設(shè)計硬件需要的某種范式可能與設(shè)計軟件完全相反。當(dāng)從硬件設(shè)計轉(zhuǎn)向包含軟件的設(shè)計時,硬件工程師應(yīng)牢記以下十個技巧。...

關(guān)鍵字: 軟件 硬件設(shè)計

摘 要 :工業(yè)生產(chǎn)中,經(jīng)常需要測量類似單容水箱的液位高度。文中設(shè)計了一款簡易液位測控系統(tǒng)。系統(tǒng)硬件設(shè)計包括單片機最小電路、數(shù)據(jù)采集模塊、光耦隔離與驅(qū)動模塊、按鍵與顯示模塊 ;軟件設(shè)計包括按鍵掃描設(shè)計、PID 控制設(shè)計和...

關(guān)鍵字: 液位 測控系統(tǒng) PID 硬件設(shè)計 軟件設(shè)計 MSP430F5529

摘 要:文中從電子工程師應(yīng)用的角度,簡單介紹了集成電路芯片數(shù)據(jù)手冊,就集成電路芯片數(shù)據(jù)手冊的快速閱讀內(nèi)容、方法等作了歸納總結(jié),并給出了快速閱讀建議,以供電子工程師設(shè)計時參考。

關(guān)鍵字: 集成電路芯片 數(shù)據(jù)手冊 硬件設(shè)計 軟件設(shè)計 微控制器

▼點擊下方名片,關(guān)注公眾號▼歡迎關(guān)注【玩轉(zhuǎn)單片機與嵌入式】公眾號,回復(fù)關(guān)鍵字獲取更多免費資料?;貜?fù)【電容】,獲取關(guān)于電容相關(guān)的內(nèi)容;回復(fù)【阻抗匹配】,獲取電磁兼容性、阻抗匹配相關(guān)的資料回復(fù)【資料】,獲取全部電子設(shè)計、單片...

關(guān)鍵字: 硬件設(shè)計

不懂硬件的人通常會覺得硬件高深莫測,比如為什么他改幾個電阻電容就調(diào)出來,我弄個半天沒搞定?噢,靠的是經(jīng)驗,但是經(jīng)驗又是什么呢?不能形容,反正就是覺不明厲。就是這種崇拜心理,才能觸發(fā)你的好奇心,去學(xué)下去,這也是成為工程師的...

關(guān)鍵字: 硬件設(shè)計

注|文末留言有神器本文主要介紹芯片datasheet的查找、使用方法以及重要性,不管是設(shè)計硬件電路還是編程,datasheet都是重要的資料,芯片的使用方法都在datasheet里,這也是最權(quán)威的資料!Datasheet...

關(guān)鍵字: 硬件設(shè)計 數(shù)據(jù)手冊

▼點擊下方名片,關(guān)注公眾號▼大家好,很高興和各位一起分享我的第14篇原創(chuàng)文章,喜歡和支持我的工程師,一定記得給我點贊、收藏、分享。加微信[xyzn3333]與作者溝通交流,免費獲取更多單片機與嵌入式的海量電子資料。在小編...

關(guān)鍵字: 電阻 阻值 硬件設(shè)計

▼點擊下方名片,關(guān)注公眾號▼在電子電路設(shè)計時經(jīng)常用到的一種元件就是電阻,我們都知道電阻在電路中起到分壓限流的作用。然而,實際使用時會用到一種特殊的電阻:零歐電阻,故名思議,零歐電阻的電阻值是零。對于初學(xué)者可能會有一個疑問...

關(guān)鍵字: 電路 電阻 硬件設(shè)計

電子設(shè)計自動化

21167 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉