[发明专利]基于FPGA的数组排序方法、系统及数据压缩方法在审
申请号: | 202110668770.3 | 申请日: | 2021-06-16 |
公开(公告)号: | CN113407484A | 公开(公告)日: | 2021-09-17 |
发明(设计)人: | 凌云;莫保健 | 申请(专利权)人: | 杭州加速科技有限公司 |
主分类号: | G06F15/82 | 分类号: | G06F15/82;G06F15/78 |
代理公司: | 深圳智趣知识产权代理事务所(普通合伙) 44486 | 代理人: | 李兴生 |
地址: | 311121 浙江省杭州市余杭区*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga 数组 排序 方法 系统 数据压缩 | ||
1.一种基于FPGA的数组排序方法,其特征在于,应用于FPGA数据压缩中,包括如下:
获取待排序数组,所述待排序数组中的数据按照初始顺序排列,按照所述初始顺序对所述数据进行编号,获取初始序号;
按照所述初始顺序从所述待排序数组中依次选取数据作为第一数据,比较所述第一数据与所述待排序数组中的数据的大小,通过标志位记录比较结果,所述标志位包括标志位数值和和标志位序号,所述标志位序号与所述初始序号对应,每个所述第一数据的标志位数量与所述待排序数组中的数据数量相同;
将所述第一数据的所述标志位数值相加得到最终序号,所述最终序号即为所述第一数据在所述待排序数组中按升序排序的位置序号。
2.根据权利要求1所述的数组排序方法,其特征在于,“比较所述第一数据与所述待排序数组中的数据的大小,通过标志位记录比较结果”具体包括:
将所述第一数据与所述待排序数组中的每一个数据进行比较,并通过标志位记录比较结果,
当所述第一数据大于所述待排序数组中的某一数据时,所述标志位数值记为1;
当所述第一数据小于所述待排序数组中的某一数据时,所述标志位数值记为0;
当所述第一数据等于所述待排序数组中的某一数据时,判断所述第一数据的初始序号是否大于所述数据的初始序号:
若是,则所述标志位数值记为1;若否,则所述标志位数值记为0。
3.根据权利要求2所述的数组排序方法,其特征在于,获取FPGA的计数器;
每选取一次所述第一数据,所述计数器数值加1,每个所述第一数据对应一个计数器数值,所述计数器数值等于所述第一数据的初始序号;
当所述第一数据等于所述待排序数组中的某一数据时,判断所述计数器数值是否大于所述数据的初始序号:
若是,则所述标志位数值记为1;若否,则所述标志位数值记为0。
4.根据权利要求3所述的数组排序方法,其特征在于,所述数组排序方法在FPGA内部时钟驱动下进行;在一个时钟周期内,完成从选取所述第一数据到获取所述最终序号的过程。
5.根据权利要求2所述的数组排序方法,其特征在于,设定所述待排序数组为D={D0,D1…Dn},所述计数器数值为Cnt=0~n,所述第一数据为Dx,使用n+1个标志位Flag记录Dx与D0~Dn的比较结果:
DxD0:Flag[0]=1
Dx=D1:Flag[1]=0or 1(当Cnt1时Flag[1]=1,当Cnt=1时Flag[1]=0)
DxD2:Flag[2]=0
……
DxDn:Flag[n]=0
将n+1个标志位数值相加,即Flag[0]+Flag[1]+…+Flag[n]=Sum,Sum值则为Dx在升序排序后数组中的位置。
6.一种基于FPGA的数组排序系统,其特征在于,应用于FPGA数据压缩中,包括,
数组获取单元:用于获取待排序数组,所述待排序数组中的数据按照初始顺序排列,按照所述初始顺序对所述数据进行编号,获取初始序号;
比较单元:用于按照所述初始顺序从所述待排序数组中依次选取数据作为第一数据,比较所述第一数据与所述待排序数组中的数据的大小,通过标志位记录比较结果,所述标志位包括标志位数值和和标志位序号,所述标志位序号与所述初始序号对应,每个所述第一数据的标志位数量与所述待排序数组中的数据数量相同;
排序单元:用于将所述第一数据的所述标志位数值相加得到最终序号,所述最终序号即为所述第一数据在所述待排序数组中按升序排序的位置序号。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州加速科技有限公司,未经杭州加速科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110668770.3/1.html,转载请声明来源钻瓜专利网。