0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

采用FPGA芯片實(shí)現(xiàn)多碼率QC-LDPC譯碼器的設(shè)計(jì)與測(cè)試

電子設(shè)計(jì) ? 來(lái)源:郭婷 ? 作者:電子設(shè)計(jì) ? 2019-01-08 09:22 ? 次閱讀

引言

LDPC 碼最早于1962 年由Gallager提出,可以看成是一個(gè)具有稀疏校驗(yàn)矩陣的線性分組碼。自從Mackay 和Neal發(fā)現(xiàn)LDPC 碼的性能非常接近香農(nóng)限以后,LDPC 碼越來(lái)越受到人們的重視?;跍?zhǔn)循環(huán)LDPC(QC-LDPC)碼結(jié)構(gòu)特點(diǎn),提出了一種支持多種碼率QC-LDPC 譯碼器的設(shè)計(jì)方法,并設(shè)計(jì)實(shí)現(xiàn)了一個(gè)能夠?qū)崟r(shí)自適應(yīng)支持三個(gè)不同H 陣的通用QC-LDPC 譯碼器。

1 QC-LDPC 碼簡(jiǎn)介

QC-LDPC 碼的校驗(yàn)矩陣Hqc是由c × t 個(gè)循環(huán)置換矩陣組成的,其中c,t均為整數(shù),且c < t 。將QC-LDPC碼的校驗(yàn)矩陣中每一個(gè)置換矩陣替換為相應(yīng)的移位值,這樣得到了一個(gè)新的矩陣,稱為基本矩陣?;揪仃嚺cΗ 陣是一一對(duì)應(yīng)的。QC-LDPC 規(guī)則的結(jié)構(gòu)使得其編譯碼在工程上易于實(shí)現(xiàn),因此許多標(biāo)準(zhǔn)中的LDPC 碼都采用了QC-LDPC 碼。

2 譯碼算法簡(jiǎn)介

這里設(shè)計(jì)的譯碼器主要采用基于軟判決的偏移值最小和算法。偏移值最小和算法是在和積算法和最小和算法的基礎(chǔ)上改進(jìn)而來(lái),具有譯碼復(fù)雜度低,性能優(yōu)異等特點(diǎn)。為了能夠較好地描述該算法,先對(duì)一些符號(hào)進(jìn)行定義。

L(ci )表示輸入譯碼器變量節(jié)點(diǎn)i 的原始軟信息, L( rji) 表示由校驗(yàn)節(jié)點(diǎn)j 傳遞給變量節(jié)點(diǎn)i 的信息, L(q ij )表示由變量節(jié)點(diǎn)i 傳遞給校驗(yàn)節(jié)點(diǎn)j 的信息。而αij ,βi ' j 的意義如式1 所示:

采用FPGA芯片實(shí)現(xiàn)多碼率QC-LDPC譯碼器的設(shè)計(jì)與測(cè)試

L Q 進(jìn)行硬判決,若( ) 0 i L Q > ,判決為0 否則為1。計(jì)算cHT 是否為0,或者已經(jīng)達(dá)到設(shè)定的最大迭代次數(shù),如果是轉(zhuǎn)第3 步,否則轉(zhuǎn)第1 步。

第3 步,輸出判決結(jié)果。

通過(guò)仿真,文中確定的譯碼器輸入定點(diǎn)化方案如下:量化位寬為6 bit,其中3 bit 表示整數(shù)位,2 bit 表示小數(shù)位。

3 多碼率LDPC 譯碼器設(shè)計(jì)

首先考慮下面3 種QC-LDPC 碼字作為參考,碼長(zhǎng)8 064bit,碼率分別為7/8, 3/4, 1/2。其中,不同碼率的最小和譯碼算法所需的最佳偏移值((3)式中的offset 值)經(jīng)仿真得到,分別為1, 0.7, 0.5。上述QC-LDPC 碼中所用到的碼型膨脹因子是112。

文中實(shí)現(xiàn)的LDPC 譯碼器基于部分并行的譯碼結(jié)構(gòu),對(duì)譯碼器進(jìn)行了輸入輸出雙緩沖處理,支持?jǐn)?shù)據(jù)連續(xù)處理,總體的結(jié)構(gòu)如圖1 所示。

采用FPGA芯片實(shí)現(xiàn)多碼率QC-LDPC譯碼器的設(shè)計(jì)與測(cè)試

圖 1 譯碼器的總體結(jié)構(gòu)

由于要支持三個(gè)不同H 陣的LDPC 碼,所以需要有一個(gè)模式端口,告知譯碼器當(dāng)前數(shù)據(jù)塊是屬于哪個(gè)碼型。輸入模式寄存器控制選擇器選擇不同的H 陣來(lái)配置控制和尋址模塊,使其能選擇需要更新的節(jié)點(diǎn)RAM 和需要更新的校驗(yàn)節(jié)點(diǎn)單元(CNU),變量節(jié)點(diǎn)單元(VNU)的電路套數(shù)。

輸入數(shù)據(jù)首先輸入到輸入緩存RAM 組中,輸入緩存RAM 組按照基本矩陣的列數(shù)分成N 塊對(duì)數(shù)據(jù)進(jìn)行緩存,其中N 可配置,文中用到的N 是72。數(shù)據(jù)存滿一幀編碼塊后,就輸入到節(jié)點(diǎn)RAM 組中。節(jié)點(diǎn)RAM 組的作用是對(duì)算法迭代更新時(shí)的中間信息進(jìn)行存儲(chǔ)。由于基本矩陣中有較多的零矩陣,所以實(shí)際生成的節(jié)點(diǎn)RAM個(gè)數(shù)遠(yuǎn)小于M × N 個(gè)。

CNU 電路的用途是做校驗(yàn)節(jié)點(diǎn)概率更新,完成式(3)的計(jì)算。實(shí)現(xiàn)結(jié)構(gòu)如圖2(a)所示。VNU 電路的用途是做變量節(jié)點(diǎn)概率更新,同時(shí)計(jì)算硬判決結(jié)果,完成式(4)和式(5)的計(jì)算。

具體結(jié)構(gòu)如圖2(b)所示。

采用FPGA芯片實(shí)現(xiàn)多碼率QC-LDPC譯碼器的設(shè)計(jì)與測(cè)試

圖2 CNU 和VNU 電路的結(jié)構(gòu)

輸出緩存RAM 組用來(lái)存儲(chǔ)和輸出譯碼結(jié)果,同樣也采取了乒乓操作,支持?jǐn)?shù)據(jù)塊連續(xù)的輸入輸出??刂坪蛯ぶ纺K是譯碼器的核心模塊,它為譯碼器提供各種控制信號(hào)和讀寫(xiě)RAM 的尋址信號(hào)。尋址模塊分為CNU 地址產(chǎn)生模塊和VNU 地址產(chǎn)生模塊兩部分,CNU 地址產(chǎn)生模塊的起始地址都是其偏移值;而VNU 地址產(chǎn)生的地址則都是從0 到Z。

由于采用了輸入輸出雙緩沖,所以譯碼器中最多可以存在三塊數(shù)據(jù)塊,同時(shí)這三塊數(shù)據(jù)塊可以是不同碼率的數(shù)據(jù)塊,這就實(shí)現(xiàn)了對(duì)連續(xù)輸入的不同碼率數(shù)據(jù)塊自適應(yīng)譯碼的功能。

4 FPGA 實(shí)現(xiàn)以及性能測(cè)試:

根據(jù)以上設(shè)計(jì)方案,選用Verilog HDL 進(jìn)行設(shè)計(jì),同時(shí)采用了Modelsim 6.1b 進(jìn)行了仿真驗(yàn)證,最后在Stratix IIEP2S180F1020I4 芯片上進(jìn)行了測(cè)試。具體見(jiàn)表1 所示。

表1 資源占用情況

采用FPGA芯片實(shí)現(xiàn)多碼率QC-LDPC譯碼器的設(shè)計(jì)與測(cè)試

表1 中同時(shí)也列出了一個(gè)單碼率譯碼器的資源占用(7/8碼率)??梢钥闯觯摱啻a率譯碼器在資源占用不超過(guò)2 種碼率譯碼器資源之和的前提下能夠有效支持3 種碼率。

同時(shí),還針對(duì)每種碼率都測(cè)試了其吞吐率和運(yùn)行的最高時(shí)鐘,其中三種碼率(1/2,3/4,7/8)工作最高時(shí)鐘均為110 MHz,最高吞吐率分別為110 Mb/s、165 Mb/s 和192.5 Mb/s。從該測(cè)試結(jié)果可以看出,該多碼率譯碼器吞吐率也在110 Mb/s以上,說(shuō)明其在滿足自適應(yīng)多碼率應(yīng)用需求的同時(shí),仍然保持了很高的譯碼吞吐率。

5 結(jié)語(yǔ)

針對(duì)QC-LDPC 碼特點(diǎn),提出了一種多碼率QC-LDPC譯碼器實(shí)現(xiàn)方法,并用FPGA實(shí)現(xiàn)了此通用的多碼率譯碼器,可支持至少三種不同碼型的QC-LDPC 碼。此多碼率QC-LDPC 譯碼器的輸入輸出參數(shù)可以根據(jù)所需支持的碼型靈活配置,最終實(shí)現(xiàn)的譯碼吞吐率對(duì)任何碼率都可超過(guò)110 Mb/s,兼顧了多碼率譯碼器所需的靈活性和高吞吐量。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1621

    文章

    21517

    瀏覽量

    599318
  • 芯片
    +關(guān)注

    關(guān)注

    451

    文章

    49725

    瀏覽量

    417645
  • 譯碼器
    +關(guān)注

    關(guān)注

    4

    文章

    310

    瀏覽量

    50175
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    一種通用的低成本QC-LDPC譯碼結(jié)構(gòu)

    【作者】:申睿;鄧運(yùn)松;向波;陳赟;曾曉洋;【來(lái)源】:《小型微型計(jì)算機(jī)系統(tǒng)》2010年03期【摘要】:提出一種通用的QC-LDPC譯碼器架構(gòu).該架構(gòu)采用一種特殊的綁定結(jié)構(gòu)和一個(gè)可配置的循環(huán)移位網(wǎng)
    發(fā)表于 04-24 09:26

    怎樣設(shè)計(jì)基于CMMB系統(tǒng)的LDPC譯碼器?

    了一種合適的硬件實(shí)現(xiàn)結(jié)構(gòu),因而在保證譯碼器較高性能和較快譯碼速度的情況下,以較低的硬件資源實(shí)現(xiàn)了兩種碼率的復(fù)用。
    發(fā)表于 08-23 07:22

    大圍數(shù)QC_LDPC碼的譯碼器該怎么設(shè)計(jì)?

    LDPC碼是近年來(lái)發(fā)展較快且日趨成熟的一種信道編碼方案,因其具有的優(yōu)越性能和實(shí)用價(jià)值而被人們認(rèn)知,但由于隨機(jī)結(jié)構(gòu)的LDPC碼編譯碼器硬件實(shí)現(xiàn)較為復(fù)雜,具有的準(zhǔn)循環(huán)特性
    發(fā)表于 09-30 07:19

    怎么實(shí)現(xiàn)RS編譯碼器的設(shè)計(jì)?

    本文研究了RS碼的實(shí)現(xiàn)方法,并基于Xilinx的FPGA芯片Spartan-6 XC6SLX45完成了RS編譯碼器的設(shè)計(jì),同時(shí)對(duì)其進(jìn)行了仿真和在線調(diào)試,并給出了功能仿真圖和
    發(fā)表于 06-21 06:23

    基于FPGA 的(3,6)LDPC 碼并行譯碼器設(shè)計(jì)與實(shí)現(xiàn)

    本文基于Altera的FPGA(StatixⅡ-EP2S30F484C3)架構(gòu),實(shí)現(xiàn)碼率為1/2,幀長(zhǎng)為1008bits的規(guī)則(3,6)LDPC
    發(fā)表于 06-06 14:12 ?31次下載

    最新LDPC譯碼器結(jié)構(gòu)論文合集

    Architecture for QC-LDPC CodesA Memory Efficient Serial LDPC Decoder ArchitectureA parallel LSI architecture for LDPC
    發(fā)表于 07-24 15:02 ?0次下載

    IEEE 802.16e中LDPC譯碼器實(shí)現(xiàn)

    面向IEEE 802.16e 中 LDPC 碼,分析了各種譯碼算法的譯碼性能,歸一化最小(NMS)算法具備較高譯碼性能和實(shí)現(xiàn)復(fù)雜度低的特點(diǎn)。
    發(fā)表于 08-05 08:46 ?24次下載

    碼率LDPC譯碼器的優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)

    本文以CCSDS 推薦的7/8 碼率LDPC 碼為例,提出了一種適于高碼率LDPC譯碼器的硬件結(jié)構(gòu)優(yōu)化方法。高
    發(fā)表于 11-25 15:21 ?26次下載

    WIMAX LDPC譯碼器FPGA實(shí)現(xiàn)

    本文設(shè)計(jì)實(shí)現(xiàn)了一種支持WIMAX標(biāo)準(zhǔn)的碼長(zhǎng)、碼率可配置LDPC譯碼器,通過(guò)設(shè)計(jì)一種基于串行工作模式的運(yùn)算單元,實(shí)現(xiàn)了對(duì)該標(biāo)準(zhǔn)中所有
    發(fā)表于 06-08 09:52 ?1988次閱讀
    WIMAX <b class='flag-5'>LDPC</b>碼<b class='flag-5'>譯碼器</b>的<b class='flag-5'>FPGA</b><b class='flag-5'>實(shí)現(xiàn)</b>

    一種基于距離圖的QC-LDPC構(gòu)造算法

    針對(duì)隨機(jī)法構(gòu)造的LDPC碼結(jié)構(gòu)性差,不易于硬件實(shí)現(xiàn)等問(wèn)題,設(shè)計(jì)了一種基于距離圖的QC-LDPC碼構(gòu)造算法。它有兩種實(shí)現(xiàn)方式--順序搜索方式和隨機(jī)搜索方式,其碼長(zhǎng)、
    發(fā)表于 04-07 17:42 ?28次下載
    一種基于距離圖的<b class='flag-5'>QC-LDPC</b>構(gòu)造算法

    基于FPGALDPC 碼編譯碼器聯(lián)合設(shè)計(jì)

    該文通過(guò)對(duì)低密度校驗(yàn)(LDPC)碼的編譯碼過(guò)程進(jìn)行分析,提出了一種基于FPGALDPC 碼編譯碼器聯(lián)合設(shè)計(jì)方法,該方法使編碼
    發(fā)表于 11-22 07:34 ?4255次閱讀
    基于<b class='flag-5'>FPGA</b> 的<b class='flag-5'>LDPC</b> 碼編<b class='flag-5'>譯碼器</b>聯(lián)合設(shè)計(jì)

    大列重低復(fù)雜度的QC-LDPC碼構(gòu)造

    準(zhǔn)循環(huán)結(jié)構(gòu);在此基礎(chǔ)上,使其與準(zhǔn)雙對(duì)角結(jié)構(gòu)相結(jié)合,構(gòu)造出的QC-LDPC碼圍長(zhǎng)不會(huì)減小,且具有低復(fù)雜度可快速編碼的雙重特性。仿真結(jié)果顯示在加性高斯白噪聲( AWGN)和置信傳播(BP)譯碼算法下,所提方法構(gòu)造的QC-LDPC碼在
    發(fā)表于 01-16 18:48 ?0次下載
    大列重低復(fù)雜度的<b class='flag-5'>QC-LDPC</b>碼構(gòu)造

    如何使用FPGA實(shí)現(xiàn)結(jié)構(gòu)化LDPC碼的高速編譯碼器

    結(jié)構(gòu)化LDPC碼可進(jìn)行相應(yīng)擴(kuò)展通過(guò)對(duì)編譯碼算法,優(yōu)化編譯碼結(jié)構(gòu)進(jìn)行調(diào)整,降低了編譯碼囂硬件實(shí)現(xiàn)中的關(guān)鍵路徑遲延,并
    發(fā)表于 03-26 15:58 ?12次下載
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>實(shí)現(xiàn)</b>結(jié)構(gòu)化<b class='flag-5'>LDPC</b>碼的高速編<b class='flag-5'>譯碼器</b>

    如何使用FPGA實(shí)現(xiàn)跳頻系統(tǒng)中的Turbo碼譯碼器

    給出了跳頻系統(tǒng)中 Turbo碼譯碼器FPGA( field programmable gate array)實(shí)現(xiàn)方案。譯碼器采用了MaxL
    發(fā)表于 04-01 11:21 ?5次下載
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>實(shí)現(xiàn)</b>跳頻系統(tǒng)中的Turbo碼<b class='flag-5'>譯碼器</b>

    基于FPGA的800Mbps準(zhǔn)循環(huán)LDPC譯碼器

    基于FPGA的800Mbps準(zhǔn)循環(huán)LDPC譯碼器
    發(fā)表于 06-08 10:31 ?26次下載