CN106021465A - 一种FPGA bitfile的压缩方法 - Google Patents
一种FPGA bitfile的压缩方法 Download PDFInfo
- Publication number
- CN106021465A CN106021465A CN201610327502.4A CN201610327502A CN106021465A CN 106021465 A CN106021465 A CN 106021465A CN 201610327502 A CN201610327502 A CN 201610327502A CN 106021465 A CN106021465 A CN 106021465A
- Authority
- CN
- China
- Prior art keywords
- data
- array
- bitfile
- fpga
- zero
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
Abstract
本发明公开一种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以上的正整数。
Description
技术领域
本发明公开一种FPGA bitfile的压缩方法,属于文件管理技术领域。
背景技术
FPGA(Field Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路ASIC领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点,加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式,而bitfile是配置FPGA的最终文件,由FPGA设计工具解析用户设计、约束等文件,综合而成的。FPGA使用过程中,bitfile文件需要压缩,以降低bitfile所需占用配置Flash的空间,提高MCU配置FPGA的速度。本发明提供一种FPGA bitfile的压缩方法,利用数组压缩存储的方式,降低bitfile所需占用配置Flash的空间,并实现FPGA的bitfile文件进行快速压缩,提高MCU配置FPGA的速度。
所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。
发明内容
本发明针对FPGA使用过程中,bitfile文件需要快速压缩,以降低bitfile所需占用配置Flash的空间,提高MCU配置FPGA的速度的问题,提供一种FPGAbitfile的压缩方法,具有通用性强、实施简便等特点。
本发明提出的具体方案是:
一种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以上的正整数。
所述bitfile转化后的最后一个a[m][n]数组如果存在补位,补位数据使用三元组存储时使用(FF,FF,FF)表示,若使用数组形式存储,则无需补位。
所述每个数组中的数据分别与0xFF作位与运算,若结果为0,则表示数据为0,否则表示数据为非0。
若所述每个数组中的数据全为0,则用三元组(0,0,0)表示。
本发明的有益之处是:
本发明将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的bitfile文件进行快速压缩,降低bitfile所需占用配置Flash的空间,并提高MCU配置FPGA的速度。有利于提高FPGA的整体工作效率。
附图说明
图1本发明方法的流程示意图。
具体实施方式
一种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 bitfile的压缩方法,将FPGA的bitfile转化为稀疏矩阵,将稀疏矩阵存储为一定数量的a[m][n]数组,设置每个数组单元存储一个8bit数据,将其设为x,计算数组中数据的非零个数,设其设为y,如果非零个数y小于(m+1)*(n+1)/L,则将数组中的零去掉,使用三元组(m,n,x)保存非零数据;如果非零个数y不小于(m+1)*(n+1)/L,则使用a[m][n]数组形式保存数据,以便快速压缩bitfile,其中L为3以上的正整数;
其中如果bitfile转化后的最后一个a[m][n]数组存在补位,补位数据使用三元组存储时使用(FF,FF,FF)表示,若使用数组形式存储,则无需补位;
将每个数组中的数据x分别与0xFF作位与运算,若结果为0,则表示数据x为0,否则表示数据x为非0;
若每个数组中的数据x全为0,则用三元组(0,0,0)表示。
具体例举一个简单实例:
比如将FPGA的bitfile转化为稀疏矩阵,将FPGA的bitfile划分为多个a[3][3]的数组,每个数组单元存储一个8bit数据x,数组中非0数据为0F、33、11,非零数据小于数组中数据数量/3,因此,采用三元组压缩存储。其中bitfile转化后使用数组形式存储,则无需补位,将每个数组中的数据x作位与运算,若结果为0,则表示数据x为0,否则表示数据x为非0,如下:
由于非0数据个数为3,3<(3+1)*(3+1)/3,
所以A[4][4]中数据采用三元组存储如下:
(0,1,0F),(2,0,33),(3,1,11)。
利用本发明方法,对FPGA的bitfile文件进行快速压缩,降低bitfile所需占用配置Flash的空间,并提高MCU配置FPGA的速度。有利于提高FPGA的整体工作效率。
Claims (4)
1.一种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以上的正整数。
2.根据权利要求1所述的方法,其特征是所述bitfile转化后的最后一个a[m][n]数组如果存在补位,补位数据使用三元组存储时使用(FF,FF,FF)表示,若使用数组形式存储,则无需补位。
3.根据权利要求2所述的方法,其特征是所述每个数组中的数据分别与0xFF作位与运算,若结果为0,则表示数据为0,否则表示数据为非0。
4.根据权利要求1-3任一项所述的方法,其特征是若所述每个数组中的数据全为0,则用三元组(0,0,0)表示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610327502.4A CN106021465A (zh) | 2016-05-17 | 2016-05-17 | 一种FPGA bitfile的压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610327502.4A CN106021465A (zh) | 2016-05-17 | 2016-05-17 | 一种FPGA bitfile的压缩方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106021465A true CN106021465A (zh) | 2016-10-12 |
Family
ID=57097379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610327502.4A Pending CN106021465A (zh) | 2016-05-17 | 2016-05-17 | 一种FPGA bitfile的压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106021465A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413580A (zh) * | 2019-07-31 | 2019-11-05 | 中国科学院自动化研究所 | 针对fpga配置码流的压缩方法、系统、装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110016097A1 (en) * | 2009-07-16 | 2011-01-20 | Teerlink Craig N | Fast approximation to optimal compression of digital data |
CN103226674A (zh) * | 2013-05-23 | 2013-07-31 | 湖南大学 | 一种基于fpga技术的可恢复双重芯核水印认证方法 |
CN103516522A (zh) * | 2013-10-12 | 2014-01-15 | 湖南科技大学 | 一种基于零知识证明协议的芯核水印盲检测方法 |
-
2016
- 2016-05-17 CN CN201610327502.4A patent/CN106021465A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110016097A1 (en) * | 2009-07-16 | 2011-01-20 | Teerlink Craig N | Fast approximation to optimal compression of digital data |
CN103226674A (zh) * | 2013-05-23 | 2013-07-31 | 湖南大学 | 一种基于fpga技术的可恢复双重芯核水印认证方法 |
CN103516522A (zh) * | 2013-10-12 | 2014-01-15 | 湖南科技大学 | 一种基于零知识证明协议的芯核水印盲检测方法 |
Non-Patent Citations (2)
Title |
---|
云影少年: ""稀疏矩阵的三元组表存储方法"", 《百度文库》 * |
孙道让: ""基于GPRS的FPGA远程动态重构系统的研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413580A (zh) * | 2019-07-31 | 2019-11-05 | 中国科学院自动化研究所 | 针对fpga配置码流的压缩方法、系统、装置 |
CN110413580B (zh) * | 2019-07-31 | 2021-10-29 | 中国科学院自动化研究所 | 针对fpga配置码流的压缩方法、系统、装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Krawitz et al. | Landau-Ginzburg/Calabi-Yau Correspondence of all Genera for Elliptic Orbifold $\mathbb {p}^ 1$ | |
CN105205105A (zh) | 一种基于storm的数据ETL系统及处理方法 | |
Caudrelier | Interplay between the inverse scattering method and Fokas's unified transform with an application | |
CN106021465A (zh) | 一种FPGA bitfile的压缩方法 | |
Chang et al. | SDCNN: An efficient sparse deconvolutional neural network accelerator on FPGA | |
Lao | On the distribution of integral ideals and Hecke Grössencharacters | |
Dehghan-Zadeh et al. | Extremal tri-cyclic graphs with respect to the first and second Zagreb indices | |
Petrogradsky et al. | Self-similar associative algebras | |
Patureau-Mirand | Noninjectivity of the “hair” map | |
CN203574628U (zh) | 按键扩展电路 | |
RU2007103801A (ru) | Цифровой интеллектуальный рекурсивный фильтр | |
Tong et al. | Weak and strong convergence theorems for two finite families of asymptotically nonexpansive mappings in Banach spaces | |
Sun | Three symmetric positive solutions for second-order nonlocal boundary value problems | |
CN202520517U (zh) | 一种带带压起动装置的往复式压缩机 | |
CN202352345U (zh) | 智能u盘 | |
CN203911914U (zh) | 一种档案辅助管理系统 | |
CN201906337U (zh) | 一种动物内脏扩张器 | |
Kolesnichenko et al. | Text big data analytics case study «Third Wave»: Internet of words | |
CN203485613U (zh) | 文件包 | |
Zhuang et al. | Convolutional neural networks Memory Optimization Inference with Splitting Image | |
CN201540573U (zh) | 一种便携式容积计算器 | |
CN202271728U (zh) | 一种会计专业用组合尺具 | |
Cohen et al. | Remarks Concerning Lubotzky's Filtration | |
Acclavio | Proof Diagrams as Concurrent Syntax for Sequent Calculi | |
RU98797U1 (ru) | Светодиодный осветительный модуль |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161012 |
|
RJ01 | Rejection of invention patent application after publication |