新聞中心

EEPW首頁 > 元件/連接器 > 設(shè)計(jì)應(yīng)用 > 用塊RAM實(shí)現(xiàn)卷積交織解交織

用塊RAM實(shí)現(xiàn)卷積交織解交織

作者:上海復(fù)旦微電子股份有限公司\蒲錦先 時(shí)間:2004-02-20 來源:電子設(shè)計(jì)應(yīng)用 收藏
摘 要: 本文詳細(xì)介紹了用塊來實(shí)現(xiàn)的原理和設(shè)計(jì),以J.83標(biāo)準(zhǔn)中的卷積交織器例進(jìn)行了說明。在此基礎(chǔ)上找到了用塊實(shí)現(xiàn)器的一般規(guī)律。
關(guān)鍵詞: ;
為了糾正數(shù)據(jù)在信道中傳輸時(shí)由于受到突發(fā)干擾而產(chǎn)生的突發(fā)錯(cuò)誤,常用的方法是采用交織-解交織措施,也就是通過在發(fā)射端將所要發(fā)射的數(shù)據(jù)通過交織將其順序打亂,接收后解調(diào)的時(shí)隙輸出經(jīng)過一次解交織的反向處理重新組合,使其變?yōu)樵瓉眄樞虻男蛄校@樣就可以將相鄰的突發(fā)錯(cuò)誤分散到糾錯(cuò)解碼可以糾錯(cuò)的范圍。常用兩種方法來實(shí)現(xiàn)交織-解交織過程,分別被稱為“分組交織”和“卷積交織”。但是“卷積交織-解交織”的總時(shí)延約為“分組交織-解交織”的一半,因此在現(xiàn)代的許多通信系統(tǒng)中,常常采用“卷積交織-解交織器”來對(duì)抗突發(fā)干擾。
在傳統(tǒng)的設(shè)計(jì)中,常常采用來完成“卷積交織-解交織器”的實(shí)現(xiàn)。但是當(dāng)交織-解交織的支路(branch)較多時(shí),使用就顯得雜亂和零散,時(shí)鐘管理比較繁瑣,更重要的是在芯片中會(huì)占用很多資源,不利于FPGA和ASIC的設(shè)計(jì)和制作。
本文詳細(xì)描述了一種用整塊RAM來代替多個(gè)FIFO移位寄存器實(shí)現(xiàn)卷積交織-解交織的方法。在此基礎(chǔ)上以J.83標(biāo)準(zhǔn)為例找出了用塊RAM實(shí)現(xiàn)卷積-解交織的一般規(guī)律,這樣就可以大大簡(jiǎn)化實(shí)現(xiàn)時(shí)的時(shí)鐘和數(shù)據(jù)管理,減小實(shí)現(xiàn)復(fù)雜程度,節(jié)省系統(tǒng)資源,降低成本。

FIFO移位寄存器的操作原理
下面以長(zhǎng)度為8的FIFO移位寄存器為例來說明其操作原理。如圖1所示,兩邊的箭頭表示數(shù)據(jù)移動(dòng)的方向。A,B,C,D表示被處理的數(shù)據(jù),1,2..8表示FIFO移位寄存器中的存儲(chǔ)單元。在每一個(gè)時(shí)鐘上升沿到來時(shí),數(shù)據(jù)向右移動(dòng)一個(gè)存儲(chǔ)單元。這樣在時(shí)鐘的控制下,數(shù)據(jù)從左至右通過存儲(chǔ)單元。

使用RAM實(shí)現(xiàn)FIFO移位寄存器的處理過程
為了達(dá)到與FIFO移位寄存器處理的同樣結(jié)果,以便于數(shù)據(jù)和操作時(shí)鐘的管理,使用的RAM存儲(chǔ)單元的長(zhǎng)度等于FIFO移位寄存器中存儲(chǔ)單元的長(zhǎng)度加1。讀地址比寫地址超前一個(gè)指針數(shù),即在第n個(gè)時(shí)鐘到來時(shí)向RAM中的第k-1個(gè)單元寫數(shù)據(jù),同時(shí)從第k個(gè)單元讀數(shù)據(jù)。在第n+1個(gè)時(shí)鐘到來時(shí),向RAM中的第k個(gè)單元寫數(shù)據(jù),同時(shí)從第k+1個(gè)單元讀數(shù)據(jù)。 讀寫時(shí)鐘都是執(zhí)行同步操作。這樣在時(shí)鐘控制下執(zhí)行所有的操作。在系統(tǒng)開始工作的第一個(gè)時(shí)鐘到來時(shí),此時(shí)寫操作指針指向第一個(gè)RAM單元,同時(shí)的讀數(shù)據(jù)指針指向第二RAM單元(如圖2所示)。

用塊RAM代替FIFO移位寄存器實(shí)現(xiàn)卷積交織-解交織

圖1 FIFO移位寄存器的操作原理


圖2 用RAM代替FIFO移位寄存器的操作過程


圖3 J.83標(biāo)準(zhǔn)中用FIFO移位寄存器實(shí)現(xiàn)卷積交織-解交織結(jié)構(gòu)圖


圖4 卷積交織-解交織讀寫地址產(chǎn)生圖

下面以J.83標(biāo)準(zhǔn)中的卷積交織和解交織器為例來說明。圖3是J.83中用FIFO移位寄存器實(shí)現(xiàn)卷積交織和解交織的結(jié)構(gòu)圖。并行輸入數(shù)據(jù)比特的寬度為8bit。從圖中可以看出,交織-解交織器由I個(gè)分支構(gòu)成,從0到I-1,I=12。每個(gè)分支的延遲單元數(shù)為0、J、2J、......(I-1)J, J=17。每個(gè)分支延遲單元數(shù)相差為J,所以對(duì)所有輸入數(shù)據(jù)來說每個(gè)分支的延遲數(shù)是不一樣的,結(jié)果造成對(duì)輸入數(shù)據(jù)的延遲不一樣,從而完成了交織過程。
通過上面的分析可以看出:用RAM來代替FIFO移位寄存器完成相同的功能。在FPGA和ASIC設(shè)計(jì)中就可以用單個(gè)塊RAM代替多個(gè)FIFO移位寄存器。根據(jù)J.83標(biāo)準(zhǔn)中的結(jié)構(gòu)圖可以看出,將整個(gè)塊RAM按照“FIFO移位寄存器的相應(yīng)存儲(chǔ)單元+1”的大小劃分成I個(gè)存儲(chǔ)小塊單元。第0個(gè)存儲(chǔ)小塊大小為1,第一個(gè)存儲(chǔ)小塊大小為J+1,第二個(gè)為2J+1,依此類推,第I-1個(gè)存儲(chǔ)塊的大小為(I-1)J+1。在FIFO移位寄存器實(shí)現(xiàn)中,由于每隔一個(gè)時(shí)鐘周期,讀寫指針都要跳到下一個(gè)FIFO移位寄存器分支,以實(shí)現(xiàn)相應(yīng)的功能,對(duì)于塊RAM的存儲(chǔ)小塊單元來說就是從一個(gè)存儲(chǔ)小塊單元跳到另一個(gè)存儲(chǔ)小塊單元,以實(shí)現(xiàn)與FIFO移位寄存器相同的功能。
由J.83的例子可以看出,訪問塊RAM的讀寫指針由三個(gè)部分組成,第一部分為指示存儲(chǔ)小塊單元指針,第二部分為小塊單元內(nèi)偏移指針,將這兩部分指針相加,得到寫數(shù)據(jù)操作的指針。第三部分是讀指針與寫指針相比滯后一個(gè)時(shí)鐘周期,并且讀地址是寫數(shù)據(jù)指針加1,產(chǎn)生RAM的相應(yīng)讀指針。以便循環(huán)讀取中的數(shù)據(jù)。塊RAM就根據(jù)這些相應(yīng)的讀寫指針,寫入和讀出相應(yīng)的數(shù)據(jù),從而完成了卷積交織。
根據(jù)同樣的道理可以構(gòu)造出卷積解交織的塊RAM實(shí)現(xiàn)方法。從而可以推廣到一般的卷積交織-解交織的實(shí)現(xiàn)方法,如圖4所示。此方法包括下面幾部分:小塊存儲(chǔ)單元切換控制、小塊內(nèi)偏移指針、讀時(shí)鐘延遲一個(gè)周期以及小塊內(nèi)偏移指針+1。
小塊存儲(chǔ)單元切換控制用來選擇需要進(jìn)入的塊RAM中的小塊存儲(chǔ)單元;
小塊內(nèi)偏移指針是用來產(chǎn)生在小塊存儲(chǔ)單元的偏移地址,它與小塊存儲(chǔ)單元切換控制所指示的地址相加,可以得到小塊內(nèi)存儲(chǔ)單元的寫數(shù)據(jù)地址;
小塊內(nèi)偏移指針+1:將小塊存儲(chǔ)單元RAM寫數(shù)據(jù)地址+1,就產(chǎn)生了讀數(shù)據(jù)的指針?!?/P>

參考文獻(xiàn)
1 ITU-T J.83 standardization
2 Xilinx datasheet. "synchronous FIFO".
3 Xilinx datasheet. “Dual-port Block Memory”



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉