專利名稱:Turbo碼交織器及交織地址傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域數(shù)據(jù)處理技術(shù),尤其涉及Turbo碼交織器及交織地址 傳輸方法。
背景技術(shù):
Turbo碼因?yàn)槭纸咏戕r(nóng)公式的誤碼率(BER)極限,在移動通信技術(shù) 中得到了廣泛的應(yīng)用。在采用Turbo碼的信道編(解)碼過程中,在編碼和解 碼前,對數(shù)據(jù)進(jìn)行非一致性交織,使碼字的權(quán)重得到重新分布,可以使碼字的 偽隨機(jī)性改善,從而提高系統(tǒng)抗突發(fā)錯誤的能力,有效提高系統(tǒng)性能?,F(xiàn)有的一種交織器實(shí)現(xiàn)方案中,采用先計算交織地址(即交織前的地址), 再把交織地址的計算結(jié)果存放在的結(jié)構(gòu),當(dāng)一個碼塊的所有交織地址計算全部 完成后,從RAM中輸出相應(yīng)的交織地址結(jié)果,該交織器主要包括基本參數(shù)計 算模塊,最小質(zhì)整數(shù)數(shù)組計算模塊(QJ數(shù)組計算模塊),列號選擇數(shù)組計算模 塊(SI數(shù)組計算模塊)、交織地址計算模塊和狀態(tài)控制模塊。相應(yīng)地交織地址 的計算可以分成4個階段基本參數(shù)確定、最小質(zhì)整數(shù)數(shù)組計算、列號選擇數(shù) 組計算和交織地址計算,具體過程如下1 )基本參數(shù)確定確定出交織矩陣的行數(shù)R和列數(shù)C,質(zhì)數(shù)p和根v等基本參數(shù)。 2)最小質(zhì)整數(shù)數(shù)組QJ計算從一張規(guī)定的質(zhì)數(shù)表中挑選出符合條件的質(zhì)數(shù),并對挑選出的質(zhì)數(shù)進(jìn)行 p-l的取模運(yùn)算,得到取壤運(yùn)算的結(jié)果q(j),其中j=l、 2、 ...、 R-1,再加上值 等于1的q(O),組建成最小質(zhì)整數(shù)數(shù)組。 3)列號選擇數(shù)組SI計算根據(jù)計算關(guān)系式s(n)=(v*s(n-l))modp, n=l、 2.....(p-2)及s ( 0 ) = 1得到列號選擇數(shù)組。4)交織地址計算利用2個計數(shù)器計數(shù)行地址和列地址,并根據(jù)計數(shù)的行地址和列地址得到 交織前的行地址和列地址,再用交織前的行地址和列地址計算出交織前的地 址。該方案雖然可以提高交織地址的計算速度,但由于需要一塊專門存放交織 地址的RAM,面積比較大,在進(jìn)行芯片設(shè)計時,會增加芯片的成本;另外由 于一個碼塊的所有交織地址全部計算并存儲完后,才能輸出用于進(jìn)行下面的 TURBO編碼,因此將會影響到TURBO編碼的時間,導(dǎo)致編碼速率的降低。發(fā)明內(nèi)容本發(fā)明的實(shí)施例在于提供一種Turbo碼交織器及交織地址傳輸方法,可以 有效減少給TURBO編碼帶來的延時。 本發(fā)明提供以下技術(shù)方案一種Turbo碼交織器,包括基本參數(shù)確定模塊,用于計算基本參數(shù);最 小質(zhì)整數(shù)數(shù)組計算模塊,與所述基本參數(shù)確定模塊相連,用于確定最小質(zhì)整數(shù) 數(shù)組;列號選擇數(shù)組計算模塊,與所述基本參數(shù)確定模塊相連,用于確定列號 選擇數(shù)組;交織地址計算模塊,分別與所述基本參數(shù)確定模塊、最小質(zhì)整數(shù)數(shù) 組計算模塊及列號選擇數(shù)組計算模塊相連接,根據(jù)所述基本參數(shù),最小質(zhì)整數(shù) 數(shù)組和列號選擇數(shù)組計算交織地址,并將結(jié)果輸出;FIFO,與所述交織地址計 算模塊相連接,用于傳輸所述交織地址計算模塊輸出的數(shù)據(jù),并根據(jù)FIFO中 緩存的數(shù)據(jù)數(shù)量和FIFO深度之間的關(guān)系,通知所述交織地址計算模塊暫停輸 出,以及在FIFO中緩存的數(shù)據(jù)減少到一定數(shù)量后,通知所述交織地址計算模 塊恢復(fù)輸出。其中,所述交織地址計算模塊包括行號轉(zhuǎn)換電路,用于計算交織前的
號;列號轉(zhuǎn)換電路,用于計算交織前的列號;交織地址計算電路,用于根據(jù)所 述行號轉(zhuǎn)換電路計算出的交織前的行號,所述列號轉(zhuǎn)換電路計算出的交織前的 列號,及所述基本參數(shù)確定模塊計算出的交織矩陣的行數(shù)計算出交織地址。所述交織地址計算模塊還包括輸出控制電路,所述輸出控制電路與所述 FIFO相連接,用于控制所述FIFO接收所述交織地址計算電路計算出的交織地 址。所述行號轉(zhuǎn)換電路包括行計數(shù)器,用來對交織后的行號計數(shù),當(dāng)計數(shù)值 等于交織矩陣的行數(shù)減一時清零,并在收到FIFO發(fā)出的暫停通知后停止計數(shù); 行號轉(zhuǎn)換單元,與所述行計數(shù)器相連接,根據(jù)所述行計數(shù)器的計數(shù)值及交織矩 陣的行數(shù)將交織后的行號轉(zhuǎn)換為交織前的行號。所述列號轉(zhuǎn)換電路包括列計數(shù)器,用來對交織后的列號計數(shù),并在收到 所述FIFO發(fā)出的暫停通知后停止計數(shù);累加取模單元,用于根據(jù)所述列計數(shù) 器的計數(shù)值和所述最小質(zhì)整數(shù)數(shù)組計算模塊確定出的最小質(zhì)整數(shù)數(shù)組得到列 號選擇數(shù)組的訪問地址,并根據(jù)所述訪問地址查詢所述列號選擇數(shù)組計算模塊 確定出的列號選擇數(shù)組,得到交織前的列號;特殊轉(zhuǎn)換判決器,根據(jù)所述行計 數(shù)器的計數(shù)值,所述列計數(shù)器的計數(shù)值,及交換矩陣特殊轉(zhuǎn)換標(biāo)記輸出相應(yīng)的 控制信號;選擇器,用于根據(jù)所述特殊轉(zhuǎn)換判決器輸出的控制信號,對交織前 的列號進(jìn)行選擇。所述交織地址計算電路包括乘法器,該乘法器一個輸入端接收所述行號 轉(zhuǎn)換電路輸出的交織前的行號,另 一個輸入端接收基本參數(shù)確定模塊確定的交 織矩陣列數(shù),所述乘法器對交織前的行號和交織矩陣列數(shù)進(jìn)行相乘操作;加法 器,該加法器一個輸入端與所述乘法器的輸出端相連,接收所述乘法器輸出結(jié) 果,另一個輸入端接收所述列號轉(zhuǎn)換電路輸出的交織前的列號,所述加法器對 交織前的列號和所述乘法器的輸出結(jié)果進(jìn)行相加操作,并將加法結(jié)果傳送給所 述FIFO。所述輸出控制電路包括比較器,該比較器的一個輸入端與所述交織地址 計算電路的輸出端相連,接收所述交織地址計算電路輸出結(jié)果,另一個輸入端 接收碼塊長度,所述比較器對碼塊長度和所述交織地址計算電路輸出結(jié)果進(jìn)行 比較,并根據(jù)比較結(jié)果輸出選擇信號;邏輯與單元,該邏輯與單元一個輸入端 接收所述比較器輸出的選擇信號,另一個輸入端接收所述FIFO輸出的暫停通 知中的暫停標(biāo)志取反后的信號,所述遝輯與單元對所述比較器輸出的信號和暫 停標(biāo)志取反后的信號進(jìn)行邏輯與操作,并將邏輯與得到的結(jié)果傳送給所述FIFO 相連。一種交織地址傳輸方法,包括根據(jù)FIFO中緩存數(shù)據(jù)數(shù)量與FIFO深度 的關(guān)系發(fā)出暫停通知;交織地址計算模塊接收到所述暫停通知后將寫使能信號 置為無效;FIFO在所述寫使能信號置為無效時,停止接收數(shù)據(jù),同時繼續(xù)輸 出緩存的數(shù)據(jù)。所述根據(jù)FIFO中緩存數(shù)據(jù)數(shù)量與FIFO深度的關(guān)系發(fā)出暫停通知具體為 判斷FIFO中緩存數(shù)據(jù)數(shù)量是否達(dá)到FIFO深度的一半,并在FIFO中緩存數(shù)據(jù) 數(shù)量達(dá)到FIFO深度的一半時發(fā)出暫停通知;交織地址計算模塊接收到所述暫 停通知后直接將寫使能信號置為無效。所述根據(jù)FIFO中緩存數(shù)據(jù)數(shù)量與FIFO深度的關(guān)系發(fā)出暫停通知具體為 判斷FIFO中緩存數(shù)據(jù)數(shù)量是否大于等于FIFO深度與流水深度的差值,并在 FIFO中緩存數(shù)據(jù)數(shù)量大于等于FIFO深度與流水深度的差值時發(fā)出暫停通知; 地址計算模塊接收到所述暫停通知后,經(jīng)過一段延遲后將寫使能信號置為無 效。所述延遲的時鐘周期個數(shù)等于交織地址計算模塊計算交織地址時的流水 深度。所述交織地址計算模塊將寫使能信號置為無效時,進(jìn)一步停止輸出交織地址。FIFO繼續(xù)輸出緩存的數(shù)據(jù)之后還包括分析FIFO中緩存的數(shù)據(jù)數(shù)量與 FIFO深度的關(guān)系,并在FIFO中緩存數(shù)據(jù)數(shù)量小于FIFO深度的一半或者FIFO 中緩存數(shù)據(jù)數(shù)量小于FIFO深度與流水深度的差值時取消暫停通知。所述取消暫停通知之后還包括交織地址計算模塊將寫使能信號置為有效 并輸出交織地址。。本發(fā)明方案采用FIFO替換專門存放交織地址的RAM,有效節(jié)省了存儲內(nèi) 存,并且FIFO可以將接收到的交織地址直接輸出,克服了現(xiàn)有技術(shù)中必須所 有交織地址全部計算后才能輸出的問題,節(jié)省了下面環(huán)節(jié)進(jìn)行TURBO編碼的 等待時間。
圖1為本發(fā)明實(shí)施例提供的交織器結(jié)構(gòu)框圖;圖2為圖1中交織地址計算模塊的一個實(shí)施例的結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例提供的交織地址傳輸方法的流程圖。
具體實(shí)施方式
本發(fā)明實(shí)施例采用FIFO (先入先出存儲器)來傳輸交織地址計算模塊所 輸出數(shù)據(jù)(交織地址)的RAM,所述FIFO根據(jù)其已緩存的數(shù)據(jù)(即交織地址) 數(shù)量和FIFO深度之間的關(guān)系,通知所述交織地址計算模塊暫停輸出;同時, 所述FIFO繼續(xù)輸出數(shù)據(jù),并在其緩存的數(shù)據(jù)減少到一定數(shù)量后,通知所述交 織地址計算模恢復(fù)輸出。請參閱圖l所示,圖l揭示了本發(fā)明實(shí)施例提供的交織器,包括基本參數(shù)確定模塊ll,用于計算一些基本參數(shù),例如交織矩陣的行數(shù)R, 列數(shù)C,質(zhì)數(shù)p和根v等;QJ數(shù)組計算模塊12,也就是最小質(zhì)整數(shù)數(shù)組計算模塊12,與基本參數(shù)確定模塊11相連,用于在一張規(guī)定的質(zhì)數(shù)表中挑選出符合條件的質(zhì)數(shù),并對挑選出的質(zhì)數(shù)進(jìn)行p-l的取模運(yùn)算,得到取模運(yùn)算的結(jié)果q(j),其中j=l、 2、...、 R-l,再加上值等于1的q(O),組建成最小質(zhì)整數(shù)數(shù)組QJ表并加以保存;SI數(shù)組計算模塊13,也就是列號選擇數(shù)組計算模塊13,與基本參數(shù)確定模塊11相連,用于根據(jù)計算關(guān)系式s(iH^s(i-l))modp, i=l、 2..... (p-2)及s (0 ) = 1得到列號選擇數(shù)組SI表。交織地址計算模塊14,分別與基本參數(shù)確定模塊11、 QJ數(shù)組計算模塊12 及SI數(shù)組計算模塊13相連接,根據(jù)基本參數(shù)確定模塊11計算出的基本參數(shù), 利用QJ數(shù)組計算模塊11計算得到的QJ表和SI數(shù)組計算模塊12計算得到的SI 表進(jìn)行交織地址的計算。狀態(tài)控制模塊15,用于完成整個交織地址計算過程的控制,首先啟動基本 參數(shù)確定模塊ll工作,完成基本參數(shù)的確定;然后啟動QJ數(shù)組計算模塊12和SI 數(shù)組計算模塊13工作;等QJ數(shù)組計算模塊12和SI數(shù)組計算模塊13計算完成后, 啟動交織地址計算模塊14工作,在具體實(shí)現(xiàn)時,可以通過啟動信號和應(yīng)答信號 來實(shí)現(xiàn),例如狀態(tài)控制模塊15向基本參數(shù)確定模塊11發(fā)出第一啟動信號,基本 參數(shù)確定模塊ll接收到第一啟動信號后,開始計算基本參數(shù),并在計算完基本 參數(shù)后向狀態(tài)控制模塊15發(fā)出第一應(yīng)答信號,狀態(tài)控制模塊15接收到第一應(yīng)答 信號后,發(fā)出第二啟動信號給QJ數(shù)組計算模塊12, QJ數(shù)組計算模塊12接收到第 二啟動信號后,開始確定最小質(zhì)整數(shù)數(shù)組,得到QJ表,并向狀態(tài)控制模塊15 發(fā)出第二應(yīng)答信號,狀態(tài)控制模塊15接收到第二應(yīng)答信號后繼續(xù)下面的控制過 程。FIF016,用于傳輸交織地址計算模塊14輸出的交織地址以及完成輸出速 率的匹配,根據(jù)其已緩存的數(shù)據(jù)(即交織地址)數(shù)量和FIFO深度之間的關(guān)系, 通知交織地址計算模塊14暫停輸出,同時FIF016繼續(xù)輸出緩存的數(shù)據(jù),并在
其緩存的數(shù)據(jù)減少到一定數(shù)量后,取消暫停通知。FIFO 16發(fā)出的暫停通知可以僅包含暫停標(biāo)志,可也可以除了暫停標(biāo)志外 還包括其他信息,如當(dāng)前FIFO中緩存的數(shù)據(jù)數(shù)量,下面的描述中以暫停通知 中僅包含暫停標(biāo)志為例;FIF016取消暫停通知,換句話說就是通知交織地址 計算模塊14恢復(fù)輸出。本發(fā)明實(shí)施例也可以不設(shè)置狀態(tài)控制模塊,前一級完成操作后發(fā)出啟動信 號觸發(fā)下一級的啟動,例如Turbo碼交織器接收到啟動信號后,基本參數(shù)確定 模塊開始啟動,并在計算完基本參數(shù)后發(fā)出啟動信號給QJ數(shù)組計算模塊、SI 數(shù)組計算模塊;QJ數(shù)組計算模塊,SI數(shù)組計算模塊執(zhí)行完各自的操作后,分 別發(fā)出啟動信號給交織地址計算模塊;交織地址計算模塊接收到QJ數(shù)組計算 模塊及SI數(shù)組計算模塊各自發(fā)出的啟動信號后開始啟動。由于基本參數(shù)確定模塊11、 QJ數(shù)組計算模塊12和SI數(shù)組計算模塊13已 經(jīng)被背景技術(shù)部分引用技術(shù)所揭示,此處不再詳敘。請參閱圖2所示,圖2揭示了本發(fā)明實(shí)施例提供的交織器中交織地址計算 模塊14的結(jié)構(gòu)。該交織地址計算模塊中設(shè)有2個計數(shù)器, 一個為行計數(shù)器,具體地,交織地址計算模塊14包括行號轉(zhuǎn)換電路141,列號轉(zhuǎn)換電路142, 交織地址計算電路143和輸出控制電路144,其中行號轉(zhuǎn)換電路141用于計算 交織前的行號,列號轉(zhuǎn)換電路142用于計算交織前的列號,交織地址計算電路 143用于4艮據(jù)交織前的行號、列號及交織矩陣的行數(shù)計算出交織前的地址即交 織地址,輸出控制電路144用于控制交織地址的輸出和停止,下面分別對這四 個電路進(jìn)行說明。行號轉(zhuǎn)換電路141包括行計數(shù)器和行號轉(zhuǎn)換單元,行計數(shù)器用來對交織后 的行號計數(shù),計數(shù)值用row^cnt表示;行號轉(zhuǎn)換單元與行計數(shù)器相連接,用于根 據(jù)計數(shù)值row^nt及交織矩陣的行數(shù)R按照3GPP 25.212協(xié)議規(guī)定直接將交織后 的行號轉(zhuǎn)換為交織前的行號,例如交織矩陣的行數(shù)R等于10時,因?yàn)榻豢棔r將
順序{9,8,7,6,5,4,3,2, 1,0}變化為{0, 1, 2, 3, 4, 5 , 6, 7 , 8, 9},所以很容易就 可以得到交織前的行號。列號轉(zhuǎn)換電路141包括列計數(shù)器、累加取模單元、特殊轉(zhuǎn)換判決器和選擇 器,其中列計數(shù)器用來對交織后的列號計數(shù),計數(shù)值用coLcnt表示,當(dāng)行計數(shù) 器計數(shù)到R (R為交織矩陣的行數(shù))時,行計數(shù)器清零,row—cnt變?yōu)?,同時行 計數(shù)器產(chǎn)生一個列計數(shù)脈沖觸發(fā)列計數(shù)器co1—cnt加1;計算交織前列號時分三種情況,其中i表示列號,j表示行號,情況1:如果C = p,進(jìn)行第j次列間交換(j = 0, 1, 2, ■, R國1), cj(i):s( (i * q (j) )mode(p畫1)), i =0, 1,2,…,(p-2)" and cj(p誦1) = 0;情況2:如果C = p+1 ,進(jìn)行第j次列間交換(j = 0,1 , 2,…,R-1), cj(i):s( (i *q (j) )mode(p-1)), i=0,1,2,…,(p-2), cj(p陽1)-0, cj(p) = p;如果(K = C x R),交換Cr."p)和Cfm(O)。情況3:如果C-p畫1,進(jìn)行第j次列間交換(j:0,1,2,…,R-1), cj(i):s((i *q (j) )mode(p-1))-1, i=0,1,2,…,(p-2)。這三種情況都需要計算出s( (i * q (j) ) mode (p-1))的值,利用"(a * b) mod c等效于(a * ( b mod c)) mod g"的規(guī)律,可以先做q (j) mod ( p -1) 操作,然后乘以i,再對乘法結(jié)果對p-1取模。因?yàn)樽钚≠|(zhì)整數(shù)數(shù)組QJ表已經(jīng)計 算出來,并且QJ表中保存的是q (j) mod (p-1)的結(jié)果。因此,可以利用QJ 表將(i * q (j) ) mod ( p-1 )的運(yùn)算簡化。由于『q(j) )mod (p-1) = ((i隱1) * q(j) + qG)) mod (p-1),且i從0開始每次只遞 增1,利用遞推規(guī)律率,cj(0)=0, cj(1) = (cj(0) + q(j))mod(p-1), cj(2)=(cj(1) +q(j)) mod (p-1).…….cj(i)= (cj(i-1) + q(j)) mod(p-1),所以在進(jìn)行cj(i)計算的時 候,只需要對前一次計算的歷史結(jié)果加q (j)再取模即可。因此,公式i + q(j)mod ( p-1 )中的乘法取模運(yùn)算可以轉(zhuǎn)化為累加取模運(yùn)算。通過上面的論述,運(yùn)算累加取模單元計算出第一次列交換的結(jié)果后,根據(jù) 行計數(shù)器計數(shù)值row一cnt查詢QJ表得到的q(j),以及列計數(shù)器的計數(shù)值col一cnt就 可以得到第j次列交換后的結(jié)果,再利用該結(jié)果去SI表中查詢就能得到交織前的 列號。在列號轉(zhuǎn)換的時候,還需要考慮一些特殊情況。在C-p和C-p+1時,上面 的處理只完成了前p-1個列交換地址的計算。當(dāng)C-p時,第p-1列號賦值0;當(dāng) C-p+1時,第p-1個列號賦值0,第p個列號賦值p。同時,當(dāng)C-p+1且K二R * C時,需要對第R-1行的第0列和第P列做交換。 沒有交換前,第0列和第p列的轉(zhuǎn)換列號分別為1和p,因此,在這種情況下可以 在遇到第R-1行的第0列時,直接對交換列號賦值p,遇到第R-1行的第p列時, 直接對交換列號賦值1 (這里提到的第R-1行是指交換后的行號,對應(yīng)于行計數(shù)器的值為0的時候)??紤]到交換矩陣中包含最后一行的空比特,在交換完成之后需要把這些空 比特剔除。所以在交織地址計算的時候,需要把這些特殊地址去除。對于空比 特在矩陣交換前的存放位置應(yīng)該是K, K+l, ......R*C-1,因此,在遇到計算得到的交織地址值大于K時不把這些值寫入交織地址表中。因此特殊轉(zhuǎn)換判決器根據(jù)當(dāng)前計數(shù)的行號raw一cnt和列號co1—cnt,以及交 換矩陣特殊轉(zhuǎn)換標(biāo)記p一c一rel,并輸出相應(yīng)的控制信號給選擇器,選擇器確定交 織前的列號選擇,并在通常情況下,列號選擇數(shù)組SI表的輸出即為交織前的列 號選擇,但對于一些特殊情況,需要選擇一些特殊值,如"S(i)-1" 、 "0"、 "1" 、 "p,,。其選擇關(guān)系是如果P一cj"el-0 ,轉(zhuǎn)換后的列號為列號選擇數(shù)組SI表的輸出值減去1的值 (即選擇si—data -1#r出);如果p—c—rel=1且coLcnt = p或者p_c—rel:2且coLcnt = p-1或者 p_c—rel=3JLcol—cnt = p-1,轉(zhuǎn)換后的列號為0;^口果P—c_rel=2JLcol—cnt = p或;# p_c—rel=3JLcol—cnt = p且row—cnt!=0 或者p—cjel-3且coLcnt = 0且row一cntW ,轉(zhuǎn)換后的列號為p;如果p—c—rel-3且col—cnt =卩且「0*—cnt=0 ,轉(zhuǎn)換后的列號為1;其他情況譯碼出1,即轉(zhuǎn)換后的列號為列號選擇數(shù)組SI表的輸出值。交織地址計算電路143包括乘法器和加法器,該乘法器一個輸入端與行號 轉(zhuǎn)換單元相連,接收行號轉(zhuǎn)換單元輸出的交織前的行號,另一個輸入端接收基 本參數(shù)確定模塊11確定的交織矩陣列數(shù)C,乘法器對兩個輸入端接收的數(shù)據(jù) 進(jìn)行相乘,輸出交織前的行號與交織矩陣列數(shù)的乘積,加法器一個輸入端與乘 法器的輸出端相連,另一個輸入端與選擇器輸出端相連,接收交織前的列號, 加法器對交織前的行號與交織矩陣列數(shù)的乘積,及交織前的列號進(jìn)行相加,即 可得到交織前的地址,加法器輸出端與FIF016相連,將交織前的地址作為寫 數(shù)據(jù)傳送給FIF016。輸出控制電路144包括比較器和邏輯與單元,該比較器的一個輸入端與加 法器的輸出端相連,另一個輸入端接收碼塊長度,比較器對碼塊長度和交織前 的地址的進(jìn)行比較,通常情況下碼塊長度小于交織前的地址,這時比較器輸出 一正常信號,例如高電平l,若碼塊長度大于交織前的地址,則說明交織前的 地址有誤,輸出低電平0。邏輯與單元一個輸入端接收比較器輸出的信號,另 一個輸入端接收FIF016輸出的暫停標(biāo)志并取反,邏輯與單元輸出端與FIF016 相連,將邏輯與操作后得到的結(jié)果作為寫使能信號傳送給FIF016,來控制 FIF016對交織地址的接收與否,當(dāng)寫使能信號有效例如為高電平時,F(xiàn)IF016 接收交織地址,當(dāng)寫使能信號無效例如為低電平時,F(xiàn)IF016停止接收交織地 址。
此外行計數(shù)器和列計數(shù)器還分別與FIF016相連接,在接收到FIF016輸 出的暫停標(biāo)志后停止計數(shù)工作,交織地址計算模塊因而停止輸出數(shù)據(jù);在暫停 標(biāo)志被置為無效后行計數(shù)器和列計數(shù)器重新開始計數(shù),交織地址計算模塊恢復(fù) 輸出數(shù)據(jù),例如設(shè)定暫停標(biāo)志為高電平1有效,低電平0無效,在FIF016發(fā) 出高電平1后,行計數(shù)器和列計數(shù)器停止計數(shù),交織地址計算模塊停止輸出 數(shù)據(jù),當(dāng)FIF016發(fā)出的暫停標(biāo)志變?yōu)?后,行計數(shù)器和列計數(shù)器重新開始計 數(shù),交織地址計算模塊恢復(fù)輸出數(shù)據(jù)。由于FIFO停止接收數(shù)據(jù)時,交織地址 模塊也停止輸出數(shù)據(jù),交織地址模塊恢復(fù)輸出數(shù)據(jù)時,F(xiàn)IFO開始接收數(shù)據(jù), 因此不會造成數(shù)據(jù)的丟失。在實(shí)際應(yīng)用中,還可以選擇一塊較大的FIFO,保證FIFO在傳輸交織地址 計算模塊14輸出的交織地址時不會發(fā)生溢出,這時在交織地址計算模塊14種 就可以不用設(shè)置輸出控制電路144,由于FIFO是雙端口 RAM,可以邊接收數(shù) 據(jù)邊發(fā)送出去,因此只要交織地址計算電路143計算出交織地址后就能實(shí)時進(jìn) 行傳輸,能夠減少給下面環(huán)節(jié)進(jìn)行TURBO編碼帶來的延時。請圖3所示,圖3揭示了本發(fā)明實(shí)施例提供的交織地址傳輸方法的流程圖, 具體過程如下步驟31, FIFO傳輸?shù)刂方豢椖K輸出的數(shù)據(jù)(交織地址),也就是接收交 織模塊輸出的數(shù)據(jù)并輸出。步驟32,分析FIFO中已緩存的數(shù)據(jù)數(shù)量和FIFO深度之間的關(guān)系;由于FIFO模塊用于完成輸出速率的匹配,而在實(shí)際應(yīng)用中,后級讀取數(shù) 據(jù)的速率可能低于交織地址計算模塊輸出的速率,例如在進(jìn)行TURBO編碼 的過程中,每三個時鐘周期才讀取一次交織地址,而交織地址計算模塊可以每 個時鐘周期輸出一個交織地址。因此在FIFO中存儲一定數(shù)量的數(shù)據(jù)后,要暫 停前級的交織地址輸出,以防止FIFO溢出。暫停控制信號即暫停標(biāo)志可以用FIFO的半滿標(biāo)志,即當(dāng)FIFO處于半滿
時,輸出暫停標(biāo)志,例如假定FIFO深度為8時,分析過程具體為將FIFO中 已緩存的數(shù)據(jù)數(shù)量和4進(jìn)行比較。步驟33,在FIFO中緩存的數(shù)據(jù)達(dá)到一定程度后發(fā)出暫停標(biāo)志;還是以深 度為8的FIFO采用半滿標(biāo)志為例,當(dāng)FIFO中緩存的數(shù)據(jù)數(shù)量達(dá)到4后,即 可產(chǎn)生半滿標(biāo)志如高電平1,將此半滿標(biāo)志高電平l作為暫停標(biāo)志發(fā)送給交織 地址計算模塊。步驟34,接收到暫停標(biāo)志后,行計數(shù)器和列計數(shù)器停止計數(shù)工作,交織地 址計算模塊停止輸出數(shù)據(jù),此外邏輯與單元將寫使能信號置為無效,設(shè)定暫停 標(biāo)志為高電平l,寫使能信號為高有效,當(dāng)邏輯與單元接收到暫停標(biāo)志l后, 輸出0,即寫使能信號為0,低無效。步驟35, FIFO在寫使能信號無效后,停止接收交織地址計算模塊輸出的 交織地址,并繼續(xù)輸出緩存的數(shù)據(jù),同時返回步驟32,判斷FIFO中已緩存的 數(shù)據(jù)數(shù)量是否已小于4。步驟36,在FIFO中的緩存數(shù)據(jù)減少到一定數(shù)量后將暫停標(biāo)志置位無效, 也就是當(dāng)已緩存的數(shù)據(jù)數(shù)量小于4之后,將暫停標(biāo)志從1改為0。步驟37,行計數(shù)器和列計數(shù)器在暫停標(biāo)志置為無效后,重新開始計數(shù)工作, 交織地址計算模塊將重新輸出數(shù)據(jù),且邏輯與單元在暫停標(biāo)志變?yōu)?后,重新 輸出1,也就是寫使能信號恢復(fù)成1, FIFO重新接收數(shù)據(jù)并輸出。由于交織地址計算模塊在計算交織地址的時候可能采用流水處理方式,即 交織地址計算模塊中各個組成部分處于并行工作狀態(tài),當(dāng)FIFO發(fā)出暫停標(biāo)志 后,雖然行計數(shù)器和列計數(shù)器可以立即暫停計數(shù),交織地址的輸出卻沒法暫停, 必須等到前一次流水處理結(jié)束以后。也就是說在暫??刂菩盘?暫停標(biāo)志)有 效后,還允許交織地址計算模塊繼續(xù)輸出N個數(shù)(N為交織地址計算的流水深 &,比J(口4)。因此為了避免丟失數(shù)據(jù),在本發(fā)明提供的交織地址計算模塊的另一個實(shí)施
例中,在FIFO與邏輯與單元之間增加了一個延遲單元,該延遲單元可以由若 干個D觸發(fā)器組成,D觸發(fā)器的個數(shù)由流水的深度決定,所謂流水深度,就是 運(yùn)算經(jīng)過的寄存器級數(shù),也就是運(yùn)算的處理延時,具體為交織地址計算模塊在 從某個交織地址開始計算到該交織地址結(jié)果輸出占用的時鐘周期數(shù),比如流水 深度為4時,D觸發(fā)器的個數(shù)也設(shè)置成4。該延遲單元用于接收FIFO輸出的 暫停標(biāo)志,將該暫停標(biāo)志延遲幾個時鐘周期后才送給邏輯與單元,以確保前一 次流水產(chǎn)生的數(shù)據(jù)都能傳送給FIFO,而不會丟失。而在暫停標(biāo)志置為無效后, 由于延遲時間為4個時鐘周期,而流水深度為4,因此當(dāng)交織地址計算模塊恢 復(fù)輸出數(shù)據(jù)時,寫使能信號也恢復(fù)成高電平,因此可以確保數(shù)據(jù)不會丟失。相 應(yīng)地在處理過程中前一次流水產(chǎn)生的數(shù)據(jù)全部傳送給FIFO之后,寫使能信號 才被置為無效;而在寫使能信號恢復(fù)有效之前,還需要經(jīng)過一定的延遲。在該另一個實(shí)施例中可以不采用FIFO的半滿標(biāo)志作為暫??刂菩盘?暫 停標(biāo)志),只要保證FIFO中緩存的數(shù)據(jù)大于等于M-N個數(shù)時使得暫??刂菩?號生效即可,其中M為FIFO的深度,N為流水的深度,M、 N之間的關(guān)系為 M>=(N+1)。當(dāng)FIFO中緩存的數(shù)據(jù)少于M-N個數(shù)時,暫??刂菩盘栔脼闊o效。采用FIFO傳輸數(shù)據(jù),并引入暫停標(biāo)志后, 一方面可以采用較小的FIFO, 有效節(jié)省存儲內(nèi)存,不再需要一塊專門存放交織地址的RAM,另一方面可以 很方便的進(jìn)行數(shù)據(jù)的傳輸,可以邊接收交織地址邊輸出,避免了下面環(huán)節(jié)進(jìn)行 TURBO編碼的等待時間。明的精神和范圍。這樣,倘若對本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求 及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1、一種Turbo碼交織器,其特征在于,包括基本參數(shù)確定模塊,用于計算基本參數(shù);最小質(zhì)整數(shù)數(shù)組計算模塊,與所述基本參數(shù)確定模塊相連,用于確定最小質(zhì)整數(shù)數(shù)組;列號選擇數(shù)組計算模塊,與所述基本參數(shù)確定模塊相連,用于確定列號選擇數(shù)組;交織地址計算模塊,分別與所述基本參數(shù)確定模塊、最小質(zhì)整數(shù)數(shù)組計算模塊及列號選擇數(shù)組計算模塊相連接,根據(jù)所述基本參數(shù),最小質(zhì)整數(shù)數(shù)組和列號選擇數(shù)組計算交織地址,并將結(jié)果輸出;FIFO,與所述交織地址計算模塊相連接,用于傳輸所述交織地址計算模塊輸出的數(shù)據(jù),并根據(jù)FIFO中緩存的數(shù)據(jù)數(shù)量和FIFO深度之間的關(guān)系,通知所述交織地址計算模塊暫停輸出,以及在FIFO中緩存的數(shù)據(jù)減少到一定數(shù)量后,通知所述交織地址計算模塊恢復(fù)輸出。
2、 如權(quán)利要求1所述的交織器,其特征在于,所述交織地址計算模塊包括行號轉(zhuǎn)換電路,用于計算交織前的行號; 列號轉(zhuǎn)換電路,用于計算交織前的列號;交織地址計算電路,用于根據(jù)所述行號轉(zhuǎn)換電路計算出的交織前的行號, 所述列號轉(zhuǎn)換電路計算出的交織前的列號,及所述基本參數(shù)確定模塊計算出的 交織矩陣的行數(shù)計算出交織地址。
3、 如權(quán)利要求2所述的交織器,其特征在于,所述交織地址計算模塊還 包括輸出控制電路,所述輸出控制電路與所述FIFO相連接,用于控制所述 FIFO接收所述交織地址計算電路計算出的交織地址。
4、 如權(quán)利要求2所述的交織器,其特征在于,所述行號轉(zhuǎn)換電路包括 行計數(shù)器,用來對交織后的行號計數(shù),當(dāng)計數(shù)值等于交織矩陣的行數(shù)減一時清零,并在收到FIFO發(fā)出的暫停通如后停止計數(shù);行號轉(zhuǎn)換單元,與所述行計數(shù)器相連接,根據(jù)所述行計數(shù)器的計數(shù)值及交 織矩陣的行數(shù)將交織后的行號轉(zhuǎn)換為交織前的行號。
5、 如權(quán)利要求4所述的交織器,其特征在于,所述列號轉(zhuǎn)換電路包括 列計數(shù)器,用來對交織后的列號計數(shù),并在收到所述FIFO發(fā)出的暫停通知后4f止計凄t;累加取模單元,用于根據(jù)所述列計數(shù)器的計數(shù)值和所述最小質(zhì)整數(shù)數(shù)組計算模塊確定出的最小質(zhì)整數(shù)數(shù)組得到列號選擇數(shù)組的訪問地址,并根據(jù)所述訪 問地址查詢所述列號選擇數(shù)組計算模塊確定出的列號選擇數(shù)組,得到交織前的列號;特殊轉(zhuǎn)換判決器,根據(jù)所述行計數(shù)器的計數(shù)值,所述列計數(shù)器的計數(shù)值, 及交換矩陣特殊轉(zhuǎn)換標(biāo)記輸出相應(yīng)的控制信號;選擇器,用于根據(jù)所述特殊轉(zhuǎn)換判決器輸出的控制信號,對交織前的列號 進(jìn)行選擇。
6、 如權(quán)利要求2所述的交織器,其特征在于,所述交織地址計算電路包括乘法器,該乘法器一個輸入端接收所述行號轉(zhuǎn)換電路輸出的交織前的行 號,另一個輸入端接收基本參數(shù)確定模塊確定的交織矩陣列數(shù),所述乘法器對 交織前的行號和交織矩陣列數(shù)進(jìn)行相乘操作;加法器,該加法器一個輸入端與所述乘法器的輸出端相連,接收所述乘法 器輸出結(jié)果,另一個輸入端接收所述列號轉(zhuǎn)換電路輸出的交織前的列號,所述 加法器對交織前的列號和所述乘法器的輸出結(jié)果進(jìn)行相加操作,并將加法結(jié)果 傳送給所述FIFO。
7、 如權(quán)利要求3所述的方法,其特征在于,所述輸出控制電路包括 比較器,該比較器的一個輸入端與所述交織地址計算電路的輸出端相連,接收所述交織地址計算電路輸出結(jié)果,另 一個輸入端接收碼塊長度,所述比較 器對碼塊長度和所述交織地址計算電路輸出結(jié)果進(jìn)行比較,并根據(jù)比較結(jié)果輸出選擇信號;邏輯與單元,該邏輯與單元一個輸入端接收所述比較器輸出的選擇信號,另一個輸入端接收所述FIFO輸出的暫停通知中的暫停標(biāo)志取反后的信號,所 述邏輯與單元對所述比較器輸出的信號和暫停標(biāo)志取反后的信號進(jìn)行邏輯與 操作,并將邏輯與得到的結(jié)果傳送給所述FIFO相連。
8、 一種交織地址傳輸方法,其特征在于,包括根據(jù)FIFO中緩存數(shù)據(jù)數(shù)量與FIFO深度的關(guān)系發(fā)出暫停通知; 交織地址計算模塊接收到所述暫停通知后將寫使能信號置為無效; FIFO在所述寫使能信號置為無效時,停止接收數(shù)據(jù),同時繼續(xù)輸出緩存 的數(shù)據(jù)。
9、 如權(quán)利要求8所述的交織地址傳輸方法,其特征在于,所述根據(jù)FIFO 中緩存數(shù)據(jù)數(shù)量與FIFO深度的關(guān)系發(fā)出暫停通知具體為判斷FIFO中緩存數(shù)據(jù)數(shù)量是否達(dá)到FIFO深度的一半,并在FIFO中緩存 數(shù)據(jù)數(shù)量達(dá)到FIFO深度的一半時發(fā)出暫停通知;交織地址計算模塊接收到所述暫停通知后直接將寫使能信號置為無效。
10、 如權(quán)利要求8所述的交織地址傳輸方法,其特征在于,所述根據(jù)FIFO 中緩存數(shù)據(jù)數(shù)量與FIFO深度的關(guān)系發(fā)出暫停通知具體為判斷FIFO中緩存數(shù)據(jù)數(shù)量是否大于等于FIFO深度與流水深度的差值, 并在FIFO中緩存數(shù)據(jù)數(shù)量大于等于FIFO深度與流水深度的差值時發(fā)出暫停 通知;地址計算模塊接收到所述暫停通知后,經(jīng)過一段延遲后將寫使能信號置為無效。
11、 如權(quán)利要求10所述的交織地址傳輸方法,其特征在于,所述延遲的時鐘周期個數(shù)等于交織地址計算模塊計算交織地址時的流水深度。
12、 如權(quán)利要求8所述的交織地址傳輸方法,其特征在于,所述交織地址 計算模塊將寫使能信號置為無效時,進(jìn)一步停止輸出交織地址。
13、 如權(quán)利要求8所述的交織地址傳輸方法,其特征在于,F(xiàn)IFO繼續(xù)輸 出緩存的數(shù)據(jù)之后還包括分析FIFO中緩存的數(shù)據(jù)數(shù)量與FIFO深度的關(guān)系,并在FIFO中緩存數(shù)據(jù) 數(shù)量小于FIFO深度的一半或者FIFO中緩存數(shù)據(jù)數(shù)量小于FIFO深度與流水深 度的差值時取消暫停通知。
14、 如權(quán)利要求13所述的交織地址傳輸方法,其特征在于,所述取消暫 停通知之后還包括交織地址計算模塊將寫使能信號置為有效并輸出交織地址。
全文摘要
本發(fā)明公開了一種Turbo碼交織器,包括用于計算一些基本參數(shù)的基本參數(shù)確定模塊,用于確定最小質(zhì)整數(shù)數(shù)組的QJ數(shù)組計算模塊,用于確定列號選擇數(shù)組的SI數(shù)組計算模塊,用于計算交織地址的交織地址計算模塊及FIFO,所述FIFO用于傳輸所述交織地址計算模塊輸出的數(shù)據(jù),并根據(jù)FIFO中緩存的數(shù)據(jù)數(shù)量和FIFO深度之間的關(guān)系,發(fā)出暫停標(biāo)志通知所述交織地址計算模塊暫停輸出,以及在FIFO中緩存的數(shù)據(jù)減少到一定數(shù)量后,通知所述交織地址計算模塊恢復(fù)輸出交織地址。此外本發(fā)明還同時公開了一種交織地址傳輸方法。
文檔編號H04B1/707GK101154957SQ20061006300
公開日2008年4月2日 申請日期2006年9月30日 優(yōu)先權(quán)日2006年9月30日
發(fā)明者張家佶 申請人:華為技術(shù)有限公司