3G信道解碼芯片TV3G的設(shè)計
摘 要:信道解碼是現(xiàn)代移動通信系統(tǒng)中的核心技術(shù)之一,本文根據(jù)3G標準之一WCDMA的要求,開發(fā)了一種能夠根據(jù)不同業(yè)務(wù),提供包括Viterbi解碼、Turbo解碼以及無編碼方式的多功能信道解碼芯片TV3G,重點討論了Turbo編/解碼的原理和TV3G的總體構(gòu)架,并給出了TV3G的接口定義。
關(guān)鍵詞:信道解碼;Turbo解碼;Viterbi解碼;WCDMA
引言
3G業(yè)務(wù)的主要特點是要求支持高速多媒體信息的傳輸,這就對信道編碼提出了更高的要求。WCDMA方案中采用了對不同QoS要求的業(yè)務(wù)進行不同的信道編碼策略。標準業(yè)務(wù)僅采用卷積編碼,高質(zhì)量業(yè)務(wù)在卷積編碼的基礎(chǔ)上增加RS編碼或采用Turbo編碼方法。相應(yīng)地,需要采用不同的解碼方法, 這對解碼模塊的設(shè)計提出了很高的要求,因此設(shè)計一種能夠完全適應(yīng)WCDMA系統(tǒng)的信道解碼芯片,是具有很高應(yīng)用價值的?;诖?,本文設(shè)計了一種能夠完全滿足以上應(yīng)用的信道解碼芯片TV3G,其中,針對卷積編碼采用Viterbi解碼方式,針對Turbo編碼采用Turbo解碼方式。
TV3G同時提供Viterbi解碼、Turbo解碼以及無編碼方式的數(shù)據(jù)透明傳輸3種模式,其中Turbo解碼是該芯片的難點。由于Viterbi解碼已經(jīng)較為成熟,本文主要針對Turbo編/解碼算法進行討論。Turbo碼由于很好地應(yīng)用了香農(nóng)信道編碼定理中的隨機性編/解碼條件而獲得了接近香農(nóng)理論極限的解碼性能。它不僅在信噪比(SNR)較低的高噪聲環(huán)境下性能優(yōu)越,而且具有很強的抗衰減、抗干擾能力。
Turbo編碼原理
Turbo碼是一種系統(tǒng)碼的形式,其輸入信息序列在經(jīng)過交織器送入RSC(遞歸系統(tǒng)卷積)編碼器的同時送到編碼器輸出端。其中成員碼采用RSC碼的形式,可以保證成員碼編碼器在所有信噪比條件下都具有良好的性能。在Turbo碼系統(tǒng)中,其編碼器由兩個或多個二元帶反饋的RSC子編碼器C1和C2經(jīng)由交織器并行級聯(lián)而成。輸入編碼器的信息序列為U=(u1,u2,...,un),它一方面直接輸入到C1進行編碼,生成系統(tǒng)序列Xs和校驗序列X1P,另一方面, U經(jīng)過交織后,輸入C2進行編碼,產(chǎn)生一個經(jīng)過交織的系統(tǒng)序列Xis和另一個校驗序列 X2P。
Turbo解碼原理
Turbo碼的編碼部分由C1、C2兩個子編碼器組成,在相應(yīng)的解碼部分也應(yīng)該有兩個子解碼器DEC1、DEC2.。假設(shè)編碼序列Xs、X1P、X2P經(jīng)過一個離散無記憶高斯信道,其接收序列為 Ys、Y1P、Y2P,如圖1所示。
對于Turbo碼這樣的并行級聯(lián)碼,每個子解碼器的作用不僅僅是解碼判決,它還應(yīng)該能夠提供對每一位碼元判決值的可靠性估計?;蛘哒f,子解碼器要能夠進行軟輸出。這種判決的可靠性估計,可以作為邊信息(EI),提供給另一個子解碼器,協(xié)助其解碼。在具體實現(xiàn)中,可通過多級選代的方法來達到反饋效果。迭代解碼是Turbo解碼的一個顯著特色。解碼器由結(jié)構(gòu)相同的模塊串聯(lián)而成,每一級模塊由DEC1、DEC2.組成,分別用于對C1、C2的解碼。每一級模塊除了產(chǎn)生判決值,還輸出判決的可靠性值,作為輸入下一級解碼模塊的先驗信息,協(xié)助下一級解碼。由于邊信息的作用,一定信噪比下的誤比特率將隨著循環(huán)次數(shù)的增加而下降。但同時外部信息與接收序列間的相關(guān)性也隨著解碼次數(shù)的增加而逐漸增大,外部信息所提供的糾錯能力也隨之減弱,在一定的循環(huán)次數(shù)之后,解碼性能將不再提高。
TV3G芯片設(shè)計
TV3G共分為六個功能模塊,分別是Turbo解碼、Viterbi解碼、無編碼方式、交織器、前端處理以及后端處理模塊。前端接口接收從片外送來的數(shù)據(jù),并根據(jù)相應(yīng)的接口規(guī)范進行地址解碼。然后根據(jù)地址解碼結(jié)果選擇三種處理內(nèi)核之一對數(shù)據(jù)進行處理。與此同時選擇相應(yīng)的后端接口,以便送出對應(yīng)的數(shù)據(jù)。而后端接口主要完成解碼內(nèi)核中產(chǎn)生的解碼后數(shù)據(jù)到接口上數(shù)據(jù)格式轉(zhuǎn)換以及解碼數(shù)據(jù)的輸出工作。Turbo解碼器完成Turbo解碼,并采用Max-Log-MAP算法。Viterbi解碼完成卷積碼的解碼,其并行度為8。交織器完成交織序列的生成工作。
在TV3G系統(tǒng)中,Turbo解碼、Viterbi解碼和無編碼方式是并行互斥的,即同一時刻只可能有一種解碼方式進行,其中交織器是與Turbo解碼方式配套使用的。在系統(tǒng)一級,共有5個RAM,它們分別由前后接口模塊進行管理,其中INPUT_RAM用來在Viterbi解碼時存儲待解碼數(shù)據(jù);X_RAM和Y_RAM是用來在Turbo解碼時分別存放待解碼數(shù)據(jù)的系統(tǒng)碼和校驗碼部分,另外在無編碼方式時,X_RAM用來存放待解碼數(shù)據(jù);INT_RAM主要是用來存放交織表,以供Turbo解碼時使用,同時在Viterbi解碼時用來進行回溯計算時使用;數(shù)據(jù)輸出RAM存放解碼后的數(shù)據(jù),以供輸出。經(jīng)簡化后,TV3G的總體結(jié)構(gòu)如圖2所示。
TV3G共有4種工作模式,分別為1/2卷積解碼模式、1/3卷積解碼模式、1/3 Turbo解碼模式和無編碼模式(相當于數(shù)據(jù)透明傳輸)。TV3G根據(jù)外部控制信號的狀態(tài)來決定處于何種解碼模式??紤]到外部系統(tǒng)使用的方便,定義解碼系統(tǒng)的外部接口為總線接口。數(shù)據(jù)送入采用8位的數(shù)據(jù)總線(DB_IN),而地址總線(AB_IN)主要用于系統(tǒng)控制信息的傳遞。
下面舉一個接收數(shù)據(jù)的實例(見圖3)。圖3是一個Turbo編碼數(shù)據(jù)傳入時序。每一個數(shù)據(jù)要傳輸?shù)臅r候WE_IN必須有效,即低電平。這時端口輸入AB_IN=‘111’,DB_IN=‘00000000’,表示待解碼數(shù)據(jù)是1/3 Turbo編碼類型;然后AB_IN=‘001’,同時DB_IN=‘05’,表示要求迭代次數(shù)為5,在此時鐘周期,TV3G完成相應(yīng)寄存器的初始化工作;隨后AB_IN=‘101’,DB_IN=‘FF’,表示待解碼的碼長低8位為FF,可以看出碼長高8位為0,因此,總的碼長為FF(H)。最后AB_IN=‘110’,這時真正的待解碼數(shù)據(jù)開始從DB_IN輸入,如F8 04... 。然后TV3G根據(jù)輸入的解碼數(shù)據(jù)進行內(nèi)部解碼,最后通過decoder_result端口輸出結(jié)果。
考慮到3G系統(tǒng)中解碼后的數(shù)據(jù)要作CRC校驗,而一般的CRC校驗電路都要求串行輸入數(shù)據(jù),因此定義解碼器送出的數(shù)據(jù)為串行接口(Decoder_result),并用一根專門的控制線(Decoder_ready)來指示數(shù)據(jù)開始送出。
結(jié)語
本文所討論的TV3G芯片完全符合3GPP(Release 99)協(xié)議標準,輸入6bit量化時,解碼器吞吐能力達到5Mbps,目前已經(jīng)完成FPGA的系統(tǒng)驗證工作,相應(yīng)的ASIC設(shè)計工作也即將完成?!?/p>
參考文獻
1 3GPP RAN TS25.212 "Multiplexing and channel coding(FDD)"
2 Andrew J. Viterbi, An Intuitive Justification and a Simplified Implementation of the MAP Decoder for Convolutional Codes[J], IEEE Journal on Selected Areas in Communications, Vol. 16, N0. 2, February 1998.
作者簡介
仲智剛:博士,研究方向為ASIC芯片設(shè)計,第三代移動通信原理以及寬帶交換機等。馮根寶:上海貝爾阿爾卡特有限公司公共能力中心總監(jiān),教授級高工。
評論