1.一種基于FPGA的數(shù)據(jù)流除法運(yùn)行裝置,數(shù)據(jù)流a0,a1,…,ai-1作為輸入,其長(zhǎng)度為i,每個(gè)數(shù)據(jù)對(duì)應(yīng)的位寬長(zhǎng)度是A;數(shù)據(jù)流b0,b1,…,bi-1作為輸入,其長(zhǎng)度為i,每個(gè)數(shù)據(jù)對(duì)應(yīng)的位寬長(zhǎng)度是B;數(shù)據(jù)流c0,c1,…,ci-1作為輸出,其長(zhǎng)度為i,每個(gè)數(shù)據(jù)對(duì)應(yīng)的位寬長(zhǎng)度是C,其特征在于:包括以下模塊,
取絕對(duì)值模塊,用于求取數(shù)據(jù)流b0,b1,…,bi-1的每個(gè)數(shù)據(jù)的絕對(duì)值,得到新的數(shù)據(jù)流,即為|b0|,|b1|,…,|bi-1|;
擴(kuò)展位寬模塊,用于擴(kuò)展數(shù)據(jù)流|b0|,|b1|,…,|bi-1|的位寬,得到新的數(shù)據(jù)流b′0,b′1,…,bi′-1,使數(shù)據(jù)流b′0,b′1,…,b′i-1的當(dāng)前數(shù)據(jù)b′k的位寬長(zhǎng)度與數(shù)據(jù)流a0,a1,…,ai-1的當(dāng)前數(shù)據(jù)ak的位寬長(zhǎng)度相等;
比特位分組模塊,用于根據(jù)數(shù)據(jù)流a0,a1,…,ai-1當(dāng)前數(shù)據(jù)ak的位寬長(zhǎng)度A和預(yù)設(shè)的分組值s,將數(shù)據(jù)流b′0,b′1,…,b′i-1當(dāng)前數(shù)據(jù)b′k按照比特位分組,以s個(gè)比特位為一組,分成A/s組;
比特位判斷模塊,用于從每組的高位開(kāi)始,判斷數(shù)據(jù)流b′0,b′1,…,b′i-1的當(dāng)前數(shù)據(jù)b′k對(duì)應(yīng)的比特位的值是否為1,
如果對(duì)應(yīng)值為1,則結(jié)合此比特位的位置信息對(duì)數(shù)據(jù)流a0,a1,…,ai-1的當(dāng)前數(shù)據(jù)ak進(jìn)行截位和拼接處理,并將此組對(duì)應(yīng)的標(biāo)識(shí)設(shè)置為有效,同時(shí)輸出此組此比特位對(duì)應(yīng)的移位索引號(hào);
如果對(duì)應(yīng)值為0,則跳轉(zhuǎn)到此組的下一比特位進(jìn)行判斷,直到此組的最后一個(gè)比特位判斷完畢;如果此組所有比特位對(duì)應(yīng)值都為0,則此組對(duì)應(yīng)的有效標(biāo)識(shí)設(shè)置為無(wú)效,并且此組輸出的數(shù)據(jù)為0,此組比特位對(duì)應(yīng)的移位索引號(hào)也為0;
有效輸出模塊,用于按照先后順序,從第一組開(kāi)始,根據(jù)每組對(duì)應(yīng)的有效標(biāo)志是否有效,得到數(shù)據(jù)流c0,c1,…,ci-1的當(dāng)前數(shù)據(jù)ck;根據(jù)數(shù)據(jù)流a0,a1,…,ai-1和數(shù)據(jù)流b0,b1,…,bi-1的完整輸入,得到最終的數(shù)據(jù)流c0,c1,…,ci-1。
2.根據(jù)權(quán)利要求1所述基于FPGA的數(shù)據(jù)流除法運(yùn)行裝置,其特征在于:比特位判斷模塊中,判斷當(dāng)前數(shù)據(jù)b′k對(duì)應(yīng)的比特位的值是否為1,如果對(duì)應(yīng)值為1,則結(jié)合比特位的位置信息對(duì)數(shù)據(jù)流a0,a1,…,ai-1的當(dāng)前數(shù)據(jù)ak進(jìn)行截位和拼接處理,實(shí)現(xiàn)如下,
設(shè)數(shù)據(jù)流b′0,b′1,…,b′i-1的每個(gè)數(shù)據(jù)位寬長(zhǎng)度是A,當(dāng)前數(shù)據(jù)b′k統(tǒng)計(jì)的第一個(gè)非0值之前數(shù)值0的個(gè)數(shù)為y,數(shù)據(jù)流b′0,b′1,…,b′i-1的每個(gè)數(shù)據(jù)對(duì)應(yīng)的數(shù)值0的個(gè)數(shù)y取值范圍是y大于等于0小于等于A‐1,再經(jīng)過(guò)減法運(yùn)算,得到y(tǒng)的取值范圍是大于等于x-A+1小于等于x,其中x是被減數(shù),x‐A+1的值是負(fù)數(shù);
假設(shè)數(shù)據(jù)流b′0,b′1,…,b′i-1的當(dāng)前第k個(gè)數(shù)據(jù)的當(dāng)前第t個(gè)比特位b′k[t的值為1,并且其屬于分組中的第j組,
如果t的值等于A‐x‐2,則輸出的第j組的數(shù)據(jù)為截取數(shù)據(jù)流a0,a1,…,ai-1的當(dāng)前第k個(gè)數(shù)據(jù)ak的第A‐x‐1位到第0位;
如果t的值大于A‐x‐2,t等于A‐x+m,則輸出的第j組的數(shù)據(jù)為截取數(shù)據(jù)流a0,a1,…,ai-1的當(dāng)前第k個(gè)數(shù)據(jù)ak的第A‐x+m+1到第m+2位,其中m為小于等于x‐2的任意正數(shù);
如果t的值小于A‐x‐2,比如t的值等于A‐x‐n,則輸出的第j組數(shù)據(jù)為截取數(shù)據(jù)流a0,a1,…,ai-1的當(dāng)前第k個(gè)數(shù)據(jù)ak的第A‐x‐n+1位到第0位,并在右側(cè)拼接n‐2個(gè)數(shù)值0。
3.根據(jù)權(quán)利要求1或2所述基于FPGA的數(shù)據(jù)流除法運(yùn)行裝置,其特征在于:數(shù)據(jù)流a0,a1,…,ai-1的每個(gè)數(shù)據(jù)為正或負(fù)或0;數(shù)據(jù)流b0,b1,…,bi-1的每個(gè)數(shù)據(jù)為正或負(fù)或0;數(shù)據(jù)流c0,c1,…,ci-1的每個(gè)數(shù)據(jù)為正或負(fù)或0;
若輸入的數(shù)據(jù)流a0,a1,…,ai-1的當(dāng)前數(shù)據(jù)為0,則輸出的數(shù)據(jù)流c0,c1,…,ci-1的當(dāng)前數(shù)據(jù)也為0;若輸入的數(shù)據(jù)流b0,b1,…,bi-1的當(dāng)前數(shù)據(jù)為0,則輸出的數(shù)據(jù)流c0,c1,…,ci-1的當(dāng)前數(shù)據(jù)的值等于輸入的數(shù)據(jù)流a0,a1,…,ai-1的當(dāng)前數(shù)據(jù)的值。
4.根據(jù)權(quán)利要求1或2所述基于FPGA的數(shù)據(jù)流除法運(yùn)行裝置,其特征在于:數(shù)據(jù)流b0,b1,…,bi-1的每個(gè)數(shù)據(jù)位寬長(zhǎng)度B小于或等于數(shù)據(jù)流a0,a1,…,ai-1的每個(gè)數(shù)據(jù)位寬長(zhǎng)度A。
5.根據(jù)權(quán)利要求3所述基于FPGA的數(shù)據(jù)流除法運(yùn)行裝置,其特征在于:數(shù)據(jù)流b0,b1,…,bi-1的每個(gè)數(shù)據(jù)位寬長(zhǎng)度B小于或等于數(shù)據(jù)流a0,a1,…,ai-1的每個(gè)數(shù)據(jù)位寬長(zhǎng)度A。
6.一種基于FPGA的數(shù)據(jù)流除法運(yùn)行方法,數(shù)據(jù)流a0,a1,…,ai-1作為輸入,其長(zhǎng)度為i,每個(gè)數(shù)據(jù)對(duì)應(yīng)的位寬長(zhǎng)度是A;數(shù)據(jù)流b0,b1,…,bi-1作為輸入,其長(zhǎng)度為i,每個(gè)數(shù)據(jù)對(duì)應(yīng)的位寬長(zhǎng)度是B;數(shù)據(jù)流c0,c1,…,ci-1作為輸出,其長(zhǎng)度為i,每個(gè)數(shù)據(jù)對(duì)應(yīng)的位寬長(zhǎng)度是C,其特征在于:包括以下步驟,
取絕對(duì)值步驟,用于求取數(shù)據(jù)流b0,b1,…,bi-1的每個(gè)數(shù)據(jù)的絕對(duì)值,得到新的數(shù)據(jù)流,即為|b0|,|b1|,…,|bi-1|;
擴(kuò)展位寬步驟,用于擴(kuò)展數(shù)據(jù)流|b0|,|b1|,…,|bi-1|的位寬,得到新的數(shù)據(jù)流b′0,b′1,…,b′i-1,使數(shù)據(jù)流b′0,b′1,…,b′i-1的當(dāng)前數(shù)據(jù)b′k的位寬長(zhǎng)度與數(shù)據(jù)流a0,a1,…,ai-1的當(dāng)前數(shù)據(jù)ak的位寬長(zhǎng)度相等;
比特位分組步驟,用于根據(jù)數(shù)據(jù)流a0,a1,…,ai-1當(dāng)前數(shù)據(jù)ak的位寬長(zhǎng)度A和預(yù)設(shè)的分組值s,將數(shù)據(jù)流b′0,b′1,…,b′i-1當(dāng)前數(shù)據(jù)b′k按照比特位分組,以s個(gè)比特位為一組,分成A/s組;
比特位判斷步驟,用于從每組的高位開(kāi)始,判斷數(shù)據(jù)流b′0,b′1,…,b′i-1的當(dāng)前數(shù)據(jù)b′k對(duì)應(yīng)的比特位的值是否為1,
如果對(duì)應(yīng)值為1,則結(jié)合此比特位的位置信息對(duì)數(shù)據(jù)流a0,a1,…,ai-1的當(dāng)前數(shù)據(jù)ak進(jìn)行截位和拼接處理,并將此組對(duì)應(yīng)的標(biāo)識(shí)設(shè)置為有效,同時(shí)輸出此組此比特位對(duì)應(yīng)的移位索引號(hào);
如果對(duì)應(yīng)值為0,則跳轉(zhuǎn)到此組的下一比特位進(jìn)行判斷,直到此組的最后一個(gè)比特位判斷完畢;如果此組所有比特位對(duì)應(yīng)值都為0,則此組對(duì)應(yīng)的有效標(biāo)識(shí)設(shè)置為無(wú)效,并且此組輸出的數(shù)據(jù)為0,此組比特位對(duì)應(yīng)的移位索引號(hào)也為0;
有效輸出步驟,用于按照先后順序,從第一組開(kāi)始,根據(jù)每組對(duì)應(yīng)的有效標(biāo)志是否有效,得到數(shù)據(jù)流c0,c1,…,ci-1的當(dāng)前數(shù)據(jù)ck;根據(jù)數(shù)據(jù)流a0,a1,…,ai-1和數(shù)據(jù)流b0,b1,…,bi-1的完整輸入,得到最終的數(shù)據(jù)流c0,c1,…,ci-1。
7.根據(jù)權(quán)利要求6所述基于FPGA的數(shù)據(jù)流除法運(yùn)行方法,其特征在于:比特位判斷模塊中,判斷當(dāng)前數(shù)據(jù)b′k對(duì)應(yīng)的比特位的值是否為1,如果對(duì)應(yīng)值為1,則結(jié)合比特位的位置信息對(duì)數(shù)據(jù)流a0,a1,…,ai-1的當(dāng)前數(shù)據(jù)ak進(jìn)行截位和拼接處理,實(shí)現(xiàn)如下,
設(shè)數(shù)據(jù)流b′0,b′1,…,b′i-1的每個(gè)數(shù)據(jù)位寬長(zhǎng)度是A,當(dāng)前數(shù)據(jù)b′k統(tǒng)計(jì)的第一個(gè)非0值之前數(shù)值0的個(gè)數(shù)為y,數(shù)據(jù)流b′0,b′1,…,b′i-1的每個(gè)數(shù)據(jù)對(duì)應(yīng)的數(shù)值0的個(gè)數(shù)y取值范圍是y大于等于0小于等于A‐1,再經(jīng)過(guò)減法運(yùn)算,得到y(tǒng)的取值范圍是大于等于x-A+1小于等于x,其中x是被減數(shù),x‐A+1的值是負(fù)數(shù);
假設(shè)數(shù)據(jù)流b′0,b′1,…,b′i-1的當(dāng)前第k個(gè)數(shù)據(jù)的當(dāng)前第t個(gè)比特位b′k[t]的值為1,并且其屬于分組中的第j組,
如果t的值等于A‐x‐2,則輸出的第j組的數(shù)據(jù)為截取數(shù)據(jù)流a0,a1,…,ai-1的當(dāng)前第k個(gè)數(shù)據(jù)ak的第A‐x‐1位到第0位;
如果t的值大于A‐x‐2,t等于A‐x+m,則輸出的第j組的數(shù)據(jù)為截取數(shù)據(jù)流a0,a1,…,ai-1的當(dāng)前第k個(gè)數(shù)據(jù)ak的第A‐x+m+1到第m+2位,其中m為小于等于x‐2的任意正數(shù);
如果t的值小于A‐x‐2,比如t的值等于A‐x‐n,則輸出的第j組數(shù)據(jù)為截取數(shù)據(jù)流a0,a1,…,ai-1的當(dāng)前第k個(gè)數(shù)據(jù)ak的第A‐x‐n+1位到第0位,并在右側(cè)拼接n‐2個(gè)數(shù)值0。
8.根據(jù)權(quán)利要求6或7所述基于FPGA的數(shù)據(jù)流除法運(yùn)行方法,其特征在于:數(shù)據(jù)流a0,a1,…,ai-1的每個(gè)數(shù)據(jù)為正或負(fù)或0;數(shù)據(jù)流b0,b1,…,bi-1的每個(gè)數(shù)據(jù)為正或負(fù)或0;數(shù)據(jù)流c0,c1,…,ci-1的每個(gè)數(shù)據(jù)為正或負(fù)或0;
若輸入的數(shù)據(jù)流a0,a1,…,ai-1的當(dāng)前數(shù)據(jù)為0,則輸出的數(shù)據(jù)流c0,c1,…,ci-1的當(dāng)前數(shù)據(jù)也為0;若輸入的數(shù)據(jù)流b0,b1,…,bi-1的當(dāng)前數(shù)據(jù)為0,則輸出的數(shù)據(jù)流c0,c1,…,ci-1的當(dāng)前數(shù)據(jù)的值等于輸入的數(shù)據(jù)流a0,a1,…,ai-1的當(dāng)前數(shù)據(jù)的值。
9.根據(jù)權(quán)利要求6或7所述基于FPGA的數(shù)據(jù)流除法運(yùn)行裝置,其特征在于:數(shù)據(jù)流b0,b1,…,bi-1的每個(gè)數(shù)據(jù)位寬長(zhǎng)度B小于或等于數(shù)據(jù)流a0,a1,…,ai-1的每個(gè)數(shù)據(jù)位寬長(zhǎng)度A。
10.根據(jù)權(quán)利要求8所述基于FPGA的數(shù)據(jù)流除法運(yùn)行裝置,其特征在于:數(shù)據(jù)流b0,b1,…,bi-1的每個(gè)數(shù)據(jù)位寬長(zhǎng)度B小于或等于數(shù)據(jù)流a0,a1,…,ai-1的每個(gè)數(shù)據(jù)位寬長(zhǎng)度A。