可编程逻辑器件配置数据流压缩、解压缩处理方法及系统技术方案

技术编号:8132329 阅读:259 留言:0更新日期:2012-12-27 05:13
本发明专利技术公开一种可编程逻辑器件配置数据流的压缩、解压缩处理方法及系统,压缩方法包括获取所述配置数据流中待压缩处理的数据帧,对所述待压缩处理的数据帧内部的数据单元进行压缩处理。本发明专利技术通过以上技术方案,提供一种更加高效的可编程逻辑器件配置数据流的压缩、解压缩处理方法及系统。

【技术实现步骤摘要】

本专利技术涉及数据处理领域,尤其涉及一种可编程逻辑器件的配置数据流的压缩、解压缩处理方法及系统。
技术介绍
传统的可编程逻辑器件(programmable logic device, PLD),比如现场可编程门阵列FPGA (Field Program Gate Array)是通过相应的配置 数据流进行配置的,配置数据流被下载到可编程逻辑器件,然后存储在配置存储单元中,最后根据配置存储单元的内容对可编程逻辑器件进行相应的配置,从而将可编程逻辑器件构造成用户预设的特定功能的器件。通常情况下,一个设计文件中所包含的配置数据位有上百万个甚至更多,这就需要很大的外部存储器来存储配置数据流,同时配置数据流的下载操作也会相应地花费很多时间。因此,为了节省存储空间和节约下载时间,压缩配置数据流是ー个很有效的技术措施。压缩一般分为有损压缩和无损压缩。,其中ー个著名的的最常用的无损压缩算法是基于字典的LZ(根据原始提出人Lempel-Ziv命名)系列。传统的FPGA开发商采用的基本上都是基于LZ的压缩算法,LZ压缩算法主要是针对字符串或者数据串(以下简称串)的压缩,如在一个缓冲器buffer中保存最新的被压缩的数据流,当有数据输入吋,LZ算法就查找输入数据与缓冲器的数据的匹配性,找出最长的匹配数据,然后就输出一段编码来代替匹配的数据,编码由三部分组成,包括匹配数据串的位置,长度和紧接着匹配数据串的最后一位的字符或者数据。传统的部分FPGA是以帧frame为单位进行配置,以帧为单位进行压缩,即帧外部的压缩。图I为现有技术ー种FPGA的示意图,包括FPGA11、可编程逻辑单元12和帧13,FPGAll表示FPGA的一种结构,里面的每ー个虚线条表示ー帧(虚线条的数目不代表任何含义,此处只是ー种示意图),FPGA通过ー帧ー帧地完成配置。一帧数据又会包含若干个比特或字段,根据FPGA类型和容量的不同,其包含的比特或字段个数也不同,假设ー帧数据包含的字段个数为m,相应的位数为32*m ;再用大写字母W加上下脚标来表示帧内部字段及其顺序,如图2所示,图2为现有技术ー种FPGA中帧结构的示意图,用W。表示第一个字,W1表示第二个字,以此类推,最后ー个字用Wnrl来表示,通常当一帧数据包含的字段个数为m时,就说这个巾贞的长度为m。传统的帧外部进行压缩的方法在一定程度上考虑了 FPGA本身的结构特征和编程特点,但是没有考虑到帧内部的数据特征,因此传统的帧外部基于帧单元进行压缩的方法存在一定的局限性,效率较低。
技术实现思路
本专利技术提供一种更加高效的可编程逻辑器件的配置数据流的压缩、解压缩处理方法及系统。为解决上述技术问题,本专利技术采用以下技术方案一种可编程逻辑器件的配置数据流的压缩处理方法,包括获取所述配置数据流中待压缩处理的数据帧;对所述待压缩处理的数据帧内部的数据单元进行压缩处理。所述数据单元包括ー个或多个比特值,或者所述数据单元包括一个或多个字段值。对所述待压缩处理的数据帧内部的数据单元进行压缩处理后得到參考值和命令单元。 对所述待压缩处理的数据帧内部的数据单元进行压缩处理后得到參考值和命令单元的过程具体为将由统计得出的帧内部连续且相同的数据单元的数目与ー预设值比较,判断所述连续且相同的数据单元的数目是否大于或等于所述预设值;如果是,对所述连续且相同的多个数据单元进行处理后得到的命令単元包括用于表示压缩类型的命令类型信息、用于表示所述连续且相同的多个数据単元位于帧内部的地址信息和用于表示所述连续且相同的多个数据単元的数目信息;如果否,对所述连续且相同的多个数据単元或I个数据单元进行处理后得到的命令単元包括用于表示非压缩类型的命令类型信息、用于表示所述连续且相同的多个数据单元或I个数据単元位于帧内部的地址信息和用于表示所述连续且相同的多个数据単元或I个数据单元的数目信息。所述预设值为大于或等于3的整数。还包括对所述配置数据流中的帧单元进行压缩处理。一种可编程逻辑器件的配置数据流的解压缩处理方法,包括获取所述配置数据流中待解压缩处理的数据帧;对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理。对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理的过程具体为获取所述待解压缩处理的数据帧内部的命令単元和參考值;根据所述命令単元和參考值对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理。根据所述命令単元和參考值对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理的过程具体为获取所述命令単元中的命令类型信息;如果所述命令単元中的命令类型信息为压缩类型,则根据所述命令単元中用于表示所述连续且相同的多个数据単元位于帧内部的地址信息和用于表示所述连续且相同的多个数据単元的数目信息,将所述參考值复制到帧内的相应地址上;如果所述命令単元中的命令类型信息为非压缩类型,则根据所述命令単元中用于表示所述连续且相同的多个数据単元或I个数据単元位于帧内部的地址信息和用于表示所述连续且相同的多个数据単元或I个数据単元的数目信息,将所述參考值复制到帧内的相应地址上。还包括对所述配置数据流中的帧单元进行解压缩处理。一种可编程逻辑器件的配置数据流的压缩处理系统,包括待压缩处理数据获取模块和第一压缩处理模块,其中,所述待压缩处理数据获取模块用于获取所述配置数据流中待压缩处理的数据帧;所述第一压缩处理模块用于对所述待压缩处理的数据帧内部的数据单元进行压缩处理。所述第一压缩处理模块用于对所述待压缩处理的数据帧内部的数据单元进行压缩处理后得到參考值和命令単元。·所述第一压缩处理模块具体用干将由统计得出的帧内部连续且相同的数据单元的数目与ー预设值比较,判断所述连续且相同的数据单元的数目是否大于或等于所述预设值;如果是,则对所述连续且相同的多个数据单元进行处理后得到的命令単元包括用于表示压缩类型的命令类型信息、用于表示所述连续且相同的多个数据単元位于帧内部的地址信息和用于表示所述连续且相同的多个数据単元的数目信息;如果否,对所述连续且相同的多个数据単元或I个数据单元进行处理得到的命令単元包括用于表示非压缩类型的命令类型信息、用于表示所述连续且相同的多个数据単元或I个数据単元位于帧内部的地址信息和用于表示所述连续且相同的多个数据単元或I个数据単元的数目信息。还包括第二压缩处理模块,所述第二压缩处理模块用于对所述配置数据流中的帧单元进行压缩处理。一种可编程逻辑器件的配置数据流的解压缩处理系统,包括待解压缩处理数据获取模块和第一解压缩模块,其中所述待解压缩处理数据获取模块用于获取所述配置数据流中待解压缩处理的数据帧;所述第一解压缩模块用于对所述待解压缩数据帧内部的数据单元进行解压缩处理。所述第一解压缩模块具体用于获取所述待解压缩处理的数据帧内部的命令単元和參考值;根据所述命令単元和參考值对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理。所述第一解压缩模块具体用于获取所述命令単元中的命令类型信息;如果所述命令単元中的命令类型信息为压缩类型,则根据所述命令単元中用于表示所述连续且相同的多个数据単元位于帧内部的地址信息和用于表示所述连续且相同的多个数据単元的数目信息,将所述參考值复制到帧内的相应地址上;如果所述命令単元中的命令类型信息为非压缩类型,则根据所述命令単元中用于本文档来自技高网
...

【技术保护点】
一种可编程逻辑器件的配置数据流的压缩处理方法,其特征在于,包括:获取所述配置数据流中待压缩处理的数据帧;对所述待压缩处理的数据帧内部的数据单元进行压缩处理。

【技术特征摘要】
1.一种可编程逻辑器件的配置数据流的压缩处理方法,其特征在于,包括 获取所述配置数据流中待压缩处理的数据帧; 对所述待压缩处理的数据帧内部的数据单元进行压缩处理。2.如权利要求I所述的方法,其特征在于,所述数据単元包括ー个或多个比特值,或者所述数据単元包括ー个或多个字段值。3.如权利要求I所述的方法,其特征在于,对所述待压缩处理的数据帧内部的数据单元进行压缩处理后得到參考值和命令単元。4.如权利要求3所述的方法,其特征在于,对所述待压缩处理的数据帧内部的数据单元进行压缩处理后得到參考值和命令単元的过程具体为 将由统计得出的帧内部连续且相同的数据单元的数目与ー预设值比较,判断所述连续且相同的数据单元的数目是否大于或等于所述预设值; 如果是,对所述连续且相同的多个数据单元进行处理后得到的命令単元包括用于表示压缩类型的命令类型信息、用于表示所述连续且相同的多个数据単元位于帧内部的地址信息和用于表示所述连续且相同的多个数据単元的数目信息; 如果否,对所述连续且相同的多个数据単元或I个数据单元进行处理后得到的命令单元包括用于表示非压缩类型的命令类型信息、用于表示所述连续且相同的多个数据単元或I个数据単元位于帧内部的地址信息和用于表示所述连续且相同的多个数据単元或I个数据单元的数目信息。5.如权利要求4所述的方法,其特征在于,所述预设值为大于或等于3的整数。6.如权利要求I至5任一项所述的方法,其特征在于,还包括 对所述配置数据流中的帧单元进行压缩处理。7.一种可编程逻辑器件的配置数据流的解压缩处理方法,其特征在于,包括 获取所述配置数据流中待解压缩处理的数据帧; 对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理。8.如权利要求7所述的方法,其特征在干,对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理的过程具体为 获取所述待解压缩处理的数据帧内部的命令単元和參考值; 根据所述命令単元和參考值对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理。9.如权利要求8所述的方法,其特征在于,根据所述命令単元和參考值对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理的过程具体为 获取所述命令単元中的命令类型信息; 如果所述命令単元中的命令类型信息为压缩类型,则根据所述命令単元中用于表示所述连续且相同的多个数据単元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元的数目信息,将所述參考值复制到帧内的相应地址上; 如果所述命令単元中的命令类型信息为非压缩类型,则根据所述命令単元中用于表示所述连续且相同的多个数据単元或I个数据単元位于帧内部的地址信息和用于表示所述连续且相同的多个数据単元或I个数据単元的数目信息,将所述參考值复制到帧内的相应地址上。10.如权利要求7至9任一项所述的方法,其特征在于,还包括 对所述配置数据...

【专利技术属性】
技术研发人员:包朝伟刘仕东王佩宁
申请(专利权)人:深圳市国微电子股份有限公司
类型:发明
国别省市:

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

1