一种FPGAbitfile的压缩方法

文档序号:10655303阅读:841来源:国知局
一种FPGA bitfile的压缩方法
【专利摘要】本发明公开一种FPGA bitfile的压缩方法,属于文件管理技术领域;本发明将FPGA的bitfile转化为稀疏矩阵,将稀疏矩阵存储为一定数量的a[m][n]数组,设置每个数组单元存储一个8bit数据,计算数组中数据的非零个数,如果非零个数小于(m+1)*(n+1)/L,则将数组中的零去掉,使用三元组(m,n,x)保存非零数据;如果非零个数不小于(m+1)*(n+1)/L,则使用a[m][n]数组形式保存数据,以便快速压缩bitfile,其中L为3以上的正整数。
【专利说明】
-种FPGA bitfi Ie的压缩方法
技术领域
[0001] 本发明公开一种FPGA bitfile的压缩方法,属于文件管理技术领域。
【背景技术】
[0002] FPGA(Field Programmable Gate Array),即现场可编程口阵列,它是在PAL、GAL、 CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路ASIC领域中的一种 半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件口电路数有限 的缺点,加电时,FPGA忍片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作 状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程 无须专用的FPGA编程器,只须用通用的EPR0M、PR0M编程器即可。当需要修改FPGA功能时,只 需换一片EPROM即可。运样,同一片FPGA,不同的编程数据,可W产生不同的电路功能。因此, FPGA的使用非常灵活。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作 时需要对片内的RAM进行编程。用户可W根据不同的配置模式,采用不同的编程方式,而 bitfile是配置FPGA的最终文件,由FPGA设计工具解析用户设计、约束等文件,综合而成的。 FPGA使用过程中,bitfile文件需要压缩,W降低bitfile所需占用配置Flash的空间,提高 MCU配置FPGA的速度。本发明提供一种FPGA bitfile的压缩方法,利用数组压缩存储的方 式,降低Mtfi Ie所需占用配置Flash的空间,并实现FPGA的bitfi Ie文件进行快速压缩,提 高MCU配置FPGA的速度。
[0003] 所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型 相同的变量用一个名字命名,然后用编号区分他们的变量的集合,运个名字称为数组名,编 号称为下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变 量。数组是在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起 来的一种形式。运些按序排列的同类数据元素的集合称为数组。

【发明内容】

[0004] 本发明针对FPGA使用过程中,bitfile文件需要快速压缩,W降低bitfile所需占 用配置Flash的空间,提高MCU配置FPGA的速度的问题,提供一种FPGA bitfiIe的压缩方法, 具有通用性强、实施简便等特点。
[0005] 本发明提出的具体方案是:
[0006] -种FPGA bitfile的压缩方法,将FPGA的bitfile转化为稀疏矩阵,将稀疏矩阵存 储为一定数量的a[m][n]数组,设置每个数组单元存储一个Sbit数据,计算数组中数据的非 零个数,如果非零个数小于(m+l)*(n+l)/L,则将数组中的零去掉,使用立元组(m,n,x)保存 非零数据;如果非零个数不小于(m+l)*(n+l)/L,则使用a[m][n]数组形式保存数据,W便快 速压缩bitfile,其中L为3W上的正整数。
[0007] 所述bitfile转化后的最后一个a[m][n]数组如果存在补位,补位数据使用=元组 存储时使用(FF,FF,F巧表示,若使用数组形式存储,则无需补位。
[0008] 所述每个数组中的数据分别与OxFF作位与运算,若结果为0,则表示数据为0,否则 表示数据为非0。
[0009] 若所述每个数组中的数据全为0,则用=元组(0,0,0)表示。
[0010] 本发明的有益之处是:
[001U 本发明将FPGA的Mtfile转化为稀疏矩阵,将稀疏矩阵存储为一定数量的a[m] [n] 数组,设置每个数组单元存储一个8bit数据,计算数组中数据的非零个数,如果非零个数小 于(m+l)*(n+l)/L,则将数组中的零去掉,使用S元组(m,n,x)保存非零数据;如果非零个数 不小于(m+l)*(n+l)/L,则使用a[m][n]数组形式保存数据,W便快速压缩bitfile,其中L为 3W上的正整数;
[001^ 利用本发明方法,对FPGA的bitfile文件进行快速压缩,降低Mtfile所需占用配 置Flash的空间,并提高MCU配置FPGA的速度。有利于提高FPGA的整体工作效率。
【附图说明】
[0013] 图1本发明方法的流程示意图。
【具体实施方式】
[0014] -种FPGA bitfile的压缩方法,将FPGA的bitfile转化为稀疏矩阵,将稀疏矩阵存 储为一定数量的a[m][n]数组,设置每个数组单元存储一个Sbit数据,计算数组中数据的非 零个数,如果非零个数小于(m+l)*(n+l)/L,则将数组中的零去掉,使用立元组(m,n,x)保存 非零数据;如果非零个数不小于(m+l)*(n+l)/L,则使用a[m][n]数组形式保存数据,W便快 速压缩bitfile,其中L为3W上的正整数。
[0015] 根据上述方法及
【发明内容】
,结合附图对本发明做进一步说明。
[0016] -种FPGA bitfile的压缩方法,将FPGA的bitfile转化为稀疏矩阵,将稀疏矩阵存 储为一定数量的a[m][n]数组,设置每个数组单元存储一个Sbit数据,将其设为X,计算数组 中数据的非零个数,设其设为y,如果非零个数y小于(m+l)*(n+l)/L,则将数组中的零去掉, 使用S元组(m,n,x)保存非零数据;如果非零个数y不小于(m+l)*(n+l)/L,则使用a[m][n] 数组形式保存数据,W便快速压缩bitfile,其中L为3W上的正整数;
[0017] 其中如果bitfile转化后的最后一个a[m][n]数组存在补位,补位数据使用=元组 存储时使用(FF,FF,F巧表示,若使用数组形式存储,则无需补位;
[0018] 将每个数组中的数据X分别与OxFF作位与运算,若结果为0,则表示数据X为0,否则 表示数据X为非0;
[0019] 若每个数组中的数据X全为0,则用=元组(0,0,0)表示。
[0020] 具体例举一个简单实例:
[0021] 比如将FPGA的bitfile转化为稀疏矩阵,将FPGA的bitfile划分为多个a[3] [3]的 数组,每个数组单元存储一个Sbit数据X,数组中非0数据为(^、33、11,非零数据小于数组中 数据数量/3,因此,采用=元组压缩存储。其中bitfile转化后使用数组形式存储,则无需补 位,将每个数组中的数据X作位与运算,若结果为0,则表示数据X为0,否则表示数据X为非0, 如下:
[0022]
[0023] 由于非 0 数据个数为 3,3<(3+1)*(3+1)/3,
[0024] 所WA[4][4]中数据采用S元组存储如下:
[0025] (0,1,0F),(2,0,33),(3,1,11)。
[0026] 利用本发明方法,对FPGA的bitfile文件进行快速压缩,降低bitfile所需占用配 置Flash的空间,并提高MCU配置FPGA的速度。有利于提高FPGA的整体工作效率。
【主权项】
1. 一种FPGA bitfile的压缩方法,其特征是将FPGA的bitfile转化为稀疏矩阵,将稀疏 矩阵存储为一定数量的a[m][n]数组,设置每个数组单元存储一个8bit数据,计算数组中数 据的非零个数,如果非零个数小于(m+l)*(n+l)/L,则将数组中的零去掉,使用三元组(m,n, X)保存非零数据;如果非零个数不小于(m+l)*(n+l)/L,则使用a[m][n]数组形式保存数据, 以便快速压缩bitfile,其中L为3以上的正整数。2. 根据权利要求1所述的方法,其特征是所述bitfile转化后的最后一个a[m][n]数组 如果存在补位,补位数据使用三元组存储时使用(FF,FF,FF)表示,若使用数组形式存储,则 无需补位。3. 根据权利要求2所述的方法,其特征是所述每个数组中的数据分别与OxFF作位与运 算,若结果为〇,则表示数据为〇,否则表示数据为非〇。4. 根据权利要求1-3任一项所述的方法,其特征是若所述每个数组中的数据全为0,则 用三元组(〇,〇,〇)表示。
【文档编号】G06F17/30GK106021465SQ201610327502
【公开日】2016年10月12日
【申请日】2016年5月17日
【发明人】姜凯, 于治楼, 梁智豪
【申请人】浪潮集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1