一種基于fpga的數(shù)據(jù)重組方法
【專利摘要】本發(fā)明提供一種基于FPGA的數(shù)據(jù)重組方法,步驟一:計(jì)算相關(guān)參數(shù)。求出原始數(shù)據(jù)位寬和目標(biāo)數(shù)據(jù)位寬的最小公倍數(shù),并求出最小公倍數(shù)與兩個(gè)位寬值的商。步驟二:構(gòu)建相應(yīng)的數(shù)據(jù)重組裝置。根據(jù)步驟一中求出的參數(shù),在FPGA中構(gòu)建相應(yīng)的數(shù)據(jù)組合單元、數(shù)據(jù)緩存單元以及數(shù)據(jù)拆分單元,以及鎖相環(huán);步驟三:?jiǎn)?dòng)數(shù)據(jù)重組流程。采用上述方案,當(dāng)?shù)臀粚挼脑紨?shù)據(jù)重組為高位寬的目標(biāo)數(shù)據(jù)時(shí),不會(huì)由于增加無效位導(dǎo)致冗余率增加,也不會(huì)給后端接口的實(shí)現(xiàn)增加時(shí)序上的難度;當(dāng)高位寬的原始數(shù)據(jù)重組為低位寬的目標(biāo)數(shù)據(jù)時(shí),不會(huì)因?yàn)閯h減有效位降低原始數(shù)據(jù)的精度。并且該方法能夠?qū)崿F(xiàn)任意位寬比下的數(shù)據(jù)重組。
【專利說明】—種基于FPGA的數(shù)據(jù)重組方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于數(shù)據(jù)重組【技術(shù)領(lǐng)域】,尤其涉及的是一種基于FPGA的數(shù)據(jù)重組方法。
【背景技術(shù)】
[0002]在電磁信號(hào)監(jiān)測(cè)與接收設(shè)備中,對(duì)感興趣的信號(hào)進(jìn)行監(jiān)聽和記錄是一項(xiàng)重要的功能。隨著電子技術(shù)的發(fā)展,使得在一段頻段內(nèi),對(duì)高頻模擬信號(hào)進(jìn)行高速采樣,并對(duì)采樣后的高速數(shù)據(jù)進(jìn)行實(shí)時(shí)存儲(chǔ)變?yōu)榭赡?。在現(xiàn)實(shí)中,采樣后的高速數(shù)據(jù)位寬可能小于存儲(chǔ)器的對(duì)外接口位寬,也可能大于存儲(chǔ)器的對(duì)外接口位寬,這就需要一種數(shù)據(jù)重組方法,將一種位寬的原始數(shù)據(jù)轉(zhuǎn)換為另外一種位寬的目標(biāo)數(shù)據(jù)。例如,在某項(xiàng)電磁信號(hào)監(jiān)測(cè)設(shè)備中,有兩塊高速采集與存儲(chǔ)電路板,其中電路板I的ADC芯片數(shù)據(jù)位寬為12位,存儲(chǔ)器接口位寬為16位,電路板2的ADC芯片數(shù)據(jù)位寬為20位,存儲(chǔ)器接口位寬為16位,在數(shù)據(jù)存儲(chǔ)時(shí),電路板I中必須將12位位寬的原始數(shù)據(jù)轉(zhuǎn)換為16位位寬的目標(biāo)數(shù)據(jù),電路板2中必須將20位位寬的原始數(shù)據(jù)轉(zhuǎn)換為16位位寬的目標(biāo)數(shù)據(jù)。
[0003]現(xiàn)有的數(shù)據(jù)重組方法主要有兩種:一是通過FIFO進(jìn)行位寬的變換,從而實(shí)現(xiàn)數(shù)據(jù)的重組,比如8位位寬的原始數(shù)據(jù)可以通過數(shù)據(jù)寬度8:16的FIFO重組為16位位寬的目標(biāo)數(shù)據(jù);二是在原始數(shù)據(jù)上直接進(jìn)行位寬拓展,當(dāng)原始數(shù)據(jù)位寬小于目標(biāo)數(shù)據(jù)位寬時(shí),通過增加無效位實(shí)現(xiàn)數(shù)據(jù)重組,當(dāng)原始數(shù)據(jù)位寬大于目標(biāo)數(shù)據(jù)位寬時(shí),通過刪減有效位實(shí)現(xiàn)數(shù)據(jù)重組。比如,12位位寬的原始數(shù)據(jù)增加4位的無效位,轉(zhuǎn)換為16位位寬的目標(biāo)數(shù)據(jù),20位位寬的原始數(shù)據(jù)通過刪減4位的有效位,轉(zhuǎn)換為16位位寬的目標(biāo)數(shù)據(jù)。
[0004]現(xiàn)有的直接對(duì)原始數(shù)據(jù)進(jìn)行位寬拓展轉(zhuǎn)換為目標(biāo)數(shù)據(jù)的數(shù)據(jù)重組方法具有很大的缺點(diǎn),主要表現(xiàn)在:
[0005]I)現(xiàn)有的FIFO只能實(shí)現(xiàn)1:2t或者2t:1的位寬比,(t為整數(shù)),因而不能實(shí)現(xiàn)任意位寬比下的數(shù)據(jù)重組。
[0006]2)增加無效位的方法加大了目標(biāo)數(shù)據(jù)的冗余度,同時(shí)也給后端接口的實(shí)現(xiàn)增加了時(shí)序上的難度。12位位寬的原始數(shù)據(jù)通過4位拓展,轉(zhuǎn)換為16位位寬的目標(biāo)數(shù)據(jù)后,目標(biāo)數(shù)據(jù)中有4位是無效的,沒有任何含義,如果目標(biāo)數(shù)據(jù)直接存儲(chǔ)在存儲(chǔ)器中,存儲(chǔ)器的冗余度達(dá)到了 25%,即白白浪費(fèi)了 25%的存儲(chǔ)空間。并且在同樣的時(shí)鐘速率下,數(shù)據(jù)位寬增大了25%,數(shù)據(jù)的吞吐率也增大了 25%,這勢(shì)必給后端接口的實(shí)現(xiàn)增加了時(shí)序上的難度。
[0007]3)刪減無效位的方法降低了數(shù)據(jù)的精度。
[0008]因此,現(xiàn)有技術(shù)存在缺陷,需要改進(jìn)。
【發(fā)明內(nèi)容】
[0009]本發(fā)明所要解決的技術(shù)問題是針對(duì)現(xiàn)有技術(shù)的不足,提供一種基于FPGA的數(shù)據(jù)
重組方法。
[0010]本發(fā)明的技術(shù)方案如下:一種基于FPGA的數(shù)據(jù)重組方法,其中,包括以下步驟:
[0011]步驟1:計(jì)算相關(guān)參數(shù),假定原始數(shù)據(jù)位寬為m位,目標(biāo)數(shù)據(jù)的位寬為η位,求出m和η的最小公倍數(shù)P的值,并且求出最小公倍數(shù)P與原始數(shù)據(jù)位寬為m位數(shù)值的商j及最小公倍數(shù)P與目標(biāo)數(shù)據(jù)位寬η位數(shù)值的商k,則j=p/m, k=p/n ;
[0012]步驟2:構(gòu)建相應(yīng)的數(shù)據(jù)重組裝置,在FPGA中構(gòu)建相應(yīng)的數(shù)據(jù)組合單元、數(shù)據(jù)緩存單元以及數(shù)據(jù)拆分單元,以及鎖相環(huán);
[0013]步驟3:啟動(dòng)數(shù)據(jù)重組流程
[0014]所述的數(shù)據(jù)重組方法,其中,所述步驟I中,所述數(shù)值m、n、p、j和k均為自然數(shù)。
[0015]所述的數(shù)據(jù)重組方法,其中,所述步驟2中,所述鎖相環(huán)的三個(gè)輸出時(shí)鐘設(shè)置與原始數(shù)據(jù)的隨路時(shí)鐘clkin保持相位一致,并且,第一時(shí)鐘clkl=clkin ;第二時(shí)鐘clk2=clkin*m/p ;第三時(shí)鐘 clk3=clkin*m/n。
[0016]所述的數(shù)據(jù)重組方法,其中,所述步驟2中,所述數(shù)據(jù)組合單元由j個(gè)位寬為m位的寄存器組成,其工作時(shí)鐘為clkl,原始數(shù)據(jù)為數(shù)據(jù)組合單元的輸入接口,j個(gè)寄存器的輸出共同作為數(shù)據(jù)組合單元的輸出接口,在數(shù)據(jù)組合單元內(nèi)部,j個(gè)寄存器順序相連,前一個(gè)寄存器的輸出作為下一個(gè)寄存器的輸入。
[0017]所述的數(shù)據(jù)重組方法,其中,所述步驟2中,所述數(shù)據(jù)緩存單元為一個(gè)位寬為P位的寄存器,其工作時(shí)鐘為clk2,其輸入接口與數(shù)據(jù)組合單元的輸出接口相連,其輸出接口與數(shù)據(jù)拆分單元的輸入接口相連。
[0018]所述的數(shù)據(jù)重組方法,其中,所述步驟2中,所述數(shù)據(jù)拆分單元由一個(gè)模k計(jì)數(shù)器和一個(gè)選擇器組成,其工作時(shí)鐘為clk3,其輸入接口與數(shù)據(jù)緩存單元的輸出接口相連,其輸出接口為目標(biāo)數(shù)據(jù)。在數(shù)據(jù)拆分單元內(nèi)部,模k計(jì)數(shù)器從I到k循環(huán)計(jì)數(shù),計(jì)數(shù)器的計(jì)數(shù)值實(shí)時(shí)輸出到選擇器的控制端口,選擇器的輸入接口位寬為P位,輸出接口位寬為η位。
[0019]所述的數(shù)據(jù)重組方法,其中,所述步驟3的具體步驟為:`[0020]步驟301:設(shè)定4個(gè)pop時(shí)間點(diǎn):popl、pop2、pop3和pop4 ;其中popl為數(shù)據(jù)重組起始點(diǎn),pop2與popl間隔一個(gè)clk2時(shí)鐘周期,pop3與pop2間隔一個(gè)clk2時(shí)鐘周期,pop4與pop3間隔一個(gè)clk3時(shí)鐘周期;
[0021]步驟302:在popl時(shí)刻,數(shù)據(jù)組合單元開始工作,相鄰的j個(gè)m位位寬的原始數(shù)據(jù)經(jīng)過數(shù)據(jù)組合單元會(huì)轉(zhuǎn)換為一個(gè)P位位寬的中間數(shù)據(jù),并且送入到數(shù)據(jù)緩存單元;
[0022]步驟303:在pop2時(shí)刻,數(shù)據(jù)緩存單元開始工作,數(shù)據(jù)緩存單元對(duì)中間數(shù)據(jù)進(jìn)行一個(gè)時(shí)鐘周期的緩存之后送入到數(shù)據(jù)拆分單元;
[0023]步驟304:在pop3時(shí)刻,數(shù)據(jù)拆分單元開始工作,模k計(jì)數(shù)器循環(huán)輸出計(jì)數(shù)值1、2…k,并且送入選擇器中。當(dāng)計(jì)數(shù)值為I時(shí),選擇器的輸出等于輸入接口的第I位到第η位,當(dāng)計(jì)數(shù)值等于2時(shí),選擇器的輸出等于輸入接口的第η+1位到第2η位,依次類推,當(dāng)計(jì)數(shù)值等于k時(shí),選擇器的輸出等于輸入接口的最高的η位;
[0024]步驟305:從ρορ4時(shí)刻開始,選擇器的輸出端接口即會(huì)在clk3=clkin*m/n的時(shí)鐘下,輸出連續(xù)的目標(biāo)數(shù)據(jù)。
[0025]采用上述方案:
[0026]1、原始數(shù)據(jù)與目標(biāo)數(shù)據(jù)的吞吐率相等。當(dāng)?shù)臀粚挼脑紨?shù)據(jù)重組為高位寬的目標(biāo)數(shù)據(jù)時(shí),不會(huì)由于增加無效位導(dǎo)致冗余率增加,也不會(huì)給后端接口的實(shí)現(xiàn)增加時(shí)序上的難度;當(dāng)高位寬的原始數(shù)據(jù)重組為低位寬的目標(biāo)數(shù)據(jù)時(shí),不會(huì)因?yàn)閯h減有效位降低原始數(shù)據(jù)的精度。[0027]2、能夠?qū)崿F(xiàn)任意位寬比下的數(shù)據(jù)重組。
【專利附圖】
【附圖說明】
[0028]圖1所示為本發(fā)明方法的基本原理圖。
[0029]圖2所示為圖1中各個(gè)時(shí)鐘的相對(duì)關(guān)系示意圖。
[0030]圖3所示為圖1中的數(shù)據(jù)組合單元結(jié)構(gòu)圖。
[0031]圖4所示為圖1中的數(shù)據(jù)拆分單元結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0032]以下結(jié)合附圖和具體實(shí)施例,對(duì)本發(fā)明進(jìn)行詳細(xì)說明。
[0033]實(shí)施例1
[0034]本發(fā)明拋棄了傳統(tǒng)方法一次轉(zhuǎn)換實(shí)現(xiàn)數(shù)據(jù)重組的思想,而是通過二次轉(zhuǎn)換來實(shí)現(xiàn),其基本思路為:第一次轉(zhuǎn)換時(shí),通過數(shù)據(jù)組合單元,將連續(xù)的多個(gè)原始數(shù)據(jù)轉(zhuǎn)換為一個(gè)高位寬的中間數(shù)據(jù),并且送入數(shù)據(jù)緩存單元。第二次轉(zhuǎn)換時(shí),通過數(shù)據(jù)拆分單元,將中間數(shù)據(jù)轉(zhuǎn)換為連續(xù)的多個(gè)目標(biāo)數(shù)據(jù)。
[0035]本發(fā)明方法的實(shí)現(xiàn)步驟:
[0036]步驟一:計(jì)算相關(guān)參數(shù)。求出原始數(shù)據(jù)位寬和目標(biāo)數(shù)據(jù)位寬的最小公倍數(shù),并求出最小公倍數(shù)與兩個(gè)位寬值的商。
[0037]步驟二:構(gòu)建相應(yīng)的數(shù)據(jù)重組裝置。根據(jù)步驟一中求出的參數(shù),在FPGA中構(gòu)建相應(yīng)的數(shù)據(jù)組合單元、數(shù)據(jù)緩存單元以及數(shù)據(jù)拆分單元,以及鎖相環(huán)。
[0038]步驟三:啟動(dòng)數(shù)據(jù)重組流程。
[0039]為更好的理解本發(fā)明,假定原始數(shù)據(jù)和目標(biāo)數(shù)據(jù)的位寬分別為m位和η位(m和η均為自然數(shù)),結(jié)合圖1、圖2、圖3和圖4,本發(fā)明方法的實(shí)現(xiàn)步驟包括:
[0040]步驟一:計(jì)算相關(guān)參數(shù)。
[0041]求出m和η的最小公倍數(shù)(假定其數(shù)值為P,P為自然數(shù)),并且求出最小公倍數(shù)與兩個(gè)位寬數(shù)值的商(假定其數(shù)值分別為j和k,即j=p/m,k=p/n, j和k均為自然數(shù))。
[0042]步驟二:構(gòu)建相應(yīng)的數(shù)據(jù)重組裝置。
[0043]在FPGA中構(gòu)建一個(gè)鎖相環(huán)。鎖相環(huán)的三個(gè)輸出時(shí)鐘除了與原始數(shù)據(jù)的隨路時(shí)鐘clkin保持相位一致外,還存在以下的頻率關(guān)系:clkl=clkin、clk2=clkin*m/p、clk3=clkin*m/n。
[0044]在FPGA中構(gòu)建j個(gè)位寬為m位的寄存器,分別為寄存器1、寄存器2…寄存器j。j個(gè)寄存器順序相連,前一個(gè)寄存器的輸出作為下一個(gè)寄存器的輸入。這j個(gè)寄存器共同組成了數(shù)據(jù)組合單元,其工作時(shí)鐘為clkl,原始數(shù)據(jù)為數(shù)據(jù)組合單元的輸入接口,j個(gè)寄存器的輸出共同作為數(shù)據(jù)組合單元的輸出接口。
[0045]在FPGA中構(gòu)建一個(gè)位寬為P位的寄存器作為數(shù)據(jù)緩存單元,其工作時(shí)鐘為clk2,其輸入接口與數(shù)據(jù)組合單元的輸出接口相連,其輸出接口與數(shù)據(jù)拆分單元的輸入接口相連。
[0046]在FPGA中構(gòu)建一個(gè)模k計(jì)數(shù)器和一個(gè)選擇器,二者共同組成了數(shù)據(jù)拆分單元。數(shù)據(jù)組合單元的工作時(shí)鐘為clk3,其輸入接口與數(shù)據(jù)緩存單元的輸出接口相連,其輸出接口為目標(biāo)數(shù)據(jù)。其中,計(jì)數(shù)器從I到k循環(huán)計(jì)數(shù),計(jì)數(shù)器的計(jì)數(shù)值實(shí)時(shí)輸出到選擇器的控制端口,選擇器的輸入接口位寬為P位,輸出接口位寬為η位。
[0047]步驟三:啟動(dòng)數(shù)據(jù)重組流程。
[0048]設(shè)定4個(gè)pop時(shí)間點(diǎn):popl、pop2、pop3和pop4。其中popl為數(shù)據(jù)重組起始點(diǎn),pop2與popl間隔一個(gè)clk2時(shí)鐘周期,pop3與pop2間隔一個(gè)clk2時(shí)鐘周期,pop4與pop3間隔一個(gè)clk3時(shí)鐘周期。
[0049]在popl時(shí)刻,數(shù)據(jù)組合單元開始工作,相鄰的j個(gè)m位位寬的原始數(shù)據(jù)經(jīng)過數(shù)據(jù)組合單元會(huì)轉(zhuǎn)換為一個(gè)P位位寬的中間數(shù)據(jù),并且送入到數(shù)據(jù)緩存單元。
[0050]在pop2時(shí)刻,數(shù)據(jù)緩存單元開始工作,數(shù)據(jù)緩存單元對(duì)中間數(shù)據(jù)進(jìn)行一個(gè)時(shí)鐘周期的緩存之后送入到數(shù)據(jù)拆分單元。
[0051]在pop3時(shí)刻,數(shù)據(jù)拆分單元開始工作,模k計(jì)數(shù)器循環(huán)輸出計(jì)數(shù)值l、2-k,并且送入選擇器中。當(dāng)計(jì)數(shù)值為I時(shí),選擇器的輸出等于輸入接口的第I位到第η位,當(dāng)計(jì)數(shù)值等于2時(shí),選擇器的輸出等于輸入接口的第η+1位到第2η位,依次類推,當(dāng)計(jì)數(shù)值等于k時(shí),選擇器的輸出等于輸入接口的最高的η位。
[0052]從ρορ4時(shí)刻開始,選擇器的輸出端接口即會(huì)在clk3=clkin*m/n的時(shí)鐘下,輸出連續(xù)的目標(biāo)數(shù)據(jù)。
[0053]特殊地,當(dāng)m=12, n=16時(shí),即12位位寬的原始數(shù)據(jù)在時(shí)鐘clkin下,重組為16位位寬的目標(biāo)數(shù)據(jù)時(shí),上述步驟中的參數(shù)p=48, j=4, k=3o該特例是原始數(shù)據(jù)位寬小于目標(biāo)數(shù)據(jù)位寬的一種特例。
[0054]特殊地,當(dāng)m=20, n=16時(shí),即20位位寬的原始數(shù)據(jù)在時(shí)鐘clkin下,重組為16位位寬的目標(biāo)數(shù)據(jù)時(shí),上述步驟中的參數(shù)P=80, j=4,k=5o該特例是原始數(shù)據(jù)位寬大于目標(biāo)數(shù)據(jù)位寬的一種特例。
[0055]需要說明的是,依據(jù)本發(fā)明方法,只需要通過計(jì)算相關(guān)參數(shù)并靈活地設(shè)計(jì)相應(yīng)的數(shù)據(jù)重組裝置,即可以實(shí)現(xiàn)任意位寬比下的數(shù)據(jù)重組。
[0056]實(shí)施例2
[0057]在上述實(shí)施例的基礎(chǔ)上,對(duì)本發(fā)明進(jìn)一步說明,本發(fā)明提供一種基于FPGA的數(shù)據(jù)重組方法,其中,包括以下步驟:
[0058]步驟1:計(jì)算相關(guān)參數(shù),假定原始數(shù)據(jù)位寬為m位,目標(biāo)數(shù)據(jù)的位寬為η位,求出m和η的最小公倍數(shù)P的值,并且求出最小公倍數(shù)P與原始數(shù)據(jù)位寬為m位數(shù)值的商j及最小公倍數(shù)P與目標(biāo)數(shù)據(jù)位寬η位數(shù)值的商k,則j=p/m, k=p/n ;
[0059]步驟2:構(gòu)建相應(yīng)的數(shù)據(jù)重組裝置,在FPGA中構(gòu)建相應(yīng)的數(shù)據(jù)組合單元、數(shù)據(jù)緩存單元以及數(shù)據(jù)拆分單元,以及鎖相環(huán);
[0060]步驟3:啟動(dòng)數(shù)據(jù)重組流程。
[0061]所述步驟I中,所述數(shù)值m、n、p、j和k均為自然數(shù)。
[0062]所述步驟2中,所述鎖相環(huán)的三個(gè)輸出時(shí)鐘設(shè)置與原始數(shù)據(jù)的隨路時(shí)鐘clkin保持相位一致,并且,第一時(shí)鐘clkl=clkin ;第二時(shí)鐘clk2=clkin*m/p ;第三時(shí)鐘clk3=clkin*m/n。
[0063]優(yōu)選的,所述步驟2中,所述數(shù)據(jù)組合單元由j個(gè)位寬為m位的寄存器組成,其工作時(shí)鐘為clkl,原始數(shù)據(jù)為數(shù)據(jù)組合單元的輸入接口,j個(gè)寄存器的輸出共同作為數(shù)據(jù)組合單元的輸出接口,在數(shù)據(jù)組合單元內(nèi)部,j個(gè)寄存器順序相連,前一個(gè)寄存器的輸出作為下一個(gè)寄存器的輸入。
[0064]優(yōu)選的,所述步驟2中,所述數(shù)據(jù)緩存單元為一個(gè)位寬為P位的寄存器,其工作時(shí)鐘為clk2,其輸入接口與數(shù)據(jù)組合單元的輸出接口相連,其輸出接口與數(shù)據(jù)拆分單元的輸入接口相連。
[0065]優(yōu)選的,所述步驟2中,所述數(shù)據(jù)拆分單元由一個(gè)模k計(jì)數(shù)器和一個(gè)選擇器組成,其工作時(shí)鐘為clk3,其輸入接口與數(shù)據(jù)緩存單元的輸出接口相連,其輸出接口為目標(biāo)數(shù)據(jù)。在數(shù)據(jù)拆分單元內(nèi)部,模k計(jì)數(shù)器從I到k循環(huán)計(jì)數(shù),計(jì)數(shù)器的計(jì)數(shù)值實(shí)時(shí)輸出到選擇器的控制端口,選擇器的輸入接口位寬為P位,輸出接口位寬為η位。
[0066]所述步驟3的具體步驟為:
[0067]步驟301:設(shè)定4個(gè)pop時(shí)間點(diǎn):popl、pop2、pop3和pop4 ;其中popl為數(shù)據(jù)重組起始點(diǎn),pop2與popl間隔一個(gè)clk2時(shí)鐘周期,pop3與pop2間隔一個(gè)clk2時(shí)鐘周期,pop4與pop3間隔一個(gè)clk3時(shí)鐘周期;
[0068]步驟302:在popl時(shí)刻,數(shù)據(jù)組合單元開始工作,相鄰的j個(gè)m位位寬的原始數(shù)據(jù)經(jīng)過數(shù)據(jù)組合單元會(huì)轉(zhuǎn)換為一個(gè)P位位寬的中間數(shù)據(jù),并且送入到數(shù)據(jù)緩存單元;
[0069]步驟303:在pop2時(shí)刻,數(shù)據(jù)緩存單元開始工作,數(shù)據(jù)緩存單元對(duì)中間數(shù)據(jù)進(jìn)行一個(gè)時(shí)鐘周期的緩存之后送入到數(shù)據(jù)拆分單元;
[0070]步驟304:在p op3時(shí)刻,數(shù)據(jù)拆分單元開始工作,模k計(jì)數(shù)器循環(huán)輸出計(jì)數(shù)值1、2…k,并且送入選擇器中。當(dāng)計(jì)數(shù)值為I時(shí),選擇器的輸出等于輸入接口的第I位到第η位,當(dāng)計(jì)數(shù)值等于2時(shí),選擇器的輸出等于輸入接口的第η+1位到第2η位,依次類推,當(dāng)計(jì)數(shù)值等于k時(shí),選擇器的輸出等于輸入接口的最高的η位;
[0071]步驟305:從ρορ4時(shí)刻開始,選擇器的輸出端接口即會(huì)在clk3=clkin*m/n的時(shí)鐘下,輸出連續(xù)的目標(biāo)數(shù)據(jù)。
[0072]采用上述方案:1、原始數(shù)據(jù)與目標(biāo)數(shù)據(jù)的吞吐率相等。當(dāng)?shù)臀粚挼脑紨?shù)據(jù)重組為高位寬的目標(biāo)數(shù)據(jù)時(shí),不會(huì)由于增加無效位導(dǎo)致冗余率增加,也不會(huì)給后端接口的實(shí)現(xiàn)增加時(shí)序上的難度;當(dāng)高位寬的原始數(shù)據(jù)重組為低位寬的目標(biāo)數(shù)據(jù)時(shí),不會(huì)因?yàn)閯h減有效位降低原始數(shù)據(jù)的精度。2、能夠?qū)崿F(xiàn)任意位寬比下的數(shù)據(jù)重組。
[0073]應(yīng)當(dāng)理解的是,對(duì)本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進(jìn)或變換,而所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。
【權(quán)利要求】
1.一種基于FPGA的數(shù)據(jù)重組方法,其特征在于,包括以下步驟: 步驟1:計(jì)算相關(guān)參數(shù),假定原始數(shù)據(jù)位寬為m位,目標(biāo)數(shù)據(jù)的位寬為η位,求出m和η的最小公倍數(shù)P的值,并且求出最小公倍數(shù)P與原始數(shù)據(jù)位寬為m位數(shù)值的商j及最小公倍數(shù)P與目標(biāo)數(shù)據(jù)位寬η位數(shù)值的商k,則j=p/m, k=p/n ; 步驟2:構(gòu)建相應(yīng)的數(shù)據(jù)重組裝置,在FPGA中構(gòu)建相應(yīng)的數(shù)據(jù)組合單元、數(shù)據(jù)緩存單元以及數(shù)據(jù)拆分單元,以及鎖相環(huán); 步驟3:啟動(dòng)數(shù)據(jù)重組流程。
2.如權(quán)利要求1所述的數(shù)據(jù)重組方法,其特征在于,所述步驟I中,所述數(shù)值m、n、p、j和k均為自然數(shù)。
3.如權(quán)利要求1所述的數(shù)據(jù)重組方法,其特征在于,所述步驟2中,所述鎖相環(huán)的三個(gè)輸出時(shí)鐘設(shè)置與原始數(shù)據(jù)的隨路時(shí)鐘clkin保持相位一致,并且,第一時(shí)鐘Clkl=Clkin ;第二時(shí)鐘 clk2=clkin*m/p ;第三時(shí)鐘 clk3=clkin*m/n。
4.如權(quán)利要求3所述的數(shù)據(jù)重組方法,其特征在于,所述步驟2中,所述數(shù)據(jù)組合單元由j個(gè)位寬為m位的寄存器組成,其工作時(shí)鐘為clkl,原始數(shù)據(jù)為數(shù)據(jù)組合單元的輸入接口,j個(gè)寄存器的輸出共同作為數(shù)據(jù)組合單元的輸出接口,在數(shù)據(jù)組合單元內(nèi)部,j個(gè)寄存器順序相連,前一個(gè)寄存器的輸出作為下一個(gè)寄存器的輸入。
5.如權(quán)利要求4所述的數(shù)據(jù)重組方法,其特征在于,所述步驟2中,所述數(shù)據(jù)緩存單元為一個(gè)位寬為P位的寄存器,其工作時(shí)鐘為Clk2,其輸入接口與數(shù)據(jù)組合單元的輸出接口相連,其輸出接口與數(shù)據(jù)拆分單元的輸入接口相連。
6.如權(quán)利要求5所述的`數(shù)據(jù)重組方法,其特征在于,所述步驟2中,所述數(shù)據(jù)拆分單元由一個(gè)模k計(jì)數(shù)器和一個(gè)選擇器組成,其工作時(shí)鐘為clk3,其輸入接口與數(shù)據(jù)緩存單元的輸出接口相連,其輸出接口為目標(biāo)數(shù)據(jù)。在數(shù)據(jù)拆分單元內(nèi)部,模k計(jì)數(shù)器從I到k循環(huán)計(jì)數(shù),計(jì)數(shù)器的計(jì)數(shù)值實(shí)時(shí)輸出到選擇器的控制端口,選擇器的輸入接口位寬為P位,輸出接口位寬為η位。
7.如權(quán)利要求1所述的數(shù)據(jù)重組方法,其特征在于,所述步驟3的具體步驟為: 步驟301:設(shè)定4個(gè)pop時(shí)間點(diǎn):popl、pop2、pop3和pop4 ;其中pop I為數(shù)據(jù)重組起始點(diǎn),pop2與pop I間隔一個(gè)clk2時(shí)鐘周期,pop3與pop2間隔一個(gè)clk2時(shí)鐘周期,pop4與pop3間隔一個(gè)clk3時(shí)鐘周期; 步驟302:在popl時(shí)刻,數(shù)據(jù)組合單元開始工作,相鄰的j個(gè)m位位寬的原始數(shù)據(jù)經(jīng)過數(shù)據(jù)組合單元會(huì)轉(zhuǎn)換為一個(gè)P位位寬的中間數(shù)據(jù),并且送入到數(shù)據(jù)緩存單元; 步驟303:在pop2時(shí)刻,數(shù)據(jù)緩存單元開始工作,數(shù)據(jù)緩存單元對(duì)中間數(shù)據(jù)進(jìn)行一個(gè)時(shí)鐘周期的緩存之后送入到數(shù)據(jù)拆分單元; 步驟304:在pop3時(shí)刻,數(shù)據(jù)拆分單元開始工作,模k計(jì)數(shù)器循環(huán)輸出計(jì)數(shù)值1、2…k,并且送入選擇器中。當(dāng)計(jì)數(shù)值為I時(shí),選擇器的輸出等于輸入接口的第I位到第η位,當(dāng)計(jì)數(shù)值等于2時(shí),選擇器的輸出等于輸入接口的第η+1位到第2η位,依次類推,當(dāng)計(jì)數(shù)值等于k時(shí),選擇器的輸出等于輸入接口的最高的η位; 步驟305:從ρορ4時(shí)刻開始,選擇器的輸出端接口即會(huì)在clk3=clkin*m/n的時(shí)鐘下,輸出連續(xù)的目標(biāo)數(shù)據(jù)。
【文檔編號(hào)】G05B19/042GK103676742SQ201310687624
【公開日】2014年3月26日 申請(qǐng)日期:2013年12月16日 優(yōu)先權(quán)日:2013年12月16日
【發(fā)明者】孟慶立, 許建華, 張超, 杜會(huì)文, 張世磊 申請(qǐng)人:中國電子科技集團(tuán)公司第四十一研究所