CN103268299A - 一种应用于PXI Express总线测试***的通用数据压缩IP核 - Google Patents
一种应用于PXI Express总线测试***的通用数据压缩IP核 Download PDFInfo
- Publication number
- CN103268299A CN103268299A CN2013101723338A CN201310172333A CN103268299A CN 103268299 A CN103268299 A CN 103268299A CN 2013101723338 A CN2013101723338 A CN 2013101723338A CN 201310172333 A CN201310172333 A CN 201310172333A CN 103268299 A CN103268299 A CN 103268299A
- Authority
- CN
- China
- Prior art keywords
- data
- kernel
- dictionary
- state
- hash
- 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.)
- Granted
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种应用于PXI Express总线测试***的通用数据压缩IP核,涉及一种通用数据压缩IP核。它是为了适应针对PXI Express总线测试***的通用数据压缩IP核的需求。它基于LZW算法对数据进行无损压缩。其中IP核对外的接口有三个:字符数据流输入的Avalon8位内存映射型从端口,用于控制压缩启动停止及获取工作状态和压缩率的Avalon32位内存映射型从端口和用于将压缩后的数据流写入存储器的Avalon8位内存映射型主端口。本发明可广泛应用于基于PXI Express总线的设备,如:模拟量采集卡、开关量采集卡、总线分析仪等。
Description
技术领域
本发明涉及一种通用数据压缩IP核。
背景技术
PCI Express总线是Intel于2001年春节的开发者大会上提出来的一个用来互连计算机和***设备的第三代计算I/O总线。PCI Express采用了与PCI相同的使用模型和读写通行模型。其存储器、IO和配置地址空间与PCI的地址空间相同。由于地址空间模型没有变化,现有的PCI设备驱动程序和应用软件无需修改便可在PCI Express***上运行。不同于PCI中所有的设备共享总线带宽,PCI Express为每个设备提供专用的数据通道。将两个设备连接到一起的一个PCI Express互联称为一个链路。一个PCI Express链路由串行收发数据的信号对组成,每个信号对称为一个通道。PCI Express链路可以配置成X1、X2、X4、X8、X12、X16和X32信号带宽。
PCI Express1.1规定X1信号带宽的链路单方向速率为250MB/S。PXI Express总线作为PCI Express总线在仪器领域的扩展,增加了触发、同步等功能,被成功地应用于测量,测试和控制等领域。仪器领域中最常用的链路配置是X1和X4,分别提供250MB/S和1GB/S的带宽。
数据压缩方法分为有损压缩和无损压缩两大类。有损压缩是指使用压缩后的数据进行重构(或者叫做还原,解压缩),重构后的数据与原来的数据有所不同,但不影响人对原始资料表达的信息造成误解。无损压缩是指使用压缩后的数据进行重构,重构后的数据与原来的数据完全相同。通用数据压缩均为无损压缩,又可以分为基于统计模型的压缩技术和基于字典模型的压缩技术。
LZW算法由Lemple-Ziv-Welch三人共同创造,用他们的名字命名。LZW算法是一种基于字典模型的通用数据压缩方法。LZW编码的基本原理是用短的编码代替字符串,它不对输入的字符串进行分析,而是简单地把输入的每一个字符串添加到一个字典词条中,当已经出现的字符申再次出现时,就用一个短的编码代替该字符申,从而实现压缩。由于输入的字符串可以很长,在字典中直接存储该字符串是不实际的,因为每一个新字符串都是由一个已出现的字符串加一个字符组成,因此字典需存储已出现字符串的代码和这个字符。为了减少字典的查找时间,通常采用哈希(或者叫做散列)算法来生成字符串代码的存储查找地址。由于存在哈希地址的冲突,因此字典还需存储代表字典词条使用量的编码。 当出现地址冲突时,使用固定偏移量来重新生成查找地址,直到找到空字典词条或者发现匹配。为了使采用固定偏移量重新生成的查找地址能正常工作和减少平均查找次数,字典的大小为一个质数且大于所需的大小25%。
Avalon总线是Altera公司推出的一种用以实现片上***的互联总线标准。其基于多路选择器的模型结构,使其在保持高数据传输速度的同时能够减少可编程逻辑芯片的资源占用率。基于统一的总线标准设计,使得模块的通用性和可移植性都实现了一个飞跃。
现有技术存在的问题:随着数字***和计算技术的发展,PCI Express总线在PC机领域得到了成功的应用,从而促进了其在测试领域的广泛应用。目前的PXI Express零槽控制器的上行链路多数都是X4链路带宽的,若多个设备同时提出数据传输请求,势必会降低每个设备获得的等效带宽。若能降低每个设备的数据传输量,减少数据传输时间,就能等效地提高设备获得的数据传输带宽。目前还没有针对PXI Express总线测试***的通用数据压缩IP核。
发明内容
本发明是为了适应针对PXI Express总线测试***的通用数据压缩IP核的需求,从而提供一种应用于PXI Express总线测试***的通用数据压缩IP核。
一种应用于PXI Express总线测试***的通用数据压缩IP核,其特征是:它包括输入接口控制模块、LZW算法核心状态机、HASH地址生成从状态机、数据位宽转换模块、输出接口控制模块、配置查询接口模块和哈希字典模块;
输入接口控制模块中内嵌一个Avalon8位内存映射型从端口和一个数据输入缓冲FIFO模块;
输入接口控制模块用于将写入Avalon8位内存映射型从端口的数据取出并存储到数据输入缓冲FIFO模块中;
数据输入缓冲FIFO模块:用于从Avalon8位内存映射型从端口读取数据并发送给LZW算法核心状态机;
LZW算法核心状态机包括如下状态:
A1、空闲状态:用于判断开始信号Start的状态,当开始信号有效Start=1时,进入初始化状态;
A2、初始化状态:用于初始化字典词条为未使用的状态;
A3、轮询状态:用于判断输入接口控制模块是否还有未压缩的数据及用户是否结束本次压缩;
当输入接口控制模块数据标识Fifo_empty=0时,表明还有未压缩的数据,下一状态进入字典查找状态;
当数据标识Fifo_empty=1且用户结束压缩标识Stop=1时,表明没有未压缩的数据及用户结束本次压缩,输出压缩结束标识,下一状态进入空闲态;
当数据标识Fifo_empty=1且用户结束压缩标识Stop=0时,表明用户继续对输入数据进行压缩,下一状态仍为轮询状态;
A4、字典查找状态:用于配合HASH地址生成查找状态机一起进行字典查找工作;
从输入接口控制模块读入的第一个数据高位补零后赋给变量di,之后读入的数据赋给变量ch,将变量di和变量ch送入HASH地址生成查找状态机进行匹配查找工作;查找完成后判断匹配标识Match,当匹配标识Match=1时,下一状态进入匹配状态;
当匹配标识Match=0时,下一状态进入不匹配状态;
A5、匹配状态:用于将地址为HASH地址生成查找状态机返回的索引值index的字典词条内容dict_used赋给变量di,下一状态进入轮询状态;
A6、不匹配状态:用于输出变量di的值到数据位宽转换模块,下一状态进入字典维护状态;
A7、字典维护状态:用于判断字典是否满及更新字典词条;
HASH地址生成从状态机包括如下状态:
B1、空闲状态:用于判断触发信号Trig的状态,当触发信号有效Trig=1时,表明LZW算法核心状态机已经完成对变量di和变量ch的准备,下一状态进入生成HASH索引状态;
当触发信号无效Trig=0时,表明LZW算法核心状态机未准备好变量di和变量ch,下一状态进入空闲状态;
B2、生成HASH索引状态,用于生成哈希字典地址index;
B3、取字典数据并计算偏移量状态:根据HASH索引状态生成的哈希字典地址index取出字典数据用于比较状态的判断;
同时重新生成HASH索引的偏移量offset,如果index=0,则offset=1;否则offset=TABLE_SIZE-index;下一状态进入比较状态;式中:TABLE_SIZE为哈希字典模块的大小;
B4、比较状态:根据取回的地址为index的字典数据判断查找的结果;
当地址为index的字典词条标记为未使用时,表明没有地址冲突Conflict=0,下一状态进入空闲状态,同时LZW算法核心状态机判断本次查找结果为不匹配;
当地址为index的字典词条已经被使用了,同时字典内容与变量di和变量ch匹配,表明没有地址冲突Conflict=0,下一状态进入空闲状态,同时LZW算法核心状态机判断本次查找结果为匹配;
当不满足上述两种情况时,表明出现地址冲突Conflict=1,下一状态进入重新生成HASH索引状态;
B5、重新生成HASH索引状态:用于在出现地址冲突时重新计算哈希字典地址;如果index>offset,计算公式为index=index-offset;否则index=index-offset+TABLE_SIZE;下一状态进入取字典数据状态;
B6、取字典数据状态,根据重新生成的哈希字典地址index取出字典数据,下一状态进入比较状态;
数据位宽转换模块:用于将LZW算法核心状态机模块输出的2个12位数据流转换成3个8位数据流;
输出接口控制模块中内嵌一个Avalon8位内存映射型主端口和一个数据输出缓冲FIFO模块;
输出接口控制模块用于将写入到数据输出缓冲FIFO模块的数据读出,还用于通过Avalon8位内存映射型主端口写入到后端存储***中;
配置查询接口模块内嵌一个Avalon32位内存映射型从端口和一组寄存器,用于控制IP核的工作运行及获取IP核的工作状态信息;
该组寄存器包括控制寄存器、状态寄存器、数据输入统计寄存器、数据输出统计寄存器和预期数据输出寄存器;
哈希字典模块:用于存储输入数据的特征。
哈希字典模块采用两个字典模块切换工作的方式实现。
对哈希字典模块进行数据查找采用散列函数的方式实现。
哈希字典模块的字典词条索引长度为BITS=12位。
哈希字典模块的大小TABLE_SIZE=8191字节。
控制寄存器control的功能为:
开始压缩位START=1时,IP核进入压缩工作状态;
START=0时,IP核不作为;
结束压缩位STOP=1时,IP核准备退出压缩工作状态;
STOP=0时,IP核不作为;
自控制位SELF_CTRL=1时,IP核在数据输出统计寄存器dout达到预设的数据输出寄存器expected_dout时,自动置结束压缩位STOP=1,IP核准备退出压缩工作状态;
SELF_CTRL=0时,用户手动置结束压缩位STOP=1,并结束压缩;
写地址常量位WCON=1时,输出接口控制模块的Avalon8位内存映射型主端口在输出数据时,地址保持为常量;
WCON=0时,输出接口控制模块的Avalon8位内存映射型主端口每输出一个字节的数据,地址增1。
状态寄存器status的功能为:
IP核忙标识位BUSY=1时,IP核进入压缩工作状态;
BUSY=0时,IP核为空闲状态;
读数据溢出位RFIFO_FULL=1时,IP核不支持此压缩速率;
RFIFO_FULL=0时,IP核正常工作;
写数据溢出位WFIFO_FULL=1时,提高后端存储***速率或更换更高存储吞吐率的存储***;
WFIFO_FULL=0时,IP核正常工作。
数据输入统计寄存器din的功能为:
在压缩过程中实时统计数据输入数量,单位为字节,用于计算压缩率。
数据输出统计寄存器dout的功能为:
在压缩过程中实时统计数据输出数量,单位为字节,用于计算压缩率。
预期数据输出寄存器expected_dout的功能为:
用于在数据输出数量临近后端存储***极限时,结束IP核压缩工作状态。
本发明能够有效地降低有存储需求的PXI Express总线测试设备的存储压力,减少数据传输时间,从而等效地增加总线传输带宽。基于Avalon总线的设计使其的通用性与可移植性都实现了大幅度提高。提供的一系列配置与查询寄存器使其能够实现诸如触发压缩,条件停止压缩等操作,特别易于集成到基于PXI Express总线的自动测试***中。
本发明可广泛应用于基于PXI Express总线的设备,如模拟量采集卡,开关量采集卡,总线分析仪等。
附图说明
图1是本发明的结构示意图;图中M8为Avalon8位内存映射型主端口;S32为Avalon32位内存映射型从端口;S8为Avalon8位内存映射型从端口;
图2是LZW算法核心状态机的状态转换示意图;
图3是HASH地址生成查找状态机的状态转换示意图;
图4是具体实施方式一的结构示意图;图中SX为Avalon8/16……/1024位内存映射型从端口;MX为Avalon8/16……/1024位内存映射型主端口;Cn为Avalon外部信号端口。
具体实施方式
具体实施方式一、结合图1至图4说明本具体实施方式,一种应用于PXI Express总线测试***的通用数据压缩IP核,
通用数据压缩IP核总体设计如图1所示,基于LZW算法对数据进行无损压缩。其中IP核对外的接口有三个:字符数据流输入的Avalon8位内存映射型从端口,用于控制压缩启动停止及获取工作状态和压缩率的Avalon32位内存映射型从端口,用于将压缩后的数据流写入存储器的Avalon8位内存映射型主端口。各模块作用如下。
输入接口控制模块:输入接口控制模块包含一个Avalon8位内存映射型从端口和一个异步FIFO模块。控制模块将写入Avalon8位内存映射型从端口的数据取出并存储到数据输出缓冲FIFO模块,数据输出缓冲FIFO模块为整个IP核的跨时钟域处理提供了保障。
哈希字典模块:字典模块存储着输入数据的特征,显然字典容量越大所能存储的特征就越多,压缩效果就越好。受限于硬件的资源限制,实际上能构造的字典大小是有限的。对字典的查找有顺序查找、散列函数查找等,为了提高查找效率,这里构造的字典为哈希字典,采用散列函数对字典进行查找。因为字典的前256项一开始就已经被占用了,因此字典词条的索引必须长于8位,这里构造的字典词条索引长度为BITS=12位,为减少冲突,设计字典大小TABLE_SIZE=8191。字典需存储的内容有母节点、索引、字符,字典的宽度为32位。当字典满时,需要对字典进行清空操作,为了减少字典清空操作时间,这里设计了两个字典模块进行切换操作来达到减少清空操作时间的目的。
LZW算法核心状态机模块:状态机转换如图2所示:
各状态所做的工作如下所述。
1)空闲状态,用于判断开始信号Start的状态,当开始信号有效Start=1时,进入初始化状态。
2)初始化状态,用于初始化字典词条为未使用的状态。由于采用了两个字典模块设计哈希字典。当一个字典被选中时,另一个字典一直处于清零状态,可以保证未被选中的字典为初始状态,因此初始化字典仅需将字典选择信号取反dict_select=!dict_select即可。 将字典词条使用量标识dict_used置为256。
3)轮询状态,用于判断输入接口控制模块是否还有未压缩的数据及用户是否希望结束本次压缩。当输入接口控制模块数据标识Fifo_empty=0时,表明还有未压缩的数据,下一状态进入字典查找状态;当数据标识Fifo_empty=1且用户结束压缩标识Stop=1时,表明没有未压缩的数据及用户希望结束本次压缩,输出压缩结束标识,下一状态进入空闲态;当数据标识Fifo_empty=1且用户结束压缩标识Stop=0时,表明用户希望接着输入数据进行压缩,下一状态进入轮询状态。
4)字典查找状态,用于配合HASH地址生成查找状态机一起进行字典查找工作。从输入接口控制模块读入的第一个数据高位补零后赋给di,之后读入的数据赋给ch,将di和ch送入HASH地址生成查找状态机进行匹配查找工作。查找完成后判断匹配标识Match,当匹配标识Match=1时,下一状态进入匹配状态;当匹配标识Match=0时,下一状态进入不匹配状态。
5)匹配状态,用于将地址为HASH地址生成查找状态机返回的索引值index的字典词条内容dict_used赋给di,下一状态进入轮询状态。
6)不匹配状态,用于输出di的值到数据位宽转换模块,下一状态进入字典维护状态。
7)字典维护状态,用于判断字典是否满及更新字典词条。当字典词条使用量标识dict_used=4094时,判断为当前使用的字典已满,需要对字典进行清空操作。由于采用了两个字典模块设计哈希字典,仅需将字典选择信号取反dict_select=!dict_select即可。同时将字典词条使用量标识dict_used置为256。当字典词条使用量标识dict_used<4094时,则不需要进行字典切换操作。之后进行更新字典词条操作。将dict_used,di,ch存入字典,地址为HASH地址生成查找状态机返回的索引值index。将dict_used加1。
HASH地址生成查找状态机模块:状态机转换如图3所示。为了将字典查找匹配工作从LZW算法核心状态机中解放出来及使状态机设计更加简洁,设计了如下的HASH地址生成查找状态机模块。这种设计方法同时有利于对字典的查找匹配算法的升级。字典地址的生成采用HASH地址方法。各状态所做的工作如下所述:
1)空闲状态,用于判断触发信号Trig的状态,当触发信号有效Trig=1时,表明LZW算法核心状态机已经将数据di和ch准备好了,下一状态进入生成HASH索引状态;,当触发信号无效Trig=0时,表明LZW算法核心状态机未准备好数据di和ch,下一状态进入空闲状态。
2)生成HASH索引状态,用于生成哈希字典地址index。采用的哈希函数是 index=(ch<<3)^di。
3)取字典数据,计算偏移量状态,根据HASH索引状态生成的哈希字典地址index取出字典数据用于下一比较状态的判断;同时为了应对可能出现的哈希字典地址冲突的问题,提前计算好重新生成HASH索引的偏移量offset,如果index=0,则offset=1;否则offset=TABLE_SIZE-index。下一状态进入比较状态。
4)比较状态,根据取回的地址为index的字典数据判断查找的结果。当地址为index的字典词条标记为未使用时,表明没有地址冲突Conflict=0,下一状态进入空闲状态,同时LZW算法核心状态机判断本次查找结果为不匹配;当地址为index的字典词条已经被使用了,同时字典内容与数据di和ch匹配,表明没有地址冲突Conflict=0,下一状态进入空闲状态,同时LZW算法核心状态机判断本次查找结果为匹配;当不满足上述两种情况时,表明出现地址冲突Conflict=1,下一状态进入重新生成HASH索引状态。
5)重新生成HASH索引状态,用于在出现地址冲突时重新计算哈希字典地址。如果index>offset,计算公式为index=index-offset;否则index=index-offset+TABLE_SIZE。下一状态进入取字典数据状态。
6)取字典数据状态,根据重新生成的哈希字典地址index取出字典数据,下一状态进入比较状态。
数据位宽转换模块:由于LZW算法核心状态机模块输出的数据流是12位的,而后端的存储***如ddr2、sdram多数是以一字节8位为基本存储单位的,因此需要进行位宽转换操作。数据位宽转换模块将2个12位的数据转换成3个8位的数据后输出到输出接口控制模块。
输出接口控制模块:输出接口控制模块包含一个Avalon8位内存映射型主端口和一个数据输出缓冲FIFO模块。控制模块将写入到数据输出缓冲FIFO模块的数据读出,通过Avalon8位内存映射型主端口写入到后端存储***如ddr2、sdram等。数据输出缓冲FIFO模块为整个IP核的跨时钟域处理提供了保障。
配置查询接口模块:配置查询接口模块包含一个Avalon32位内存映射型从端口和一系列寄存器,用于控制IP核的工作运行及获取IP核的工作状态等信息。寄存器描述如图4所示。寄存器作用描述如下:
1)控制寄存器control:开始压缩位START=1时,IP核进入压缩工作状态,START=0时,IP核不作为;结束压缩位STOP=1时,IP核准备退出压缩工作状态,STOP=0时,IP核不作为;自控制位SELF_CTRL=1时,IP核在数据输出统计寄存器dout达到预期数据 输出寄存器expected_dout时,自动置结束压缩位STOP=1,IP核准备退出压缩工作状态,SELF_CTRL=0时,需用户手动置结束压缩位STOP=1才能结束压缩;写地址常量位WCON=1时,输出接口控制模块的Avalon8位内存映射型主端口在输出数据时,地址保持为常量,WCON=0时,输出接口控制模块的Avalon8位内存映射型主端口每输出一个字节的数据,地址增1。
2)状态寄存器status:IP核忙标识位BUSY=1时,表明IP核正处于压缩工作状态,BUSY=0时,表明IP核正处于空闲状态;读数据溢出位RFIFO_FULL=1时,表明IP核在压缩过程中其数据输入缓冲fifo曾溢出过,说明待压缩数据流输入过快,IP核不支持此压缩速率,RFIFO_FULL=0时,表明待压缩数据流的输入速率在IP核的正常工作范围内;写数据溢出位WFIFO_FULL=1时,表明IP核在压缩过程中其数据输出缓冲fifo曾溢出过,说明后端的存储***速率过低,应考虑提高后端存储***速率或更换更高存储吞吐率的存储***,WFIFO_FULL=0时,表明后端存储***吞吐率在IP核的正常工作范围内。
3)数据输入统计寄存器din:压缩过程中实时统计数据输入数量,单位为字节,用于计算压缩率。
4)数据输出统计寄存器dout:压缩过程中实时统计数据输出数量,单位为字节,用于计算压缩率。
5)预期数据输出寄存器expected_dout:用户希望数据输出数量,单位为字节,用于在数据输出数量快达到后端存储***极限时,结束IP核压缩工作状态。
配置查询接口寄存器描述如表1所示:
表1
本实施方式中,可编程逻辑器件采用带有PCI Express硬核的芯片。PCI Express接口模块将PCI Express总线转换到Avalon总线,提供一个Avalon64位内存映射型主端口用以连接存储器模块,如ddr2,sdram等;一个Avalon32位内存映射型主端口用以连接数据源模块,通用数据压缩IP核等模块的控制端口。
数据源模块将PXI Express总线设备采集到的数据进行编码成8bit位宽的数据,通过Avalon8位内存映射型主端口写入到通用数据压缩IP核模块中。数据源模块受PCI Express接口模块控制,同时也可以通过读写通用数据压缩IP核模块的寄存器达到控制通用数据压缩IP核模块的作用。
通用数据压缩IP核模块将数据源模块写入到Avalon8位内存映射型从端口的数据进行压缩后,通过Avalon8位内存映射型主端口写入到Avalon流水线桥中。通用数据压缩IP核模块受PCI Express接口模块控制,也可以接受其他诸如数据源模块的控制。
Avalon流水线桥模块连接存储器接口模块到PCI Express接口模块和通用数据压缩IP核模块。Avalon流水线模块进一步增强了后端存储***的吞吐率。
Claims (10)
1.一种应用于PXI Express总线测试***的通用数据压缩IP核,其特征是:它包括输入接口控制模块、LZW算法核心状态机、HASH地址生成从状态机、数据位宽转换模块、输出接口控制模块、配置查询接口模块和哈希字典模块;
输入接口控制模块中内嵌一个Avalon8位内存映射型从端口和一个数据输入缓冲FIFO模块;
输入接口控制模块用于将写入Avalon8位内存映射型从端口的数据取出并存储到数据输入缓冲FIFO模块中;
数据输入缓冲FIFO模块:用于从Avalon8位内存映射型从端口读取数据并发送给LZW算法核心状态机;
LZW算法核心状态机包括如下状态:
A1、空闲状态:用于判断开始信号Start的状态,当开始信号有效Start=1时,进入初始化状态;
A2、初始化状态:用于初始化字典词条为未使用的状态;
A3、轮询状态:用于判断输入接口控制模块是否还有未压缩的数据及用户是否结束本次压缩;
当输入接口控制模块数据标识Fifo_empty=0时,表明还有未压缩的数据,下一状态进入字典查找状态;
当数据标识Fifo_empty=1且用户结束压缩标识Stop=1时,表明没有未压缩的数据及用户结束本次压缩,输出压缩结束标识,下一状态进入空闲态;
当数据标识Fifo_empty=1且用户结束压缩标识Stop=0时,表明用户继续对输入数据进行压缩,下一状态仍为轮询状态;
A4、字典查找状态:用于配合HASH地址生成查找状态机一起进行字典查找工作;
从输入接口控制模块读入的第一个数据高位补零后赋给变量di,之后读入的数据赋给变量ch,将变量di和变量ch送入HASH地址生成查找状态机进行匹配查找工作;查找完成后判断匹配标识Match,当匹配标识Match=1时,下一状态进入匹配状态;
当匹配标识Match=0时,下一状态进入不匹配状态;
A5、匹配状态:用于将地址为HASH地址生成查找状态机返回的索引值index的字典词条内容dict_used赋给变量di,下一状态进入轮询状态;
A6、不匹配状态:用于输出变量di的值到数据位宽转换模块,下一状态进入字典维护状态;
A7、字典维护状态:用于判断字典是否满及更新字典词条;
HASH地址生成从状态机包括如下状态:
B1、空闲状态:用于判断触发信号Trig的状态,当触发信号有效Trig=1时,表明LZW算法核心状态机已经完成对变量di和变量ch的准备,下一状态进入生成HASH索引状态;
当触发信号无效Trig=0时,表明LZW算法核心状态机未准备好变量di和变量ch,下一状态进入空闲状态;
B2、生成HASH索引状态,用于生成哈希字典地址index;
B3、取字典数据并计算偏移量状态:根据HASH索引状态生成的哈希字典地址index取出字典数据用于比较状态的判断;
同时重新生成HASH索引的偏移量offset,如果index=0,则offset=1;否则offset=TABLE_SIZE-index;下一状态进入比较状态;式中:TABLE_SIZE为哈希字典模块的大小;
B4、比较状态:根据取回的地址为index的字典数据判断查找的结果;
当地址为index的字典词条标记为未使用时,表明没有地址冲突Conflict=0,下一状态进入空闲状态,同时LZW算法核心状态机判断本次查找结果为不匹配;
当地址为index的字典词条已经被使用了,同时字典内容与变量di和变量ch匹配,表明没有地址冲突Conflict=0,下一状态进入空闲状态,同时LZW算法核心状态机判断本次查找结果为匹配;
当不满足上述两种情况时,表明出现地址冲突Conflict=1,下一状态进入重新生成HASH索引状态;
B5、重新生成HASH索引状态:用于在出现地址冲突时重新计算哈希字典地址;如果index>offset,计算公式为index=index-offset;否则index=index-offset+TABLE_SIZE;下一状态进入取字典数据状态;
B6、取字典数据状态,根据重新生成的哈希字典地址index取出字典数据,下一状态进入比较状态;
数据位宽转换模块:用于将LZW算法核心状态机模块输出的2个12位数据流转换成3个8位数据流;
输出接口控制模块中内嵌一个Avalon8位内存映射型主端口和一个数据输出缓冲FIFO模块;
输出接口控制模块用于将写入到数据输出缓冲FIFO模块的数据读出,还用于通过Avalon8位内存映射型主端口写入到后端存储***中;
配置查询接口模块内嵌一个Avalon32位内存映射型从端口和一组寄存器,用于控制IP核的工作运行及获取IP核的工作状态信息;
该组寄存器包括控制寄存器、状态寄存器、数据输入统计寄存器、数据输出统计寄存器和预期数据输出寄存器;
哈希字典模块:用于存储输入数据的特征。
2.根据权利要求1所述的一种应用于PXI Express总线测试***的通用数据压缩IP核,其特征在于哈希字典模块采用两个字典模块切换工作的方式实现。
3.根据权利要求1所述的一种应用于PXI Express总线测试***的通用数据压缩IP核,其特征在于对哈希字典模块进行数据查找采用散列函数的方式实现。
4.根据权利要求1所述的一种应用于PXI Express总线测试***的通用数据压缩IP核,其特征在于哈希字典模块的字典词条索引长度为BITS=12位。
5.根据权利要求1所述的一种应用于PXI Express总线测试***的通用数据压缩IP核,其特征在于哈希字典模块的大小TABLE_SIZE=8191字节。
6.根据权利要求1所述的一种应用于PXI Express总线测试***的通用数据压缩IP核,其特征在于控制寄存器control的功能为:
开始压缩位START=1时,IP核进入压缩工作状态;
START=0时,IP核不作为;
结束压缩位STOP=1时,IP核准备退出压缩工作状态;
STOP=0时,IP核不作为;
自控制位SELF_CTRL=1时,IP核在数据输出统计寄存器dout达到预设的数据输出寄存器expected_dout时,自动置结束压缩位STOP=1,IP核准备退出压缩工作状态;
SELF_CTRL=0时,用户手动置结束压缩位STOP=1,并结束压缩;
写地址常量位WCON=1时,输出接口控制模块的Avalon8位内存映射型主端口在输出数据时,地址保持为常量;
WCON=0时,输出接口控制模块的Avalon8位内存映射型主端口每输出一个字节的数据,地址增1。
7.根据权利要求1所述的一种应用于PXI Express总线测试***的通用数据压缩IP核,其特征在于状态寄存器status的功能为:
IP核忙标识位BUSY=1时,IP核进入压缩工作状态;
BUSY=0时,IP核为空闲状态;
读数据溢出位RFIFO_FULL=1时,IP核不支持此压缩速率;
RFIFO_FULL=0时,IP核正常工作;
写数据溢出位WFIFO_FULL=1时,提高后端存储***速率或更换更高存储吞吐率的存储***;
WFIFO_FULL=0时,IP核正常工作。
8.根据权利要求1所述的一种应用于PXI Express总线测试***的通用数据压缩IP核,其特征在于数据输入统计寄存器din的功能为:
在压缩过程中实时统计数据输入数量,单位为字节,用于计算压缩率。
9.根据权利要求1所述的一种应用于PXI Express总线测试***的通用数据压缩IP核,其特征在于数据输出统计寄存器dout的功能为:
在压缩过程中实时统计数据输出数量,单位为字节,用于计算压缩率。
10.根据权利要求1所述的一种应用于PXI Express总线测试***的通用数据压缩IP核,其特征在于预期数据输出寄存器expected_dout的功能为:
用于在数据输出数量临近后端存储***极限时,结束IP核压缩工作状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310172333.8A CN103268299B (zh) | 2013-05-10 | 2013-05-10 | 一种应用于PXI Express总线测试***的通用数据压缩IP核 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310172333.8A CN103268299B (zh) | 2013-05-10 | 2013-05-10 | 一种应用于PXI Express总线测试***的通用数据压缩IP核 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103268299A true CN103268299A (zh) | 2013-08-28 |
CN103268299B CN103268299B (zh) | 2016-01-20 |
Family
ID=49011930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310172333.8A Active CN103268299B (zh) | 2013-05-10 | 2013-05-10 | 一种应用于PXI Express总线测试***的通用数据压缩IP核 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103268299B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105634897A (zh) * | 2016-03-30 | 2016-06-01 | 哈尔滨工业大学 | 一种应用于串行总线分析仪器的can总线协议解码ip核 |
CN106027064A (zh) * | 2015-05-11 | 2016-10-12 | 上海兆芯集成电路有限公司 | 具有基于不同散列尺寸建构的多个字符串匹配搜寻散列表的硬件数据压缩器 |
CN111966606A (zh) * | 2019-05-20 | 2020-11-20 | 慧荣科技股份有限公司 | 数据储存装置与数据处理方法 |
CN112498736A (zh) * | 2019-09-16 | 2021-03-16 | 上海飞机制造有限公司 | 一种适用于afdx总线的通用总线测试*** |
CN113419988A (zh) * | 2021-08-25 | 2021-09-21 | 杭州博雅鸿图视频技术有限公司 | 异构多核数据的传输方法、装置、设备及存储介质 |
CN114666406A (zh) * | 2022-02-24 | 2022-06-24 | 国电南瑞科技股份有限公司 | 一种基于物模型的电力物联网数据压缩方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050235187A1 (en) * | 2004-04-16 | 2005-10-20 | Via Technologies, Inc. | Apparatus and method for testing motherboard having PCI express devices |
CN1971541A (zh) * | 2006-11-29 | 2007-05-30 | 赛安(杭州)微***有限公司 | 一种用于vtl平台的数据压缩和解压缩插卡 |
-
2013
- 2013-05-10 CN CN201310172333.8A patent/CN103268299B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050235187A1 (en) * | 2004-04-16 | 2005-10-20 | Via Technologies, Inc. | Apparatus and method for testing motherboard having PCI express devices |
CN1971541A (zh) * | 2006-11-29 | 2007-05-30 | 赛安(杭州)微***有限公司 | 一种用于vtl平台的数据压缩和解压缩插卡 |
Non-Patent Citations (1)
Title |
---|
徐聪: "PXI Express接口套件开发", 《万方学位论文数据库》, 20 March 2013 (2013-03-20) * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106027064A (zh) * | 2015-05-11 | 2016-10-12 | 上海兆芯集成电路有限公司 | 具有基于不同散列尺寸建构的多个字符串匹配搜寻散列表的硬件数据压缩器 |
CN106027064B (zh) * | 2015-05-11 | 2019-06-04 | 上海兆芯集成电路有限公司 | 硬件数据压缩器、硬件数据压缩方法及计算机程序产品 |
CN105634897A (zh) * | 2016-03-30 | 2016-06-01 | 哈尔滨工业大学 | 一种应用于串行总线分析仪器的can总线协议解码ip核 |
CN105634897B (zh) * | 2016-03-30 | 2019-03-08 | 哈尔滨工业大学 | 一种应用于串行总线分析仪器的can总线协议解码ip核 |
CN111966606A (zh) * | 2019-05-20 | 2020-11-20 | 慧荣科技股份有限公司 | 数据储存装置与数据处理方法 |
CN111966606B (zh) * | 2019-05-20 | 2024-03-12 | 慧荣科技股份有限公司 | 数据储存装置与数据处理方法 |
CN112498736A (zh) * | 2019-09-16 | 2021-03-16 | 上海飞机制造有限公司 | 一种适用于afdx总线的通用总线测试*** |
CN112498736B (zh) * | 2019-09-16 | 2022-09-09 | 上海飞机制造有限公司 | 一种适用于afdx总线的通用总线测试*** |
CN113419988A (zh) * | 2021-08-25 | 2021-09-21 | 杭州博雅鸿图视频技术有限公司 | 异构多核数据的传输方法、装置、设备及存储介质 |
CN114666406A (zh) * | 2022-02-24 | 2022-06-24 | 国电南瑞科技股份有限公司 | 一种基于物模型的电力物联网数据压缩方法及装置 |
CN114666406B (zh) * | 2022-02-24 | 2023-11-21 | 国电南瑞科技股份有限公司 | 一种基于物模型的电力物联网数据压缩方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103268299B (zh) | 2016-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103268299A (zh) | 一种应用于PXI Express总线测试***的通用数据压缩IP核 | |
US10318468B2 (en) | FPGA-based interface signal remapping method | |
US11016790B2 (en) | Overflow detection and correction in state machine engines | |
CN202931289U (zh) | 一种硬件lz77压缩实现*** | |
CN104361143B (zh) | 一种便携式数据采集卡及其方法 | |
CN107704413A (zh) | 一种基于vpx架构的加固型并行信息处理平台 | |
CN109298839A (zh) | 基于pis的存储装置控制器、存储装置、***及方法 | |
US20220261257A1 (en) | Systems and devices for accessing a state machine | |
CN102841870A (zh) | 基于高速串行总线的通用dma结构及预读方法 | |
WO2016109570A1 (en) | Systems and devices for accessing a state machine | |
CN201878182U (zh) | 一种基于fpga的总线型通信*** | |
CN110046154A (zh) | 在存储器内关系数据库中高效执行过滤操作的方法和装置 | |
CN211123833U (zh) | 一种计算机模块、主板和计算机设备 | |
Lee | On‐Chip Bus Serialization Method for Low‐Power Communications | |
CN204390227U (zh) | 计算设备扩展装置、以及可扩展的计算*** | |
CN100504723C (zh) | 电源的usb数据采集装置 | |
CN103226531B (zh) | 一种双端口外设配置接口电路 | |
CN203204494U (zh) | 结合多功能高稳定性插槽结构与多功能插卡模块的*** | |
CN104484305B (zh) | 一种服务器调试分析接口装置 | |
CN102645647A (zh) | 雷达成像信号模拟器 | |
CN114416455A (zh) | 一种多功能应用的新型cpu检测装置 | |
CN209044575U (zh) | 基于pis的存储装置控制器、存储装置及*** | |
CN102032000B (zh) | 基于pc104总线的汽轮机状态数据获取装置 | |
CN204496487U (zh) | 扩展芯片及可扩展的芯片*** | |
CN1304947C (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |