采用WCDMA速率適配算法的FPGA設(shè)計(jì)
速率適配的FPGA實(shí)現(xiàn)
通過對(duì)編碼復(fù)接的方案研究發(fā)現(xiàn),直接根據(jù)協(xié)議流程對(duì)數(shù)據(jù)流各個(gè)步驟(一共大約11個(gè)步驟)直接進(jìn)行處理將會(huì)大大增加系統(tǒng)復(fù)雜度,這樣每個(gè)步驟之間都需對(duì)數(shù)據(jù)進(jìn)行緩存,而移動(dòng)環(huán)境下系統(tǒng)支持的最高速率可達(dá)384Kbps,對(duì)于TTI=20ms的業(yè)務(wù),平均每步需要的緩存為7.68K,所需要的總存儲(chǔ)量是巨大的。而且這中間,數(shù)據(jù)流頻繁的寫入讀出所導(dǎo)致的處理時(shí)延也是難以忍受的。因此,如果將某些步驟合并起來,就能減少不必要的數(shù)據(jù)存取工作,從而節(jié)省存儲(chǔ)量,縮短處理延時(shí)。
上行鏈路的速率匹配按10ms數(shù)據(jù)幀為單位進(jìn)行,而下行鏈路則是以TTI為單位針對(duì)一個(gè)無線幀的數(shù)據(jù)比特進(jìn)行的。雖然算法上一致,但是考慮到上下行各自的步驟合并情況,在實(shí)際處理上還是有很大區(qū)別的。下面以下行144Kb/s速率適配為例介紹一下其FPGA的實(shí)現(xiàn)方法。
144Kb/s速率適配過程大致分為兩個(gè)模塊:鑿圖樣產(chǎn)生模塊和保留比特搬移轉(zhuǎn)換模塊。在實(shí)現(xiàn)過程中,用到的存儲(chǔ)資源是兩個(gè)RAM—一個(gè)用來存“鑿”圖樣、另一個(gè)用來存原來的數(shù)據(jù),兩個(gè)DCFIFO(雙時(shí)鐘FIFO)用來存比特收集后的兩幀數(shù)據(jù)。
鑿孔圖樣產(chǎn)生模塊
由于144Kb/s業(yè)務(wù)信道編碼用的是Turbo編碼,鑿孔時(shí)只針對(duì)兩個(gè)分量編碼器輸出的校驗(yàn)比特,因此需先進(jìn)行比特分離再分塊進(jìn)行鑿孔操作(系統(tǒng)比特塊自動(dòng)保留不進(jìn)行鑿孔操作)。我們采用了一種鑿孔圖樣控制方式,所有待速率適配比特都對(duì)應(yīng)一個(gè)P比特,P=1表示鑿去,P=0表示保留,以此種方式產(chǎn)生鑿孔圖樣來控制保留比特的搬移。具體實(shí)現(xiàn)框圖如圖4所示。主要硬件結(jié)構(gòu)包括一個(gè)加法器、一個(gè)減法器、一個(gè)數(shù)值比較器、一個(gè)計(jì)數(shù)器和一個(gè)選通控制模塊及參數(shù)初始化模塊。
本文引用地址:http://m.butianyuan.cn/article/149271.htm
圖4 鑿孔圖樣產(chǎn)生
該結(jié)構(gòu)工作過程如下:首先,比特分離和參數(shù)初始化模塊主要完成模塊計(jì)數(shù)和eini、eminus、eplus等參數(shù)的初始化設(shè)置。
在減法器端,當(dāng)前誤差值e減去eminus,該數(shù)值同時(shí)送給數(shù)值比較器和選通控制模塊。減法器的輸出結(jié)果和0值作比較,如果結(jié)果小于零則記P比特為1;如果結(jié)果大于零則記P比特為0,同時(shí)將減法器的輸出結(jié)構(gòu)作為當(dāng)前加法器的A端輸入值。P比特則在選通控制模塊產(chǎn)生的讀寫使能、地址信號(hào)線的驅(qū)動(dòng)下寫入Punc_ram。另外用一個(gè)計(jì)數(shù)器來對(duì)比特?cái)?shù)進(jìn)行記錄,以控制整個(gè)流程的結(jié)束時(shí)刻。系統(tǒng)時(shí)鐘為8倍碼片時(shí)鐘,計(jì)數(shù)器和Punc_ram都采用同步控制,加法器、減法器及比較器都不采用同步時(shí)鐘延時(shí)。
保留比特搬移轉(zhuǎn)換模塊
鑿圖樣產(chǎn)生以后,接下來的操作就是保留比特的搬移和轉(zhuǎn)換,并進(jìn)行第一次交織和無線幀分段。按照3GPP協(xié)議,對(duì)于TTI=20ms的144Kb/s業(yè)務(wù),其交織模式是0,1>,亦即順序輸出。
圖5 保留比特搬移轉(zhuǎn)換
實(shí)現(xiàn)的流程圖如圖5。假定TURBO編碼后待的比特流存在out_ram中,這里進(jìn)行的操作關(guān)鍵是鑿孔圖樣的讀出和out_ram的讀出應(yīng)該是同步一致進(jìn)行(在同一個(gè)時(shí)鐘上升沿開始),用Punc_ram的輸出來作為積攢比特的使能信號(hào)。用移位寄存器組和計(jì)數(shù)器實(shí)現(xiàn)比特積攢,每等到滿16bit時(shí),就進(jìn)行串并轉(zhuǎn)換,同時(shí)產(chǎn)生一個(gè)fifo寫使能脈沖,把一個(gè)字的內(nèi)容寫入fifo;等到滿一幀(復(fù)接前的數(shù)據(jù)幀)的時(shí)候,轉(zhuǎn)向?qū)ο乱粋€(gè)fifo進(jìn)行寫操作。到一個(gè)數(shù)據(jù)幀4205bit結(jié)束時(shí),積攢比特不滿16的補(bǔ)零表示,串并轉(zhuǎn)換為一個(gè)字寫入fifo。
資源使用和時(shí)延分析
按照上面的實(shí)現(xiàn)方式,主要占用的是存儲(chǔ)資源,現(xiàn)代FPGA中的ESB(嵌入式系統(tǒng)塊)可以很容易地實(shí)現(xiàn)各種類型的存儲(chǔ)模塊,包括雙端口RAM、ROM、FIFO及CAM塊。下面主要進(jìn)行的是時(shí)延分析。
按照上面的流程可以大致估算一個(gè)比特從“鑿孔”圖樣產(chǎn)生到比特搬移完成所用的時(shí)間。所選工作時(shí)鐘速率為8倍碼片速率3.84MHz,一個(gè)時(shí)鐘周期約為32.4ns。鑿孔圖樣模塊中的加法器、減法器、選通控制大概需要3個(gè)時(shí)鐘周期,9516個(gè)鑿孔圖樣的產(chǎn)生需要大致925ns;保留比特搬移模塊主要是數(shù)據(jù)比特的直接搬移,對(duì)于最后一個(gè)比特而言,假定它是保留比特,從搬移開始到最終寫入FIFO,經(jīng)過了大致9516+16=9532個(gè)時(shí)鐘周期,耗時(shí)大約308ns。對(duì)整個(gè)流程用MAXPUSII仿真,總共耗時(shí)1.336ms,考慮到中間的緩沖控制和使能控制延遲,仿真結(jié)果和計(jì)算值大致吻合。對(duì)于TTI=20ms的業(yè)務(wù),完全滿足處理要求。
結(jié)語
WCDMA系統(tǒng)的電路型數(shù)據(jù)業(yè)務(wù)(64K)和分組型數(shù)據(jù)業(yè)務(wù)(144K、384K)可以實(shí)現(xiàn)對(duì)多媒體業(yè)務(wù)的承載,但由于基帶數(shù)據(jù)處理量大、比特搬移操作明顯,編碼復(fù)接中的核心算法之一速率適配算法我們采用了FPGA實(shí)現(xiàn),并且適當(dāng)合并了前后步驟,大大縮短了處理時(shí)間,使系統(tǒng)達(dá)到了很高的吞吐量和處理速度,完全滿足3GPP協(xié)議規(guī)范的要求。在實(shí)際實(shí)施中被證明是可行的。此外,文中提出的模塊合并、產(chǎn)生鑿孔圖樣進(jìn)行比特積攢搬移的思想同樣可以適合未來更復(fù)雜的編碼復(fù)接方案。
WCDMA文章專題:WCDMA是什么意思
評(píng)論