首页> 中国专利> 可编程逻辑器件配置数据流压缩、解压缩处理方法及系统

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

摘要

本发明公开一种可编程逻辑器件配置数据流的压缩、解压缩处理方法及系统,压缩方法包括获取所述配置数据流中待压缩处理的数据帧,对所述待压缩处理的数据帧内部的数据单元进行压缩处理。本发明通过以上技术方案,提供一种更加高效的可编程逻辑器件配置数据流的压缩、解压缩处理方法及系统。

著录项

  • 公开/公告号CN102843142A

    专利类型发明专利

  • 公开/公告日2012-12-26

    原文格式PDF

  • 申请/专利权人 深圳市国微电子股份有限公司;

    申请/专利号CN201110171082.2

  • 发明设计人 包朝伟;刘仕东;王佩宁;

    申请日2011-06-23

  • 分类号H03M7/30(20060101);

  • 代理机构44281 深圳鼎合诚知识产权代理有限公司;

  • 代理人薛祥辉

  • 地址 518057 广东省深圳市南山区深圳高新技术产业园区南区高新南一道国微研发大楼

  • 入库时间 2023-12-18 07:51:02

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-06-07

    未缴年费专利权终止 IPC(主分类):H03M 7/30 专利号:ZL2011101710822 申请日:20110623 授权公告日:20130731

    专利权的终止

  • 2013-07-31

    授权

    授权

  • 2013-04-03

    著录事项变更 IPC(主分类):H03M7/30 变更前: 变更后: 申请日:20110623

    著录事项变更

  • 2013-02-13

    实质审查的生效 IPC(主分类):H03M7/30 申请日:20110623

    实质审查的生效

  • 2012-12-26

    公开

    公开

说明书

技术领域

本发明涉及数据处理领域,尤其涉及一种可编程逻辑器件的配置数据流的 压缩、解压缩处理方法及系统。

背景技术

传统的可编程逻辑器件(programmable logic device,PLD),比如现场 可编程门阵列FPGA(Field Program Gate Array)是通过相应的配置数据流进 行配置的,配置数据流被下载到可编程逻辑器件,然后存储在配置存储单元中, 最后根据配置存储单元的内容对可编程逻辑器件进行相应的配置,从而将可编 程逻辑器件构造成用户预设的特定功能的器件。

通常情况下,一个设计文件中所包含的配置数据位有上百万个甚至更多, 这就需要很大的外部存储器来存储配置数据流,同时配置数据流的下载操作也 会相应地花费很多时间。因此,为了节省存储空间和节约下载时间,压缩配置 数据流是一个很有效的技术措施。

压缩一般分为有损压缩和无损压缩。,其中一个著名的的最常用的无损压缩 算法是基于字典的LZ(根据原始提出人Lempel-Ziv命名)系列。传统的FPGA开发 商采用的基本上都是基于LZ的压缩算法,LZ压缩算法主要是针对字符串或者数 据串(以下简称串)的压缩,如在一个缓冲器buffer中保存最新的被压缩的数 据流,当有数据输入时,LZ算法就查找输入数据与缓冲器的数据的匹配性,找 出最长的匹配数据,然后就输出一段编码来代替匹配的数据,编码由三部分组 成,包括匹配数据串的位置,长度和紧接着匹配数据串的最后一位的字符或者 数据。传统的部分FPGA是以帧frame为单位进行配置,以帧为单位进行压缩,即 帧外部的压缩。图1为现有技术一种FPGA的示意图,包括FPGA11、可编程逻辑单 元12和帧13,FPGA11表示FPGA的一种结构,里面的每一个虚线条表示一帧(虚 线条的数目不代表任何含义,此处只是一种示意图),FPGA通过一帧一帧地完成 配置。一帧数据又会包含若干个比特或字段,根据FPGA类型和容量的不同,其 包含的比特或字段个数也不同,假设一帧数据包含的字段个数为m,相应的位数 为32*m;再用大写字母W加上下脚标来表示帧内部字段及其顺序,如图2所示, 图2为现有技术一种FPGA中帧结构的示意图,用W0表示第一个字,W1表示第二个 字,以此类推,最后一个字用Wm-1来表示,通常当一帧数据包含的字段个数为m 时,就说这个帧的长度为m。

传统的帧外部进行压缩的方法在一定程度上考虑了FPGA本身的结构特征和 编程特点,但是没有考虑到帧内部的数据特征,因此传统的帧外部基于帧单元 进行压缩的方法存在一定的局限性,效率较低。

发明内容

本发明提供一种更加高效的可编程逻辑器件的配置数据流的压缩、解压缩 处理方法及系统。

为解决上述技术问题,本发明采用以下技术方案:

一种可编程逻辑器件的配置数据流的压缩处理方法,包括:

获取所述配置数据流中待压缩处理的数据帧;

对所述待压缩处理的数据帧内部的数据单元进行压缩处理。

所述数据单元包括一个或多个比特值,或者所述数据单元包括一个或多个 字段值。

对所述待压缩处理的数据帧内部的数据单元进行压缩处理后得到参考值和 命令单元。

对所述待压缩处理的数据帧内部的数据单元进行压缩处理后得到参考值和 命令单元的过程具体为:

将由统计得出的帧内部连续且相同的数据单元的数目与一预设值比较,判 断所述连续且相同的数据单元的数目是否大于或等于所述预设值;

如果是,对所述连续且相同的多个数据单元进行处理后得到的命令单元包 括用于表示压缩类型的命令类型信息、用于表示所述连续且相同的多个数据单 元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元的数目信 息;

如果否,对所述连续且相同的多个数据单元或1个数据单元进行处理后得 到的命令单元包括用于表示非压缩类型的命令类型信息、用于表示所述连续且 相同的多个数据单元或1个数据单元位于帧内部的地址信息和用于表示所述连 续且相同的多个数据单元或1个数据单元的数目信息。

所述预设值为大于或等于3的整数。

还包括:

对所述配置数据流中的帧单元进行压缩处理。

一种可编程逻辑器件的配置数据流的解压缩处理方法,包括:

获取所述配置数据流中待解压缩处理的数据帧;

对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理。

对所述待解压缩处理的数据帧内部的数据单元进行解压缩处理的过程具体 为:

获取所述待解压缩处理的数据帧内部的命令单元和参考值;

根据所述命令单元和参考值对所述待解压缩处理的数据帧内部的数据单元 进行解压缩处理。

根据所述命令单元和参考值对所述待解压缩处理的数据帧内部的数据单元 进行解压缩处理的过程具体为:

获取所述命令单元中的命令类型信息;

如果所述命令单元中的命令类型信息为压缩类型,则根据所述命令单元中 用于表示所述连续且相同的多个数据单元位于帧内部的地址信息和用于表示所 述连续且相同的多个数据单元的数目信息,将所述参考值复制到帧内的相应地 址上;

如果所述命令单元中的命令类型信息为非压缩类型,则根据所述命令单元 中用于表示所述连续且相同的多个数据单元或1个数据单元位于帧内部的地址 信息和用于表示所述连续且相同的多个数据单元或1个数据单元的数目信息, 将所述参考值复制到帧内的相应地址上。

还包括:

对所述配置数据流中的帧单元进行解压缩处理。

一种可编程逻辑器件的配置数据流的压缩处理系统,包括待压缩处理数据 获取模块和第一压缩处理模块,其中,

所述待压缩处理数据获取模块用于获取所述配置数据流中待压缩处理的数 据帧;

所述第一压缩处理模块用于对所述待压缩处理的数据帧内部的数据单元进 行压缩处理。

所述第一压缩处理模块用于对所述待压缩处理的数据帧内部的数据单元进 行压缩处理后得到参考值和命令单元。

所述第一压缩处理模块具体用于:将由统计得出的帧内部连续且相同的数 据单元的数目与一预设值比较,判断所述连续且相同的数据单元的数目是否大 于或等于所述预设值;如果是,则对所述连续且相同的多个数据单元进行处理 后得到的命令单元包括用于表示压缩类型的命令类型信息、用于表示所述连续 且相同的多个数据单元位于帧内部的地址信息和用于表示所述连续且相同的多 个数据单元的数目信息;如果否,对所述连续且相同的多个数据单元或1个数 据单元进行处理得到的命令单元包括用于表示非压缩类型的命令类型信息、用 于表示所述连续且相同的多个数据单元或1个数据单元位于帧内部的地址信息 和用于表示所述连续且相同的多个数据单元或1个数据单元的数目信息。

还包括第二压缩处理模块,所述第二压缩处理模块用于对所述配置数据流 中的帧单元进行压缩处理。

一种可编程逻辑器件的配置数据流的解压缩处理系统,包括待解压缩处理 数据获取模块和第一解压缩模块,其中:

所述待解压缩处理数据获取模块用于获取所述配置数据流中待解压缩处理 的数据帧;

所述第一解压缩模块用于对所述待解压缩数据帧内部的数据单元进行解压 缩处理。

所述第一解压缩模块具体用于获取所述待解压缩处理的数据帧内部的命令 单元和参考值;根据所述命令单元和参考值对所述待解压缩处理的数据帧内部 的数据单元进行解压缩处理。

所述第一解压缩模块具体用于获取所述命令单元中的命令类型信息;如果 所述命令单元中的命令类型信息为压缩类型,则根据所述命令单元中用于表示 所述连续且相同的多个数据单元位于帧内部的地址信息和用于表示所述连续且 相同的多个数据单元的数目信息,将所述参考值复制到帧内的相应地址上;如 果所述命令单元中的命令类型信息为非压缩类型,则根据所述命令单元中用于 表示所述连续且相同的多个数据单元或1个数据单元位于帧内部的地址信息和 用于表示所述连续且相同的多个数据单元或1个数据单元的数目信息,将所述 参考值复制到帧内的相应地址上。

还包括第二解压缩模块,所述第二解压缩模块用于对所述配置数据流中的 帧单元进行解压缩处理。

本发明提供一种可编程逻辑器件的配置数据流的压缩、解压缩处理方法及 系统,压缩方法中包括对待压缩处理的数据帧内部的数据单元进行压缩处理, 通过对帧内部的数据单元进行压缩,提高压缩效率,本发明还可以通过设置预 设值,针对数据帧或帧内部数据单元的特点,选择最佳的压缩比,因此,还具 有很强的灵活性。

附图说明

图1为现有技术一种FPGA的示意图;

图2为现有技术一种FPGA中帧结构的示意图;

图3为本发明实施例一种可编程逻辑器件的配置数据流压缩处理方法的流 程图;

图4为本发明实施例一种可编程逻辑器件的配置数据流压缩处理方法中帧 内部压缩方法的流程图;

图5为本发明实施例对数目大于或等于该预设值的连续且相同的多个数据 单元进行处理后得到的命令单元的结构示意图;

图6为本发明实施例对数目小于该预设值的连续且相同的多个或1个数据 单元进行处理后得到的命令单元的结构示意图;

图7为本发明实施例一种可编程逻辑器件的配置数据流压缩处理方法中帧 内部压缩数据的示意图;

图8为本发明实施例一种可编程逻辑器件的配置数据流解压缩处理方法的 流程图;

图9为本发明实施例一种可编程逻辑器件的配置数据流解压缩处理方法中 帧内部解压缩数据的示意图;

图10为本发明实施例一种可编程逻辑器件的配置数据流压缩处理系统的模 块图;

图11为本发明另一实施例一种可编程逻辑器件的配置数据流压缩处理系统 的模块图;

图12本发明实施例一种可编程逻辑器件的配置数据流解压缩处理系统的模 块图;

图13本发明另一实施例一种可编程逻辑器件的配置数据流解压缩处理系统 的模块图。

具体实施方式

下面通过具体实施方式结合附图对本发明作进一步详细说明。

一种可编程逻辑器件的配置数据流的压缩处理方法,包括:

获取所述配置数据流中待压缩处理的数据帧;

对所述待压缩处理的数据帧内部的数据单元进行压缩处理。

图3为本发明实施例一种可编程逻辑器件的配置数据流压缩处理方法的流 程图,请参考图3,本实施例以FPGA配置数据流的压缩方法为例:

S31、利用设计文件产生数据流;

S32、判断是否可以进行帧外部基于帧单元的压缩处理,若是,则执行步骤 S33,否则执行步骤S34;

S33、对数据流进行帧外部基于帧单元的压缩处理,帧外部帧单元的压缩结 束后,执行S34;

S34、对数据流进行帧内部基于帧内部数据单元的压缩处理;

S35、将压缩结果存储到压缩数据流存储器中。

本实施例优选的是先进行帧外部压缩,再进行帧内部压缩,本发明还适用 于先进行帧内部压缩,再进行帧外部压缩的方法。

其中步骤S34对数据流进行帧内部压缩的具体过程包括:

将由统计得出的帧内部连续且相同的数据单元的数目与一预设值比较,判 断该连续且相同的数据单元的数目是否大于或等于所述预设值;如果是,则判 断结果为满足压缩条件,对满足压缩条件的连续且相同的多个数据单元进行压 缩处理。

根据数据流中的数据类型不同,数据单元可以是比特值或字段值或其他, 其压缩和解压缩方法相类似。本发明不局限于以一个比特值或一个字段值为数 据单元进行压缩,还可以以多个比特值或多个字段值为一个数据单元进行压缩, 预设值为大于或等于3的整数。

图4为本发明实施例一种可编程逻辑器件的配置数据流压缩处理方法中帧 内部压缩方法的流程图,请参考图4,本实施例中一个数据单元为帧内的一个字 段值:

S341、将数据流加载到缓冲器A中,优选的,缓冲器A的大小比一帧的配置 数据长度多出一位,用作标志位,优选的标志位为缓冲器A的第一位;

S342、判断数据流是否进行过帧外部基于帧单元的压缩处理,本实施例可 以通过帧外部基于帧单元的压缩处理后,帧所附带的帧压缩命令或者其他标志 来判断,若是,则执行S343,否则执行S344;

S343、在步骤S341中缓冲器A所预留的标志位,即缓冲器A的第一位上写 进“1”标志,执行S345;

S344、在步骤S341中缓冲器A所预留的标志位,即缓冲器A的第一位上写 进“0”标志,执行S345;

S345、将缓冲器A中的数据流复制到同样大小的缓冲器B中,复制完之后 缓冲器A继续接收新的数据流,缓冲器B除了第一位之外,其他的都是经过编 址的,其中基本的编址单元是一个字段,即32位为一个编址单位,比如:缓冲 器B大小为106×32位(bits),有106个字段,对每个字段进行编址,地址是 1-106,用二进制表示是00000001-01101010,用十六进制表示是00-6A;

S346、以一个字段值为一个数据单位,处理的顺序按照缓冲器B的地址由 低到高来进行,依次处理每一个字段,统计连续且相同的该字段值的数目,将 其与一预设值比较,判断连续且相同的该字段值的数目是否大于或等于该预设 值,如果是,则执行S347,否则,执行S348;

S347、对数目大于或等于该预设值的连续且相同多个字段值进行处理后得 到以下形式:命令单元+参考值。其中命令单元包括用于表示压缩类型的命令类 型信息、用于表示所述连续且相同的多个字段值位于帧内部的地址信息和用于 表示所述连续且相同的多个字段值的数目信息,执行S349;

图5为本发明实施例对数目大于或等于该预设值的连续且相同的多个数据 单元进行处理后得到的命令单元的结构示意图,请参考图5,本实施例的命令单 元为命令字段,这个命令字段的宽度可以是32bit,其中第一部分内容用于表示 压缩类型的命令类型信息,可以用1个二进制位“0”来标识,表示该命令类型 的为压缩类型,第二部分内容用于表示所述连续且相同的多个字段值位于帧内 部的地址信息,地址信息指一帧数据内每个字段所在的顺序或者编号,也可以 是这些被压缩的连续且相同的多个字段值中的第一个字段值的地址信息,由于 这些字段是连续的,因此知道第一个字段的地址信息之后,可以推算其他字段 的地址信息;第三部分内容用于表示所述连续且相同的多个字段值的数目信息。

S348、对数目小于该预设值的连续且相同多个字段值或1个字段值进行处 理后得到以下形式:命令单元+参考值,命令单元包括用于表示非压缩类型的命 令类型信息、用于表示所述连续且相同的多个数据单元或1个数据单元位于帧 内部的地址信息和用于表示所述连续且相同的多个数据单元或1个数据单元的 数目信息,执行S349;

图6为本发明实施例对数目小于该预设值的连续且相同的多个或1个数据 单元进行处理后得到的命令单元的结构示意图,请参考图6,本实施例的命令单 元为命令字段,这个命令字的宽度可以是32bit,其结构、格式和含义类似于上 述对数目大于或等于预设值的连续且相同的多个数据单元进行压缩处理后得到 的命令单元,其中第一部分内容用于表示非压缩类型,最高位,即第31位用1 个二进制位“1”来标识,表示该命令类型为非压缩类型,第二部分内容用于表 示数目小于该预设值的连续且相同的多个字段值或1个字段值位于帧内部的地 址信息,地址信息指一帧数据内每个字段所在的顺序或者编号,也可以是这些 字段中第一个字段的地址信息,由于这些字段是连续的,因此,知道第一个字 段的地址信息之后,可以推算其他字段的地址信息;第三部分内容用于表示所 述连续且相同的多个字段值或1个字段值的数目信息。

图7为本发明实施例一种可编程逻辑器件的配置数据流压缩处理方法中帧 内部压缩数据的示意图,请参考图7,假设一帧数据的长度m=106,根据命令字 段的定义,其地址编码从0000到0069,指向相应的字段,而每个字段的内容 也被数据填满了,这里的地址和字段值都是用十六进制表示,字段值的省略部 分表示相同的若干个字段值,而地址的省略部分表示递增的若干个地址值,第0 个字段值为:0000_0000;第1个字段值到第15个字段值相同,为1111_1111; 第16个字段值到第20字段值分别为:2222_2222,3333_3333,4444_4444, 4444_4444,5555_5555;第21个字段值到第102个字段值相同,为6666_6666; 第103个字段值到105个字段值分别为:7777_7777,6666_6666,6666_6666, 假设预设值为10,假设本实施例对数目大于或等于预设值的连续且相同的多个 字段值进行压缩处理后得到的命令单元为CMD1,对数目小于预设值的连续且相 同的多个或1个字段值进行处理得到的命令单元为CMD2,则处理过程为:由于 第0个字段值的数目为1,所以将其处理为CMD2,0000_0000,即命令单元和参 考值,参考值为该字段值本身,第1个字段值到第15个字段值连续且相同,连 续且相同的字段值的数目为15,大于预设值,所以将其压缩为:CMD1,1111_1111, 即命令单元和参考值,参考值为该字段值本身,同理,剩下的字段值分别处理 为:CMD2,2222_2222,3333_3333,4444_4444,4444_4444,5555_5555;CMD1, 6666_6666;CMD2,7777_7777,6666_6666,6666_6666。

具体化CMD1和CMD2,就可以得到:8000_0001,0000_0000,0002_000E, 1111_1111,8010_0005,2222_2222,3333_3333,4444_4444,4444_4444, 5555_5555,0015_0056,6666_6666,8067_0003,7777_7777,6666_6666, 6666_6666。

在这个实施例中,可以将一帧的106个字段压缩成16个字段,提高了数据压 缩的效率。

数目小于预设值的多个连续且相同的数据单元,即当连续且相同的数据单 元的数目为大于或等于2的整数,且该数目小于预设值,这种情况其命令单元 包括用于表示非压缩类型的命令类型信息、用于表示所述连续且相同的多个数 据单元位于帧内部的地址信息和用于表示所述连续且相同的多个数据单元的数 目信息,其中,用于表示所述连续且相同的多个数据单元位于帧内部的地址信 息包括各个数据单元位于帧内部的地址信息,或者是这些相同数据单元中的第 一个数据单元位于帧内部的地址信息,用于表示所述连续且相同的多个数据单 元的数目信息为这些相同数据单元的数目,如图7中的第18个字段值和第19 字段值:4444_4444,4444_4444;数目小于预设值的1个数据单元,即连续且 相同的数据单元的数目为1,且该数目小于预设值,这种情况其命令单元包括用 于表示非压缩类型的命令类型信息、用于表示该数据单元位于帧内部的地址信 息和用于表示该数据单元的数目信息,其中该数据单元的数目信息为1,如图7 中的第16个字段2222_2222,第17字段3333_3333。

S349、将步骤S347和S348的处理结果放到缓冲器C中,直到缓冲器B的 数据完全被处理,再将缓冲器C的内容输出。

本实施例通过命令单元中的命令类型信息,即用于表示压缩类型的命令类 型信息和用于表示非压缩类型的命令类型信息,在解压缩时可以通过识别命令 单元中的命令类型信息,方便地区分经过帧内部压缩和未经过帧内部压缩的数 据,优先的,在解压缩时利用现有的技术,只需增加两根译码线,就可以区分 经过帧内部压缩和未经过帧内部压缩的数据。

本实施例还包括一种数据解压缩处理方法,图8为本发明实施例一种可编 程逻辑器件的配置数据流解压缩处理方法的流程图,请参考图8:

S81、获取待解压缩处理的数据流,放入缓冲器D中;

S82、对数据帧进行解析,判断是否经过帧内部数据单元的压缩处理,若是, 则执行S83,否则执行步骤S84;

S83、对帧内部的数据单元进行解压缩处理,结束帧内部解压缩处理之后, 执行S84;

S84、将经过帧内部解压缩处理和未经过帧内部解压缩处理的数据帧放入缓 冲器D中,并检测缓冲器D中第一位的值是否为“1”,若是则执行S85,否则执 行S86;

S85、进行帧外部基于帧单元的解压缩处理,执行S87;

S86、不进行帧外部基于帧单元的解压缩处理,执行S87;

S87、将步骤S85和S86得到的数据流下载到FPGA中;

本实施例优选的是先进行帧内部解压缩,再进行帧外部解压缩,本发明还 适用于先进行帧外部解压缩,再进行帧内部解压缩的方法。

图9为本发明实施例一种可编程逻辑器件的配置数据流解压缩处理方法中 帧内部解压缩数据的示意图,请参考图9,比如接收到的经过帧内部压缩的一帧 数据如下:

8000_0001,0000_0000,0002_000E,1111_1111,8010_0005,2222_2222, 3333_3333,4444_4444,4444_4444,5555_5555,0015_0056,6666_6666, 8067_0003,7777_7777,6666_6666,6666_6666。

其中8000_0001、8010_0005和8067_0003为CMD2,0002_000E和0015_0056 为CMD1。

当接收到8000_0001时,就通知解压电路直接将0000_0000放到缓冲器D相 应的地址上,接收到0002_000E时,就通知解压电路接下来要对连续的多个相 同字段进行解压缩操作,紧接着根据0002_000E中用于表示该多个相同字段位 于帧内部的地址信息和用于表示该多个相同字段的数目信息,将相应数目的 1111_1111复制到帧内的相应地址上,接下来的解压缩操作依次类推,得到一帧 数据:第0个字段值为0000_0000;第1个字段值到第15个字段值数据相同, 为1111_1111;第16个字段值到第20个字段值分别为:2222_2222,3333_3333, 4444_4444,4444_4444,5555_5555;第21个字段值到第102个字段值相同, 为6666_6666;第103个字段值到第105个字段值分别为7777_7777,6666_6666, 6666_6666。

目前业界典型的一种FPGA配置数据流文件压缩方法是Xilinx公司XC2V40 器件采用的帧外部基于帧单元的压缩处理方法,本实施例采用ISE10.1开发工 具,用Verilog HDL作为设计的输入文件,通过ISE10.1生成标准配置流文件, 将生成的标准配置流文件用ISE10.1自带的帧外部基于帧单元的压缩算法进行 压缩,获得压缩后的第一压缩数据流文件;另外将ISE10.1生成的XC2V40配置 数据流文件在采用ISE10.1自带的帧外部基于帧单元的压缩算法进行压缩的基 础上,再采用本发明帧内部数据单元的压缩方法进行压缩,获得压缩后的第二 压缩数据流文件,由上述两种压缩方法获得的压缩数据流文件的文件大小如表1 所示:

表1

分别计算采用上述两种压缩方法所得到的压缩数据流文件的压缩比如表2 所示,压缩比指的是:用压缩后的文件大小除以原文件的大小所得结果的百分 比。

表2

其中压缩比提高幅度指的是:将第一压缩数据流文件的大小减去第二压缩 数据流文件的大小,再将所得到的结果除以第一压缩数据流文件的大小,所得 到的百分比。

由表2对比数据可见,本发明将传统的帧外部基于帧单元的压缩方法和帧 内部的压缩方法相结合所获得的压缩比,比单独使用基于帧单元的压缩方法所 获得的压缩比,平均提高了42.81%。因此,本发明提出的压缩方法可以大幅度 的提高FPGA配置流文件的压缩性能。

本实施例还包括一种数据压缩处理系统,图10为本发明实施例一种可编程 逻辑器件的配置数据流压缩处理系统的模块图,请参考图10:

一种数据压缩处理系统包括待压缩处理数据获取模块101和第一压缩处理 模块102,待压缩处理数据获取模块101用于获取配置数据流中待压缩处理的数 据帧,第一压缩处理模块102用于对所述待压缩处理的数据帧内部的数据单元 进行压缩处理。

进一步,第一压缩处理模块102用于对所述待压缩处理的数据帧内部的数 据单元进行压缩处理后得到参考值和命令单元。

进一步,第一压缩处理模块102具体用于将由统计得出的帧内部连续且相 同的数据单元的数目与一预设值比较,判断所述连续且相同的数据单元的数目 是否大于或等于所述预设值;如果是,则对所述连续且相同的多个数据单元进 行处理后得到的命令单元包括用于表示压缩类型的命令类型信息、用于表示所 述连续且相同的多个数据单元位于帧内部的地址信息和用于表示所述连续且相 同的多个数据单元的数目信息;如果否,对所述连续且相同的多个数据单元或1 个数据单元进行处理得到的命令单元包括用于表示非压缩类型的命令类型信 息、用于表示所述连续且相同的多个数据单元或1个数据单元位于帧内部的地 址信息和用于表示所述连续且相同的多个数据单元或1个数据单元的数目信息。

图11为本发明另一实施例一种可编程逻辑器件的配置数据流压缩处理系统 的模块图,请参考图11,还包括第二压缩处理模块103,第二压缩处理模块103 用于用于对所述配置数据流中的帧单元进行压缩处理。

图12本发明实施例一种可编程逻辑器件的配置数据流解压缩处理系统的模 块图,请参考图12:

一种数据解压缩处理系统,包括待解压缩处理数据获取模块121和第一解 压缩模块122,待解压缩处理数据获取模块121用于获取配置数据流中待解压缩 处理的数据帧,第一解压缩模块122用于对所述待解压缩数据帧内部的数据单 元进行解压缩处理。

进一步,第一解压缩模块122具体用于获取所述待解压缩处理的数据帧内 部的命令单元和参考值;根据所述命令单元和参考值对所述待解压缩处理的数 据帧内部的数据单元进行解压缩处理。

进一步,第一解压缩模块122具体用于获取所述命令单元中的命令类型信 息;如果所述命令单元中的命令类型信息为压缩类型,则根据所述命令单元中 用于表示所述连续且相同的多个数据单元位于帧内部的地址信息和用于表示所 述连续且相同的多个数据单元的数目信息,将所述参考值复制到帧内的相应地 址上;如果所述命令单元中的命令类型信息为非压缩类型,则根据所述命令单 元中用于表示所述连续且相同的多个数据单元或1个数据单元位于帧内部的地 址信息和用于表示所述连续且相同的多个数据单元或1个数据单元的数目信息, 将所述参考值复制到帧内的相应地址上。

图13本发明另一实施例一种可编程逻辑器件的配置数据流解压缩处理系统 的模块图,请参考图3,还包括第二解压缩模块123,第二解压缩模块123用于 对所述配置数据流中的帧单元进行解压缩处理。

以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认 定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术 人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换, 都应当视为属于本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号