亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

Dmb-t解調(diào)芯片中前向糾錯(cuò)解碼的硬件構(gòu)架及解碼方法

文檔序號(hào):7651559閱讀:265來(lái)源:國(guó)知局
專利名稱:Dmb-t解調(diào)芯片中前向糾錯(cuò)解碼的硬件構(gòu)架及解碼方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)字電視地面廣播傳輸系統(tǒng),特別是涉及一種用于DMB-T 解調(diào)芯片的前向糾錯(cuò)(FEC)解碼的硬件構(gòu)架;本發(fā)明還涉及利用所述硬 件構(gòu)架進(jìn)行前向糾錯(cuò)解碼的方法。
背景技術(shù)
地面數(shù)字廣播近幾年來(lái)一直都是無(wú)線領(lǐng)域關(guān)注的熱點(diǎn)。2007年8月1 曰起,我國(guó)實(shí)施數(shù)字電視地面廣播傳輸系統(tǒng)強(qiáng)制標(biāo)準(zhǔn)一國(guó)標(biāo)DMB-T。DMB-T 系統(tǒng)中的前向糾錯(cuò)編碼,是指在發(fā)送端弓I入數(shù)據(jù)冗余性的信道編碼技術(shù), 籍此在接收端獲得一定的糾錯(cuò)能力。前向糾錯(cuò)編碼由外碼(BCH碼)和內(nèi) 碼(LDPC碼)級(jí)聯(lián)實(shí)現(xiàn)。BCH碼是一種應(yīng)用廣泛的能糾正多重錯(cuò)誤的分組 碼。LDPC碼是一種逼近香農(nóng)限的,易實(shí)現(xiàn)和系統(tǒng)復(fù)雜度低的優(yōu)秀的線性 糾錯(cuò)碼。LDPC碼應(yīng)用于采用正交頻分復(fù)用技術(shù)的無(wú)線局域網(wǎng)及高速光纖 通信領(lǐng)域取得了良好的性能,相比傳統(tǒng)的糾錯(cuò)碼有很優(yōu)異的特點(diǎn),具有良 好的應(yīng)用前景。
相應(yīng)的,在DMB-T接收機(jī)中,F(xiàn)EC解碼包含LDPC解碼和BCH解碼兩 部分,其解碼算法都相對(duì)穩(wěn)定。LDPC解碼算法中廣泛使用的是SPA算法 和Min-Sum算法。相對(duì)Min-Sum算法,SPA算法有較好的糾錯(cuò)性能,但是, 其設(shè)計(jì)復(fù)雜度較高并需要付出較高的硬件代價(jià)。BCH碼的編碼取決于其生 成多項(xiàng)式。有了生成多項(xiàng)式,BCH編解碼與普通的循環(huán)碼編碼相同,使用除法電路可以實(shí)現(xiàn)。BCH解碼實(shí)現(xiàn)的功能有BCH驗(yàn)證和BCH校正。BCH驗(yàn) 證實(shí)現(xiàn)的功能是指出數(shù)據(jù)塊中是否有錯(cuò)誤比特。BCH校正實(shí)現(xiàn)的功能是找 出數(shù)據(jù)塊中錯(cuò)誤比特的位置,并將其校正。
因?yàn)榻獯a算法的相對(duì)穩(wěn)定性,F(xiàn)EC解碼的硬件設(shè)計(jì)難點(diǎn)在于,如何對(duì) 數(shù)據(jù)吞吐率和硬件成本進(jìn)行折衷;如何使用最小的硬件代價(jià),在可以容忍 的數(shù)據(jù)吞吐率內(nèi),完成較高性能的LDPC解碼運(yùn)算。
由于LDPC迭代過(guò)程中需要存儲(chǔ)大量的中間數(shù)據(jù),LDPC解碼的硬件設(shè) 計(jì)難點(diǎn)在于,如何合理的使用SRAM存儲(chǔ)中間計(jì)算結(jié)果,減少SRAM的數(shù)量, 減輕芯片后端設(shè)計(jì)的壓力,降低設(shè)計(jì)風(fēng)險(xiǎn)。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是提供一種DMB-T解調(diào)芯片中前向糾錯(cuò)解 碼的硬件構(gòu)架,它能夠有效降低硬件實(shí)現(xiàn)的復(fù)雜度,并提高FEC性能。為 此,本發(fā)明還要提供一種利用所述硬件構(gòu)架實(shí)現(xiàn)前向糾錯(cuò)解碼的方法。
為解決上述技術(shù)問(wèn)題,本發(fā)明的DMB-T解調(diào)芯片中前向糾錯(cuò)解碼的硬 件構(gòu)架,包括1個(gè)輸入數(shù)據(jù)串并轉(zhuǎn)換模塊,8個(gè)并行的FEC數(shù)據(jù)處理模塊, 1個(gè)LDPC狀態(tài)控制模塊,1個(gè)BCH狀態(tài)控制模塊;其中,每個(gè)FEC數(shù)據(jù)處 理模塊包括1個(gè)LDPC數(shù)據(jù)處理模塊和1個(gè)BCH數(shù)據(jù)處理模塊,在每個(gè)FEC 數(shù)據(jù)處理模塊內(nèi),采用LDPC迭代、BCH驗(yàn)證、BCH校正,前向糾錯(cuò)數(shù)據(jù)輸 出的流水線結(jié)構(gòu);
所述輸入數(shù)據(jù)串并轉(zhuǎn)換模塊,用于接收輸入數(shù)據(jù),并將輸入的32bit 的串行數(shù)據(jù)轉(zhuǎn)換成32x8bits數(shù)據(jù)寬度的并行數(shù)據(jù)流,每32bits數(shù)據(jù)輸送 給一個(gè)LDPC數(shù)據(jù)處理模塊;所述LDPC數(shù)據(jù)處理模塊,用于實(shí)現(xiàn)LDPC解碼時(shí)的迭代運(yùn)算;
所述LDPC狀態(tài)控制模塊,用于控制所述8個(gè)FEC數(shù)據(jù)處理模塊中LDPC 數(shù)據(jù)處理模塊的運(yùn)算使能和LDPC—SRAM存儲(chǔ)器控制使能,控制8個(gè)LDPC 數(shù)據(jù)處理模塊同時(shí)進(jìn)行LDPC迭代,同時(shí)對(duì)SRAM存儲(chǔ)器進(jìn)行讀寫;
所述BCH數(shù)據(jù)處理模塊,用于在其所屬的FEC數(shù)據(jù)處理模塊中LDPC 數(shù)據(jù)處理模塊迭代到信息bit后,實(shí)現(xiàn)BCH驗(yàn)證和校正;
所述BCH狀態(tài)控制模塊,控制所述8個(gè)FEC數(shù)據(jù)處理模塊中BCH數(shù)據(jù) 處理模塊的運(yùn)算使能和BCH—SRAM存儲(chǔ)器控制使能,控制8個(gè)BCH數(shù)據(jù)處 理rf塊同時(shí)進(jìn)行BCH驗(yàn)證處理或BCH校正處理,同時(shí)對(duì)SRAM存儲(chǔ)器進(jìn)行 讀寫。
所述8個(gè)并行的FEC數(shù)據(jù)處理模塊共用SRAM存儲(chǔ)器,所述8個(gè)并行 的FEC數(shù)據(jù)處理模塊在LDPC迭代時(shí)產(chǎn)生的同一類型的中間數(shù)據(jù),即行信 息和列信息存入對(duì)應(yīng)的SRAM存儲(chǔ)器的相同地址。
本發(fā)明的進(jìn)行向前糾錯(cuò)解碼的方法,包括如下步驟 步驟一、由輸入數(shù)據(jù)串并轉(zhuǎn)換模塊接收8個(gè)LDPC數(shù)據(jù)處理模塊所需 的連續(xù)32bit數(shù)據(jù)寬度的數(shù)據(jù)源,串并轉(zhuǎn)換成32x8bits寬度的數(shù)據(jù),每 32bits輸送給一個(gè)LDPC數(shù)據(jù)處理模塊,所述8個(gè)LDPC數(shù)據(jù)處理模塊皆 獲得數(shù)據(jù);
步驟二、由LDPC狀態(tài)控制模塊控制8個(gè)LDPC數(shù)據(jù)處理模塊的運(yùn)算使 能,使LDPC數(shù)據(jù)處理模塊在同一時(shí)間對(duì)獲得的數(shù)據(jù)開始LDPC迭代,在 LDPC迭代過(guò)程中,在計(jì)算出節(jié)點(diǎn)列信息并進(jìn)行更新的時(shí)候,同時(shí)使用節(jié) 點(diǎn)的列信息計(jì)算出節(jié)點(diǎn)的行信息,并更新節(jié)點(diǎn)的行信息;所述LDPC狀態(tài)控制模塊同時(shí)控制8個(gè)LDPC數(shù)據(jù)處理模塊的 LDPC—SRAM存儲(chǔ)器控制使能,實(shí)現(xiàn)同時(shí)控制8個(gè)并行的LDPC數(shù)據(jù)處理模 塊對(duì)共用的SRAM的讀寫;
在開始進(jìn)行第一次LDPC迭代及其迭代過(guò)程中,由輸入數(shù)據(jù)串并轉(zhuǎn)換 模塊繼續(xù)向8個(gè)LDPC數(shù)據(jù)處理模塊輸送數(shù)據(jù),直至第一次LDPC迭代結(jié)束;
步驟三、在LDPC迭代到信息bit后,BCH狀態(tài)控制模塊控制8個(gè)BCH 數(shù)據(jù)處理模塊的運(yùn)算使能,同時(shí)開始BCH驗(yàn)證處理;并且BCH狀態(tài)控制模 塊控制8個(gè)BCH數(shù)據(jù)處理模塊的BCH—SRAM存儲(chǔ)器控制使能,實(shí)現(xiàn)同時(shí)控 制8個(gè)并行的BCH數(shù)據(jù)處理模塊對(duì)共用的SRAM存儲(chǔ)器的讀寫;
步驟四、如果通過(guò)BCH驗(yàn)證,則停止迭代,輸出數(shù)據(jù),如果沒有通過(guò) BCH驗(yàn)證,則繼續(xù)進(jìn)行下一次的LDPC迭代;
步驟五、在一次LDPC迭代結(jié)束時(shí),如果所有的BCH數(shù)據(jù)處理模塊都 通過(guò)BCH驗(yàn)證,表明經(jīng)過(guò)本次迭代后,數(shù)據(jù)糾錯(cuò)全部完成,則迭代結(jié)束, 整個(gè)前向糾錯(cuò)解碼過(guò)程結(jié)束,否則,判斷迭代次數(shù)是否已經(jīng)等于硬件允許 的最大迭代次數(shù),如果小于,則轉(zhuǎn)至步驟二,進(jìn)行下一輪迭代;如果等于, 則繼續(xù)進(jìn)行BCH校正;
步驟六、在BCH校正過(guò)程中,如果發(fā)現(xiàn)任何一個(gè)BCH數(shù)據(jù)處理模塊的 錯(cuò)誤bit的位置,則所有BCH數(shù)據(jù)處理模塊的BCH校正停止,將其錯(cuò)誤 bit糾正,如果所有BCH數(shù)據(jù)處理模塊的錯(cuò)誤bit的位置都已找到,則校 正結(jié)束,整個(gè)前向糾錯(cuò)解碼結(jié)束;若沒有找到錯(cuò)誤bit的位置,則繼續(xù)校 正過(guò)程,直至BCH數(shù)據(jù)處理模塊找不到錯(cuò)誤bit的位置,整個(gè)前向糾錯(cuò)解 碼過(guò)程結(jié)束。本發(fā)明從實(shí)現(xiàn)低成本,高性能的目的出發(fā),使用8個(gè)FEC數(shù)據(jù)處理模 塊的并行結(jié)構(gòu)。這樣每個(gè)數(shù)據(jù)處理模塊處理時(shí)間就擴(kuò)展為8倍,LDPC迭 代次數(shù)可以提高8倍以上。而且8塊并行FEC數(shù)據(jù)處理模塊內(nèi)部的狀態(tài)轉(zhuǎn) 換一致,可以使用相同的控制邏輯,因此降低硬件復(fù)雜度。
為了達(dá)到較好的性能指標(biāo),在LDPC解碼算法中本發(fā)明釆用SPA算法。 根據(jù)SPA算法的特點(diǎn),可以使得解調(diào)芯片糾錯(cuò)性能大大提高。為了進(jìn)一步 提高時(shí)間的利用率,本發(fā)明使用LDPC迭代、BCH驗(yàn)證、BCH校正和數(shù)據(jù)輸 出的流水線結(jié)構(gòu),進(jìn)一步增加有效的迭代時(shí)間,進(jìn)一步提高系統(tǒng)性能。
本發(fā)明采用8個(gè)FEC數(shù)據(jù)處理模塊共用SRAM的結(jié)構(gòu),8個(gè)FEC數(shù)據(jù) 處理模塊產(chǎn)生的同一類型中間數(shù)據(jù)(行信息和列信息)存入對(duì)應(yīng)的SRAM 的相同地址。不僅減少了SRAM的數(shù)量,減輕后端設(shè)計(jì)的壓力,也減少了 SRAM的控制邏輯,降低設(shè)計(jì)成本。
為了達(dá)到DMB-T系統(tǒng)需要的性能指標(biāo),本發(fā)明將每次LDPC迭代計(jì)算 中的每個(gè)節(jié)點(diǎn)的更新時(shí)間減少一半,節(jié)省了每次迭代所需要的時(shí)間,將 LDPC迭代次數(shù)提高l倍。


下面結(jié)合附圖與具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明 圖1是本發(fā)明的硬件構(gòu)架結(jié)構(gòu)框圖2是采用本發(fā)明的硬件構(gòu)架進(jìn)行LDPC迭代,BCH驗(yàn)證,BCH校正的 流水線結(jié)構(gòu)圖3是采用本發(fā)明的硬件構(gòu)架輸入數(shù)據(jù)順序示意圖4是采用本發(fā)明的硬件構(gòu)架存儲(chǔ)行信息的SP—SRAM的結(jié)構(gòu)圖;圖5是采用本發(fā)明的硬件構(gòu)架存儲(chǔ)列信息的LBQ一SRAM的結(jié)構(gòu)圖; 圖6是利用本發(fā)明的硬件構(gòu)架實(shí)現(xiàn)前向糾錯(cuò)解碼的方法控制流程圖。
具體實(shí)施例方式
由于FEC的糾錯(cuò)性能與LDPC迭代次數(shù)呈指數(shù)正比例關(guān)系,所以硬件 結(jié)構(gòu)所能實(shí)現(xiàn)的LDPC最大迭代次數(shù)決定了硬件結(jié)構(gòu)的性能特點(diǎn)。在DMB-T 的性能需求下,本發(fā)明選擇SPA算法進(jìn)行LDPC迭代,采用8個(gè)FEC數(shù)據(jù) 處理模塊并行處理數(shù)據(jù)的結(jié)構(gòu),因?yàn)锽CH驗(yàn)證和BCH校正是在LDPC迭代 的過(guò)程中進(jìn)行的,所以,LDPC的并行結(jié)構(gòu)決定了BCH的并行結(jié)構(gòu)。
為了節(jié)省BCH驗(yàn)證和BCH校正占用的LDPC迭代時(shí)間,在每個(gè)FEC數(shù) 據(jù)處理模塊中,使用LDPC迭代,BCH驗(yàn)證,BCH校正和前向糾錯(cuò)數(shù)據(jù)輸出 的流水線結(jié)構(gòu)(參見圖2)。因此,幀間隔的全部時(shí)間可以全部用于LDPC 迭代運(yùn)算,提高時(shí)間的利用率,從而提高了系統(tǒng)性能。
參見圖1所示,本發(fā)明的DMB-T解調(diào)芯片中前向糾錯(cuò)解碼的硬件構(gòu)架, 包括
一個(gè)FEC狀態(tài)控制器,其包括一個(gè)輸入數(shù)據(jù)串并轉(zhuǎn)換模塊, 一個(gè)LDPC 狀態(tài)控制模塊, 一個(gè)BCH狀態(tài)控制模塊。
8個(gè)并行的FEC數(shù)據(jù)處理模塊,每個(gè)FEC數(shù)據(jù)處理模塊包括1個(gè)LDPC 數(shù)據(jù)處理模塊和1個(gè)BCH數(shù)據(jù)處理模塊。
SRAM存儲(chǔ)器,由所述的8個(gè)并行的FEC數(shù)據(jù)處理模塊共用。所述8 個(gè)并行的FEC數(shù)據(jù)處理模塊在LDPC迭代時(shí)產(chǎn)生的同一類型的中間數(shù)據(jù), 即行信息和列信息存入對(duì)應(yīng)的SR層存儲(chǔ)器的相同地址。
在LDPC迭代中,需要存儲(chǔ)大量的中間數(shù)據(jù),用來(lái)進(jìn)行下一次的LDPC迭代,本發(fā)明使用SRAM來(lái)實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)。但是為了減少后端設(shè)計(jì)壓力, 需要使用盡可能少的SRAM。在本發(fā)明的LDPC迭代的硬件構(gòu)架中,使用的 SRAM有兩種,存儲(chǔ)行信息的SP_SRAM和按列儲(chǔ)存每個(gè)節(jié)點(diǎn)值信息的LBQ —SRAM。 SP—SRAM的結(jié)構(gòu)如圖4所示。每個(gè)FEC數(shù)據(jù)處理模塊需要8個(gè) SP—SRAM來(lái)存儲(chǔ)行信息以達(dá)到8個(gè)并行,而本發(fā)明又是8個(gè)FEC數(shù)據(jù)處理 模塊在并行工作,則一共需要64個(gè)SP—SRAM。為了減少SRAM的數(shù)量,本 發(fā)明將8個(gè)不同LDPC迭代產(chǎn)生的行信息放入同一塊SP_SRAM中。這樣分 別屬于8個(gè)LDPC迭代的8個(gè)SP—SRAM可以被合并,最終只需要8個(gè) SP_SRAM。本發(fā)明的LBQ_SRAM的結(jié)構(gòu)如圖5所示。將8個(gè)FEC數(shù)據(jù)處理模 塊需要的8塊LBQ一SRAM降低為4塊LBQ—SRAM,即每?jī)蓚€(gè)LDPC迭代的節(jié) 點(diǎn)值信息共用一個(gè)LBQ_SRAM。同時(shí),由于8塊FEC數(shù)據(jù)處理模塊的處理 過(guò)程完全一致,則對(duì)SRAM的存儲(chǔ)和取出的控制也完全一致。本發(fā)明通過(guò) 一個(gè)控制模塊控制公共的SRAM,在減少SRAM數(shù)量的同時(shí),也減小芯片成 本。
所述輸入數(shù)據(jù)串并轉(zhuǎn)換模塊,用于接收輸入數(shù)據(jù),并將輸入的32bit 的串行數(shù)據(jù)轉(zhuǎn)換成32x8bits數(shù)據(jù)寬度的并行數(shù)據(jù)流,每32bits數(shù)據(jù)輸送 給一個(gè)LDPC數(shù)據(jù)處理模塊。
所述LDPC數(shù)據(jù)處理模塊,用于實(shí)現(xiàn)LDPC解碼時(shí)的迭代運(yùn)算。 所述LDPC狀態(tài)控制模塊,用于控制所述8個(gè)FEC數(shù)據(jù)處理模塊中LDPC 數(shù)據(jù)處理模塊的運(yùn)算使能和LDPC—SRAM存儲(chǔ)器控制使能,控制8個(gè)LDPC 數(shù)據(jù)處理模塊同時(shí)進(jìn)行LDPC迭代,同時(shí)對(duì)SRAM存儲(chǔ)器進(jìn)行讀寫。LDPC 狀態(tài)控制模塊,使用同一組控制邏輯,同時(shí)控制8個(gè)LDPC數(shù)據(jù)處理模塊,減少控制邏輯的冗余,降低設(shè)計(jì)復(fù)雜度。
所述BCH數(shù)據(jù)處理模塊,用于在其所屬的FEC數(shù)據(jù)處理模塊中LDPC 數(shù)據(jù)處理模塊迭代到信息bit后,實(shí)現(xiàn)BCH驗(yàn)證和BCH校正。
所述BCH狀態(tài)控制模塊,控制所述8個(gè)FEC數(shù)據(jù)處理模塊中BCH數(shù)據(jù) 處理模塊的運(yùn)算使能和BCH一SRAM存儲(chǔ)器控制使能,控制8個(gè)BCH數(shù)據(jù)處 理模塊同時(shí)進(jìn)行BCH驗(yàn)證處理或BCH校正處理,同時(shí)對(duì)SRAM存儲(chǔ)器進(jìn)行 讀寫。BCH狀態(tài)控制模塊,使用同一組控制邏輯,同時(shí)控制8個(gè)BCH數(shù)據(jù) 處理模塊,減少控制邏輯的冗余,降低設(shè)計(jì)復(fù)雜度。
FEC解碼包含LDPC解碼和BCH解碼兩部分。如圖6所示,本發(fā)明的
進(jìn)行向前糾錯(cuò)解碼的方法,包括如下步驟
步驟一、由輸入數(shù)據(jù)串并轉(zhuǎn)換模塊接收8個(gè)LDPC數(shù)據(jù)處理模塊所需 的連續(xù)32bit數(shù)據(jù)寬度的數(shù)據(jù)源,串并轉(zhuǎn)換成32x8bits寬度的數(shù)據(jù),每 32bits輸送給一個(gè)LDPC數(shù)據(jù)處理模塊,所述8個(gè)LDPC數(shù)據(jù)處理模塊皆 獲得數(shù)據(jù)。
步驟二、由LDPC狀態(tài)控制模塊控制8個(gè)LDPC數(shù)據(jù)處理模塊的運(yùn)算使 能,使LDPC數(shù)據(jù)處理模塊在同一時(shí)間對(duì)獲得的數(shù)據(jù)開始LDPC迭代,在 LDPC迭代過(guò)程中,在計(jì)算出節(jié)點(diǎn)列信息并進(jìn)行更新的時(shí)候,同時(shí)使用節(jié) 點(diǎn)的列信息計(jì)算出節(jié)點(diǎn)的行信息,并更新節(jié)點(diǎn)的行信息。
所述LDPC狀態(tài)控制模塊同時(shí)控制8個(gè)LDPC數(shù)據(jù)處理模塊的 LDPC—SRAM存儲(chǔ)器控制使能,實(shí)現(xiàn)同時(shí)控制8個(gè)并行的LDPC數(shù)據(jù)處理模 塊對(duì)共用的SRAM的讀寫。
結(jié)合圖3所示,在開始進(jìn)行第一次LDPC迭代及其迭代過(guò)程中,由輸入數(shù)據(jù)串并轉(zhuǎn)換模塊繼續(xù)向8個(gè)LDPC數(shù)據(jù)處理模塊輸送數(shù)據(jù),直至第一
次LDPC迭代結(jié)束。
步驟三、在LDPC迭代到信息bit后,BCH狀態(tài)控制模塊控制8個(gè)BCH 數(shù)據(jù)處理模塊的運(yùn)算使能,同時(shí)開始BCH驗(yàn)證處理或BCH校正處理;并且 BCH狀態(tài)控制模塊控制8個(gè)BCH數(shù)據(jù)處理模塊的BCH—SRAM存儲(chǔ)器控制使 能,實(shí)現(xiàn)同時(shí)控制8個(gè)并行的BCH數(shù)據(jù)處理模塊對(duì)共用的SRAM存儲(chǔ)器的 讀寫。
步驟四、如果通過(guò)BCH驗(yàn)證,則停止迭代,輸出數(shù)據(jù),如果沒有通過(guò) BCH驗(yàn)證,則繼續(xù)進(jìn)行下一次的LDPC迭代。
步驟五、在一次LDPC迭代運(yùn)算結(jié)束時(shí),如果所有的BCH數(shù)據(jù)處理模 塊都通過(guò)BCH驗(yàn)證,表明經(jīng)過(guò)本次迭代后,數(shù)據(jù)糾錯(cuò)全部完成,則迭代結(jié) 束,整個(gè)前向糾錯(cuò)解碼過(guò)程結(jié)束,否則,判斷迭代次數(shù)是否已經(jīng)等于硬件 允許的最大迭代次數(shù),如果小于,則轉(zhuǎn)至步驟二,進(jìn)行下一輪迭代;如果 等于,則繼續(xù)進(jìn)行BCH校正。
步驟六、在BCH校正過(guò)程中,如果發(fā)現(xiàn)任何一個(gè)BCH數(shù)據(jù)處理模塊的 錯(cuò)誤bit的位置,則所有BCH數(shù)據(jù)處理模塊的BCH校正停止,將其錯(cuò)誤 bit糾正,如果所有BCH數(shù)據(jù)處理模塊的錯(cuò)誤bit的位置都已找到,則校 正結(jié)束,整個(gè)前向糾錯(cuò)解碼結(jié)束;若沒有找到錯(cuò)誤bit的位置,則繼續(xù)校 正過(guò)程,直至BCH數(shù)據(jù)處理模塊找不到錯(cuò)誤bit的位置,整個(gè)前向糾錯(cuò)解 碼過(guò)程結(jié)束。所述的找不到錯(cuò)誤bit的位置,是指進(jìn)行BCH校正時(shí),檢測(cè) 出錯(cuò)誤的bit的位置大于762,超過(guò)一個(gè)BCH數(shù)據(jù)處理模塊的bit位數(shù)。 LDPC的迭代次數(shù)與幀間隔時(shí)間周期和LDPC校驗(yàn)矩陣的節(jié)點(diǎn)個(gè)數(shù)有關(guān)。在LDPC迭代過(guò)程中,需要對(duì)LDPC校驗(yàn)矩陣的每個(gè)節(jié)點(diǎn)分別進(jìn)行列信
息和行信息的更新。計(jì)算節(jié)點(diǎn)的列信息時(shí),需要從SRAM里讀出相應(yīng)行的
信息,通過(guò)行信息計(jì)算出列信息,再將列信息寫入對(duì)應(yīng)的SRAM中。即一
個(gè)節(jié)點(diǎn)的行更新需要2個(gè)時(shí)鐘周期。類似,節(jié)點(diǎn)的行信息的更新需要2
個(gè)時(shí)鐘周期。此時(shí)計(jì)算出最大可迭代次數(shù)為-
曰+化化*躲_ 幀間隔時(shí)間周期 ,i ,、
取力迭代次數(shù)-,c校驗(yàn)矩陣節(jié)點(diǎn)個(gè)數(shù)x 2 x 2(式1)
為了進(jìn)一步提高LDPC的迭代次數(shù),本發(fā)明將LDPC的行信息和列信息 的更新合并。在計(jì)算出節(jié)點(diǎn)的列信息的同時(shí),更新節(jié)點(diǎn)的行信息。從存儲(chǔ) 節(jié)點(diǎn)值的SRAM (LBQ—SRAM)里按列讀出每個(gè)節(jié)點(diǎn)值,同時(shí)把每一點(diǎn)所在 行的信息從行信息的SRAM (SP_SRAM)讀出來(lái),然后計(jì)算得到每個(gè)節(jié)點(diǎn)新 的值以及相應(yīng)的行信息,并分別寫回LBQ—SRAM和SP_SRAM。這樣在按列 處理每個(gè)節(jié)點(diǎn)的同時(shí)更新了行信息,不需要再按行處理每個(gè)節(jié)點(diǎn),節(jié)省了 一半時(shí)間,即一個(gè)節(jié)點(diǎn)在每次迭代過(guò)程中只花2個(gè)時(shí)鐘周期。這樣,最大 可迭代次數(shù)為
最大迭代次數(shù)=幀隱國(guó)_ (式2) 丄Z^C校驗(yàn)矩陣節(jié)點(diǎn)個(gè)數(shù)x2 Q瓦」)
可見LDPC的最大可迭代次數(shù)可提高一倍。
為了達(dá)到一定的性能指標(biāo),本發(fā)明采取并行處理的結(jié)構(gòu)。則LDPC最 大迭代次數(shù)變?yōu)?br> 最大迭微數(shù)=,,=,,^ ,x將處理的個(gè)數(shù)(式3)。 iX^C校驗(yàn)矩陣節(jié)點(diǎn)個(gè)數(shù)x 2 、
本發(fā)明的向前糾錯(cuò)解碼的硬件構(gòu)架,不僅提高FEC解碼性能,更降低
硬件復(fù)雜度,適用于所有需要LDPC解碼的系統(tǒng),尤其是DMB-T數(shù)字地面廣播的解調(diào)芯片<
權(quán)利要求
1、一種DMB-T解調(diào)芯片中前向糾錯(cuò)解碼的硬件構(gòu)架,其特征在于包括1個(gè)輸入數(shù)據(jù)串并轉(zhuǎn)換模塊,8個(gè)并行的FEC數(shù)據(jù)處理模塊,1個(gè)LDPC狀態(tài)控制模塊,1個(gè)BCH狀態(tài)控制模塊;其中,每個(gè)FEC數(shù)據(jù)處理模塊包括1個(gè)LDPC數(shù)據(jù)處理模塊和1個(gè)BCH數(shù)據(jù)處理模塊,在每個(gè)FEC數(shù)據(jù)處理模塊內(nèi),采用LDPC迭代、BCH驗(yàn)證、BCH校正,前向糾錯(cuò)數(shù)據(jù)輸出的流水線結(jié)構(gòu);所述輸入數(shù)據(jù)串并轉(zhuǎn)換模塊,用于接收輸入數(shù)據(jù),并將輸入的32bit的串行數(shù)據(jù)轉(zhuǎn)換成32x8bits數(shù)據(jù)寬度的并行數(shù)據(jù)流,每32bits數(shù)據(jù)輸送給一個(gè)LDPC數(shù)據(jù)處理模塊;所述LDPC數(shù)據(jù)處理模塊,用于實(shí)現(xiàn)LDPC解碼時(shí)的迭代運(yùn)算;所述LDPC狀態(tài)控制模塊,用于控制所述8個(gè)FEC數(shù)據(jù)處理模塊中LDPC數(shù)據(jù)處理模塊的運(yùn)算使能和LDPC_SRAM存儲(chǔ)器控制使能,控制8個(gè)LDPC數(shù)據(jù)處理模塊同時(shí)進(jìn)行LDPC迭代,同時(shí)對(duì)SRAM存儲(chǔ)器進(jìn)行讀寫;所述BCH數(shù)據(jù)處理模塊,用于在其所屬的FEC數(shù)據(jù)處理模塊中LDPC數(shù)據(jù)處理模塊迭代到信息bit后,實(shí)現(xiàn)BCH驗(yàn)證和BHC校正;所述BCH狀態(tài)控制模塊,控制所述8個(gè)FEC數(shù)據(jù)處理模塊中BCH數(shù)據(jù)處理模塊的運(yùn)算使能和BCH_SRAM存儲(chǔ)器控制使能,控制8個(gè)BCH數(shù)據(jù)處理模塊同時(shí)進(jìn)行BCH驗(yàn)證處理或BCH校正處理,同時(shí)對(duì)SRAM存儲(chǔ)器進(jìn)行讀寫。
2、 如權(quán)利要求1所述的DMB-T解調(diào)芯片中前向糾錯(cuò)解碼的硬件構(gòu)架, 其特征在于所述8個(gè)并行的FEC數(shù)據(jù)處理模塊共用SRAM存儲(chǔ)器,所述8個(gè)并行的FEC數(shù)據(jù)處理模塊在LDPC迭代時(shí)產(chǎn)生的同一類型的中間數(shù)據(jù), 即行信息和列信息存入對(duì)應(yīng)的SRAM存儲(chǔ)器的相同地址。
3、一種利用權(quán)利要求1-2所述的硬件構(gòu)架進(jìn)行向前糾錯(cuò)解碼的方法, 其特征在于包括如下步驟步驟一、由輸入數(shù)據(jù)串并轉(zhuǎn)換模塊接收8個(gè)LDPC數(shù)據(jù)處理模塊所需 的連續(xù)32bit數(shù)據(jù)寬度的數(shù)據(jù)源,串并轉(zhuǎn)換成32x8bits寬度的數(shù)據(jù),每 32bits輸送給一個(gè)LDPC數(shù)據(jù)處理模塊,所述8個(gè)LDPC數(shù)據(jù)處理模塊皆 獲得數(shù)據(jù);步驟二、由LDPC狀態(tài)控制模塊控制8個(gè)LDPC數(shù)據(jù)處理模塊的運(yùn)算使 能,使LDPC數(shù)據(jù)處理模塊在同一時(shí)間對(duì)獲得的數(shù)據(jù)開始LDPC迭代,在 LDPC迭代過(guò)程中,在計(jì)算出節(jié)點(diǎn)列信息并進(jìn)行更新的時(shí)候,同時(shí)使用節(jié) 點(diǎn)的列信息計(jì)算出節(jié)點(diǎn)的行信息并更新節(jié)點(diǎn)的行信息;所述LDPC狀態(tài)控制模塊同時(shí)控制8個(gè)LDPC數(shù)據(jù)處理模塊的 LDPC一SRAM存儲(chǔ)器控制使能,實(shí)現(xiàn)同時(shí)控制8個(gè)并行的LDPC數(shù)據(jù)處理模 塊對(duì)共用的SRAM的讀寫;在開始進(jìn)行第一次LDPC迭代及其迭代過(guò)程中,由輸入數(shù)據(jù)串并轉(zhuǎn)換 模塊繼續(xù)向8個(gè)LDPC數(shù)據(jù)處理模塊輸送數(shù)據(jù),直至第一次LDPC迭代結(jié)束;步驟三、在LDPC迭代到信息bit后,BCH狀態(tài)控制模塊控制8個(gè)BCH 數(shù)據(jù)處理模塊的運(yùn)算使能,同時(shí)開始BCH驗(yàn)證處理和BCH校正處理;并且 BCH狀態(tài)控制模塊控制8個(gè)BCH數(shù)據(jù)處理模塊的BCH_SRAM存儲(chǔ)器控制使 能,實(shí)現(xiàn)同時(shí)控制8個(gè)并行的BCH數(shù)據(jù)處理模塊對(duì)共用的SRAM存儲(chǔ)器的 讀寫;步驟四、如果通過(guò)BCH驗(yàn)證,則停止迭代,輸出數(shù)據(jù),如果沒有通過(guò) BCH驗(yàn)證,則繼續(xù)進(jìn)行下一次的LDPC迭代;步驟五、在一次LDPC迭代結(jié)束時(shí),如果所有的BCH數(shù)據(jù)處理模塊都 通過(guò)BCH驗(yàn)證,表明經(jīng)過(guò)本次迭代后,數(shù)據(jù)糾錯(cuò)全部完成,則迭代結(jié)束, 整個(gè)前向糾錯(cuò)解碼過(guò)程結(jié)束,否則,判斷迭代次數(shù)是否已經(jīng)等于硬件允許 的最大迭代次數(shù),如果小于,則轉(zhuǎn)至步驟二,進(jìn)行下一輪迭代;如果等于, 則繼續(xù)進(jìn)行BCH校正;步驟六、在BCH校正過(guò)程中,如果發(fā)現(xiàn)任何一個(gè)BCH數(shù)據(jù)處理模塊的 錯(cuò)誤bit的位置,則所有BCH數(shù)據(jù)處理模塊的BCH校正停止,將其錯(cuò)誤 bit糾正,如果所有BCH數(shù)據(jù)處理模塊的錯(cuò)誤bit的位置都已找到,則校 正結(jié)束,整個(gè)前向糾錯(cuò)解碼結(jié)束;若沒有找到錯(cuò)誤bit的位置,則繼續(xù)校 正過(guò)程,直至BCH數(shù)據(jù)處理模塊找不到錯(cuò)誤bit的位置,整個(gè)前向糾錯(cuò)解 碼過(guò)程結(jié)束。
4、根據(jù)權(quán)利要求3所述的方法,其特征在于步驟四所述的找不到 錯(cuò)誤bit的位置,是指進(jìn)行BCH校正時(shí),檢測(cè)出錯(cuò)誤的bit的位置大于 762,超過(guò)一個(gè)BCH數(shù)據(jù)處理模塊的bit位數(shù)。
全文摘要
本發(fā)明公開了一種DMB-T解調(diào)芯片中前向糾錯(cuò)解碼的硬件構(gòu)架及解碼方法。硬件構(gòu)架包括8個(gè)并行的FEC數(shù)據(jù)處理模塊,每個(gè)FEC數(shù)據(jù)處理模塊包括1個(gè)LDPC數(shù)據(jù)處理模塊和1個(gè)BCH數(shù)據(jù)處理模塊;輸入數(shù)據(jù)串并轉(zhuǎn)換模塊用于接收輸入數(shù)據(jù);LDPC數(shù)據(jù)處理模塊用于實(shí)現(xiàn)LDPC解碼時(shí)的迭代運(yùn)算;LDPC狀態(tài)控制模塊用于控制LDPC數(shù)據(jù)處理模塊的運(yùn)算使能和LDPC_SRAM存儲(chǔ)器控制使能;BCH數(shù)據(jù)處理模塊用于實(shí)現(xiàn)BCH驗(yàn)證和BCH校正;BCH狀態(tài)控制模塊控制BCH數(shù)據(jù)處理模塊的運(yùn)算使能和BCH SRAM存儲(chǔ)器控制使能。本發(fā)明能夠有效降低前向糾錯(cuò)解碼的硬件實(shí)現(xiàn)的復(fù)雜度,并提高前向糾錯(cuò)性能。適用于所有需要LDPC解碼的系統(tǒng),尤其是DMB-T數(shù)字地面廣播的解調(diào)芯片。
文檔編號(hào)H04N7/64GK101442677SQ20071009427
公開日2009年5月27日 申請(qǐng)日期2007年11月23日 優(yōu)先權(quán)日2007年11月23日
發(fā)明者奚肇卿, 潘國(guó)振, 晶 王 申請(qǐng)人:卓勝微電子(上海)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1