一种基于FPGA的数据流除法运行装置及方法制造方法及图纸

技术编号:14646943 阅读:147 留言:0更新日期:2017-02-16 03:48
本发明专利技术提出了一种基于FPGA的数据流除法运行装置及方法,输入为i个位宽长度为A的数据流a0,a1,…,ai‑1,i个位宽长度为B的数据流b0,b1,…,bi‑1,输出为i个位宽长度为C的数据流c0,c1,…,ci‑1,实现包括取绝对值、扩展位宽、比特位分组、比特位判断、有效输出。其中,取绝对值是求取数据流b0,b1,…,bi‑1的绝对值,然后扩展数据流的当前数据位宽;将扩展位宽后的数据流当前数据按照比特位分组;判断分组后的比特位对应值是否是有效值;从分好的组里面选择有效的数据输出。本发明专利技术设计简单,不仅实现时间短,占用资源少,具有很强的通用性。

【技术实现步骤摘要】

本专利技术涉及数据流的不间断处理,更具体的是一种数据流除法的FPGA实现装置。
技术介绍
由于目前现场可编程阵列(FPGA)具有工艺成熟、实现简单、性价比高等优点,所以在很多产品设计中被用于实现算法处理。数据流的处理一般难点在于数据在源源不断的流入,不管是用于加减乘除,都对建立保持时间有较高的要求,其中用于除法计算时,对时间更是有严格要求,因为使用除法器计算过程耗时太长,而且会占用过多资源。流水线太长会导致版本编译时间过长,性能不会达到最优。图1表示的是现有技术中数据流的算法处理流程,包括取绝对值、扩展位宽、统计第一个数值1之前数值0的个数、统计的个数进行减法运算、减法运算后的值进行2的幂次方乘法、幂次方乘法的结果作为除数进行除法运算。其中统计数据流的每一个数据第一个数值1之前数值0的个数,在硬件语言中,传统做法一般是用for语句实现。硬件语言中的for循环和C语言中的for循环不一样,它表示的是硬件行为,循环几次就是将相同的电路复制几次。因此,循环次数越多,占用面积越大,编译时间就会越长。所以,在数据位宽较大的情况下,基于FPGA实现时,使用for语句统计每个数据数值1之前数值0的个数并没有优势。基于for语句实现,得到数值0的个数之后进行减法运算,并且减法运算之后的结果再进行2的幂次方运算。2的幂次方运算基于FPGA实现,即是对数据进行移位,但需要根据减法运算后的结果进行移位。减法运算后的结果有正有负,移位时,一般做法是利用case语句实现。case语句是一种多分支选择语句,但是如果分支过长,时钟较快的情况下,会导致时序不满足。所以减法运算后的结果取值范围较广时,此种实现方案不能体现优势。
技术实现思路
本专利技术提出了一种数据流除法的FPGA实现装置,可以降低硬件资源消耗、缩短版本编译时间,提高性能。本专利技术技术方案提供一种基于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。而且,比特位判断模块中,判断当前数据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。而且,数据流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的当前数据的值。而且,数据流b0,b1,…,bi-1的每个数据位宽长度B小于或等于数据流a0,a1,…,ai-1的每个数据位宽长度A。本专利技术相应提供一种基于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进行截位和拼接处理,并将此组对应的标识设置为有效,同时输出此组此比特本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/201610768508.html" title="一种基于FPGA的数据流除法运行装置及方法原文来自X技术">基于FPGA的数据流除法运行装置及方法</a>

【技术保护点】
一种基于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。...

【技术特征摘要】
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...

【专利技术属性】
技术研发人员:查迎弟苏岚张磊官银莹姜琳峰
申请(专利权)人:武汉虹信通信技术有限责任公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1