CN115373645A - 一种基于可动态定义的复杂数据包操作方法及系统 - Google Patents

一种基于可动态定义的复杂数据包操作方法及系统 Download PDF

Info

Publication number
CN115373645A
CN115373645A CN202211298552.6A CN202211298552A CN115373645A CN 115373645 A CN115373645 A CN 115373645A CN 202211298552 A CN202211298552 A CN 202211298552A CN 115373645 A CN115373645 A CN 115373645A
Authority
CN
China
Prior art keywords
data packet
row
elements
column
slicing
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
Application number
CN202211298552.6A
Other languages
English (en)
Other versions
CN115373645B (zh
Inventor
易敏
张挺
扬云召
成民
申传强
夏兴万
魏明
易天浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jinan Xinyu Software Technology Co ltd
Original Assignee
Jinan Xinyu Software Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jinan Xinyu Software Technology Co ltd filed Critical Jinan Xinyu Software Technology Co ltd
Priority to CN202211298552.6A priority Critical patent/CN115373645B/zh
Publication of CN115373645A publication Critical patent/CN115373645A/zh
Application granted granted Critical
Publication of CN115373645B publication Critical patent/CN115373645B/zh
Priority to PCT/CN2023/088931 priority patent/WO2024087537A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于可动态定义的复杂数据包操作方法及系统,涉及芯片设计、验证及软件技术领域。该方法包括:根据实际编程需求,构建数据包的二维数据结构;采用切片方式,对数据包的二维数据结构进行切片处理;从数据包中选取处理后的切片对应的元素,进行数据包元素的存取操作。以及根据处理后的切片,对每个处理后的切片进行标记;将标记后的切片记作为段,通过标记对数据包中的段进行元素访问操作;以及根据标记后的数据包,根据段对不同数据包进行比较。该系统包括构建单元、切片处理单元、选取及存取单元、标记单元、访问单元和比较单元。本发明数据包构建、使用和维护简单快捷,且效率高,能够满足芯片的设计和验证工作需求。

Description

一种基于可动态定义的复杂数据包操作方法及系统
技术领域
本发明涉及芯片设计、验证及软件技术领域,具体涉及一种基于可动态定义的复杂数据包操作方法及系统。
背景技术
在芯片设计、验证及驱动软件编程中,需要处理各种类型的协议数据包,这些协议数据包数据域多,结构复杂。在通信领域中,TCP/IP协议里传递IP数据包,数据包由首部和数据部分组成,每一部分又是由位数不同的域组成。
在做芯片设计和验证时,经常要处理这种数据包格式。特别是在做芯片验证时,需要构造这种类型的数据激励。在搭建验证平台时,目前能够使用的数据结构是C/C++语言中的带位域的结构体struct,如下所示。
struct IPHeader
{
unsigned int ver:4;
unsigned int len:4;
unsigned int server:8;
unsigned int total:16;
...
}
使用System Verilog语言进行验证时,同样也只能使用类似的压缩结构体来构造这样的数据包。
struct packaged
{
bit[3:0] ver;
bit[3:0] len;
bit[7:0] server;
bit[15:0] total;
...
}
以上使用结构体来产生数据包有如下缺点:
1、数据包里的数据域位宽不同,在结构体里的定义比较繁琐。
2、需要针对每类数据进行结构体定义,数量多,且不能动态修改。
3、数据包的数据域读取和赋值比较繁琐。如果碰到更复杂的数据包结构,比如光传输的OTN(Optical Transport Network光传送网)帧结构,构造这样的数据包将异常复杂。OPUk数据域跨列、跨行,使用结构体来描述这样的数据结构难度较大,且访问跨行、跨列的数据域难度较大。OTN数据包的帧结构如图2所示。
使用System Verilog语言的二维数组例子,二维数组的定义看起来不自然,赋值起来繁琐,使用常量赋值时,使用了大括号,还需要在大括号前面使用单引号,增加使用成本;可以使用的方法也很简陋,无法实现更为强大的功能。具体定义及赋值操作如下:
// 定义8行4列的byte(8bit)数组
byte data1[0:7][0:3]; // 完整的声明
byte data2[8][4]; // 更紧凑的声明
data2[7][3] = 1; // 设置第8行第4列,即最后一个元素的值
// 二维数组赋值
int data[2][3] = {{1, 2, 3}, {4, 5, 6}};
在System Verilog仿真器中,byte类型的8bit数据,需要使用32bit来存储,耗费空间比较大。为了节省空间,又引入了压缩(packed)数组。这样使用,需要验证工程师关注数据的存储细节,耗费工程师的精力。
然而,一个数据包需要定义多种结构体,结构体产生的数据大小、形状不同,将这些结构体产生的数据拼装起来是非常繁琐、难度较高的编程过程。
总之,传统语言常见的数组和结构体虽然可以满足编程需要,但对验证工程师来说,使用它们需要非常繁琐的处理步骤,需要承担大量的编程工作;使对数据包的访问使用和维护不方便,造成芯片设计和验证过程中编程工作量大和效率低的问题。
发明内容
本发明所要解决的技术问题是现有复杂数据包是基于静态定义的,定义繁琐,且不能动态修改,对复杂数据包的访问和维护不方便,造成芯片设计和验证过程中编程工作量大和效率低的问题。本发明目的在于提供一种基于可动态定义的复杂数据包操作方法及系统,本发明针对各种数据包的特点,设计了一种二维数据结构byte ,使得数据包定义、使用和维护简单快捷,且大大减少了编程工作量,提高了效率,能够满足芯片的设计和验证工作需求。
本发明通过下述技术方案实现:
第一方面,本发明提供了一种基于可动态定义的复杂数据包操作方法,该方法包括:
根据实际编程需求,构建数据包的二维数据结构;所述数据包的二维数据结构是一个基于字节型的二维数据结构;
采用切片方式,对数据包的二维数据结构进行切片处理,得到处理后的切片;
根据处理后的切片,从数据包中选取处理后的切片对应的元素,进行数据包元素的存取操作。
进一步地,基于字节型的二维数据结构表示为byte B1( a , b ),其中,byte表示字节型;B1表示数据包的名称;a表示数据包的行数;b表示数据包列数,即每行的元素数;a、b均大于等于1。每个元素是一个字节。
进一步地,数据包B1的元素数为a*b,且根据从左至右、从上往下的方式对元素进行自1开始的位置编号。
进一步地,基于字节型的二维数据结构能够根据byte大小调整该二维数据结构的行列大小和整体容量。
进一步地,所述切片方式包括基于单元素的切片方式,基于单元素的切片方式包括按照一维方式选取单个元素和按照二维方式选取单个元素;
按照一维方式选取单个元素表示为[p],p为数据包中选取元素的位置编号;
按照二维方式选取单个元素表示为[r:c],r为数据包中选取元素的行号,c为数据包中选取元素的列号。
进一步地,所述切片方式还包括基于多元素的切片方式,基于多元素的切片方式包括一维多元素切片方式;
一维多元素切片方式是按照一维方式选取多个元素,按照一维方式选取多个元素表示为[p1,…,p2],p1为数据包中选取元素的起始编号,p2为数据包中选取元素的终止编号;
按照一维方式选取多个元素还表示为[p, n],p为数据包中选取元素的起始编号,n为数据包中选取元素的长度。
进一步地,所述基于多元素的切片方式还包括整行或列切片方式;
根据整行或列切片方式来选取一整行或一整列元素,表示为[‘T’, t],T为数据包的整行或整列切片方式,T取row或column;t为数据包待选取元素的行号或列号。
具体地,整行或整列切片方式包括整行切片方式和整列切片方式;
根据整行切片方式来选取一整行元素,表示为[‘row’, r],row为数据包的整行切片方式,r为数据包选取元素的行号;
根据整列切片方式来选取一整列元素,表示为[‘column’, c],column为数据包的整列切片方式,c为数据包选取元素的列号。
进一步地,所述基于多元素的切片方式还包括跨行或跨列切片方式;
根据跨行或跨列切片方式,从某行某列元素开始,跨行或跨列选取若干元素,表示为[‘I’, r:c, n],I为数据包的跨行或跨列切片方式,I取r或c;r:c为数据包中从r行c列元素开始,n为跨行或跨列存取的元素总个数。
具体地,跨行或跨列切片方式包括跨行切片方式和跨列切片方式;
根据跨行切片方式来选取若干元素,表示为[‘r’, r:c, n],r为数据包的跨行切片方式,r:c为数据包中从r行c列元素开始,n为跨行选取的元素总个数;
根据跨列切片方式来选取若干元素,表示为[‘c’, r:c, n],c为数据包的跨列切片方式,r:c为数据包中从r行c列元素开始,n为跨列选取的元素总个数。
进一步地,所述基于多元素的切片方式还包括横向跨行或纵向跨列切片方式;
根据横向跨行或纵向跨列切片方式,从某行某列元素开始,跨行跨列选取一个规则的区块,表示为[‘M’, m, r:c, n],M为数据包的横向跨行或纵向跨列切片方式,M取h或v;m为换行间隔或跨列间隔,r:c为数据包中从r行c列元素开始,n为对齐选取的元素总个数;
其中,m缺省时,表示到达行的最右边界或列的最下边界。
具体地,横向跨行或纵向跨列切片方式包括横向跨行切片方式和纵向跨列切片方式;
根据横向跨行切片方式,从某行某列元素开始,跨行跨列选取一个规则的区块;表示为[‘h’, m1, r:c, n],h为数据包的横向跨行切片方式(即横向选取);m1为换行间隔(即横向跨行时横向跨的列数);r:c为数据包中从r行c列元素开始;n为横向跨列到行尾,对齐选取的元素总个数;
根据纵向跨列切片方式,从某行某列元素开始,跨行跨列选取一个规则的区块;表示为[‘v’, m2, r:c, n],v为数据包的纵向跨列切片方式(即纵向选取);m2为跨列间隔(即纵向跨列时纵向跨的行数);r:c为数据包中从r行c列元素开始;n为纵向跨行到列尾,对齐选取的元素总个数。
进一步地,所述基于多元素的切片方式还包括横向矩形或纵向矩形切片方式;
根据横向矩形或纵向矩形切片方式,从某行某列元素开始,跨行跨列选取一个矩形的区块,表示为[‘N’, r:c, x, y],N为数据包的横向矩形或纵向矩形切片方式,r:c为数据包中从r行c列元素开始,x为每行横向选取的元素个数;y为每列纵向选取的元素个数。
具体地,横向矩形或纵向矩形切片方式包括横向矩形切片方式和纵向矩形切片方式;
根据横向矩形切片方式,从某行某列元素开始,跨行跨列选取一个矩形的区块;表示为[‘h’, r:c, x, y],h为数据包的横向矩形切片方式; r:c为数据包中从r行c列元素开始;x为每行横向选取的元素个数;y为每列纵向选取的元素个数;选取的字节从左到右、从上到下依次排列,形成一个x乘y的矩形区块。
根据纵向矩形切片方式,从某行某列元素开始,跨行跨列选取一个矩形的区块;表示为[‘v’, r:c, x, y],v为数据包的纵向矩形切片方式; r:c为数据包中从r行c列元素开始;x为每行横向选取的元素个数;y为每列纵向选取的元素个数;选取的字节从上到下、从左到右依次排列,形成一个x乘y的矩形区块。
进一步地,该方法还包括:
根据处理后的切片,对每个处理后的切片进行标记,得到标记后的切片;
将标记后的切片记作为段,通过标记对数据包中的段进行元素访问操作。
进一步地,所述标记包括主标记和副标记,主标记为数字型,主标记是不重复的数字;副标记为字符串型,副标记为不重复的字符串;
通过主标记和/或副标记对数据包中的段进行元素访问操作。
进一步地,该方法还包括:
根据标记后的数据包,根据段对不同数据包进行比较,输出比较结果。即数据校验时不需要解包。
第二方面,本发明又提供了一种基于可动态定义的复杂数据包操作系统,该系统支持所述的一种基于可动态定义的复杂数据包操作方法;该系统包括:
构建单元,用于根据实际编程需求,构建数据包的二维数据结构;所述数据包的二维数据结构是一个基于字节型的二维数据结构;
切片处理单元,用于采用切片方式,对数据包的二维数据结构进行切片处理,得到处理后的切片;
选取及存取单元,用于根据处理后的切片,从数据包中选取处理后的切片对应的元素,进行数据包元素的存取操作。
本发明与现有技术相比,具有如下的优点和有益效果:
1、本发明一种基于可动态定义的复杂数据包操作方法及系统,本数据包构建是基于字节型的二维数据结构,构建非常简洁,且可以实现动态定义;同时通过丰富的、10种类型切片方式,可以选取各种连续的字节数据,非常灵活,方便数据包元素的存取操作。
2、本发明一种基于可动态定义的复杂数据包操作方法及系统,通过对切片添加标记,按标记访问,编码更加简洁方便。
3、本发明一种基于可动态定义的复杂数据包操作方法及系统,对两个复杂数据包的比较,只比较标记相同的切片,可以节省编程工作量,简单高效。
4、本发明完成同样的数据包产生功能,相对现有方案,可以节省50%-80%编程工作量。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为IP数据包的数据格式图。
图2为OTN数据包的帧结构示意图。
图3为本发明实施例1的一种基于可动态定义的复杂数据包操作方法流程图;
图4为本发明一个基于字节型的二维数据结构示意图;
图5为本发明基于单元素的切片方式的赋值操作示意图;
图6为本发明一维多元素切片方式的选取示意图;
图7为本发明整行切片方式的选取及赋值示意图;
图8为本发明整列切片方式的选取及赋值示意图;
图9为本发明跨行切片方式的选取及赋值示意图;
图10为本发明跨列切片方式的选取及赋值示意图;
图11为本发明横向跨行切片方式的选取及赋值示意图;
图12为本发明纵向跨列切片方式的选取及赋值示意图;
图13为本发明横向矩形切片方式的选取示意图;
图14为本发明纵向矩形切片方式的选取示意图;
图15为本发明实施例2的一种基于可动态定义的复杂数据包操作方法流程图;
图16为本发明通过步骤4打上标记后的OTN数据包示意图;
图17为本发明构建B1和B2,并通过打标记进行比较示意图;
图18为本发明一种基于可动态定义的复杂数据包操作系统结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
在芯片设计和验证领域以及软件领域,产生、处理IP 数据包、PCIe 数据包以及OTN数据包是非常常见的需求。对市面上现存编程语言,也是验证领域所用到的编程语言,如C/C++、SystemVerilog和Python语言,还没有那种语言所支持的数据结构可以比较高效地实现这些需求,往往需要经过复杂繁琐的编程才能实现。其中,图1为IP数据包的数据格式图。
因此,本发明基于byte数据结构,设计了一种基于可动态定义的复杂数据包操作方法来解决现有技术中复杂数据包的访问和维护不方便,造成芯片设计和验证过程中编程工作量大和效率低的问题。本发明的设计思路为:从数据包整体出发,而不是局部;按二维、容器、动态的方式来构建数据包结构,当以二维结构为基础,提供10种类型的切片方式,可以任意选取连续的、不同形状、不同排列走向的数据元素,方便灵活,适应各种类型的数据包结构。
本发明构建的基于字节型(byte)的二维数据结构来解决现有技术中复杂数据包的访问和维护不方便,造成芯片设计和验证过程中编程工作量大和效率低的问题。本发明具有如下特点:
1、整体化:本发明把数据包当成一个整体来考虑,数据包不是由多个数据拼接而成,因为拼接难度很大,且繁琐;而传统的结构体看到的是零碎的数据域。
2、二维化:本发明在描述数据包结构时,一般都采用二维的方式,直接、清晰明了。新的byte数据结构与之对应,设计成二维结构。
3、容器化:byte数据类型是一个二维容器,可以装各种大小和形状的数据。
4、多样化:存取byte数据类型的方式多样化,可以在二维空间定义多种形状、大小的数据。
5、动态化:数据包结构定义可以动态调整,减少了定义结构体的工作量。
如图3所示,图3为本发明实施例1的一种基于可动态定义的复杂数据包操作方法流程图。本发明一种基于可动态定义的复杂数据包操作方法,如图3所示,该方法包括:
步骤1,根据实际编程需求,构建数据包的二维数据结构;所述数据包的二维数据结构是一个基于字节型的二维数据结构;
具体地,基于字节型的二维数据结构表示为byte B1( a , b ),其中,byte表示字节型;B1表示数据包的名称;a表示数据包的行数;b表示数据包列数,即每行的元素数;a、b均大于等于1。每个元素是一个字节。数据包B1的元素数为a*b,且根据从左至右、从上往下的方式对元素进行自1开始的位置编号。
如图4所示,图4为一个基于字节型的二维数据结构示意图,该数据包构建如下:
byte B1( 6 , 16 )
int size = B1.size() // B1整体大小size = 96
int row = B1.row() //行数 row = 6
int col = B1.col() // 列数 col = 16
以上代码构建了一个6行,每行16个字节(byte)的二维变量B1。调用size()函数可以查看其大小,调用row()函数可以查看行数,调用col()函数可以查看每行的字节数。
可以将B1看着是一个字节容器,每个字节在容器的编号,从左到右,从上到下,依次位1、2、3、…、96。其中编号从1开始,而不是从0开始。
当然还可以采用其他形式的构建方式,如下:
byte B1 // 1行1个byte;byte数据最小有一个byte字节
byte B1(8) // 1行8个byte
作为进一步地实施,基于字节型的二维数据结构能够根据byte大小调整该二维数据结构的行列大小和整体容量。具体地,可以根据需要对字节(byte)大小进行调整。使用resize()函数可以调整其行列大小和整体容量。调整字节(byte)的容量有三种情况:
1、容量大小不变,行列划分发生变化,只改变字节(byte)的二维形状,不分配新的存储空间。
int size = B1.size() // B1整体大小size = 6 x 16 = 96
B1.resize(12, 8) // 调整后B1整体大小size = 12 x 8 = 96
2、容量变大,原来的存储空间不够使用,需要分配新的存储空间,将旧的存储空间存储的数据拷贝到新的存储空间,释放旧的存储空间。字节(byte)的二维形状同步修改。
B1.resize(6, 32) // 调整后B1整体大小size = 6 x 32 = 192
3、容量变小,分配新的更小的存储空间,将旧的存储空间存储的数据拷贝到新的存储空间,后面的数据丢失,释放旧的存储空间。字节(byte)的二维形状同步修改。
B1.resize(6, 8) // 调整后B1整体大小size = 6 x 8 = 48
如果只需构建一行,字节(byte)类型就是一维数据结构,一维是二维的一个特例,两者是统一的。一维字节(byte)的构建方式有两种,两种方式等价;如下:
byte B1(1, 16)
byte B1(16) // 当行数为1时,构建时可以省略
步骤2,采用切片方式,对数据包的二维数据结构进行切片处理,得到处理后的切片;
具体地,本发明包括10种切片方式:
(1)基于单元素的切片方式
基于单元素的切片方式包括按照一维方式选取单个元素(使用全局索引存取)和按照二维方式选取单个元素(使用行列来存取);
按照一维方式选取单个元素(使用全局索引存取),是把byte当作一维数据结构来看待;按照一维方式选取单个元素表示为[p],p为数据包中选取元素的位置编号;
按照二维方式选取单个元素(使用行列来存取),是把byte当作二维数据结构看待;按照二维方式选取单个元素表示为[r:c],r为数据包中选取元素的行号,c为数据包中选取元素的列号。
如图5所示,图5为本发明基于单元素的切片方式的赋值操作示意图。如下:
B1[23] = 5 // 第23字节(即位置编号为23的元素)赋值为5
B1[2:7] = 5 // 第2行第7列字节(即位置编号为23的元素)赋值为5
(2)-(10)为基于多元素的切片方式,具体如下:
(2)一维多元素切片方式
一维多元素切片方式是按照一维方式选取多个元素,按照一维方式选取多个元素表示为[p1,…,p2],p1为数据包中选取元素的起始编号,p2为数据包中选取元素的终止编号;
按照一维方式选取多个元素还表示为[p, n],p为数据包中选取元素的起始编号,n为数据包中选取元素的长度。举例如下:
b1[21,... ,45]
b1[21, 25]
图6中灰色部分以上一维多元素切片方式选取的切片示例。
(3)整行切片方式
根据整行切片方式来选取一整行元素,表示为[‘row’, r],row为数据包的整行切片方式,r为数据包选取元素的行号;选取的字节从左到右依次排列。
如图7所示,举例:B1[‘row’, 3]
该语句选取的是整个第3行,选取的字节从左到右依次排列。
byte B2(1, 16) = B1[‘row’, 3]
该语句把选取的整个第3行元素赋值给B2。
(4)整列切片方式
根据整列切片方式来选取一整列元素,表示为[‘column’, c],column为数据包的整列切片方式,c为数据包选取元素的列号。选取的字节从上到下依次排列。
如图8所示,举例:byte B2(1, 6) = B1[‘c’, 8]
该语句把选取的整个第8列元素赋值给B2。
(5)跨行切片方式
根据跨行切片方式,从某行某列元素开始,跨行选取若干元素,表示为[‘r’, r:c,n],r为数据包的跨行切片方式,r:c为数据包中从r行c列元素开始,n为跨行选取的元素总个数;
如图9所示,举例:B1[‘r’, 2:3, 8]
该语句选取从第2行第3列元素开始的8个元素,选取的字节从左到右依次排列,没有发生换行。
B1[‘r’, 4:8, 12]
该语句选取从第4行第8列元素开始的12个元素,选取的字节从左到右、从上到下依次排列,发生了换行。
byte B2(1, 8) = B1[‘r’, 2:3, 8]
该语句把选取的从第2行第3列元素开始的8个元素赋值给B2。
byte B3(1, 12) = B1[‘r’, 4:8, 12]
该语句把选取的从第4行第8列元素开始的12个元素赋值给B3。
(6)跨列切片方式
根据跨列切片方式,从某行某列元素开始,跨列选取若干元素,表示为[‘c’, r:c,n],c为数据包的跨列切片方式,r:c为数据包中从r行c列元素开始,n为跨列选取的元素总个数。
如图10所示,举例:
B1[‘c’, 2:6, 4]
该语句选取从第2行第6列元素开始的4个元素,选取的字节从上到下依次排列,没有跨列。
B1[‘c’, 4:10, 8]
该语句选取从第4行第10列元素开始的8个元素,选取的字节从上到下、从左到右依次跨列排列。
byte B2(1, 4) = B1[‘c’, 2:6, 4]
该语句把选取的从第2行第6列元素开始的4个元素赋值给B2。
byte B3(1, 8) = B1[‘c’, 4:10, 8]
该语句把选取的从第4行第10列元素开始的8个元素赋值给B3。
(7)横向跨行切片方式
根据横向跨行切片方式,从某行某列元素开始,跨行跨列选取一个规则的区块;表示为[‘h’, m1, r:c, n],h为数据包的横向跨行切片方式;m1为换行间隔(即横向跨行时横向跨的列数);r:c为数据包中从r行c列元素开始;n为横向跨列到行尾,对齐选取的元素总个数;其中,m1缺省时,表示到达行的最右边界。
如图11所示,举例:
B1[‘h’, 1:2, 5]
该语句选取从第1行第2列元素开始的5个元素,‘h’代表水平(horizontal)选取。选取的字节从左到右依次排列,没有跨行跨列。
B1[‘h’, 2:10, 12]
该语句选取从第2行第10列元素开始的12个元素,‘h’代表水平(horizontal)选取。选取的字节从左到右,到最右列时换行,换行后的起始列为第一个元素的所在列。
B1[‘h’, 6, 4:3, 15]
该语句选取从第4行第3列元素开始的15个元素,[‘h’, 6]表示水平选取6个元素后换行。换行后的起始列为第一个元素的列号。
对应的赋值语句,如下:
byte B2(1, 5) = B1[‘h’, 1:2, 5]
byte B3(1, 12) = B1[‘h’, 2:10, 12]
byte B4(1, 15) = B1[‘h’, 6, 4:3, 15]
(8)纵向跨列切片方式
根据纵向跨列切片方式,从某行某列元素开始,跨行跨列选取一个规则的区块;表示为[‘v’, m2, r:c, n],v为数据包的纵向跨列切片方式;m2为跨列间隔(即纵向跨列时纵向跨的行数);r:c为数据包中从r行c列元素开始;n为纵向跨行到列尾,对齐选取的元素总个数;其中,m2缺省时,表示到达列的最下边界。
如图12所示,举例:
B1[‘v’, 2:2, 5]
该语句选取从第2行第2列元素开始的5个元素,‘v’代表垂直(vertical)选取。选取的字节从上到下依次排列,没有跨行跨列。
B1[‘v’, 4:5, 8]
该语句选取从第4行第5列元素开始的8个元素,‘v’代表(vertical)垂直选取。选取的字节从上到下,到最后一行时跨列,跨列后的起始行为第一个元素的所在行。
B1[‘v’, 4, 2:11, 10]
该语句选取从第2行第11列元素开始的10个元素,[‘v’, 4]表示垂直选取4个元素后跨列。跨列后的起始行为第一个元素的所在行。
对应的赋值语句,如下:
byte B2(1, 5) = B1[‘v’, 2:2, 5]
byte B3(1, 12) = B1[‘v’, 4:5, 8]
byte B4(1, 15) = B1[‘v’, 4, 2:11, 10]
(9)横向矩形切片方式
根据横向矩形切片方式,从某行某列元素开始,跨行跨列选取一个矩形的区块;表示为[‘h’, r:c, x, y],h为数据包的横向矩形切片方式; r:c为数据包中从r行c列元素开始;x为每行横向选取的元素个数;y为每列纵向选取的元素个数;选取的字节从左到右、从上到下依次排列,形成一个x乘y的矩形区块。
如图13所示,举例:
B1[‘h’, 2:6, 5, 4]
该语句选取从第2行第6列元素开始,横向5个元素,纵向4个元素,‘h’代表水平(horizontal)横向选取。选取的字节从左到右、从上到下依次排列,形成一个5乘4的矩形。
(10)纵向矩形切片方式
根据纵向矩形切片方式,从某行某列元素开始,跨行跨列选取一个矩形的区块;表示为[‘v’, r:c, x, y],v为数据包的纵向矩形切片方式; r:c为数据包中从r行c列元素开始;x为每行横向选取的元素个数;y为每列纵向选取的元素个数;选取的字节从上到下、从左到右依次排列,形成一个x乘y的矩形区块。
如图14所示,举例:
B1[‘v’, 2:6, 5, 4]
该语句选取从第2行第6列元素开始,横向5个元素,纵向4个元素,‘v’代表垂直(vertical)选取。选取的字节上到下、从左到右下依次排列,形成一个5乘4的矩形。
本实施例以本发明方法构建OTN数据包的二维数据结构来实施,每个区块使用切片表示如表1所示:
表1
Figure 920208DEST_PATH_IMAGE001
步骤3,根据处理后的切片,从数据包中选取处理后的切片对应的元素,进行数据包元素的存取操作。
本发明数据包定义非常简洁,且可以实现动态定义;同时通过丰富的、10种类型切片方式,可以选取各种连续的字节数据,非常灵活,方便数据包元素的存取操作。
实施例2
如图15至图17所示,本实施例与实施例1的区别在于,如图15所示,图15为本发明实施例2的一种基于可动态定义的复杂数据包操作方法流程图。该方法还包括:
步骤4,根据处理后的切片,对每个处理后的切片进行标记,得到标记后的切片;
将标记后的切片记作为段,通过标记对数据包中的段进行元素访问操作。
作为进一步地实施,所述标记包括主标记和副标记,主标记为数字型,主标记是不重复的数字;副标记为字符串型,副标记为不重复的字符串;
通过主标记和/或副标记对数据包中的段进行元素访问操作。
以上技术方案,对数据包的二维数据结构进行切片后,可以对每个切片打一个标记,标记分为主标记和副标记。主标记是不重复的数字,副标记是字符串,也不能重复。标记后的切片命名为段,通过主副标记来访问段,比使用切片根据简单直观。
使用mark()函数对OTN数据包(如图2所示)的切片进行标记成为段,标记后使用otn<i>或otn<string>来访问段,具体为:
mark(int i)
mark(int i, string)
基于表1的切片,可以通过表2的方式进行段访问。
表2
Figure 368507DEST_PATH_IMAGE002
Figure 928670DEST_PATH_IMAGE003
通过本发明步骤4打上标记后的OTN数据包示意图,如图16所示。
另外,标记可以被清除,软件编程中使用clearmarks()函数清除标记。一个字节(byte)对象,在其创建时就有一个默认的标记,主标记为1,副标记为空,代表整个字节(byte)对象。调用clearmarks()函数清除所有标记,但会恢复默认标记1。访问otn<1>段依然有效。具体语句如下:
otn.clearmarks()
otn<1>
完成标记后,字节(byte)数据和list列表数据可以互相存取。具体语句如下:
list<int> l1 = [1, 2, 3, 4, 5, 6]
list<int> l2
otn = l1
l2 = otn
以上列表l1有6个数据,可以为otn的6个段进行批量赋值。列表l2可以批量获取otn的6个段的值。
以上技术方案通过list列表对数据包已标记的切片进行批量赋值和取值。
作为进一步地实施,该方法还包括:
步骤5,根据标记后的数据包,根据段对不同数据包进行比较,输出比较结果。即数据校验时不需要解包。
字节(byte)类型一般用来产生、传递数据包。在芯片验证项目中,先使用字节(byte)产生数据包激励,数据包一路传递给行为级参考模型BRM(Behavioral ReferenceModel),计算出预期的结果数据包。一路经芯片处理后,输出实际的结果数据包。在结果比较器里来对这两种数据包进行比较,比较时并不需要对所有的数据进行比较,只需要比较关心的有限数据。
传统的做法是,将整体的数据包解开,提取相关的数据来进行比较。这种方法实现上没有问题,但繁琐耗时。
本发明字节(byte)类型数据提供了部分数据的比较功能,只要使用上节介绍的切片标记方法,即使两个byte数据包形状不同、大小不同也可以实现部分数据的比较。
如图17所示,图17中分别构建了6行10列共60个字节的字节(byte)类型变量B1、4行16列共64个字节的字节(byte)类型变量B2,使用切片分别标记了形状不同,但大小相同的三个段<1>、<2>、<3>。在B1和B2进行比较时,只对这三个段进行比较。只有这对应的三个段的大小和内容全部一致时,比较结果才为true,其他都为false。
byte B1(6, 10)
该语句构建了6行10列共60个字节的字节(byte)类型变量B1;
B1[‘r’, 1:7, 6].mark(1)
B1[‘v’, 3:5, 8].mark(2)
B1[‘r’, 5:8, 4].mark(3)
以上三个语句对B1进行分片,并通过段进行打标记;
byte B2(4, 16)
该语句构建了4行16列共64个字节的字节(byte)类型变量B2;
B2[‘h’, 3, 1:2, 6].mark(1)
B2[‘r’, 3:12, 8].mark(2)
B2[‘c’, 8].mark(3)
以上三个语句对B2进行分片,并通过段进行打标记;
(B1 == B2)
通过B1和B2进行比较,比价结果为真,即二者相同。
本发明通过对切片添加标记,按标记访问,编码更加简洁方便;本发明对两个复杂数据包的比较,只比较标记相同的切片,可以节省编程工作量,简单高效。本发明完成同样的数据包产生功能,相对现有方案,可以节省50%-80%编程工作量。
实施例3
如图18所示,本实施例与实施例1的区别在于,本实施例又提供了一种基于可动态定义的复杂数据包操作系统,该系统支持实施例1或2所述的一种基于可动态定义的复杂数据包操作方法;该系统包括:
构建单元,用于根据实际编程需求,构建数据包的二维数据结构;所述数据包的二维数据结构是一个基于字节型的二维数据结构;
切片处理单元,用于采用切片方式,对数据包的二维数据结构进行切片处理,得到处理后的切片;
选取及存取单元,用于根据处理后的切片,从数据包中选取处理后的切片对应的元素,进行数据包元素的存取操作。
作为进一步地实施,该系统还包括:
标记单元,用于根据处理后的切片,对每个处理后的切片进行标记,得到标记后的切片;
访问单元,用于将标记后的切片记作为段,通过标记对数据包中的段进行元素访问操作。
作为进一步地实施,所述标记包括主标记和副标记,主标记为数字型,主标记是不重复的数字;副标记为字符串型,副标记为不重复的字符串;
通过主标记和/或副标记对数据包中的段进行元素访问操作。
该系统还包括:
比较单元,用于根据标记后的数据包,根据段对不同数据包进行比较,输出比较结果。
其中,各个单元的执行过程按照实施例1或2所述的一种基于可动态定义的复杂数据包操作方法流程步骤执行即可,此实施例中不再一一赘述。
本发明系统的设计思路是从数据包整体出发,而不是局部;按二维、容器、动态的方式来构建数据包结构;以二维结构为基础,提供10种类型的切片方式,可以任意选取连续的、不同形状、不同排列走向的数据,方便灵活,适应各种类型的数据包结构。本发明在丰富的切片基础上,通过增加数字化、文本化的标记,使得编程进一步简单快捷;同时,支持使用list 列表对数据包已标记的切片进行批量赋值和取值。另外,本发明基于切片的标记,支持两个复杂的数据包进行部分数据比较,简单高效。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种基于可动态定义的复杂数据包操作方法,其特征在于,该方法包括:
根据实际编程需求,构建数据包的二维数据结构;所述数据包的二维数据结构是一个基于字节型的二维数据结构;
采用切片方式,对数据包的二维数据结构进行切片处理,得到处理后的切片;
根据处理后的切片,从数据包中选取处理后的切片对应的元素,进行数据包元素的存取操作。
2.根据权利要求1所述的一种基于可动态定义的复杂数据包操作方法,其特征在于,基于字节型的二维数据结构表示为byte B1( a , b ),其中,byte表示字节型;B1表示数据包的名称;a表示数据包的行数;b表示数据包列数,即每行的元素数;a、b均大于等于1。
3.根据权利要求2所述的一种基于可动态定义的复杂数据包操作方法,其特征在于,数据包B1的元素数为a*b,且根据从左至右、从上往下的方式对元素进行自1开始的位置编号。
4.根据权利要求2所述的一种基于可动态定义的复杂数据包操作方法,其特征在于,基于字节型的二维数据结构能够根据byte大小调整该二维数据结构的行列大小和整体容量。
5.根据权利要求1所述的一种基于可动态定义的复杂数据包操作方法,其特征在于,所述切片方式包括基于单元素的切片方式,基于单元素的切片方式包括按照一维方式选取单个元素和按照二维方式选取单个元素;
按照一维方式选取单个元素表示为[p],p为数据包中选取元素的位置编号;
按照二维方式选取单个元素表示为[r:c],r为数据包中选取元素的行号,c为数据包中选取元素的列号。
6.根据权利要求5所述的一种基于可动态定义的复杂数据包操作方法,其特征在于,所述切片方式还包括基于多元素的切片方式,基于多元素的切片方式包括一维多元素切片方式;
一维多元素切片方式是按照一维方式选取多个元素,按照一维方式选取多个元素表示为[p1,…,p2],p1为数据包中选取元素的起始编号,p2为数据包中选取元素的终止编号;
按照一维方式选取多个元素还表示为[p, n],p为数据包中选取元素的起始编号,n为数据包中选取元素的长度。
7.根据权利要求6所述的一种基于可动态定义的复杂数据包操作方法,其特征在于,所述基于多元素的切片方式还包括整行或整列切片方式;
根据整行或整列切片方式来选取一整行或一整列元素,表示为[‘T’, t],T为数据包的整行或整列切片方式,t为数据包待选取元素的行号或列号。
8.根据权利要求6所述的一种基于可动态定义的复杂数据包操作方法,其特征在于,所述基于多元素的切片方式还包括跨行或跨列切片方式;
根据跨行或跨列切片方式,从某行某列元素开始,跨行或跨列选取若干元素,表示为[‘I’, r:c, n],I为数据包的跨行或跨列切片方式,r:c为数据包中从r行c列元素开始,n为跨行或跨列选取的元素总个数。
9.根据权利要求6所述的一种基于可动态定义的复杂数据包操作方法,其特征在于,所述基于多元素的切片方式还包括横向跨行或纵向跨列切片方式;
根据横向跨行或纵向跨列切片方式,从某行某列元素开始,跨行跨列选取一个规则的区块,表示为[‘M’, m, r:c, n],M为数据包的横向跨行或纵向跨列切片方式,m为换行间隔或跨列间隔,r:c为数据包中从r行c列元素开始,n为对齐选取的元素总个数;
其中,m缺省时,表示到达行的最右边界或列的最下边界。
10.根据权利要求6所述的一种基于可动态定义的复杂数据包操作方法,其特征在于,所述基于多元素的切片方式还包括横向矩形或纵向矩形切片方式;
根据横向矩形或纵向矩形切片方式,从某行某列元素开始,跨行跨列选取一个矩形的区块,表示为[‘N’, r:c, x, y],N为数据包的横向矩形或纵向矩形切片方式,r:c为数据包中从r行c列元素开始,x为每行横向选取的元素个数;y为每列纵向选取的元素个数。
11.根据权利要求1所述的一种基于可动态定义的复杂数据包操作方法,其特征在于,该方法还包括:
根据处理后的切片,对每个处理后的切片进行标记,得到标记后的切片;
将标记后的切片记作为段,通过标记对数据包中的段进行元素访问操作。
12.根据权利要求11所述的一种基于可动态定义的复杂数据包操作方法,其特征在于,
所述标记包括主标记和副标记,主标记为数字型,主标记是不重复的数字;副标记为字符串型,副标记为不重复的字符串;
通过主标记和/或副标记对数据包中的段进行元素访问操作。
13.根据权利要求11所述的一种基于可动态定义的复杂数据包操作方法,其特征在于,该方法还包括:
根据标记后的数据包,根据段对不同数据包进行比较,输出比较结果。
14.一种基于可动态定义的复杂数据包操作系统,其特征在于,该系统支持如权利要求1至13中任一所述的一种基于可动态定义的复杂数据包操作方法;该系统包括:
构建单元,用于根据实际编程需求,构建数据包的二维数据结构;所述数据包的二维数据结构是一个基于字节型的二维数据结构;
切片处理单元,用于采用切片方式,对数据包的二维数据结构进行切片处理,得到处理后的切片;
选取及存取单元,用于根据处理后的切片,从数据包中选取处理后的切片对应的元素,进行数据包元素的存取操作。
CN202211298552.6A 2022-10-24 2022-10-24 一种基于可动态定义的复杂数据包操作方法及系统 Active CN115373645B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211298552.6A CN115373645B (zh) 2022-10-24 2022-10-24 一种基于可动态定义的复杂数据包操作方法及系统
PCT/CN2023/088931 WO2024087537A1 (zh) 2022-10-24 2023-04-18 一种基于可动态定义的复杂数据包操作方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211298552.6A CN115373645B (zh) 2022-10-24 2022-10-24 一种基于可动态定义的复杂数据包操作方法及系统

Publications (2)

Publication Number Publication Date
CN115373645A true CN115373645A (zh) 2022-11-22
CN115373645B CN115373645B (zh) 2023-02-03

Family

ID=84073907

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211298552.6A Active CN115373645B (zh) 2022-10-24 2022-10-24 一种基于可动态定义的复杂数据包操作方法及系统

Country Status (2)

Country Link
CN (1) CN115373645B (zh)
WO (1) WO2024087537A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024087537A1 (zh) * 2022-10-24 2024-05-02 济南新语软件科技有限公司 一种基于可动态定义的复杂数据包操作方法及系统

Citations (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996002039A1 (en) * 1994-07-08 1996-01-25 Apple Computer, Inc. Hardware design verification system and method
US20030028560A1 (en) * 2001-06-26 2003-02-06 Kudrollis Software Inventions Pvt. Ltd. Compacting an information array display to cope with two dimensional display space constraint
US6895382B1 (en) * 2000-10-04 2005-05-17 International Business Machines Corporation Method for arriving at an optimal decision to migrate the development, conversion, support and maintenance of software applications to off shore/off site locations
CN1828773A (zh) * 2005-03-04 2006-09-06 中国科学院计算技术研究所 多维数组在动态随机存取存储器上的快速读写方法及装置
CN101841437A (zh) * 2010-03-23 2010-09-22 华为技术有限公司 对设备进行测试的方法及装置
GB201216255D0 (en) * 2012-09-12 2012-10-24 Imagination Tech Ltd Dynamically resizable circular buffers
CN103198341A (zh) * 2013-04-09 2013-07-10 广州中大微电子有限公司 Rfid标签芯片验证系统及验证方法
US20150067267A1 (en) * 2013-08-30 2015-03-05 Apple Inc. Concurrent inline cache optimization in accessing dynamically typed objects
CN105574292A (zh) * 2016-01-29 2016-05-11 盛科网络(苏州)有限公司 一种基于动态数组实现多通道任意带宽发包的方法
CN106570113A (zh) * 2016-10-25 2017-04-19 中国电力科学研究院 一种海量矢量切片数据云存储方法及系统
US20180159802A1 (en) * 2015-07-30 2018-06-07 Huawei Technologies Co., Ltd. Data enqueuing method, data dequeuing method, and queue management circuit
CN108172260A (zh) * 2017-12-30 2018-06-15 盛科网络(苏州)有限公司 一种ASIC芯片中Hash模块的验证方法及装置
CN109347883A (zh) * 2018-12-05 2019-02-15 南通星云智能科技有限公司 一种可扩展的通信协议数据包及其通信系统
EP3451627A1 (en) * 2017-08-29 2019-03-06 eperi GmbH Gateway computer system with intermediate data processing according to rules that are specified by templates
CN110943936A (zh) * 2019-11-08 2020-03-31 中国科学院信息工程研究所 一种高效的基于动态数组的网络流量处理方法及系统
CN111064449A (zh) * 2019-12-11 2020-04-24 电子科技大学 一种基于uvm平台的数字降采样滤波器的验证平台及方法
EP3826340A1 (en) * 2019-11-21 2021-05-26 Thales Dis France Sa Method for authenticating a user on a network slice
CN113645490A (zh) * 2021-06-23 2021-11-12 天津津航计算技术研究所 一种软硬结合的多通道视频同步解码方法
CN113722340A (zh) * 2021-08-27 2021-11-30 科大智能电气技术有限公司 基于配电装置的远程自动点表更新的处理方法及系统
CN114245153A (zh) * 2021-11-04 2022-03-25 网宿科技股份有限公司 切片方法、装置、设备及可读存储介质
ES2902777T3 (es) * 2017-07-14 2022-03-29 Social Media Emotions S R L Gestión de elementos gráficos y/o de audio en un sistema de mensajería
CN114757135A (zh) * 2022-03-29 2022-07-15 中国电子科技集团公司第十研究所 一种基于需求驱动验证的可编程逻辑器件验证方法及系统
CN114997100A (zh) * 2022-05-26 2022-09-02 北京诺芮集成电路设计有限公司 一种用于FlexE子系统的EDA验证方法和装置
CN115081367A (zh) * 2022-06-13 2022-09-20 杭州云合智网技术有限公司 基于uvm存储模型的寄存器突发访问的建模方法
CN115168240A (zh) * 2022-09-08 2022-10-11 济南新语软件科技有限公司 一种基于变量组合时间序列功能覆盖率的测试方法和系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8676874B2 (en) * 2010-12-06 2014-03-18 International Business Machines Corporation Data structure for tiling and packetizing a sparse matrix
CN105354291B (zh) * 2015-11-02 2018-06-19 武大吉奥信息技术有限公司 一种栅格数据索引及查询方法
CN115373645B (zh) * 2022-10-24 2023-02-03 济南新语软件科技有限公司 一种基于可动态定义的复杂数据包操作方法及系统

Patent Citations (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996002039A1 (en) * 1994-07-08 1996-01-25 Apple Computer, Inc. Hardware design verification system and method
US6895382B1 (en) * 2000-10-04 2005-05-17 International Business Machines Corporation Method for arriving at an optimal decision to migrate the development, conversion, support and maintenance of software applications to off shore/off site locations
US20030028560A1 (en) * 2001-06-26 2003-02-06 Kudrollis Software Inventions Pvt. Ltd. Compacting an information array display to cope with two dimensional display space constraint
CN1828773A (zh) * 2005-03-04 2006-09-06 中国科学院计算技术研究所 多维数组在动态随机存取存储器上的快速读写方法及装置
CN101841437A (zh) * 2010-03-23 2010-09-22 华为技术有限公司 对设备进行测试的方法及装置
GB201216255D0 (en) * 2012-09-12 2012-10-24 Imagination Tech Ltd Dynamically resizable circular buffers
CN103198341A (zh) * 2013-04-09 2013-07-10 广州中大微电子有限公司 Rfid标签芯片验证系统及验证方法
US20150067267A1 (en) * 2013-08-30 2015-03-05 Apple Inc. Concurrent inline cache optimization in accessing dynamically typed objects
WO2015031192A1 (en) * 2013-08-30 2015-03-05 Apple Inc. Concurrent inline cache optimization in accessing dynamically typed objects
US20180159802A1 (en) * 2015-07-30 2018-06-07 Huawei Technologies Co., Ltd. Data enqueuing method, data dequeuing method, and queue management circuit
CN105574292A (zh) * 2016-01-29 2016-05-11 盛科网络(苏州)有限公司 一种基于动态数组实现多通道任意带宽发包的方法
CN106570113A (zh) * 2016-10-25 2017-04-19 中国电力科学研究院 一种海量矢量切片数据云存储方法及系统
ES2902777T3 (es) * 2017-07-14 2022-03-29 Social Media Emotions S R L Gestión de elementos gráficos y/o de audio en un sistema de mensajería
EP3451627A1 (en) * 2017-08-29 2019-03-06 eperi GmbH Gateway computer system with intermediate data processing according to rules that are specified by templates
CN108172260A (zh) * 2017-12-30 2018-06-15 盛科网络(苏州)有限公司 一种ASIC芯片中Hash模块的验证方法及装置
CN109347883A (zh) * 2018-12-05 2019-02-15 南通星云智能科技有限公司 一种可扩展的通信协议数据包及其通信系统
CN110943936A (zh) * 2019-11-08 2020-03-31 中国科学院信息工程研究所 一种高效的基于动态数组的网络流量处理方法及系统
EP3826340A1 (en) * 2019-11-21 2021-05-26 Thales Dis France Sa Method for authenticating a user on a network slice
CN111064449A (zh) * 2019-12-11 2020-04-24 电子科技大学 一种基于uvm平台的数字降采样滤波器的验证平台及方法
CN113645490A (zh) * 2021-06-23 2021-11-12 天津津航计算技术研究所 一种软硬结合的多通道视频同步解码方法
CN113722340A (zh) * 2021-08-27 2021-11-30 科大智能电气技术有限公司 基于配电装置的远程自动点表更新的处理方法及系统
CN114245153A (zh) * 2021-11-04 2022-03-25 网宿科技股份有限公司 切片方法、装置、设备及可读存储介质
CN114757135A (zh) * 2022-03-29 2022-07-15 中国电子科技集团公司第十研究所 一种基于需求驱动验证的可编程逻辑器件验证方法及系统
CN114997100A (zh) * 2022-05-26 2022-09-02 北京诺芮集成电路设计有限公司 一种用于FlexE子系统的EDA验证方法和装置
CN115081367A (zh) * 2022-06-13 2022-09-20 杭州云合智网技术有限公司 基于uvm存储模型的寄存器突发访问的建模方法
CN115168240A (zh) * 2022-09-08 2022-10-11 济南新语软件科技有限公司 一种基于变量组合时间序列功能覆盖率的测试方法和系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
FRANCESCA SPATARO: "AIS P/L on SAR satellite: the Copernicus Sentinel-1 solution", 《EUSAR 2021》 *
GIUSEPPE BIANCHI: "Packet Data Service over GSM Networks with Dynamic Stealing of Voice Channels", 《RESTRICTIONS APPLY》 *
JOHANNES MAXIMILIAN K¨UHN: "Testing Reliability Techniques for SoCs with Fault Tolerant CGRA by using live FPGA Fault Injection", 《FPT2013 DEMO PAPER》 *
吴明晖: "基于扩展字节进位的动态XML树编码方案", 《计算机工程》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024087537A1 (zh) * 2022-10-24 2024-05-02 济南新语软件科技有限公司 一种基于可动态定义的复杂数据包操作方法及系统

Also Published As

Publication number Publication date
CN115373645B (zh) 2023-02-03
WO2024087537A1 (zh) 2024-05-02

Similar Documents

Publication Publication Date Title
CN115373645B (zh) 一种基于可动态定义的复杂数据包操作方法及系统
CN100531386C (zh) 一种上下文自适应二进制算术编码器及其方法
CN102687121B (zh) 堆叠式存储器中的错误校正
US7847802B1 (en) Apparatus, method, and system for coalesced Z data and color data for raster operations
CN103678267A (zh) 一种图文混合内容的排版和渲染方法及系统
CN101963954A (zh) 一种文字显示的方法及装置
CN112991142A (zh) 图像数据的矩阵运算方法、装置、设备及存储介质
JPS6322310B2 (zh)
CN106339210B (zh) 一种网页游戏中数据处理方法及相关装置
EP2442256B1 (en) Method of encoding and decoding text on a matrix code symbol
CN112787955B (zh) Mac层数据报文的处理方法、设备和存储介质
CN101131712A (zh) 一种印刷电路板器件高度的输出方法及装置
CN102468902B (zh) LTE系统Turbo编码速率匹配/解速率匹配的方法
CN111177142B (zh) 一种数据转换方法及装置、设备和存储介质
CN115712601A (zh) 一种基于springbatch批量读取定长文件的方法
CN114218418A (zh) 一种对多种类型文件进行矢量编辑设计的方法
CN101645063A (zh) 组字方法和装置
ES2503667T3 (es) Gestión de datos de fuentes
CN1558314A (zh) 汉字电子化中的拼部组字方法
JPS5816189B2 (ja) 文字パタ−ン発生方式
CN106294701A (zh) 网站前端的数据缓存系统及方法
US11914564B1 (en) Merkle tree-based data management method and apparatus
CN114610920B (zh) 图像存储格式的生成方法、图像存储格式及处理系统
CN116431945A (zh) 一种智能分栏方法及系统
CN115309349B (zh) 深度学习的稀疏数据存储方法、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CB03 Change of inventor or designer information

Inventor after: Yi Min

Inventor after: Yang Yunzhao

Inventor after: Cheng Min

Inventor after: Shen Chuanqiang

Inventor after: Xia Xingwan

Inventor after: Wei Ming

Inventor after: Yi Tianhao

Inventor before: Yi Min

Inventor before: Zhang Ting

Inventor before: Yang Yunzhao

Inventor before: Cheng Min

Inventor before: Shen Chuanqiang

Inventor before: Xia Xingwan

Inventor before: Wei Ming

Inventor before: Yi Tianhao

CB03 Change of inventor or designer information