一种基于FPGA的数据流除法运行装置及方法与流程

文档序号:11133541阅读:来源:国知局

技术特征:

1.一种基于FPGA的数据流除法运行装置,数据流a0,a1,…,ai-1作为输入,其长度为i,每个数据对应的位宽长度是A;数据流b0,b1,…,bi-1作为输入,其长度为i,每个数据对应的位宽长度是B;数据流c0,c1,…,ci-1作为输出,其长度为i,每个数据对应的位宽长度是C,其特征在于:包括以下模块,

取绝对值模块,用于求取数据流b0,b1,…,bi-1的每个数据的绝对值,得到新的数据流,即为|b0|,|b1|,…,|bi-1|;

扩展位宽模块,用于扩展数据流|b0|,|b1|,…,|bi-1|的位宽,得到新的数据流b′0,b′1,…,bi-1,使数据流b′0,b′1,…,b′i-1的当前数据b′k的位宽长度与数据流a0,a1,…,ai-1的当前数据ak的位宽长度相等;

比特位分组模块,用于根据数据流a0,a1,…,ai-1当前数据ak的位宽长度A和预设的分组值s,将数据流b′0,b′1,…,b′i-1当前数据b′k按照比特位分组,以s个比特位为一组,分成A/s组;

比特位判断模块,用于从每组的高位开始,判断数据流b′0,b′1,…,b′i-1的当前数据b′k对应的比特位的值是否为1,

如果对应值为1,则结合此比特位的位置信息对数据流a0,a1,…,ai-1的当前数据ak进行截位和拼接处理,并将此组对应的标识设置为有效,同时输出此组此比特位对应的移位索引号;

如果对应值为0,则跳转到此组的下一比特位进行判断,直到此组的最后一个比特位判断完毕;如果此组所有比特位对应值都为0,则此组对应的有效标识设置为无效,并且此组输出的数据为0,此组比特位对应的移位索引号也为0;

有效输出模块,用于按照先后顺序,从第一组开始,根据每组对应的有效标志是否有效,得到数据流c0,c1,…,ci-1的当前数据ck;根据数据流a0,a1,…,ai-1和数据流b0,b1,…,bi-1的完整输入,得到最终的数据流c0,c1,…,ci-1

2.根据权利要求1所述基于FPGA的数据流除法运行装置,其特征在于:比特位判断模块中,判断当前数据b′k对应的比特位的值是否为1,如果对应值为1,则结合比特位的位置信息对数据流a0,a1,…,ai-1的当前数据ak进行截位和拼接处理,实现如下,

设数据流b′0,b′1,…,b′i-1的每个数据位宽长度是A,当前数据b′k统计的第一个非0值之前数值0的个数为y,数据流b′0,b′1,…,b′i-1的每个数据对应的数值0的个数y取值范围是y大于等于0小于等于A‐1,再经过减法运算,得到y的取值范围是大于等于x-A+1小于等于x,其中x是被减数,x‐A+1的值是负数;

假设数据流b′0,b′1,…,b′i-1的当前第k个数据的当前第t个比特位b′k[t的值为1,并且其属于分组中的第j组,

如果t的值等于A‐x‐2,则输出的第j组的数据为截取数据流a0,a1,…,ai-1的当前第k个数据ak的第A‐x‐1位到第0位;

如果t的值大于A‐x‐2,t等于A‐x+m,则输出的第j组的数据为截取数据流a0,a1,…,ai-1的当前第k个数据ak的第A‐x+m+1到第m+2位,其中m为小于等于x‐2的任意正数;

如果t的值小于A‐x‐2,比如t的值等于A‐x‐n,则输出的第j组数据为截取数据流a0,a1,…,ai-1的当前第k个数据ak的第A‐x‐n+1位到第0位,并在右侧拼接n‐2个数值0。

3.根据权利要求1或2所述基于FPGA的数据流除法运行装置,其特征在于:数据流a0,a1,…,ai-1的每个数据为正或负或0;数据流b0,b1,…,bi-1的每个数据为正或负或0;数据流c0,c1,…,ci-1的每个数据为正或负或0;

若输入的数据流a0,a1,…,ai-1的当前数据为0,则输出的数据流c0,c1,…,ci-1的当前数据也为0;若输入的数据流b0,b1,…,bi-1的当前数据为0,则输出的数据流c0,c1,…,ci-1的当前数据的值等于输入的数据流a0,a1,…,ai-1的当前数据的值。

4.根据权利要求1或2所述基于FPGA的数据流除法运行装置,其特征在于:数据流b0,b1,…,bi-1的每个数据位宽长度B小于或等于数据流a0,a1,…,ai-1的每个数据位宽长度A。

5.根据权利要求3所述基于FPGA的数据流除法运行装置,其特征在于:数据流b0,b1,…,bi-1的每个数据位宽长度B小于或等于数据流a0,a1,…,ai-1的每个数据位宽长度A。

6.一种基于FPGA的数据流除法运行方法,数据流a0,a1,…,ai-1作为输入,其长度为i,每个数据对应的位宽长度是A;数据流b0,b1,…,bi-1作为输入,其长度为i,每个数据对应的位宽长度是B;数据流c0,c1,…,ci-1作为输出,其长度为i,每个数据对应的位宽长度是C,其特征在于:包括以下步骤,

取绝对值步骤,用于求取数据流b0,b1,…,bi-1的每个数据的绝对值,得到新的数据流,即为|b0|,|b1|,…,|bi-1|;

扩展位宽步骤,用于扩展数据流|b0|,|b1|,…,|bi-1|的位宽,得到新的数据流b′0,b′1,…,b′i-1,使数据流b′0,b′1,…,b′i-1的当前数据b′k的位宽长度与数据流a0,a1,…,ai-1的当前数据ak的位宽长度相等;

比特位分组步骤,用于根据数据流a0,a1,…,ai-1当前数据ak的位宽长度A和预设的分组值s,将数据流b′0,b′1,…,b′i-1当前数据b′k按照比特位分组,以s个比特位为一组,分成A/s组;

比特位判断步骤,用于从每组的高位开始,判断数据流b′0,b′1,…,b′i-1的当前数据b′k对应的比特位的值是否为1,

如果对应值为1,则结合此比特位的位置信息对数据流a0,a1,…,ai-1的当前数据ak进行截位和拼接处理,并将此组对应的标识设置为有效,同时输出此组此比特位对应的移位索引号;

如果对应值为0,则跳转到此组的下一比特位进行判断,直到此组的最后一个比特位判断完毕;如果此组所有比特位对应值都为0,则此组对应的有效标识设置为无效,并且此组输出的数据为0,此组比特位对应的移位索引号也为0;

有效输出步骤,用于按照先后顺序,从第一组开始,根据每组对应的有效标志是否有效,得到数据流c0,c1,…,ci-1的当前数据ck;根据数据流a0,a1,…,ai-1和数据流b0,b1,…,bi-1的完整输入,得到最终的数据流c0,c1,…,ci-1

7.根据权利要求6所述基于FPGA的数据流除法运行方法,其特征在于:比特位判断模块中,判断当前数据b′k对应的比特位的值是否为1,如果对应值为1,则结合比特位的位置信息对数据流a0,a1,…,ai-1的当前数据ak进行截位和拼接处理,实现如下,

设数据流b′0,b′1,…,b′i-1的每个数据位宽长度是A,当前数据b′k统计的第一个非0值之前数值0的个数为y,数据流b′0,b′1,…,b′i-1的每个数据对应的数值0的个数y取值范围是y大于等于0小于等于A‐1,再经过减法运算,得到y的取值范围是大于等于x-A+1小于等于x,其中x是被减数,x‐A+1的值是负数;

假设数据流b′0,b′1,…,b′i-1的当前第k个数据的当前第t个比特位b′k[t]的值为1,并且其属于分组中的第j组,

如果t的值等于A‐x‐2,则输出的第j组的数据为截取数据流a0,a1,…,ai-1的当前第k个数据ak的第A‐x‐1位到第0位;

如果t的值大于A‐x‐2,t等于A‐x+m,则输出的第j组的数据为截取数据流a0,a1,…,ai-1的当前第k个数据ak的第A‐x+m+1到第m+2位,其中m为小于等于x‐2的任意正数;

如果t的值小于A‐x‐2,比如t的值等于A‐x‐n,则输出的第j组数据为截取数据流a0,a1,…,ai-1的当前第k个数据ak的第A‐x‐n+1位到第0位,并在右侧拼接n‐2个数值0。

8.根据权利要求6或7所述基于FPGA的数据流除法运行方法,其特征在于:数据流a0,a1,…,ai-1的每个数据为正或负或0;数据流b0,b1,…,bi-1的每个数据为正或负或0;数据流c0,c1,…,ci-1的每个数据为正或负或0;

若输入的数据流a0,a1,…,ai-1的当前数据为0,则输出的数据流c0,c1,…,ci-1的当前数据也为0;若输入的数据流b0,b1,…,bi-1的当前数据为0,则输出的数据流c0,c1,…,ci-1的当前数据的值等于输入的数据流a0,a1,…,ai-1的当前数据的值。

9.根据权利要求6或7所述基于FPGA的数据流除法运行装置,其特征在于:数据流b0,b1,…,bi-1的每个数据位宽长度B小于或等于数据流a0,a1,…,ai-1的每个数据位宽长度A。

10.根据权利要求8所述基于FPGA的数据流除法运行装置,其特征在于:数据流b0,b1,…,bi-1的每个数据位宽长度B小于或等于数据流a0,a1,…,ai-1的每个数据位宽长度A。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1