專(zhuān)利名稱(chēng):基于流水線工作方式的ldpc碼譯碼器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子技術(shù)領(lǐng)域,尤其涉及通信數(shù)據(jù)傳輸與數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,具體是一種LDPC碼譯碼器結(jié)構(gòu)。
背景技術(shù):
在VLSI設(shè)計(jì)中,資源和速度總是一對(duì)不可調(diào)和的矛盾。結(jié)構(gòu)設(shè)計(jì)工作主要是解決資源和速度的平衡問(wèn)題。對(duì)于LDPC碼的譯碼器,需要平衡的不僅僅是資源和速度,還包括誤碼率性能。也就是說(shuō)LDPC碼譯碼器的設(shè)計(jì),需要從整體上對(duì)資源、速度和誤碼率性能做一個(gè)平衡。
其中誤碼率性能主要是由兩方面決定的,首先就是譯碼器采用的譯碼算法,例如采用MIN-SUM算法肯定會(huì)帶來(lái)較BP算法更多的性能損失,但在很多情況下需要通過(guò)犧牲一部分性能來(lái)?yè)Q取對(duì)資源占用的降低。其次就是譯碼器采用的數(shù)據(jù)格式,我們知道在計(jì)算機(jī)仿真中數(shù)據(jù)采用的是單精度或者雙精度的浮點(diǎn)數(shù),而實(shí)際的硬件實(shí)現(xiàn)中,必須通過(guò)一定長(zhǎng)度的二進(jìn)制數(shù)來(lái)近似的表示浮點(diǎn)數(shù),采用的二進(jìn)制數(shù)越長(zhǎng),其精度越好,對(duì)應(yīng)的LDPC碼譯碼器的實(shí)際性能就能越靠近軟件仿真性能,在某些對(duì)性能要求極度苛刻的情況下還可以考慮采用IEEE754標(biāo)準(zhǔn)來(lái)設(shè)計(jì)VLSI中的數(shù)據(jù)格式。誤碼率性能的設(shè)計(jì)在一定程度上可以看作是校驗(yàn)點(diǎn)計(jì)算模塊和變量點(diǎn)計(jì)算模塊內(nèi)部結(jié)構(gòu)的設(shè)計(jì)。
在設(shè)計(jì)譯碼器整體結(jié)構(gòu)之前需要明確,對(duì)于LDPC碼的譯碼器,誤碼率性能主要由譯碼算法決定;而速度與資源的占用主要由譯碼器的結(jié)構(gòu)決定。無(wú)論從哪種LDPC碼譯碼算法來(lái)看,LDPC碼的譯碼過(guò)程主要包括信道信息初始化,校驗(yàn)點(diǎn)計(jì)算,變量點(diǎn)計(jì)算,硬判決和輸出結(jié)果判斷。在按照LDPC碼譯碼過(guò)程的基礎(chǔ)上發(fā)展出了LDPC碼的完全串行譯碼結(jié)構(gòu),完全串行譯碼結(jié)構(gòu)的主要特點(diǎn)在于只有1個(gè)校驗(yàn)點(diǎn)計(jì)算單元(CNU)和1個(gè)變量點(diǎn)計(jì)算單元(VNU),二者之間通過(guò)RAM陣列將所有的計(jì)算結(jié)果緩存起來(lái),該譯碼器結(jié)構(gòu)簡(jiǎn)單,但計(jì)算速度慢。
完全并行譯碼結(jié)構(gòu)主要特點(diǎn)是含有m個(gè)校驗(yàn)點(diǎn)計(jì)算單元和n個(gè)變量點(diǎn)計(jì)算單元,基本上不需要對(duì)迭代計(jì)算過(guò)程中的數(shù)據(jù)進(jìn)行存儲(chǔ)。其主要優(yōu)點(diǎn)在于具有極高的計(jì)算速度,而其主要缺點(diǎn)是由于計(jì)算模塊數(shù)目過(guò)多,將占用過(guò)多的資源。其次由于連線數(shù)目的龐大,當(dāng)幀長(zhǎng)較長(zhǎng)的時(shí)候,由于需要連接的數(shù)據(jù)線過(guò)多,基本上會(huì)導(dǎo)致布線無(wú)法通過(guò)。例如本課題組曾經(jīng)完成的n=20的LDPC碼完全并行譯碼器,在Xilinx Virtex2 3000上布局布線后占用了5334個(gè)Slices,占全部Slices(14336個(gè))的37%。同比計(jì)算,當(dāng)n=1000時(shí),采用完全并行譯碼結(jié)構(gòu)的LDPC碼譯碼器將占用超過(guò)250,000個(gè)Slices,這是任何一款FPGA所無(wú)法接受的,而DVB-S2幀長(zhǎng)達(dá)到6萬(wàn)。
目前LDPC碼譯碼器最為常用為部分并行譯碼結(jié)構(gòu)。如圖1所示,部分并行譯碼結(jié)構(gòu)在于校驗(yàn)點(diǎn)計(jì)算模塊與變量點(diǎn)計(jì)算模塊之間通過(guò)了雙口RAM陣列進(jìn)行了數(shù)據(jù)緩存;并且需要的CNU和VNU數(shù)目分別是校驗(yàn)點(diǎn)和變量點(diǎn)數(shù)目的1/f,折疊系數(shù)f是介于[2,M-1]之間的一個(gè)正整數(shù),反映的是復(fù)用的程度。每個(gè)CNU計(jì)算后的信息存入雙口RAM陣列,要等一側(cè)的計(jì)算單元(例如CNU)計(jì)算完全結(jié)束后,另一側(cè)的計(jì)算單元(例如VNU)才可以根據(jù)更新后的信息進(jìn)行計(jì)算。采用這種譯碼結(jié)構(gòu),可以將資源的消耗降低至原來(lái)的1/f,其缺點(diǎn)在于譯碼速度也將降低為原來(lái)的1/f,同時(shí)需要一定數(shù)目的雙口RAM。
但是,部分并行譯碼結(jié)構(gòu)僅對(duì)特定的矩陣是現(xiàn)實(shí)的,而這種矩陣的性能表現(xiàn)往往不是相當(dāng)好。其次,即使經(jīng)過(guò)特定約束的矩陣,在校驗(yàn)點(diǎn)與變量點(diǎn)的信息傳遞過(guò)程中,沖突所引起的阻塞是不可避免的。現(xiàn)有部分并行譯碼結(jié)構(gòu),只能通過(guò)增加存儲(chǔ)空間以大量的資源消耗為代價(jià)或停止譯碼進(jìn)行數(shù)據(jù)沖突解決,而不能從根本上解決數(shù)據(jù)沖突的問(wèn)題。事實(shí)上,通過(guò)分析矩陣結(jié)構(gòu),我們發(fā)現(xiàn)如果能夠合理的進(jìn)行時(shí)序規(guī)劃,并輔之以適量的存儲(chǔ)空間,在譯碼過(guò)程中可以避免發(fā)生數(shù)據(jù)沖突。
發(fā)明內(nèi)容
為了克服現(xiàn)有LDPC碼譯碼器結(jié)構(gòu)存在的上述缺陷,本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種LDPC碼譯碼器,通過(guò)合理的時(shí)序規(guī)劃,輔之以適量的存儲(chǔ)空間,在譯碼過(guò)程中避免發(fā)生數(shù)據(jù)沖突。
本發(fā)明的技術(shù)方案是設(shè)計(jì)了一種采用流水工作方式計(jì)算變量點(diǎn)與校驗(yàn)點(diǎn)信息的LDPC碼譯碼器。該譯碼器包括兩個(gè)組成部分,一部分由變量點(diǎn)計(jì)算單元VNU與校驗(yàn)點(diǎn)計(jì)算單元CNU構(gòu)成用于以流水線工作方式計(jì)算變量點(diǎn)與校驗(yàn)點(diǎn)信息;另一部分由RAM陣列構(gòu)成,用于存儲(chǔ)本次迭代與上一次迭代生成的信息。
譯碼器包括一個(gè)校驗(yàn)點(diǎn)計(jì)算單元CNU、一系列變量點(diǎn)計(jì)算單元VNU以及一系列雙口RAM陣列,每個(gè)變量點(diǎn)計(jì)算單元分別級(jí)聯(lián)雙口RAM陣列,VNU的輸出端連接CNU的輸入端,為CNU提供計(jì)算所需要的變量點(diǎn)信息,CNU計(jì)算的結(jié)果由一系列雙口RAM陣列進(jìn)行數(shù)據(jù)緩存,變量點(diǎn)計(jì)算單元VNU的數(shù)量和雙口RAM陣列的數(shù)量由校驗(yàn)點(diǎn)的度dc確定,每個(gè)雙口RAM陣列由一系列物理上獨(dú)立的雙口RAM組成,其數(shù)量由變量點(diǎn)的度dv確定,雙口RAM陣列分成兩部分,前一部分存儲(chǔ)當(dāng)前迭代所需信息,后一部分存儲(chǔ)下一次迭代所需信息(即當(dāng)前CNU生成的信息)。
雙口RAM陣列分別與對(duì)應(yīng)的VNU級(jí)聯(lián),VNU為CNU的計(jì)算提供所需要的變量點(diǎn)信息,為了使CNU實(shí)現(xiàn)流水線方式無(wú)阻塞計(jì)算,共使用了dc個(gè)VNU,使得CNU可以同時(shí)得到計(jì)算所需要的變量點(diǎn)信息,從而保證CNU實(shí)現(xiàn)流水式無(wú)阻塞計(jì)算,從整體上看,CNU和VNU之間構(gòu)成了流水線工作模式。
由于VNU與CNU在本譯碼器結(jié)構(gòu)中的地位是對(duì)等的,譯碼器也可采用擁有dv個(gè)CNU和1個(gè)VNU的結(jié)構(gòu)。該譯碼器包括一系列校驗(yàn)點(diǎn)計(jì)算單元分別級(jí)聯(lián)對(duì)應(yīng)的雙口RAM陣列,CNU的輸出端連接VNU的輸入端,VNU的輸出由雙口RAM陣列進(jìn)行數(shù)據(jù)緩存,由變量點(diǎn)的度確定CNU的數(shù)量及雙口RAM陣列的數(shù)量,每個(gè)雙口RAM陣列由一系列獨(dú)立的雙口RAM組成,其數(shù)量由校驗(yàn)點(diǎn)的度確定。
從整體上看,CNU和VNU之間構(gòu)成了流水線工作模式。對(duì)當(dāng)前迭代,校驗(yàn)點(diǎn)生成的信息回存雙口RAM,以便進(jìn)行下一次迭代,由于這是一個(gè)一對(duì)多的回存過(guò)程,也就成功地解決了部分并行譯碼結(jié)構(gòu)面臨的嚴(yán)重?cái)?shù)據(jù)沖突問(wèn)題。可選擇地,為了提高數(shù)據(jù)吞吐率,在高數(shù)據(jù)吞吐領(lǐng)域,可以采用多個(gè)譯碼器單元同時(shí)工作。根據(jù)CNU和VNU占用資源的情況確定具體采用哪種譯碼器結(jié)構(gòu)。
通過(guò)增加變量點(diǎn)計(jì)算次數(shù)及存儲(chǔ)量開(kāi)銷(xiāo),該結(jié)構(gòu)的工作速度至少是串行譯碼結(jié)構(gòu)的dc倍,并有效解決了LDPC碼矩陣隨機(jī)性所帶來(lái)的迭代信息實(shí)際硬件實(shí)現(xiàn)的沖突問(wèn)題。同時(shí),由于僅需一個(gè)CNU、多個(gè)VNU或一個(gè)VNU、多個(gè)CNU,在CNU與VNU資源占用相差較大,如多進(jìn)制LDPC碼領(lǐng)域,有極高的應(yīng)用價(jià)值。
圖1示出了部分并行譯碼器結(jié)構(gòu)圖2示出了擁有1個(gè)CNU和dc個(gè)VNU的采用流水工作方式的譯碼器結(jié)構(gòu)具體實(shí)施方式
下面針對(duì)附圖和具體實(shí)施例對(duì)本發(fā)明的實(shí)施作具體說(shuō)明。
假設(shè)校驗(yàn)點(diǎn)的度為dc,變量點(diǎn)的度為dv,校驗(yàn)點(diǎn)計(jì)算單元用CNU表示,變量點(diǎn)計(jì)算單元用VNU表示。如圖2所示為擁有1個(gè)CNU和dc個(gè)VNU的采用流水工作方式的譯碼器結(jié)構(gòu)。每個(gè)VNU級(jí)聯(lián)一個(gè)雙口RAM陣列,VNU的輸出端連接CNU的輸入端,CNU計(jì)算的結(jié)果通過(guò)dc個(gè)雙口RAM陣列進(jìn)行數(shù)據(jù)緩存,而每個(gè)雙口RAM陣列都是由dv個(gè)物理上獨(dú)立的雙口RAM組成。每個(gè)雙口RAM分成兩部分,前一部分存儲(chǔ)當(dāng)前迭代所需的上一次迭代CNU生成的校驗(yàn)點(diǎn)信息,后一部分存儲(chǔ)下一次迭代所需的當(dāng)前迭代CNU生成的校驗(yàn)點(diǎn)信息。
為了使CNU實(shí)現(xiàn)流水式無(wú)阻塞計(jì)算,由校驗(yàn)點(diǎn)的度dc確定所需VNU的數(shù)量,本譯碼器共使用了dc個(gè)VNU,VNU為CNU的計(jì)算提供所需要的變量點(diǎn)信息,使得CNU計(jì)算所需要的變量點(diǎn)信息可以同時(shí)得到,從而保證CNU的流水式無(wú)阻塞計(jì)算。從整體上看,CNU和VNU之間構(gòu)成了流水線工作模式。
由于每個(gè)校驗(yàn)點(diǎn)最多與dc個(gè)變量點(diǎn)關(guān)聯(lián),為了保證CNU完成流水式無(wú)阻塞計(jì)算,在需要進(jìn)行更新計(jì)算時(shí),保證每一個(gè)校驗(yàn)點(diǎn)相關(guān)聯(lián)的dc個(gè)變量點(diǎn)信息都已經(jīng)得到更新,這樣就應(yīng)當(dāng)有dc個(gè)VNU同時(shí)計(jì)算,并將計(jì)算完的結(jié)果即時(shí)的傳遞給CNU。如果我們按校驗(yàn)點(diǎn)在矩陣中的先后順序依次在CNU中計(jì)算,則應(yīng)當(dāng)也按校驗(yàn)點(diǎn)與變量點(diǎn)中的對(duì)應(yīng)關(guān)系依序在VNU中計(jì)算變量點(diǎn)信息。
因?yàn)槊總€(gè)變量點(diǎn)最多可能關(guān)聯(lián)dv個(gè)校驗(yàn)點(diǎn),因此,每個(gè)雙口RAM陣列由dv個(gè)物理上獨(dú)立的雙口RAM組成,我們預(yù)先將完成一次迭代變量點(diǎn)計(jì)算所需的校驗(yàn)點(diǎn)信息分別存入雙口RAM,以此來(lái)保證VNU計(jì)算過(guò)程的無(wú)阻塞。
對(duì)當(dāng)前迭代,校驗(yàn)點(diǎn)生成的信息回存雙口RAM,以便進(jìn)行下一次迭代,由于這是一個(gè)一對(duì)多的回存過(guò)程,也就成功地解決了部分并行結(jié)構(gòu)的譯碼器結(jié)構(gòu)面臨的嚴(yán)重?cái)?shù)據(jù)沖突問(wèn)題。在每一次迭代完成后,切換一次雙口RAM。
由于VNU與CNU在本譯碼器結(jié)構(gòu)中的地位是對(duì)等的,譯碼器也可采用擁有dv個(gè)CNU和1個(gè)VNU的結(jié)構(gòu)。該譯碼器包括一個(gè)變量點(diǎn)計(jì)算單元VNU、一系列校驗(yàn)點(diǎn)計(jì)算單元CNU、以及一系列雙口RAM陣列,一系列校驗(yàn)點(diǎn)計(jì)算單元分別級(jí)聯(lián)對(duì)應(yīng)的雙口RAM陣列,CNU的輸出端連接VNU的輸入端,VNU的輸出由雙口RAM陣列進(jìn)行數(shù)據(jù)緩存,由變量點(diǎn)的度確定CNU的數(shù)量及雙口RAM陣列的數(shù)量,每個(gè)雙口RAM陣列由一系列獨(dú)立的雙口RAM組成,其數(shù)量由校驗(yàn)點(diǎn)的度確定。VNU計(jì)算的結(jié)果通過(guò)dv(變量點(diǎn)的度)個(gè)雙口RAM陣列進(jìn)行數(shù)據(jù)緩存,而每個(gè)雙口RAM陣列都是由dc個(gè)物理上獨(dú)立的雙口RAM組成,每個(gè)雙口RAM分成兩部分,前一部分存儲(chǔ)當(dāng)前迭代所需信息,后一部分存儲(chǔ)下一次迭代所需信息(即當(dāng)前VNU生成的信息)。該結(jié)構(gòu)重點(diǎn)放到了VNU上,CNU為VNU的計(jì)算提供所需要的變量點(diǎn)信息,為了使VNU實(shí)現(xiàn)流水式無(wú)阻塞計(jì)算,共使用了dv個(gè)CNU,使得VNU計(jì)算所需要的校驗(yàn)點(diǎn)信息可以同時(shí)得到,從而保證VNU的流水式無(wú)阻塞計(jì)算。從整體上看,CNU和VNU之間構(gòu)成了流水線工作模式。對(duì)當(dāng)前迭代,變量點(diǎn)生成的信息存入雙口RAM,以便進(jìn)行下一次迭代。
接下來(lái)以具體的二進(jìn)制LDPC碼為例對(duì)實(shí)現(xiàn)本發(fā)明譯碼器的構(gòu)造作具體說(shuō)明。二進(jìn)制LDPC碼的矩陣為10*20的矩陣H,其中,矩陣H的行表示變量點(diǎn),列表示校驗(yàn)點(diǎn)。
H=00100100100101000100000011100000001100000100001101000100000110010000100100000010000011000010100000011000000001100001101000101000010100100100010100011000000100011100001000000000110000110000000011001000]]>矩陣中相應(yīng)行中1的個(gè)數(shù)即為對(duì)應(yīng)的變量點(diǎn)關(guān)聯(lián)的校驗(yàn)點(diǎn)個(gè)數(shù),相應(yīng)列中1的個(gè)數(shù)即為對(duì)應(yīng)的校驗(yàn)點(diǎn)關(guān)聯(lián)的變量點(diǎn)個(gè)數(shù)。校驗(yàn)點(diǎn)最多關(guān)聯(lián)的變量點(diǎn)數(shù)為校驗(yàn)點(diǎn)的度,變量點(diǎn)最多關(guān)聯(lián)的校驗(yàn)點(diǎn)數(shù)為變量點(diǎn)的度。
觀察矩陣H可知,每個(gè)校驗(yàn)點(diǎn)最多關(guān)聯(lián)6個(gè)變量點(diǎn),而每個(gè)變量點(diǎn)最多關(guān)聯(lián)3個(gè)校驗(yàn)點(diǎn)。即校驗(yàn)點(diǎn)的最大度dc=6,變量點(diǎn)的最大度dv=3??梢栽谧g碼器結(jié)構(gòu)設(shè)計(jì)中使用一個(gè)CNU,六個(gè)VNU,(或者使用一個(gè)VNU,三個(gè)CNU),校驗(yàn)點(diǎn)按先后順序分別在CNU中計(jì)算。
為了計(jì)算第1個(gè)校驗(yàn)點(diǎn),必須有3、6、9、12、14、18六個(gè)變量點(diǎn)信息;為了計(jì)算第2個(gè)校驗(yàn)點(diǎn),必須有5、6、7、15、16六個(gè)變量點(diǎn)信息;為了計(jì)算第3個(gè)校驗(yàn)點(diǎn),必須有2、7、8、10、14、20六個(gè)變量點(diǎn)信息;為了計(jì)算第4個(gè)校驗(yàn)點(diǎn),必須有1、4、9、12、19六個(gè)變量點(diǎn)信息;為了計(jì)算第5個(gè)校驗(yàn)點(diǎn),必須有5、6、11、13、20六個(gè)變量點(diǎn)信息;為了計(jì)算第6個(gè)校驗(yàn)點(diǎn),必須有1、10、11、16、17、19六個(gè)變量點(diǎn)信息;為了計(jì)算第7個(gè)校驗(yàn)點(diǎn),必須有3、5、10、12、15、18六個(gè)變量點(diǎn)信息;為了計(jì)算第8個(gè)校驗(yàn)點(diǎn),必須有2、4、8、9、16、20六個(gè)變量點(diǎn)信息;為了計(jì)算第9個(gè)校驗(yàn)點(diǎn),必須有1、2、7、17、18六個(gè)變量點(diǎn)信息;為了計(jì)算第10個(gè)校驗(yàn)點(diǎn),必須有3、4、13、14、17六個(gè)變量點(diǎn)信息;
在第1個(gè)VNU中按順序計(jì)算3、5、2、1、5、1、3、2、1、3變量點(diǎn)信息;在第2個(gè)VNU中按順序計(jì)算6、6、7、4、6、10、5、4、2、4變量點(diǎn)信息;在第3個(gè)VNU中按順序計(jì)算9、7、8、9、11、11、10、8、7、13變量點(diǎn)信息;在第4個(gè)VNU中按順序計(jì)算12、15、10、12、13、16、12、9、17、14變量點(diǎn)信息;在第5個(gè)VNU中按順序計(jì)算14、16、14、19、20、17、15、16、18、17變量點(diǎn)信息;在第6個(gè)VNU中按順序計(jì)算18、*、20、*、*、19、18、20、*、*變量點(diǎn)信息;(*表示補(bǔ)充的信息,由實(shí)際算法決定。)對(duì)第1個(gè)VNU為計(jì)算相應(yīng)的變量點(diǎn)信息需相應(yīng)的上一次迭代校驗(yàn)點(diǎn)信息{3,5,2,1,5,1,3,2,1,3}{{7,10}{2,5}{3,8,9}{4,6,9}{2,5}{4,6,9}{7,10}{3,8,9}{4,6,9}{1,10}}從雙口RAM的前一部分存儲(chǔ)器中獲取上一次迭代校驗(yàn)點(diǎn)生成的信息,當(dāng)前迭代CNU生成的用于下一次迭代的校驗(yàn)點(diǎn)信息存儲(chǔ)在雙口RAM后一部分存儲(chǔ)器的同一位置。每開(kāi)始一次迭代,切換一次存儲(chǔ)器。
上述以一個(gè)具體的H矩陣為例說(shuō)明了本LDPC碼譯碼器的實(shí)現(xiàn)方式。顯然,這樣的一種實(shí)現(xiàn)方式對(duì)于任何的H矩陣都是可行的。通過(guò)合理的時(shí)序劃分,在同等的資源占用下,能夠獲取較其余譯碼器實(shí)現(xiàn)方式更為優(yōu)秀的性能。由于在譯碼器結(jié)構(gòu)設(shè)計(jì)中VNU與CNU數(shù)量的不對(duì)稱(chēng),在VNU較CNU占用更多資源時(shí)使用只有一個(gè)VNU的結(jié)構(gòu),或在CNU較VNU占用更多資源時(shí)使用只有一個(gè)CNU的結(jié)構(gòu),相較其余譯碼器結(jié)構(gòu)具有更高的應(yīng)用價(jià)值。由于采用存儲(chǔ)器陣列傳遞信息對(duì)校驗(yàn)矩陣的具體形式不敏感,該譯碼器結(jié)構(gòu)適用于任何類(lèi)型的矩陣。
如采用4進(jìn)制LDPC碼,根據(jù)計(jì)算,CNU占用資源是VNU的18倍。資源占用情況如下表所示
由于CNU資源占用是VNU的18倍,考慮只使用一個(gè)CNU的譯碼器結(jié)構(gòu),可以達(dá)到節(jié)約資源的目的,通過(guò)實(shí)驗(yàn)驗(yàn)證,基于部分并行結(jié)構(gòu)譯碼器工作速度較低,遠(yuǎn)不能達(dá)到要求。而采用基于流水工作方式的譯碼器結(jié)構(gòu),在同樣的FPGA上,僅使用70%的資源就已達(dá)到我們所希望的工作速度。在200MHz的時(shí)鐘下,如果最大迭代次數(shù)為20,則最低譯碼速度為34.96Mbps。譯碼器最終資源占用情況如下表所示
上述具體實(shí)例僅是對(duì)本發(fā)明實(shí)現(xiàn)方式的一個(gè)舉例,并不能作為限定本發(fā)明保護(hù)范圍,本領(lǐng)域的技術(shù)人員應(yīng)該清楚,具體實(shí)現(xiàn)中還可以作一些細(xì)節(jié)性調(diào)整,以?xún)?yōu)化譯碼器。但這些調(diào)整是具體實(shí)現(xiàn)中必然做出的,其仍然以本發(fā)明的核心思想流水工作方式為依托,因此,本發(fā)明的保護(hù)范圍以權(quán)利要求為準(zhǔn)。
權(quán)利要求
1.一種基于流水線工作方式的LDPC碼譯碼器,包括,一個(gè)校驗(yàn)點(diǎn)計(jì)算單元CNU,一系列變量點(diǎn)計(jì)算單元VNU以及一系列雙口RAM陣列,其特征在于,一系列變量點(diǎn)計(jì)算單元分別級(jí)聯(lián)雙口RAM陣列,VNU的輸出端均連接CNU的輸入端, CNU的輸出連接雙口RAM陣列輸入端,由雙口RAM陣列對(duì)CNU的輸出進(jìn)行數(shù)據(jù)緩存,由校驗(yàn)點(diǎn)的度確定VNU的數(shù)量及雙口RAM陣列的數(shù)量,每個(gè)雙口RAM陣列由一系列獨(dú)立的雙口RAM組成,其數(shù)量由變量點(diǎn)的度確定。
2.根據(jù)權(quán)利要求1所述的LDPC碼譯碼器,其特征在于,每個(gè)雙口RAM陣列分成兩部分,前一部分存儲(chǔ)當(dāng)前迭代所需信息,后一部分存儲(chǔ)當(dāng)前CNU生成的信息。
3.根據(jù)權(quán)利要求1或2所述的LDPC碼譯碼器,其特征在于,所述LDPC碼中矩陣的行表示變量點(diǎn),列表示校驗(yàn)點(diǎn)。
4.根據(jù)權(quán)利要求3所述的LDPC碼譯碼器,其特征在于,所述校驗(yàn)點(diǎn)的度為校驗(yàn)點(diǎn)最多關(guān)聯(lián)的變量點(diǎn)數(shù),變量點(diǎn)的度為變量點(diǎn)最多關(guān)聯(lián)的校驗(yàn)點(diǎn)數(shù),其數(shù)量由矩陣中相應(yīng)行或列中非零元素的個(gè)數(shù)確定。
5.一種基于流水線工作方式的LDPC碼譯碼器,包括,一個(gè)變量點(diǎn)計(jì)算單元VNU、一系列校驗(yàn)點(diǎn)計(jì)算單元CNU、以及一系列雙口RAM陣列,其特征在于,一系列校驗(yàn)點(diǎn)計(jì)算單元分別級(jí)聯(lián)對(duì)應(yīng)的雙口RAM陣列,CNU的輸出端均連接VNU的輸入端,VNU的輸出端連接雙口RAM陣列輸入端,由雙口RAM陣列對(duì)VNU的輸出信息進(jìn)行數(shù)據(jù)緩存,由變量點(diǎn)的度確定CNU的數(shù)量及雙口RAM陣列的數(shù)量,每個(gè)雙口RAM陣列由一系列獨(dú)立的雙口RAM組成,其數(shù)量由校驗(yàn)點(diǎn)的度確定。
6.根據(jù)權(quán)利要求5所述的LDPC碼譯碼器,其特征在于,每個(gè)雙口RAM陣列分成兩部分,前一部分存儲(chǔ)當(dāng)前迭代所需信息,后一部分存儲(chǔ)當(dāng)前VNU生成的信息。
7.根據(jù)權(quán)利要求5或6所述的LDPC碼譯碼器,其特征在于,LDPC碼中矩陣的行表示變量點(diǎn),列表示校驗(yàn)點(diǎn)。
8.根據(jù)權(quán)利要求7所述的LDPC碼譯碼器,其特征在于,由矩陣中相應(yīng)行或列中非零元素的個(gè)數(shù)確定校驗(yàn)點(diǎn)的度或變量點(diǎn)的度。
全文摘要
本發(fā)明請(qǐng)求保護(hù)一種基于流水線工作方式的LDPC譯碼器,涉及電子技術(shù)領(lǐng)域,采用流水線工作方式的設(shè)計(jì)思想,通過(guò)適量的增加計(jì)算量和RAM存儲(chǔ)量,以保證VNU與CNU之間的工作。VNU為CNU提供計(jì)算所需要的變量點(diǎn)信息,CNU的輸出由一系列雙口RAM陣列進(jìn)行數(shù)據(jù)緩存,每個(gè)雙口RAM陣列的前一部分存儲(chǔ)當(dāng)前迭代所需信息,后一部分存儲(chǔ)下一次迭代所需信息,在一次迭代的時(shí)序內(nèi),有足夠的時(shí)間解決沖突,不會(huì)發(fā)生阻塞。本發(fā)明在耗費(fèi)少量的資源代價(jià)下,有效提升譯碼器速度,該譯碼器結(jié)構(gòu)適用于任何類(lèi)型的矩陣。
文檔編號(hào)H03M13/00GK101093999SQ20071009247
公開(kāi)日2007年12月26日 申請(qǐng)日期2007年7月24日 優(yōu)先權(quán)日2007年7月24日
發(fā)明者王琳, 謝東福, 徐位凱, 范雷, 張建文 申請(qǐng)人:廈門(mén)大學(xué)