System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于FPGA的双调排序方法及FPGA技术_技高网

基于FPGA的双调排序方法及FPGA技术

技术编号:41734565 阅读:2 留言:0更新日期:2024-06-19 12:54
本申请公开了一种FPGA。该FPGA用于2^n个数据的双调排序,n为正整数,包括:第一双调排序模块,用于执行16个数据的双调排序;第二双调排序模块,用于执行2^m个数据的双调排序,其中m为正整数,且n>m>n/2;其中,第一双调排序模块按照每次输入16个数据依次输入多次,以提供2^n个数据,第二双调排序模块随着运行时间而被反复调用,以反复执行执行2^m个数据的双调排序,从而实现2^n个数据的双调排序。本申请还公开了一种基于FPGA的双调排序方法。本申请通过第一双调排序模块执行16个数据的双调排序,以及利用第二双调排序模块执行2^m个数据的双调排序,从而实现2^n个数据的双调排序,解决了利用FPGA进行双调排序时,占用空闲资源多的问题。

【技术实现步骤摘要】

本申请的所公开实施例涉及电子,且更具体而言,涉及一种基于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、在一些实施例中,所述第一双调排序模块包括序列子模块和排序子模块,其中所述序列子模块用于将所述16个数据排列成一双调序列,所述排序子模块用于对所述双调序列进行排序。

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时,所述第二双调排序模块包括第一对调子模块、第二对调子模块和第三对调子模块,其中,所述第一对调子模块用于将2^6个数据进行二等分比较互换,所述第二对调子模块用于将2^5个数据进行二等分比较互换,所述第三对调子模块用于将所述2^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...

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:深圳元戎启行科技有限公司
类型:发明
国别省市:

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

1