System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请的所公开实施例涉及电子,且更具体而言,涉及一种基于fpga的双调排序方法及fpga。
技术介绍
1、目前一些计算需要对数据进行排序,排序算法有很多,例如冒泡排序、归并排序和双调排序等。其中,可以通过fpga器件实现双调排序,但是如果排序数组比较长,会造成整体排序消耗资源很大,并且如果数据不是pipeline(管线)输入,会导致整体空闲资源较多,进而fpga资源消耗压力大。
技术实现思路
1、根据本申请的实施例,本申请提出一种fpga和基于fpga的双调排序方法,以解决利用fpga进行双调排序时,占用空闲资源多的问题。
2、本申请的第一方面公开了一种fpga,用于2^n个数据的双调排序,n为正整数,包括:第一双调排序模块,用于执行16个数据的双调排序;第二双调排序模块,用于执行2^m个数据的双调排序,其中m为正整数,且n>m>n/2;其中,所述第一双调排序模块按照每次输入所述16个数据依次输入多次,以提供所述2^n个数据给所述第二双调模块,所述第二双调排序模块随着运行时间而被反复调用,以反复执行所述执行2^m个数据的双调排序,从而实现所述2^n个数据的双调排序。
3、在一些实施例中,所述的fpga还包括:ram,用于缓存执行所述2^n个数据的双调排序时的中间数据;其中,所述ram随着运行时间而被反复调用,以缓存执行所述2^n个数据的双调排序时的中间数据。
4、在一些实施例中,所述第一双调排序模块包括序列子模块和排序子模块,其中所述序列子
5、在一些实施例中,所述ram用于缓存所述第一双调排序模块每次所输入的所述16个数据。
6、在一些实施例中,所述第二双调排序模块包括第(i+1)对调子模块,其中,所述第(i+1)对调子模块用于将2^j个数据进行二等分比较互换,i为0到n-m,j为n到m,当i=0时,j=n,当i=n-m时,j=m;其中,按照预设顺序,每个所述第(i+1)对调子模块被调用2^i次,以实现所述2^m个数据的双调排序。
7、在一些实施例中,在所述第(i+1)对调子模块被调用2^i次后,所述ram被调用,以缓存所述第(i+1)对调子模块被调用2^i次所输出的排序数据。
8、在一些实施例中,当n=6,m=4时,所述第二双调排序模块包括第一对调子模块、第二对调子模块和第三对调子模块,其中,所述第一对调子模块用于将2^6个数据进行二等分比较互换,所述第二对调子模块用于将2^5个数据进行二等分比较互换,所述第一对调子模块用于将所述2^4个数据进行二等分比较互换;其中,按照预设顺序,所述第一对调子模块被调用1次、所述第二对调子模块被调用2次、所述第三对调子模块被调用4次,以实现所述2^m个数据的双调排序。
9、在一些实施例中,所述预设顺序包括:所述第二对调子模块被调用2次、所述第三对调子模块被调用4次以及所述第一对调子模块被调用1次的顺序。
10、在一些实施例中,所述第一双调排序模块包括序列子模块和排序子模块,其中所述序列子模块用于将所述16个数据排列成一双调序列,所述排序子模块用于对所述双调序列进行排序;其中,所述第三对调子模块由所述排序子模块被复用而来。
11、本申请第二方面公开了一种基于fpga的双调排序方法,所述fpga为如第一方面中所述的fpga,用于2^n个数据的双调排序,包括:按照每次输入所述16个数据依次输入多次,以提供所述2^n个数据;反复执行2^m个数据的双调排序,从而实现所述2^n个数据的双调排序。
12、本申请的有益效果有:通过第一双调排序模块执行16个数据的双调排序,以及利用第二双调排序模块执行2^m个数据的双调排序,其中m为正整数,且n>m>n/2,其中,所述第一双调排序模块按照每次输入所述16个数据依次输入多次,以提供所述2^n个数据,所述第二双调排序模块随着运行时间而被反复调用,以反复执行所述执行2^m个数据的双调排序,从而实现所述2^n个数据的双调排序,解决了利用fpga进行双调排序时,占用空闲资源多的问题。
本文档来自技高网...【技术保护点】
1.一种FPGA,其特征在于,用于2^n个数据的双调排序,n为正整数,包括:
2.根据权利要求1所述的FPGA,其特征在于,还包括:
3.根据权利要求2所述的FPGA,其特征在于,所述第一双调排序模块包括序列子模块和排序子模块,其中所述序列子模块用于将所述16个数据排列成一双调序列,所述排序子模块用于对所述双调序列进行排序。
4.根据权利要求2或3所述的FPGA,其特征在于,所述RAM用于缓存所述第一双调排序模块每次所输入的所述16个数据。
5.根据权利要求2所述的FPGA,其特征在于,所述第二双调排序模块包括第(i+1)对调子模块,其中,所述第(i+1)对调子模块用于将2^j个数据进行二等分比较互换,i为0到n-m,j为n到m,当i=0时,j=n,当i=n-m时,j=m;
6.根据权利要求5所述的FPGA,其特征在于,在所述第(i+1)对调子模块被调用2^i次后,所述RAM被调用,以缓存所述第(i+1)对调子模块被调用2^i次所输出的排序数据。
7.根据权利要求6所述的FPGA,其特征在于,当n=6,m=4
8.根据权利要求7所述的FPGA,其特征在于,所述预设顺序包括:所述第二对调子模块被调用2次、所述第三对调子模块被调用4次以及所述第一对调子模块被调用1次的顺序。
9.根据权利要求7或8所述的FPGA,其特征在于,所述第一双调排序模块包括序列子模块和排序子模块,其中所述序列子模块用于将所述16个数据排列成一双调序列,所述排序子模块用于对所述双调序列进行排序;
10.一种基于FPGA的双调排序方法,其特征在于,所述FPGA为如权利要求1-9中任一项所述的FPGA,用于2^n个数据的双调排序,包括:
...【技术特征摘要】
1.一种fpga,其特征在于,用于2^n个数据的双调排序,n为正整数,包括:
2.根据权利要求1所述的fpga,其特征在于,还包括:
3.根据权利要求2所述的fpga,其特征在于,所述第一双调排序模块包括序列子模块和排序子模块,其中所述序列子模块用于将所述16个数据排列成一双调序列,所述排序子模块用于对所述双调序列进行排序。
4.根据权利要求2或3所述的fpga,其特征在于,所述ram用于缓存所述第一双调排序模块每次所输入的所述16个数据。
5.根据权利要求2所述的fpga,其特征在于,所述第二双调排序模块包括第(i+1)对调子模块,其中,所述第(i+1)对调子模块用于将2^j个数据进行二等分比较互换,i为0到n-m,j为n到m,当i=0时,j=n,当i=n-m时,j=m;
6.根据权利要求5所述的fpga,其特征在于,在所述第(i+1)对调子模块被调用2^i次后,所述ram被调用,以缓存所述第(i+1)对调子模块被调用2...
【专利技术属性】
技术研发人员:请求不公布姓名,
申请(专利权)人:深圳元戎启行科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。