CN105573775B - Fpga配置文件加载方法和解码器 - Google Patents
Fpga配置文件加载方法和解码器 Download PDFInfo
- Publication number
- CN105573775B CN105573775B CN201410618298.2A CN201410618298A CN105573775B CN 105573775 B CN105573775 B CN 105573775B CN 201410618298 A CN201410618298 A CN 201410618298A CN 105573775 B CN105573775 B CN 105573775B
- Authority
- CN
- China
- Prior art keywords
- configuration file
- subfile
- identical value
- decoder
- algorithm
- 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.)
- Active
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Logic Circuits (AREA)
Abstract
本发明涉及一种FPGA配置文件加载方法和解码器,所述方法包括:接收处理器发送的压缩指令;将采用EDA工具进行RTL编码、综合、布局布线生成的第一配置文件分割为多个子文件,当所述多个子文件中存在至少两个相同子文件时,获取该相同子文件的相同值及相同值长度、并添加标识符,用以对所述第一配置文件进行压缩,生成第二配置文件;将所述第二配置文件加载到FPGA芯片,利用解码器对所述第二配置文件进行解压缩,以将所述第二配置文件还原成第一配置文件。
Description
技术领域
本发明涉及微电子领域中的集成电路设计技术领域,特别是现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)配置文件加载方法和解码器。
背景技术
现有技术中对FPGA配置文件进行加载时,当配置文件的容量较大时,往往需要花费较长的时间进行配置文件的传输,导致配置文件加载的速率较慢,从而影响了FPGA芯片的配置速度。
发明内容
本发明的目的是解决现有技术中在进行FPGA配置文件加载时,需要花费较长的时间进行配置文件的传输,配置文件加载的速率较慢,FPGA芯片的配置速度慢的问题。
第一方面,本发明实施例提供了一种FPGA配置文件加载方法,所述方法包括:
接收处理器发送的压缩指令;
将采用电子设计自动化(Electronic Design Automation,EDA)工具进行寄存器传输级(register-transfer level,RTL)编码、综合、布局布线生成的第一配置文件分割为多个子文件,当所述多个子文件中存在至少两个相同子文件时,获取该相同子文件的相同值及相同值长度、并添加标识符,用以对所述第一配置文件进行压缩,生成第二配置文件;
将所述第二配置文件加载到FPGA芯片,利用解码器对所述第二配置文件进行解压缩,以将所述第二配置文件还原成第一配置文件。
优选地,所述对所述第一配置文件进行分割,生成多个子文件具体包括:
根据预设的字节长度,对所述第一配置文件进行分割。
优选地,所述解码器在所述FPGA芯片内;或者,
所述解码器通过扩展接口连接至所述FPGA芯片。
优选地,所述接收压缩指令之后,还包括:
利用LZ77、LZ78、LZSS、LZW算法、所述LZ77、LZ78、LZSS、LZW的变种算法、基于字典和滑动窗口的算法中的任意一种对第一配置文件进行压缩,生成第二配置文件;或者,
利用Shanno-Fano算法、霍夫曼编码、算术编码中的任意一种对所述第一配置文件进行压缩。
第二方面,本发明实施例提供了一种解码器,所述解码器包括:
解析单元,用于读取第二配置文件中的查找表,根据所述查找表中的标识符获取相同子文件的相同值及相同值的长度;
组合单元,用于将所述子文件的相同值和所述第二配置文件中的单独子文件进行组合,生成第一配置文件。
优选地,所述解码器在所述FPGA芯片内;或者,
所述解码器通过扩展接口连接至所述FPGA芯片。
本发明通过接收处理器发送的压缩指令;将采用EDA工具进行RTL编码、综合、布局布线生成的第一配置文件分割为多个子文件,当所述多个子文件中存在至少两个相同子文件时,获取该相同子文件的相同值及相同值长度、并添加标识符,用以对所述第一配置文件进行压缩,生成第二配置文件;将所述第二配置文件加载到现场可编程逻辑门阵列FPGA芯片,利用解码器对所述第二配置文件进行解压缩,以将所述第二配置文件还原成第一配置文件。减少了配置文件的传输时间,提高了配置文件加载的速率,提高了FPGA芯片的配置速率。
附图说明
图1为本发明实施例一提供的FPGA配置文件加载方法流程图;
图2为本发明实施例一提供的FPGA配置文件加载的架构图;
图3为本发明实施例一提供的FPGA配置文件的压缩方法流程图;
图4为本发明实施例二提供的解码器结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
图1为本发明实施例一提供的FPGA配置文件加载方法流程图。如图1 所示,本实施例包括以下步骤:
S110,接收处理器发送的压缩指令。
S120,将采用EDA工具进行RTL编码、综合、布局布线生成的第一配置文件分割为多个子文件,当所述多个子文件中存在至少两个相同子文件时,获取该相同子文件的相同值及相同值长度、并添加标识符,用以对所述第一配置文件进行压缩,生成第二配置文件。
具体地,如图2所示,图2为本发明的FPGA配置文件加载的架构图。图 2中的压缩后的比特流即为第二配置文件,比特流解码器也可以简称为解码器。
利用电子设计自动化(Electronic Design Automation,EDA)工具,在经过寄存器传输级(register-transfer level,RTL)编码,综合,布局布线后,生成第一配置文件,当该第一配置文件较大时,加载到FPGA芯片时的加载速率不高,为了减小配置文件的大小,提高FPGA芯片的配置速度,可以通过按压 EDA软件的“压缩”按键,向处理器发送压缩指令,处理器接收到压缩指令后,将第一配置文件进行压缩,生成第二配置文件。
其中,该EDA工具为我司自主研发,该EDA工具的界面上有如上所述可以进行触发处理器进行压缩的按键。
在S120中,具体包括如下步骤,如图3所示:
S310,对进行RTL编码、综合、布局布线时FPGA芯片生成的第一配置文件进行分割,生成多个子文件。
在对第一配置文件压缩时,可以先对第一配置文件进行分割,在对第一配置文件进行分割时,可以根据第一配置文件的容量对所述第一配置文件进行分割,将第一配置文件分割为多个子文件。
示例而非限定,可以按照8bit一个子文件对第一配置文件进行分割,在另一个实施例中,也可以以16bit一个子文件对第一配置文件进行分割。
S320,当所述多个子文件中存在相同子文件时,获取所述相同子文件的相同值以及所述相同值的长度,并添加标识符,所述相同值、长度和标识符构成查找表。
当多个子文件中的至少两个子文件相同时,可以获取该至少两个子文件中的任一子文件的相同值,并且获取该相同值的长度,并给该相同值和相同值的长度添加标识符,该相同值、相同值的长度和标识符构成查找表。其中,在添加标识符时,可以遍历全部子文件,以所述多个子文件中没有出现过的组合字符作为标识符。
在将相同的子文件做上述处理后,对于剩余的单独子文件,可以不做处理。
S330,删除所述第一配置文件中的相同子文件,将所述查找表和单独子文件构成第二配置文件。
对所有子文件中的相同子文件进行S310-330的处理,对于子文件中的单独的子文件,其和查找表一起,构成第二配置文件。其中,所述单独子文件为所述多个子文件中不存在相同子文件的子文件。
S130,将第二配置文件加载到FPGA芯片,利用解码器对第二配置文件进行解压缩,以将第二配置文件还原成第一配置文件。
具体地,将第二配置文件所在的用户设备(User Equipment,UE)和FPGA 芯片相连接,通过下载线将第二配置文件下载到FPGA芯片中,FPGA芯片内部预先配置有解码器电路或者FPGA芯片的扩展接口上连接有解码器电路,解码器对第二配置文件进行解码,解码完成后,获取到第一配置文件,根据第一配置文件,FPGA芯片可以完成相关配置,比如,完成FPGA芯片的下载启动流程。
具体地,在解码时,解码器可以先获取到第二配置文件中的查找表,通过读取查找表,恢复出相同的子文件,将恢复后的相同子文件和没有做处理的单独子文件,进行组合,生成第一配置文件。
需要说明的是,也可以利用游程编码算法或游程编码算法的变种对第一配置文件进行压缩,生成第二配置文件。
也可以利用LZ77、LZ78、LZSS、LZW算法、所述LZ77、LZ78、LZSS、LZW 的变种算法、基于字典和滑动窗口的算法中的任意一种对第一配置文件进行压缩,生成第二配置文件。
也可以利用统计概率的压缩算法,如Shanno-Fano算法、霍夫曼编码、算术编码及基于所述Shanno-Fano算法、霍夫曼编码、算术编码的类似算法对第一配置文件进行压缩,生成第二配置文件。
也可以基于本申请的算法和上述三类算法,以任意顺序组合成新的算法。
通过应用本发明实施例提供的FPGA配置文件加载方法,接收处理器发送的压缩指令,将采用EDA工具进行RTL编码、综合、布局布线生成的第一配置文件进行压缩,生成第二配置文件;将第二配置文件加载到FPGA芯片,FPGA 芯片对第二配置文件进行解压缩,将第二配置文件还原成第一配置文件,使得配置文件的尺寸大幅度减小,从而在将配置文件加载到FPGA芯片时,减少了加载时间,从而增加了FPGA芯片的配置效率。
下面以图4为例详细说明本发明实施例二提供的FPGA配置文件的加载后的解码方法,图4为本发明实施例二提供的解码器示意图,如图4所示,该解码器包括:解析单元410和组合单元420。
解析单元410,用于读取第二配置文件中的查找表,根据所述查找表中的标识符获取相同子文件的相同值及相同值的长度;
组合单元420,用于将所述子文件的相同值和所述第二配置文件中的单独子文件进行组合,生成第一配置文件。
可选地,所述解码器在所述FPGA芯片内;或者,
所述解码器通过扩展接口连接至所述FPGA芯片。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器 (RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种FPGA配置文件加载方法,其特征在于,所述方法包括:
接收处理器发送的压缩指令;
将采用电子设计自动化EDA工具进行寄存器传输级RTL编码、综合、布局布线生成的第一配置文件根据预设的字节长度分割为多个子文件,当所述多个子文件中存在至少两个相同子文件时,获取该相同子文件的相同值及相同值长度、并给所述相同值和相同值的长度添加标识符,该相同值、相同值的长度和标识符构成查找表;其中,在添加标识符时,遍历全部子文件且在其中没有出现过的组合字符为标识符,用以对所述第一配置文件进行压缩,生成第二配置文件;
将所述第二配置文件加载到现场可编程逻辑门阵列FPGA芯片,利用解码器对所述第二配置文件进行解压缩,以将所述第二配置文件还原成第一配置文件;
所述解码器在所述FPGA芯片内;或通过扩展接口连接所述FPGA芯片。
2.根据权利要求1所述的方法,其特征在于,所述接收压缩指令之后,还包括:
利用LZ77、LZ78、LZSS、LZW算法、所述LZ77、LZ78、LZSS、LZW的变种算法、基于字典和滑动窗口的算法中的任意一种对第一配置文件进行压缩,生成第二配置文件;或者,
利用Shanno-Fano算法、霍夫曼编码、算术编码中的任意一种对所述第一配置文件进行压缩。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410618298.2A CN105573775B (zh) | 2014-11-05 | 2014-11-05 | Fpga配置文件加载方法和解码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410618298.2A CN105573775B (zh) | 2014-11-05 | 2014-11-05 | Fpga配置文件加载方法和解码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105573775A CN105573775A (zh) | 2016-05-11 |
CN105573775B true CN105573775B (zh) | 2019-04-09 |
Family
ID=55883950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410618298.2A Active CN105573775B (zh) | 2014-11-05 | 2014-11-05 | Fpga配置文件加载方法和解码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105573775B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108132818B (zh) * | 2016-11-30 | 2021-12-21 | 阿里巴巴集团控股有限公司 | 界面处理方法和执行该方法的电子装置 |
CN108037695B (zh) * | 2017-11-29 | 2020-10-27 | 深圳市紫光同创电子有限公司 | 现场可编程门阵列及其自动配置方法 |
CN111431540B (zh) * | 2020-04-01 | 2021-10-08 | 西安交通大学 | 一种基于神经网络模型的fpga配置文件算术压缩与解压方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100543757C (zh) * | 2007-11-09 | 2009-09-23 | 北京航空航天大学 | 高可靠性数字集成电路设计方法 |
CN101656756B (zh) * | 2009-09-17 | 2012-09-05 | 中国科学院声学研究所 | 一种发送速率自适应控制的文件传输方法及其系统 |
CN102129872B (zh) * | 2010-01-14 | 2013-01-09 | 珠海扬智电子有限公司 | 资料压缩、解压缩方法及其装置 |
CN101834757B (zh) * | 2010-04-01 | 2014-08-13 | 深圳英飞拓科技股份有限公司 | 自动检测光传输监控网络拓扑的方法及实现装置 |
CN102262547A (zh) * | 2010-05-31 | 2011-11-30 | 中兴通讯股份有限公司 | 场可编程门阵列加载方法和装置 |
EP2987284B1 (en) * | 2013-04-18 | 2019-09-18 | Samsung Electronics Co., Ltd. | Method and apparatus for controlling media delivery in multimedia transport network |
-
2014
- 2014-11-05 CN CN201410618298.2A patent/CN105573775B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105573775A (zh) | 2016-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9454552B2 (en) | Entropy coding and decoding using polar codes | |
US8988257B2 (en) | Data compression utilizing variable and limited length codes | |
US10187081B1 (en) | Dictionary preload for data compression | |
US8806292B2 (en) | Method of hybrid compression acceleration utilizing special and general purpose processors | |
US20090060047A1 (en) | Data compression using an arbitrary-sized dictionary | |
JP7425526B2 (ja) | 動的ハフマン表生成のためのハードウェア領域を節約するためのラッチカウントの削減 | |
US9923577B1 (en) | Hybrid software-hardware implementation of lossless data compression and decompression | |
CN105573775B (zh) | Fpga配置文件加载方法和解码器 | |
CN104199951B (zh) | 网页处理方法及装置 | |
CN106849956B (zh) | 压缩方法、解压缩方法、装置和数据处理系统 | |
CN101534124B (zh) | 一种用于短小自然语言的压缩算法 | |
JP5656593B2 (ja) | 符号化データを復号する装置及び方法 | |
CN106776663B (zh) | 音频文件的压缩方法和装置 | |
JP6647340B2 (ja) | 改善されたファイルの圧縮及び暗号化 | |
TW201707388A (zh) | 於虛擬記憶體系統中之經改善壓縮快取 | |
CN106688186A (zh) | 在基于lz的压缩算法中在多个经压缩块之间共享初始词典和霍夫曼树 | |
Ledwon et al. | Design and evaluation of an fpga-based hardware accelerator for deflate data decompression | |
CN113220651B (zh) | 运行数据压缩方法、装置、终端设备以及存储介质 | |
CN105574053B (zh) | Fpga配置文件的压缩方法和装置 | |
US8018359B2 (en) | Conversion of bit lengths into codes | |
CN105630529A (zh) | Fpga配置文件的加载方法和解码器 | |
WO2007108395A1 (ja) | 可変長符号の復号装置および復号方法 | |
JP2016170750A (ja) | データ管理プログラム、情報処理装置およびデータ管理方法 | |
Konecki et al. | Efficiency of lossless data compression | |
CN108932315A (zh) | 一种数据解压的方法以及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |