一种基于FPGA的数据压缩处理电路的制作方法

摘要: 本技术涉及数字逻辑电路设计,尤其涉及一种基于fpga的数据压缩处理电路。背景技术:1、在工业物联网场景中,传感器(如温度传感器、压力传感器、湿度传感器等)通常以...
一种基于FPGA的数据压缩处理电路的制作方法

本技术涉及数字逻辑电路设计,尤其涉及一种基于fpga的数据压缩处理电路。

背景技术:

1、在工业物联网场景中,传感器(如温度传感器、压力传感器、湿度传感器等)通常以固定频率采集数据。当环境参数变化缓慢时,连续上报的数值往往高度重复。若将存在大量重复值的原始数据流进行直接传输,将会导致带宽浪费。

2、传统压缩算法如lz77/lz4、huffman编码等需复杂状态机与大量存储资源(如bram等),在fpga上资源消耗过高,如lz4需哈希字典和滑动窗口,占用超500 luts,难以满足低端fpga的实时性要求。

3、因此,亟需一种面向重复性数据的fpga实时压缩处理电路。

技术实现思路

1、本实用新型的目的在于针对现有技术的不足,提供一种基于fpga的数据压缩处理电路。本实用新型通过一种重复检测-计数编码的动态压缩架构,通过单一比较器实时比较与流水线计数实现单周期延迟的实时压缩。

2、本实用新型的目的是通过以下技术方案来实现的:一种基于fpga的数据压缩处理电路,包括:

3、移位寄存器组模块,用于缓存输入数据,即输入至数据压缩处理电路的重复性数据;所述移位寄存器组模块包括一时钟信号输入端、一复位信号输入端、一输入有效指示信号输入端、一组数据输入端、一组当前数据输出端以及一组历史数据输出端;

4、重复检测模块,用于检测移位寄存器组模块输出的两个连续的输入数据的重复性;所述重复检测模块包括一组当前数据输入端、一组历史数据输入端以及一重复性检测结果输出端;其中,当前数据输入端与当前数据输出端对应连接,历史数据输入端与历史数据输出端对应连接;

5、饱和计数器模块,用于根据重复检测模块输出的重复性检测结果动态更新计数值;所述饱和计数器模块包括一第一输入端、一第二输入端、一重复性检测结果输入端、一第三输入端、一溢出值选择输入端、一组计数值输出端、一计数溢出指示信号输出端以及一掩蔽控制信号输出端;

6、数据组装模块,用于将移位寄存器组模块输出的历史数据与计数值拼接为压缩数据包输出,并给出输出有效指示信号,以实现重复性数据的实时压缩处理;所述数据组装模块包括一第四输入端、一第五输入端、一组第六输入端、一组计数值输入端、一计数溢出指示信号输入端、一掩蔽控制信号输入端、一数据噪声滤除长度选择输入端、一第七输入端、一第八输入端、一组数据输出端以及一输出有效指示信号输出端;其中,计数值输入端与计数值输出端对应连接,计数溢出指示信号输入端与饱和计数溢出指示信号输出端相连,掩蔽控制信号输入端与掩蔽控制信号输出端相连;

7、其中,时钟信号输入端与第一输入端、第四输入端相连,复位信号输入端与第二输入端、第五输入端相连,输入有效指示信号输入端与第三输入端、第八输入端相连,历史数据输出端与历史数据输入端、第六输入端对应连接,重复性检测结果输出端与重复性检测结果输入端、第七输入端相连。

8、进一步地,所述移位寄存器组模块包括两个二选一选择器、一级寄存器和二级寄存器,第一个二选一选择器的一个数据输入端即为移位寄存器组模块的数据输入端,第一个二选一选择器的另一个数据输入端与一级寄存器的输出端相连后作为移位寄存器组模块的当前数据输出端,两个二选一选择器的选择控制信号输入端相连作为移位寄存器组模块的输入有效指示信号输入端,第一个二选一选择器的输出端与一级寄存器的数据输入端相连,一级寄存器的时钟输入端和二级寄存器的时钟输入端相连作为移位寄存器组模块的时钟信号输入端,一级寄存器的复位控制端和二级寄存器的复位控制端相连作为移位寄存器组模块的复位信号输入端,一级寄存器的输出端与第二个二选一选择器的一个数据输入端相连,第二个二选一选择器的另一个数据输入端与二级寄存器的输出端相连作为移位寄存器组模块的历史数据输出端,第二个二选一选择器的输出端与二级寄存器的数据输入端相连。

9、进一步地,所述重复检测模块包括等值比较器,等值比较器的两个输入端分别为重复检测模块的当前数据输入端和历史数据输入端,等值比较器的输出端即为重复检测模块的重复性检测结果输出端。

10、进一步地,所述饱和计数器模块具体包括:

11、第一d触发器、第二d触发器、寄存器的时钟输入端相连作为饱和计数器模块的第一输入端,第一d触发器、第二d触发器、寄存器的复位控制端相连作为饱和计数器模块的第二输入端,第一二选一选择器、第三二选一选择器、第六二选一选择器的选择控制信号输入端相连作为饱和计数器模块的第三输入端,第七二选一选择器的选择控制信号输入端作为饱和计数器模块的溢出值选择输入端;

12、第一二选一选择器的一个数据输入端连接高电平,第一二选一选择器的另一个数据输入端与第二二选一选择器的一个数据输入端、第一d触发器的输出端、第三二选一选择器的一个数据输入端、第一与门的一个数据输入端相连,第一二选一选择器的输出端与第二二选一选择器的另一个数据输入端相连,第二二选一选择器的输出端与第一d触发器的数据输入端相连,第二二选一选择器的选择控制信号输入端与第四二选一选择器的选择控制信号输入端、第一与门的输出端相连,第三二选一选择器的另一个数据输入端与第一与门的另一个数据输入端、第四二选一选择器的一个数据输入端、第二d触发器的输出端、第二与门的一个数据输入端相连作为饱和计数器模块的掩蔽控制信号输出端,第三二选一选择器的输出端与第四二选一选择器的另一个数据输入端相连,第四二选一选择器的输出端与第二d触发器的数据输入端相连;

13、第二与门的另一个数据输入端即为饱和计数器模块的重复性检测结果输入端,第二与门的取非输入端与第七二选一选择器的输出端相连作为饱和计数器模块的计数溢出指示信号输出端;第二与门的输出端与第五二选一选择器的选择控制信号输入端相连,加法器的一个数据输入端连接高电平,加法器的另一个数据输入端与第六二选一选择器的一个数据输入端、寄存器的输出端、第一等值比较器的一个输入端、第二等值比较器的一个输入端相连作为饱和计数器模块的计数值输出端;加法器的输出端与第五二选一选择器的一个数据输入端相连,第五二选一选择器的另一个数据输入端接收计数器的默认值为1时对应的信号,第五二选一选择器的输出端与第六二选一选择器的另一个数据输入端相连,第六二选一选择器的输出端与寄存器的数据输入端相连;第一等值比较器的另一个输入端接收计数器有效位宽为4位时对应的最大计数值信号,第二等值比较器的另一个输入端接收计数器有效位宽为8时对应的最大计数值信号,第一等值比较器的输出端、第二等值比较器的输出端分别第七二选一选择器的两个数据输入端一一对应连接。

14、进一步地,所述数据组装模块具体包括:

15、一号d触发器、二号d触发器的时钟输入端相连作为数据组装模块的第四输入端,一号d触发器、二号d触发器的复位控制端相连作为数据组装模块的第五输入端,一号与门的一个数据输入端与二号d触发器的数据输入端相连作为数据组装模块的第八输入端,一号与门的取非输入端与二号与门的一个数据输入端、三号与门的取非输入端相连作为数据组装模块的第七输入端,二号与门的另一个数据输入端与二号或门的一个数据输入端相连作为数据组装模块的计数溢出指示信号输入端,一号与门的输出端与一号二选一选择器的选择控制信号输入端相连,一号二选一选择器的一个数据输入端接地,一号二选一选择器的另一个数据输入端与一号d触发器的输出端、一号或门的一个数据输入端相连,一号二选一选择器的输出端与二号二选一选择器的一个数据输入端相连,二号二选一选择器的另一个数据输入端接高电平,二号二选一选择器的输出端与一号d触发器的数据输入端相连,大于比较器的一个输入端作为数据组装模块的数据噪声滤除长度选择输入端,大于比较器的另一个输入端与位拼接的一个输入端相连作为数据组装模块的计数值输入端,大于比较器的输出端与一号或门的另一个数据输入端相连,一号或门的输出端与三号与门的一个数据输入端相连,三号与门的输出端与二号或门的另一个数据输入端相连,二号或门的输出端、二号d触发器的输出端分别与四号与门的其中两个数据输入端相连,四号与门的第三个数据输入端作为数据组装模块的掩蔽控制信号输入端,四号与门的输出端作为数据组装模块的输出有效指示信号输出端,位拼接的另一个输入端作为数据组装模块的第六输入端,位拼接的输出端作为数据组装模块的数据输出端。

16、进一步地,所述数据组装模块还包括一控制脉冲输入端用于接收控制脉冲信号。

17、进一步地,所述数据组装模块还包括三号或门,四号与门的输出端与三号或门的一个数据输入端相连,三号或门的另一个数据输入端作为数据组装模块的控制脉冲输入端,三号或门的输出端作为数据组装模块的输出有效指示信号输出端。

18、与现有技术相比,本实用新型的有益效果是:

19、(1)资源高效:本实用新型采用移位寄存器+比较器替代传统字典结构,有效减少了存储资源占用,无需bram(block ram),完全依赖寄存器和组合逻辑,比传统方案能够减少85%的逻辑资源消耗,适合低端fpga(如cyclone iv)。

20、(2)实时性强:本实用新型的压缩处理电路实时性强,单周期处理延迟,支持120mhz~130mhz数据流,满足工业实时需求。

21、(3)灵活可配:本实用新型能够支持数据噪声滤除长度与计数器有效位宽动态调整,适应多样化传感器数据模式。

22、(4)功耗降低:本实用新型所设计的压缩处理电路十分精简,规模小,资源占用低,相应的能够有效降低总体功耗,可以由电池供电。

23、(5)适用场景:本实用新型中,如果实施电路的输入数据位宽为8bits,输出数据位宽为16bits,此时消耗逻辑资源代价较小,仅需40个逻辑单元(logic elements)和28个寄存器(registers),适用于数据重复性高(如温湿度传感器)的应用场景,特别适合于数据冗余度>50%且重复长度≥3的应用场合;本实用新型能够在不改变电路结构的前提下,仅拓展输入输出数据的位宽,即可降低平均重复长度和最小冗余度要求,比如,输入位宽为32bits,平均重复长度为2时,对应的最小冗余度要求下降至40%;平均重复长度为5时,相应的最小冗余度要求下降至25%;本实用新型能够有效的降低压缩率,使得电路方案更加的通用化,从而拓展了电路的应用场合。