欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種數(shù)據(jù)重排方法及裝置與流程

文檔序號(hào):12041877閱讀:300來(lái)源:國(guó)知局
一種數(shù)據(jù)重排方法及裝置與流程
本發(fā)明涉及移動(dòng)通信技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)重排方法及裝置。

背景技術(shù):
在LTE系統(tǒng)中,常會(huì)遇到需要將數(shù)據(jù)重新排列的場(chǎng)景,也就是將多個(gè)數(shù)據(jù)流由串行改為交織排列,或者由交織排列改為串行排列。例如,在基帶處理板中,對(duì)一個(gè)小區(qū)8天線的數(shù)據(jù)作快速傅立葉變換(FFT)操作是串行實(shí)現(xiàn)的,而在后續(xù)的Ir接口上的數(shù)據(jù)傳輸格式是按照天線數(shù)據(jù)交織傳送的,這樣就需要對(duì)數(shù)據(jù)的傳輸格式進(jìn)行改變,也就需要利用現(xiàn)場(chǎng)可編程門陣列(FPGA)中的隨機(jī)存儲(chǔ)器(RAM,randomaccessmemory)進(jìn)行緩存?,F(xiàn)有技術(shù)中的數(shù)據(jù)重排過(guò)程如下:首先,將數(shù)據(jù)按照順序?qū)懭氲姆绞綄懭氲骄彺鍾AM中去,然后再按照一定的格式(例如上面的描述的交織排列的格式)來(lái)改變讀取數(shù)據(jù)的地址,從而實(shí)現(xiàn)數(shù)據(jù)傳送格式的重新排列。由于數(shù)據(jù)寫入緩存的地址是依次順序遞增,而數(shù)據(jù)讀取地址不再是順序遞增,而是根據(jù)預(yù)定格式的要求生成讀取地址(例如按照交織排列的格式來(lái)生成地址),這樣生成的地址將不在連續(xù),而是按照一定規(guī)律進(jìn)行變化(非順序遞增規(guī)律)。數(shù)據(jù)重新排列的一種典型應(yīng)用場(chǎng)景是將多個(gè)數(shù)據(jù)流由串行改為交織排列。舉例如下:將數(shù)據(jù)流0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,……變換為,7,6,5,4,3,2,1,0,7,6,5,4,3,2,1,0,……這樣的數(shù)據(jù)流。通常在FPGA中實(shí)現(xiàn)如下:首先,將要重排的數(shù)據(jù)順序?qū)懭刖彺鍾AM中,再通過(guò)改變讀取數(shù)據(jù)的地址來(lái)實(shí)現(xiàn)數(shù)據(jù)的重新排列。對(duì)于上面的例子,可以開(kāi)辟一個(gè)深度為8的緩存將0,1,2,3,4,5,6,7順序?qū)懭?,讀出數(shù)據(jù)時(shí)讀地址順序?yàn)椋?,6,5,4,3,2,1,0,就能實(shí)現(xiàn)數(shù)據(jù)格式的轉(zhuǎn)換。但是這種實(shí)現(xiàn)方式在數(shù)據(jù)連續(xù)的情況下,就必須需要兩塊緩存RAM來(lái)完成,實(shí)現(xiàn)是通常采用乒乓緩存的方式實(shí)現(xiàn)對(duì)連續(xù)數(shù)據(jù)流的處理。圖1為現(xiàn)有技術(shù)中乒乓緩存示意圖,前級(jí)處理模塊101輸出數(shù)據(jù)為X(n),通過(guò)RAM緩存后輸出到后級(jí)處理模塊103的數(shù)據(jù)為Y(n),X(n)與Y(n)的數(shù)據(jù)格式不相同,數(shù)據(jù)在緩存RAM(A)102和緩存RAM(B)104中輪流進(jìn)行緩存,地址控制模塊105通過(guò)控制讀地址(ADD_R)、寫地址(ADD_W)和對(duì)不同緩存RAM的讀寫使能完成乒乓緩存的實(shí)現(xiàn)。通常,在基本數(shù)據(jù)單元長(zhǎng)度較短的情況下,采用乒乓緩存的方式實(shí)現(xiàn)數(shù)據(jù)重新排列是一種可行的方法,乒乓緩存額外消耗的RAM量比較少,隨著基本數(shù)據(jù)單元長(zhǎng)度的增加,當(dāng)緩存存滿數(shù)據(jù)時(shí),剩余的存儲(chǔ)空間不足以存儲(chǔ)一個(gè)完整的基本數(shù)據(jù)單元,則只能使剩余的存儲(chǔ)空間為空,乒乓緩存的方式耗費(fèi)會(huì)大量增加,當(dāng)基本數(shù)據(jù)單元長(zhǎng)度較長(zhǎng)時(shí)乒乓緩存額外消耗的RAM量會(huì)很大,這樣對(duì)緩存來(lái)說(shuō)是一種很大的浪費(fèi)。舉例如下:在實(shí)際應(yīng)用中,基帶板對(duì)一個(gè)小區(qū)8天線的數(shù)據(jù)作FFT操作是串行實(shí)現(xiàn)的,但是在Ir接口上傳送的數(shù)據(jù)是按照天線交織的,因此需要對(duì)數(shù)據(jù)進(jìn)行重排,基本數(shù)據(jù)單元長(zhǎng)度為32Bit,單塊RAM所能存儲(chǔ)的最大數(shù)據(jù)長(zhǎng)度為18K比特則對(duì)于8天線帶寬為20M的小區(qū),單個(gè)最小緩存需要32Bit×8天線×2048點(diǎn)/18K=32塊Ram;單個(gè)FPGA需要支持3個(gè)8天線20M,因此上下行一共需要32×2上下行×3小區(qū)=192塊RAM,如果采用乒乓緩存的方法,則還要在192塊RAM的數(shù)字上再增加一倍變?yōu)?84塊RAM。

技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種數(shù)據(jù)重排方法及裝置,相對(duì)于現(xiàn)有技術(shù)可以節(jié)約RAM。本發(fā)明實(shí)施例提供了一種數(shù)據(jù)重排裝置,包括前級(jí)處理模塊、緩存模塊、后級(jí)處理模塊和地址控制模塊,該裝置還包括寫地址轉(zhuǎn)換模塊和讀地址轉(zhuǎn)換模塊,所述前級(jí)處理模塊用于輸出按照第一排列方式排列的數(shù)據(jù)X(n),按照寫地址轉(zhuǎn)換模塊輸出的寫地址將數(shù)據(jù)X(n)寫入緩存模塊;所述地址控制模塊用于對(duì)輸入緩存模塊的數(shù)據(jù)X(n)進(jìn)行分組,每組數(shù)據(jù)量的大小為要緩存數(shù)據(jù)的最小緩存量,獲得組號(hào)和每組數(shù)據(jù)的組內(nèi)編號(hào);當(dāng)前級(jí)處理模塊要向緩存模塊寫入一組數(shù)據(jù)時(shí),地址控制模塊向緩存模塊發(fā)送寫使能信號(hào)并生成用于乒乓緩存的寫地址,將所述組號(hào)、組內(nèi)編號(hào)和寫地址輸出至寫地址轉(zhuǎn)換模塊;當(dāng)每一組數(shù)據(jù)寫入緩存模塊后,向緩存模塊發(fā)送讀使能信號(hào)并生成用于乒乓緩存的讀地址,將所述組號(hào)、組內(nèi)編號(hào)和讀地址輸出至讀地址轉(zhuǎn)換模塊;寫地址轉(zhuǎn)換模塊,用于根據(jù)來(lái)自地址控制模塊的組號(hào)和組內(nèi)編號(hào),對(duì)來(lái)自地址控制模塊的用于乒乓緩存的寫地址進(jìn)行轉(zhuǎn)換,輸出轉(zhuǎn)換后的寫地址,所述轉(zhuǎn)換后的寫地址用于將數(shù)據(jù)X(n)寫入緩存單元中讀空的存儲(chǔ)空間;讀地址轉(zhuǎn)換模塊,用于根據(jù)來(lái)自地址控制模塊的組號(hào)和組內(nèi)編號(hào),對(duì)來(lái)自地址控制模塊的用于乒乓緩存的讀地址進(jìn)行轉(zhuǎn)換,輸出轉(zhuǎn)換后的讀地址;所述后級(jí)處理模塊用于根據(jù)讀地址轉(zhuǎn)換模塊輸出的讀地址,從緩存模塊中讀取按照第二排列方式排列的數(shù)據(jù)Y(n)。較佳地,所述緩存模塊的存儲(chǔ)容量為最小緩存量×數(shù)據(jù)位寬,最小緩存量為要完成輸入、輸出數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換所需要的最小RAM使用量。較佳地,緩存模塊的存儲(chǔ)容量為最小緩存量為r,讀地址和寫地址的位寬為log2(r)。較佳地,所述第一排列方式為順序排列,所述第二排列方式為交織排列。本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)重排方法,包括如下步驟:A、判斷緩存中是否有空閑的最小緩存量,若是,執(zhí)行步驟B;B、記錄將要寫入緩存的按照第一排列方式排列的一組數(shù)據(jù)的組號(hào),生成乒乓緩存的寫地址,根據(jù)乒乓緩存的寫地址以及組號(hào)生成實(shí)際寫入緩存的寫地址;所述一組數(shù)據(jù)的大小等于最小緩存量;C、根據(jù)實(shí)際寫入緩存的寫地址將所述一組數(shù)據(jù)寫入緩存中空閑存儲(chǔ)空間;D、生成乒乓緩存的讀地址,根據(jù)乒乓緩存的讀地址以及組號(hào)生成實(shí)際讀取緩存的讀地址;E、根據(jù)實(shí)際讀取緩存的讀地址將數(shù)據(jù)按照第二排列方式進(jìn)行讀取,將所讀取的數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)空間清空,并返回步驟B。較佳地,所述緩存模塊的存儲(chǔ)容量為最小緩存量×數(shù)據(jù)位寬,最小緩存量為要完成輸入、輸出數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換所需要的最小RAM使用量。較佳地,緩存模塊的存儲(chǔ)容量為最小緩存量為r,讀地址和寫地址的位寬為log2(r)。較佳地,所述第一排列方式為順序排列,所述第二排列方式為交織排列。從以上技術(shù)方案可以看出,按照一定的讀寫生成方法來(lái)改變緩存RAM的讀寫地址,從而完成用少量的邏輯資源來(lái)?yè)Q取大量的RAM資源的消耗。附圖說(shuō)明圖1為現(xiàn)有技術(shù)中的乒乓緩存示意圖;圖2為本發(fā)明實(shí)施例提供的數(shù)據(jù)重排裝置框圖。具體實(shí)施方式為使本發(fā)明技術(shù)方案的技術(shù)原理、特點(diǎn)以及技術(shù)效果更加清楚,以下結(jié)合具體實(shí)施例對(duì)本發(fā)明方案進(jìn)行詳細(xì)闡述。本發(fā)明實(shí)施例提供的數(shù)據(jù)重排裝置如圖2所示,包括前級(jí)處理模塊201、緩存模塊202、后級(jí)處理模塊203和地址控制模塊206,該裝置還包括寫地址轉(zhuǎn)換模塊204和讀地址轉(zhuǎn)換模塊205,所述前級(jí)處理模塊201用于輸出按照第一排列方式排列的數(shù)據(jù)X(n),按照寫地址轉(zhuǎn)換模塊輸出的寫地址將數(shù)據(jù)X(n)寫入緩存模塊202;所述地址控制模塊206用于對(duì)輸入緩存模塊202的數(shù)據(jù)X(n)進(jìn)行分組,每組數(shù)據(jù)量的大小為要緩存數(shù)據(jù)的最小緩存量,獲得組號(hào)和每組數(shù)據(jù)的組內(nèi)編號(hào);當(dāng)前級(jí)處理模塊201要向緩存模塊202寫入一組數(shù)據(jù)時(shí),地址控制模塊206向緩存模塊202發(fā)送寫使能信號(hào)并生成用于乒乓緩存的寫地址,將所述組號(hào)、組內(nèi)編號(hào)和寫地址輸出至寫地址轉(zhuǎn)換模塊204;當(dāng)每一組數(shù)據(jù)寫入緩存模塊202后,向緩存模塊202發(fā)送讀使能信號(hào)并生成用于乒乓緩存的讀地址,將所述組號(hào)、組內(nèi)編號(hào)和讀地址輸出至讀地址轉(zhuǎn)換模塊205;寫地址轉(zhuǎn)換模塊204,用于根據(jù)來(lái)自地址控制模塊206的組號(hào)和組內(nèi)編號(hào),對(duì)來(lái)自地址控制模塊206的用于乒乓緩存的寫地址進(jìn)行轉(zhuǎn)換,輸出轉(zhuǎn)換后的寫地址,所述轉(zhuǎn)換后的寫地址用于將數(shù)據(jù)X(n)寫入緩存單元中讀空的存儲(chǔ)空間;讀地址轉(zhuǎn)換模塊205,用于根據(jù)來(lái)自地址控制模塊206的組號(hào)和組內(nèi)編號(hào),對(duì)來(lái)自地址控制模塊206的用于乒乓緩存的讀地址進(jìn)行轉(zhuǎn)換,輸出轉(zhuǎn)換后的讀地址;所述后級(jí)處理模塊203用于根據(jù)讀地址轉(zhuǎn)換模塊205輸出的讀地址,從緩存模塊202中讀取按照第二排列方式排列的數(shù)據(jù)Y(n)。與乒乓緩存相比較,本發(fā)明比乒乓緩存會(huì)少用一半RAM,但需要有寫地址轉(zhuǎn)換模塊204和讀地址轉(zhuǎn)換模塊205,讀、寫地址模塊是由原來(lái)的乒乓緩存的讀寫地址轉(zhuǎn)換過(guò)來(lái)的,這種轉(zhuǎn)換具有規(guī)律性,并且寫地址轉(zhuǎn)換模塊和讀地址轉(zhuǎn)換模塊是用邏輯資源實(shí)現(xiàn),這正是本發(fā)明相對(duì)于乒乓緩存的特點(diǎn)所在。在圖2中,前級(jí)處理模塊201輸出的要寫入緩存RAM202的數(shù)據(jù)為X(n),數(shù)據(jù)X(n)是串行輸出并且具有一定的格式,例如可以假設(shè)X(n)的數(shù)據(jù)格式為:A0A1…………Am-2Am-1B0B1…………Bm-2Bm-1C0C1…………Cm-2Cm-1D0D1…………Dm-2Dm-1E0E1…………Em-2Em-1F0F1…………Fm-2Fm-1G0G1…………Gm-2Gm-1H0H1…………Hm-2Hm-1AmAm+1…………A2m-2A2m-1,…………其中m為前級(jí)處理模塊201每次處理的數(shù)據(jù)點(diǎn)數(shù)。數(shù)據(jù)X(n)按照地址控制模塊206生成的寫地址存入到緩存RAM202中,然后再按照地址控制模塊206生成的讀地址把數(shù)據(jù)讀出來(lái),讀出來(lái)的數(shù)據(jù)Y(n),例如假設(shè)它的格式為:A0B0C0D0E0F0G0H0A1B1C1D1E1F1G1H1……………………Am-2Bm-2Cm-2Dm-2Em-2Fm-2Gm-2Hm-2Am-1Bm-1Cm-1Dm-1Em-1Fm-1Gm-1Hm-1AmBmCmDmEmFmGmHm……………………A2m-1B2m-1C2m-1D2m-1E2m-1F2m-1G2m-1H2m-1………………………………。從數(shù)據(jù)流的變化上來(lái)看,數(shù)據(jù)僅僅進(jìn)行了重新排列,帶寬并未改變。因此,只使用一個(gè)緩存是有可能實(shí)現(xiàn)相同的功能的?,F(xiàn)有技術(shù)中是因?yàn)椤绊樞驅(qū)懭搿边@一設(shè)計(jì)導(dǎo)致了不能使用單一緩存實(shí)現(xiàn)操作的原因。本發(fā)明將數(shù)據(jù)寫入RAM的方式修改為“把輸入數(shù)據(jù)存儲(chǔ)到讀空后的空閑RAM單元”,從而克服上述技術(shù)問(wèn)題。本發(fā)明的讀寫地址生成實(shí)現(xiàn)原理:(1)在FPGA內(nèi)開(kāi)辟一塊緩存RAM空間,RAM的大小等于最小緩存量×數(shù)據(jù)位寬,最小緩存量為要完成輸入、輸出數(shù)據(jù)的數(shù)據(jù)格式轉(zhuǎn)換所需要的最小RAM使用量,緩存數(shù)據(jù)的最小緩存量用r表示。(2)把串行輸入的數(shù)據(jù)X(n)進(jìn)行分組,每組數(shù)據(jù)量的大小為要緩存數(shù)據(jù)的最小緩存量。組序號(hào)從序號(hào)1開(kāi)始,即1,2,3,4,5,…,k(k=總數(shù)據(jù)量/r),每組數(shù)據(jù)在組內(nèi)的編號(hào)為0,1,2,3,…,r-1。(3)對(duì)于緩存RAM,它的輸入數(shù)據(jù)X(n)的數(shù)據(jù)格式和輸出數(shù)據(jù)Y(n)的數(shù)據(jù)格式不同,但輸入數(shù)據(jù)X(n)和輸出數(shù)據(jù)Y(n)之間的數(shù)據(jù)格式具有一定的相關(guān)性,這種相關(guān)性可以應(yīng)用于緩存RAM的寫地址轉(zhuǎn)換模塊和讀地址轉(zhuǎn)換模塊,這種相關(guān)性具有一定函數(shù)特性,相關(guān)可以用一函數(shù)來(lái)實(shí)現(xiàn),即寫/讀地址轉(zhuǎn)換模塊的輸入地址和輸出地址之間關(guān)系可以用一函數(shù)來(lái)實(shí)現(xiàn),設(shè)這個(gè)函數(shù)為y=f(x,z),其中x為寫/讀地址轉(zhuǎn)換模塊的輸入地址,即該數(shù)據(jù)在每組數(shù)據(jù)內(nèi)的編號(hào),z為組序號(hào),y為寫/讀地址轉(zhuǎn)換模塊的輸出地址,即緩存RAM的寫地址和讀地址。函數(shù)y=f(x,z)的具體形式根據(jù)數(shù)據(jù)重排的具體方式而定。函數(shù)y=f(x,z)可以通過(guò)FPGA中的邏輯資源實(shí)現(xiàn)。(4)根據(jù)輸入數(shù)據(jù)的輸入序列n(n=0,1,2,……,)與存儲(chǔ)位置的規(guī)律分析得到寫地址與n之間的函數(shù)關(guān)系f(n),用此函數(shù)產(chǎn)生寫地址。,按照寫地址把輸入數(shù)據(jù)存儲(chǔ)到讀空后的空閑RAM單元,由于RAM需要緩存的數(shù)據(jù)量為要緩存數(shù)據(jù)的最小緩存量r,故寫地址的位寬為log2(r)。假設(shè)對(duì)于一組數(shù)據(jù),輸入寫地址轉(zhuǎn)換模塊204的寫地址為ADD_W,寫地址轉(zhuǎn)換模塊204輸出的寫緩存RAM的地址表示為ADD_W’=f(ADD_W,z),用ADD_W’作為緩存RAM的寫入地址。(5)等第一組數(shù)據(jù)的最后一個(gè)數(shù)據(jù)寫入緩存RAM空間后,讀使能有效,然后按照讀地址依次讀取數(shù)據(jù),讀地址的位寬也為log2(r)。假設(shè)對(duì)于一組數(shù)據(jù),輸入讀地址轉(zhuǎn)換模塊205的讀地址為ADD_R,讀地址轉(zhuǎn)換模塊205輸出的讀緩存RAM的地址表示為ADD_R’=f(ADD_R,z+1),用ADD_R’作為緩存RAM的讀出地址。(6)讀/寫地址轉(zhuǎn)換模塊可以復(fù)用,當(dāng)讀操作開(kāi)始后,讀地址要先于寫地址送于RAM端口,即每次先讀取緩存RAM中某一個(gè)位置的數(shù)據(jù),然后再向該位置寫入新數(shù)據(jù)。實(shí)例1:輸入數(shù)據(jù)X(n)的輸入格式為:A0A1…………Am-2Am-1………………………………AmAm+1…………A2m-2A2m-1………………………………A2mA2m+1…………A3m-2A3m-1………………………………,讀出數(shù)據(jù)Y(n)格式為:Am-1Am-2…………A1A0………………………………A2m-1A2m-2…………Am+1Am………………………………A3m-1A3m-2…………A2m+1A2m………………………………時(shí)的RAM緩存示例;(1)根據(jù)輸入和輸出數(shù)據(jù)的格式,在FPGA內(nèi)開(kāi)辟一塊緩存RAM空間,RAM的深度等于最小緩存量,即m。(2)把串行輸入的數(shù)據(jù)X(n)進(jìn)行分組,組序號(hào)從序號(hào)1開(kāi)始,即1,2,3,4,5,…,k(k=總數(shù)據(jù)量/m),每組數(shù)據(jù)在組內(nèi)的編號(hào)為0,1,2,3,…,m-1;(3)由于RAM需要緩存的數(shù)據(jù)量為要緩存數(shù)據(jù)的最小緩存量m,故寫地址的位寬為log2m位,假設(shè)每組數(shù)據(jù)寫地址轉(zhuǎn)換模塊的輸入地址為ADD_W,即該數(shù)據(jù)在每組數(shù)據(jù)內(nèi)的編號(hào),寫緩存RAM的地址(即寫地址轉(zhuǎn)換模塊的輸出地址)即寫地址轉(zhuǎn)換模塊的輸入地址和輸出地址之間關(guān)系函數(shù)(4)由于RAM需要緩存的數(shù)據(jù)量為要緩存數(shù)據(jù)的最小緩存量m,故讀地址的位寬為log2m位,假設(shè)每組數(shù)據(jù)讀地址轉(zhuǎn)換模塊的輸入地址為ADD_R,即該數(shù)據(jù)在每組數(shù)據(jù)內(nèi)的編號(hào),讀緩存RAM的地址(即讀地址轉(zhuǎn)換模塊的輸出地址)即讀地址轉(zhuǎn)換模塊的輸入地址和輸出地址之間關(guān)系函數(shù)實(shí)例2:輸入數(shù)據(jù)X(n)的輸入格式為:A0A1…………Am-2Am-1B0B1…………Bm-2Bm-1C0C1…………Cm-2Cm-1D0D1…………Dm-2Dm-1E0E1…………Em-2Em-1F0F1…………Fm-2Fm-1G0G1…………Gm-2Gm-1H0H1…………Hm-2Hm-1AmAm+1…………A2m-2A2m-1,………………………………,讀出數(shù)據(jù)Y(n)格式為:A0B0C0D0E0F0G0H0A1B1C1D1E1F1G1H1……………………Am-2Bm-2Cm-2Dm-2Em-2Fm-2Gm-2Hm-2Am-1Bm-1Cm-1Dm-1Em-1Fm-1Gm-1Hm-1AmBmCmDmEmFmGmHm……………………A2m-1B2m-1C2m-1D2m-1E2m-1F2m-1G2m-1H2m-1………………………………,m=2048時(shí)的RAM緩存示例。(1)根據(jù)輸入和輸出數(shù)據(jù)的格式,在FPGA內(nèi)開(kāi)辟一塊緩存RAM空間,RAM的深度等于最小緩存量,即2048×8=16384。(2)把串行輸入的數(shù)據(jù)X(n)進(jìn)行分組,組序號(hào)從序號(hào)1開(kāi)始,即1,2,3,4,5,…,k(k=總數(shù)據(jù)量/16384),每組數(shù)據(jù)在組內(nèi)的編號(hào)為0,1,2,3,…,16383;(3)由于RAM需要緩存的數(shù)據(jù)量為要緩存數(shù)據(jù)的最小緩存量16384,故寫地址的位寬為11位,假設(shè)每組數(shù)據(jù)寫地址轉(zhuǎn)換模塊的輸入地址為ADD_W,即該數(shù)據(jù)在每組數(shù)據(jù)內(nèi)的編號(hào),寫緩存RAM的地址(即寫地址轉(zhuǎn)換模塊的輸出地址)為對(duì)ADD_W偏移循環(huán)左移11×(z-1)位,即寫地址轉(zhuǎn)換模塊的輸入地址和輸出地址之間關(guān)系函數(shù)ADD_W’=f(ADD_W,z),就是把數(shù)據(jù)在組內(nèi)序號(hào)(即寫地址轉(zhuǎn)換模塊的輸入地址ADD_W)在組內(nèi)的偏移循環(huán)左移11×(z-1)位,數(shù)據(jù)實(shí)際的寫入地址為組內(nèi)偏移量循環(huán)左移11位×(寫入組數(shù)-1)。(4)由于RAM需要緩存的數(shù)據(jù)量為要緩存數(shù)據(jù)的最小緩存量16384,故讀地址的位寬為11位,假設(shè)每組數(shù)據(jù)讀地址轉(zhuǎn)換模塊的輸入地址為ADD_R,即該數(shù)據(jù)在每組數(shù)據(jù)內(nèi)的編號(hào),讀緩存RAM的地址(即讀地址轉(zhuǎn)換模塊的輸出地址)為對(duì)ADD_R偏移循環(huán)左移11×(z-1)位,即讀地址轉(zhuǎn)換模塊的輸入地址和輸出地址之間關(guān)系函數(shù)ADD_R’=f(ADD_R,z),就是把數(shù)據(jù)在組內(nèi)序號(hào)(即讀地址轉(zhuǎn)換模塊的輸入地址ADD_R)在組內(nèi)的偏移循環(huán)左移11×(z-1)位,數(shù)據(jù)實(shí)際的讀出地址為組內(nèi)偏移量循環(huán)左移11位×(讀出組數(shù)-1)。本發(fā)明實(shí)施例還提出一種數(shù)據(jù)重排方法,包括如下步驟:A、判斷緩存中是否有空閑的最小緩存量,若是,執(zhí)行步驟B;B、記錄將要寫入緩存的按照第一排列方式排列的一組數(shù)據(jù)的組號(hào),生成乒乓緩存的寫地址,根據(jù)乒乓緩存的寫地址以及組號(hào)生成實(shí)際寫入緩存的寫地址;所述一組數(shù)據(jù)的大小等于最小緩存量;C、根據(jù)實(shí)際寫入緩存的寫地址將所述一組數(shù)據(jù)寫入緩存中空閑存儲(chǔ)空間;D、生成乒乓緩存的讀地址,根據(jù)乒乓緩存的讀地址以及組號(hào)生成實(shí)際讀取緩存的讀地址;E、根據(jù)實(shí)際讀取緩存的讀地址將數(shù)據(jù)按照第二排列方式進(jìn)行讀取,將所讀取的數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)空間清空,并返回步驟B。本發(fā)明主要是針對(duì)數(shù)據(jù)基本長(zhǎng)度比較大時(shí)乒乓緩存的方式會(huì)浪費(fèi)大量不必要的RAM資源的情況而設(shè)計(jì)的一種對(duì)連續(xù)數(shù)據(jù)流進(jìn)行數(shù)據(jù)重排節(jié)省RAM的方法。本發(fā)明就是充分利用FPGA內(nèi)部的各種邏輯資源和BRAM資源,通過(guò)使用少量的邏輯資源來(lái)?yè)Q取大量的RAM資源的消耗,本發(fā)明相對(duì)于乒乓緩存的優(yōu)點(diǎn)如下:(1)節(jié)省了一半RAM資源使用量本發(fā)明需要的緩存量只有乒乓緩存方法緩存量的一半RAM資源,特別是在數(shù)據(jù)基本長(zhǎng)度較長(zhǎng)時(shí)能大大節(jié)省FPAG的RAM資源,節(jié)省FPAG的RAM資源是非??捎^的。(2)可以充分利用FPGA內(nèi)部的各種資源由于FPGA中最豐富的是邏輯資源,本發(fā)明正是通過(guò)利用少量的邏輯資源來(lái)?yè)Q取大量的RAM資源的消耗,這樣可以充分利用FPGA中各種資源,用豐富的邏輯資源代替RAM資源,把有限的RAM資源節(jié)省下來(lái)為通信系統(tǒng)中其他模塊使用,能更好地優(yōu)化FPGA中的資源優(yōu)化。(3)數(shù)據(jù)緩存的讀寫地址生成結(jié)構(gòu)規(guī)則本發(fā)明的緩存RAM的讀寫操作易控制,只需通過(guò)對(duì)實(shí)際的寫入地址進(jìn)行簡(jiǎn)單轉(zhuǎn)換就能完成新地址的生成,并且地址生成操作具有規(guī)律性,結(jié)構(gòu)規(guī)則很適合FPGA的操作靈活的特點(diǎn)。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
宁都县| 临泽县| 庆云县| 方城县| 余干县| 浦北县| 安乡县| 桦南县| 荣昌县| 拉孜县| 武胜县| 镇雄县| 钟山县| 阿拉善盟| 泉州市| 广宗县| 共和县| 万安县| 微博| 剑阁县| 东至县| 曲麻莱县| 镇赉县| 昭通市| 营山县| 镇原县| 太湖县| 方城县| 永福县| 岫岩| 金沙县| 叶城县| 太仓市| 安庆市| 汽车| 桃江县| 枣阳市| 谢通门县| 无棣县| 新郑市| 彭泽县|