WO2018001025A1 - 激励报文产生控制方法、装置及逻辑检测设备和存储介质 - Google Patents
激励报文产生控制方法、装置及逻辑检测设备和存储介质 Download PDFInfo
- Publication number
- WO2018001025A1 WO2018001025A1 PCT/CN2017/086367 CN2017086367W WO2018001025A1 WO 2018001025 A1 WO2018001025 A1 WO 2018001025A1 CN 2017086367 W CN2017086367 W CN 2017086367W WO 2018001025 A1 WO2018001025 A1 WO 2018001025A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- packet
- module
- message
- flow
- traffic
- Prior art date
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种激励报文产生控制方法、装置及逻辑检测设备,该方法包括:根据分析得到的待模拟的网络流量结构获取所有待生成的各激励报文的报文参数;调用流量模块根据各激励报文的报文参数生成激励报文流。本发明实施例还提供了一种计算机存储介质。
Description
本申请基于申请号为201610516589.X、申请日为2016年06月30日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此引入本申请作为参考。
本发明涉及通信技术领域,尤其涉及一种激励报文产生控制方法、装置及逻辑检测设备。
逻辑验证是数字芯片前端设计过程中的一个关键步骤,验证平台模拟芯片实际运行环境,并通过测试用例检验芯片功能的正确性。模拟芯片运行环境的核心问题是模拟出实际运行中输入到芯片的激励,对于大量的网络数据类芯片,各种类型的网络报文是最主要的激励,如何模拟网络上复杂的流量模型,对验证平台的编写提出了更高的要求。
目前,采用验证方法学是芯片验证的趋势之一,UVM(统一验证方法学)是其中的典型代表,UVM系统的架构图如图1所示,UVM架构中最主要的复用单元是总线代理(Agent),验证人员通过编写序列器(sequencer)中的序列(Sequence)生成事务级的包(transaction),并通过驱动器(Driver)转换为接口激励信号作用于总线接口,同时监视器(Monitor)收集总线信号,转换回事务级的包,并发送至计分板(scoreboard)进行自动化比对。
但是,UVM中激励的生成由sequence机制完成,sequence机制是一种通用的激励生成方法,生成的激励报文种类单一,不能模拟越来越复杂
的通信场景中的报文类型,进而导致测试结果不准确。
发明内容
本发明实施例提供了一种激励报文产生控制方法、装置及逻辑检测设备和存储介质,以解决现有UVM方法生成的激励报文种类单一的问题。
一方面,提供了一种激励报文产生控制方法,包括:
根据分析得到的待模拟的网络流量结构获取所有待生成的各激励报文的报文参数;
调用流量模块根据各激励报文的报文参数生成激励报文流。
一方面,提供了一种激励报文产生控制装置,包括:分析模块及控制模块,其中,
分析模块用于根据分析得到的待模拟的网络流量结构获取所有待生成的各激励报文的报文参数;
控制模块用于调用流量模块根据各激励报文的报文参数生成激励报文流。
另一方面,提供了一种逻辑检测设备,其包括:至少一个用于产生激励报文流的流量模块、结果分析装置、以及本发明实施例提供的激励报文产生控制装置,激励报文产生控制装置用于调用流量模块产生激励报文流,并进行测试,结果分析装置用于分析测试结果。
另一方面,提供了一种计算机存储介质,计算机存储介质中存储有计算机程序,计算机程序用于执行前述的激励报文产生控制方法。
再一方面,一种逻辑检测设备,包括:
存储器,配置为存储计算机程序;
处理器,与所述存储器连接,配置为通过执行所述计算机程序,实现上述前述的激励报文产生控制方法。
再一方面一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序用于执行前述的激励报文产生控制方法。
本发明实施例提供的技术方案中,通过分析待模拟网络流量的结构,获取所有待生成的激励报文的报文类型,调用至少一个流量模块,根据各激励报文的报文类型,进行激励报文的建模,生成对应的报文模型,通过流量模块,根据各激励报文的报文模型,生成对应的激励报文流,即提出一种标准化的报文层流量模型建模方法,并从该模型能够有效,方便的生成出复杂的激励报文,具备的效果包括但不限于:1.支持任意条,任意层次的流量模型;2.支持端口内流量的多种调度方式:如轮询,带优先级的轮询,自定义等;3.支持对每条流量的流量大小控制;4.支持多种流量报文发包模式:如连续发包,固定个数发包,定时发包,自定义等:5.支持主流的网络流量模型,如分组,分时复用,固定大小分组等等;从而解决现有激励报文生成方法的不足。
图1为一种UVM系统的架构示意图;
图2为本发明第一实施例提供的激励报文产生控制方法的流程图;
图3为本发明第二实施例提供的激励报文产生控制装置的结构示意图;
图4是本发明第四实施例公开的报文层模型示意图;
图5是本发明第四实施例公开的流量模块连接示意图;
图6是本发明第四实施例公开的报文生成控制方法的流程示意图;
图7是本发明第四实施例公开的报文生成方法的流程示意图;
图8是本发明第四实施例公开的报文流检测方法的流程示意图;
图9是本发明第四实施例公开的申请报文方法的流程示意图;
图10是本发明第四实施例公开的单端口流量级联的第一示意图;
图11是本发明第四实施例公开的单端口流量级联的第二示意图;
图12是本发明第四实施例公开的单端口流量级联的第三示意图;
图13是本发明第四实施例公开的单端口流量级联的第四示意图。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明中一部分实施例,而不是全部的实施例。以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
现通过具体实施方式结合附图的方式对本发明做出进一步的诠释说明。
第一实施例:
图2为本发明第一实施例提供的激励报文产生控制方法的流程图,由图2可知,本实施例提供的激励报文产生控制方法包括:
S201:根据分析得到的待模拟的网络流量结构获取所有待生成的各激励报文的报文参数;
在实际应用中,报文参数包括:报文类型、报文字段、错误类型、报文组包方式与报文解包方式等参数中的至少一种。
S202:调用流量模块根据各激励报文的报文参数生成激励报文流;
本步骤根据待模拟的网络流量结构的复杂程度进行流量模块的调用,当网络流量结构的比较简单时可以仅调用一个流量模块,若比较复杂时,就需要调度多个流量模块进行并行连接和/或串行连接。
在本实施例中产生的激励报文流可以用于数字芯片的逻辑验证。
在实际应用中,报文模型与报文参数的参数种类是匹配的。
在一些实施例中,图2所示实施例中步骤S202中的生成激励报文流
包括:
选择需要生成的激励报文流;
判断激励报文流中的各报文流是否可以发包;
若可以发包,则生成对应的报文流,将生成的报文流组合为激励报文流。
在一些实施例中,上述实施例中的判断报文流是否可以发包,包括:
检测报文流是否超过流量;在实际应用中,若报文流没有超过流量,则判断结果为不可以发包;
若报文流没有超过流量,则检测报文流的发包模式,发包模式包括可以发包和不可以发包;在实际应用中,若发包模式为不可以发包,则判断结果为不可以发包;
若发包模式为可以发包,则检测生成报文流的报文流模块的归属流量模块是否为未连接上游流量模块的源流量模块。归属流量模块是指下文所定义的父流量模块;源流量模块是指在流量模块工作时,没有连接上游流量模块的流量模块,其在下文也有清楚的定义;判断父流量模块是否连接有上游流量模块,就是为了判断父流量模块是否为源流量模块,源流量模块是指没有连接上游流量模块的流量模块;在实际应用中,若归属流量模块没有连接上游流量模块,即父流量模块为源流量模块,则判断结果为可以发包。
这里的判断报文流没有超过流量是否超过流量,可包括:
判断对应的报文流的流量是否大于预设流量值。这里的预设流量值可为待模拟的网络流量结构支持的最大流量。
可选地,在一些实施例中,上述实施例中的判断报文流是否可以发包,还包括:
在归属流量模块已连接上游流量模块的源流量模块的情况下,检测报
文流模块的缓存状况;
判断缓存状况是否满足发包要求。在实际应用中,发包对报文流模块的缓存有一定的要求,因此,若缓存状况满足发包要求,则可以发包。
在本实施例中所述缓存状况,可包括:缓存容量、剩余缓存容量或已占用缓存容量等状况信息。在本实施例中所述缓存状况可为所述流量模块为所述报文流模块分配的缓存容量;在本实施例中所述缓存状况是否满足发包要求,可为所述流量模块是否已为所述报文流模块了缓存空间,或分配的缓存空间的缓存容量是否达到预设值等。通过缓存空间的分配,使得报文流模块可分配有暂时缓存待发包的数据流的空间。
可选地,在一些实施例中,上述实施例中的方法在判断缓存是否满足发包要求之后,还包括:
在缓存状况不满足发包要求的情况下,发送报文申请;
在申请成功后,重新检测缓存状况,判断重现检测的缓存状况是否满足发包要求。
通过申请发送报文,流量模块会为其分配缓存资源,此时需要从新判断缓存是否满足发包要求。
在一些实施例中,图2所示实施例中的步骤S202包括:
控制被调用的流量模块根据各激励报文的报文参数,生成各激励报文的报文模型;
控制被调用的流量模块将报文模型以参数形式,注册到报文流模块,生成报文流模型;
根据待模拟的网络流量结构,配置各报文流模块的优先级、发包模式及流量值;
在需要生成激励报文流时,根据配置结果选择各报文流模块的归属流量模块并连接;
控制各报文流模块的归属流量模块,生成报文流模型与对应的报文流,并将生成的报文流组合为激励报文流后输出。
第二实施例:
图3为本发明第二实施例提供的激励报文产生控制装置的结构示意图,由图3可知,本实施例提供的激励报文产生控制装置包括:分析模块31及控制模块32,其中,
分析模块31,配置为根据分析得到的待模拟的网络流量结构获取所有待生成的各激励报文的报文参数;
控制模块32,配置为调用流量模块根据各激励报文的报文参数生成激励报文流。
在一些实施例中,上述实施例中的控制模块32配置为选择需要生成的激励报文流,判断激励报文流中的各报文流是否可以发包,若可以发包,则生成对应的报文流,将生成的报文流组合为激励报文流。
在一些实施例中,上述实施例中的控制模块32配置为检测报文流是否超过流量,若报文流没有超过流量,则检测报文流的发包模式,若发包模式为可以发包,则检测生成报文流的报文流模块的归属流量模块是否为未连接上游流量模块的源流量模块。
在一些实施例中,上述实施例中的控制模块32配置为在归属流量模块已连接上游流量模块的源流量模块的情况下,检测报文流模块的缓存状况,判断缓存状况是否满足发包要求。
在一些实施例中,上述实施例中的控制模块32配置为在缓存不满足发包要求的情况下,发送报文申请,在申请成功后,重新检测缓存状况,判断缓存状况是否满足发包要求。
在一些实施例中,上述实施例中的控制模块32配置为控制被调用的流量模块根据各激励报文的报文参数,生成各激励报文的报文模型;控制
被调用的流量模块将报文模型以参数形式,注册到报文流模块,生成报文流模型;根据待模拟的网络流量结构,配置各报文流模块的优先级、发包模式及流量值,在需要生成激励报文流时,根据配置结果选择各报文流模块的归属流量模块并连接;控制各报文流模块的归属流量模块,生成报文流模型与对应的报文流,并将生成的报文流组合为激励报文流后输出。
在实际应用中,图3所示实施例中的所有功能模块,如分析模块31及控制模块32等都可以采用处理器、编辑逻辑器件等方式实现。
第三实施例:
本实施例提供了一种逻辑检测设备,其包括:至少一个配置为产生激励报文流的流量模块,本发明实施例提供的激励报文产生控制装置,结果分析装置,激励报文产生控制装置配置为调用流量模块产生激励报文流,并进行测试,结果分析装置用于分析测试结果。
在一些实施例中,上述实施例中的流量模块包括用于流量模块间连接和入口报文调度的入口调度器;配置为流量模块间连接和出口报文调度的出口调度器;用于与底层接口的发包器建立映射关系,并提供相关发包接口的报文端口;以及至少一个用于根据报文模型生成报文流的报文流模块;以及至少一个用于生成报文模型的报文模块。
在一些实施例中,上述实施例中的流量模块还包括子流量模块和/或子报文流模块。
在一些实施例中,上述实施例中的报文流模块包括流量控制器、流量生成器及上游报文缓存队列。
在一些实施例中,上述实施例中的激励报文产生控制装置用于通过并行和/或级联的方式,调用多个流量模块,产生激励报文流。
第四实施例:
现结合具体应用场景对本发明实施例做进一步的诠释说明。
本实施例在层次化的验证架构基础上提出一种标准化的报文层流量模型建模方法,并从该模型能够有效,方便的生成出复杂的激励报文,激励报文的特性包括但不限于:
1.支持任意条,任意层次的流量模型;
2.支持端口内流量的多种调度方式:如轮询,带优先级的轮询,自定义等;
3.支持对每条流量的流量大小控制;
4.支持多种流量报文发包模式:如连续发包,固定个数发包,定时发包,自定义等;
5.支持主流的网络流量模型,如分组,分时复用,固定大小分组等等;
从而解决现有激励报文生成方法的不足。
可以预见的是,基于本实施例模型的激励报文生成方法并不依赖于现有的UVM或层次化的验证架构,该方法可以广泛的适用于多种验证方法学和验证架构中。
本实施例提供了一种报文流量模型组件架构,如图4所示,该模型的基本组件包括:
报文(packet_item):是对网络报文的建模,封装了报文的相关属性(即前述报文参数),如报文类型,报文字段,错误类型等,以及报文组包与解包的方法;
报文流(packet_flow):是组成流量模型的最小单位,是对组成流量模型的其中一条报文流量的建模,负责生成所需要的激励报文。报文流与具体的报文类型无关,报文(packet_item)作为参数注册进报文流。报文流封装生成报文所需的方法,包括流量控制器与流量生成器两个主要功能模块,以及一个上游报文缓存队列(非源流量模块)。
流量模块(packet_module):是报文流量模型的基本复用单位,流量
模块是对某一种流量模型的建模,是一组报文流量的聚合,流量模块也可以包含子流量模块,因此,流量模块是报文流和子流量模块的组合。
本实施例提供了一种流量模块的结构,如图5所示。
入口调度器(import_scheduler):用于模块间连接和入口报文调度,入口调度器可以连接上游模块的出口调度器;
出口调度器(export_scheduler):用于模块间连接和出口报文调度,出口调度器可以连接父流量模块的出口调度器也可以连接下游模块的入口调度器;
报文端口(packet_port):报文端口与底层接口的发包器建立映射关系,并提供相关发包接口。底层接口通过报文端口提供的方法向流量模型申请报文,并获取流量模型返回的报文。
还可以包括:
子流量模块(sub_packet_block):流量模块可以包含流量模块,在这种情况下,被包含的流量模块称为该流量模块的子流量模块,该流量模块称为被包含的流量模块的父流量模块。
子报文流(sub_packet_flow):流量模块可以包含报文流,在这种情况下,被包含的报文流称为该流量模块的子报文流,该流量模块称为被包含的报文流的父流量模块。报文流是流量组合的最小单位,不能继续包含子报文流。
通过流量模块的各种连接和组合,可以构建出复杂的层次化的网络流量模型,如图5所示:
流量的组合:指流量模块中包含子流量模块的方式。组合中所包含的流量模块和报文流之间是独立的并行的关系。组合中,子流量模块的出口调度与父流量模块的出口调度相连,子流量模块的入口调度与父流量模块的入口调度相连。
流量的级联:指流量模块外部互相连接的方式。处于级联关系的流量模块,在实际网路中是一种上下游层次关系,一般而言是某种网络流量的报文经过组合或分割等形式封装成新类型的报文后,运行于另一种类型网络流量中。两个处于级联关系的流量模块,可以根据相对位置关系称为上游模块和下游模块。一个流量模块可以与任意数量上游模块相连,也可以与任意数量下游模块相连。下游模块的入口调度与上游模块的出口调度相连建立链接。
不同层次之间的流量的组合级联可以非常复杂,多层次多个流量模块组合级联在一起,构成了类似树的一种网络拓扑结构。本实施例提供了流量模型拓扑结构中,部分特殊流量模块的特征定义,如图5所示:
顶层流量模块(top_block):针对组合而言,没有父亲流量模块的流量模块称之为顶层流量模块;
源流量模块(source_block):针对级联而言,将没有上游流量模块的流量模块称为源流量模块;源流量模块的报文没有上游,由自身产生报文,不需要例化入口调度器。
根流量模块(root_block):对于没有下游流量模块的顶层流量模块称为根流量模块;根流量模块的下游实际对应的是底层的物理端口,因此在根流量模块中需要例化一个报文端口(packet_port),非根流量模块不需要例化。
在完成设计流量模型的拓扑结构后,通过组件接口的互相调用,可以完成流量模型的生成与报文的生成,在这里定义的各组件接口,是为了描述方便而进行的简化抽象定义,仅描述了部分主要的接口,不代表实际程序代码,也不是对实际程序代码的完整描述。
本实施例提供了一种流量模块(packet_module)接口定义,如下表1所示:
表1
其中,add_sub_block():增加子流量模块,模块中包含的子流量模块需要通过此接口进行注册,完成内部连接的建立。
add_sub_flow():增加子报文流,模块中包含的子报文流需要通过此接口进行注册,完成内部连接的建立。
connect():连接上游模块,与上游流量模块建立级联关系,将此模块注册进上游模块的出口调度器,并完成相关链接的建立。
本实施例提供了一种报文流(packet_flow)接口定义,如下表2所示:
表2
其中,send_request():向入口调度器提交报文申请,该接口会返回申请成功或失败的状态。该接口也提供指定上游模块和指定报文流参数供选择。
gen_packet():报文生成,该接口默认生成一个注册进该报文流的报文,同时提供固定个数,定时发包等报文生成模式供配置,也提供相应钩子函数供用户自行定义发包方法。
tm_is_ok():检查流量控制状态,用户需要配置该条流的流量大小,流量控制器会依据配置的流量大小计算当前的报文授权盈余,对于超出授权的情况返回需要流控,在不配置的情况下,默认始终返回不需要流控。
check_queue_size():检查缓存队列是否有足够的报文供处理,仅当缓存队列不足时,向上游发起报文申请。
本实施例提供了一种出口调度(export_scheduler)接口定义,如下表3所示:
表3
其中,choose_next_flow():选择下一个要处理的报文流,该接口用于定义模块内部报文流调度算法,默认支持轮询,优先级轮询等调度算法配置,也提供钩子函数供用户自定义调度算法。该接口会返回报文状态,例如,当用户配置调度算法为轮询算法,而所有子报文流的报文生成接口都因为流控返回失败状态,则该接口会返回失败状态。该接口也提供指定报文流参数供输入,用户可以指定报文生成报文流,在此情况下,该接口返回指定报文流的报文生成状态。对于组合中包含子模块的情况,该接口会递归调用子模块的接口,直到找到报文流为止。
try_next_packet():从报文流获取报文,该接口根据choose_next_flow()选择的报文流,调用报文流的接口获取报文,并返回报文生成状态。
choose_return_block():选择将报文返回哪一个下游模块,此接口定
义返回报文的流量模块分配算法,在默认情况下,该接口返回的是申请报文的模块,在一些情况下,生成的报文需要按照配置的算法分配到下游模块,那么返回的则是其它下游模块,该接口提供钩子函数供用户自定义分配算法。
send_packet():根据choose_return_block()返回的下游模块,调用下游模块的入口调度中的choose_return_flow()接口获取需要返回的报文流,将报文存入对应报文流的缓存中,如果不是直接返回申请该报文的报文流,那么该报文申请不能完成,那么会继续调用choose_next_flow()接口和get_next_packet()获取报文,值到满足该报文的申请为止,完成后删除该请求。
本实施例提供了一种入口调度(import_scheduler)接口定义,如下表4所示:
表4
其中,choose_next_block():选择下一个要处理的流量模块,该接口实现报文请求的模块选择算法,当报文流发送报文请求send_request()后,入口调度会根据配置的选择算法,选择将报文请求送往哪一流量模块,默认采用轮询算法,也提供钩子函数供用户自定义分配算法。
choose_return_flow():选择将报文返回哪一个报文流,该接口实现返回报文的报文流分配算法,对于上游模块返回的报文,根据选择算法决定返回的报文流,默认采用轮询算法,也提供钩子函数供用户自定义分配算法。对于包含子模块的情况,会递归调用子模块的相应接口,直到找到报文流为止。
本实施例提供了一种报文端口(packet_port)接口定义,如下表5所示:
表5
其中,try_next_packet():获取报文,该接口会返回报文生成状态,没有生成报文的情况会返回失败。
set_sequencer():设置底层端口连接,获取底层物理端口发包器的句柄。
对应的,本实施例提供了一组配置接口与钩子函数供用户修改,可以在流量模型的基础上灵活的生成各种测试用激励报文。
报文流使能接口:打开或关闭某条报文流;
报文流优先级配置接口:配置报文流的优先级,默认的报文流优先级相同;
报文流流量配置接口:配置报文流量大小;这里的流量大小即为报文产生的数据流量的流量值;
报文流发包模式配置接口:配置发包模式选择,在默认提供的发包模式中选择;
报文流发包模式钩子函数:供用户自定义发包模式;
报文流报文处理钩子函数:供用户对生成的报文进行预处理与后处理;
流量模块使能接口:打开或关闭某个流量模块;
流量模块优先级配置接口:配置流量模块的优先级,默认的流量模块优先级相同;
入口调度的模块选择算法配置接口;
入口调度的模块选择算法钩子函数;
入口调度的报文流分配算法配置接口;
入口调度的报文流分配算法钩子函数;
出口调度的报文流调度算法配置接口;
出口调度的报文流调度算法钩子函数;
出口调度的流量模块分配算法配置接口;
出口调度的流量模块分配算法钩子函数;
通过组件接口调用可以完成流量模型的生成与报文生成,具体的,如图6所示,本实施例提供一种流量模型生成方法包括:
S601:分析网络流量结构:对待模拟的网络流量结构进行分析,对流量结构进行合理的划分,将其拆分成合适大小的流量模块;
S602:编写报文:分析网络流量中所有运行的报文类型,对报文进行建模;
S603:编写报文流:将报文以参数形式注册进报文流;
S604:配置报文流发包方式:配置报文流的优先级,发包模式与流量大小,如果需要默认支持的发包模式之外的模式,对报文流的gen_packet()接口提供的钩子函数进行编写;
S605:编写流量模块:调用add_sub_block()接口将子流量模块加入流量模块;调用add_sub_flow()接口将子报文流加入流量模块;
S606:配置流量模块的调度算法:配置流量模块的优先级,配置入口调度器与出口调度器的调度算法,如果需要默认支持之外的调度算法,根据需要编写choose_next_flow(),choose_return_block(),choose_next_block(),choose_return_flow()四个接口相关的钩子函数;
S607:组合报文流量:调用add_sub_block()接口将子流量模块加
入流量模块;
S608:连接报文流量:从根流量模块开始,调用connect()接口连接上游模块,值到源流量模块;
S609:连接根流量模块与底层端口:调用set_sequencer()接口连接底层端口的发包器。
报文的申请者有两种,一种是底层物理端口,一种是下游模块,如图7所示,本实施例提供的流量模块生成报文方法包括:
S701:底层端口向流量模块申请报文,跳到S702;
S702:报文端申请报文(try-next-packet()),具体包括:根流量模块的报文端口向出口调度申请报文;跳到S703;
或者,下游模块向流量模型申请报文,出口调度申请报文,跳到S703;
S703:出口调度choose-next-flow(),具体包括:根据调度算法选择流量模块中的一个子报文流,跳到S704;
S704:检测该报文流是否可以生成报文,具体可包括:进行报文流检查流程,确认是否可以发包,如果可以发包,则跳到S705,如果该报文流不能发包,则跳到S703再次选择一个子报文流,如果一直不能生成报文,则根据调度算法,在选择到一定程度后,跳到S707;
S705:生成报文gen-packet(),具体可包括:对于可以发包的报文流,调用其发包接口生成报文,跳到S706;
S706:返回生成的报文;
S707:返回失败状态;
如图8所示,本实施例提供了一种报文流检查方法,检查其是否可以发包,包括
S801:检测该报文流是否可以生成报文,具体可包括:出口调度检查报文流是否可以发包,跳到S802;
S802:检查该报文流的流量控制器,具体可以用函数tm-is-ok()进行该报文流是否可以发包的控制,可以则跳到S803,超过流量则跳到S808;
S803:检查该报文流的发包模式,具体可以用函数gen-packet()检测发包模式,可以发包则跳到S804,不可以则跳到S808;
S804:判断该报文流的父流量模块是否是源流量模块,是则跳到S807,否则跳到S805;
S805:检查缓存大小,例如,可利用函数check-queue-size()检测缓存大小,满足发包要求则跳到S807,否则跳到S806;
S806:向入口调度发送报文申请,例如,可利用函数send-request()向如可调度申请报文,申请成功,则返回S805检查缓存,申请失败则跳到S808;
S807:返回成功状态;
S808:返回失败状态;
如图9所示,本实施例提供了一种报文流向上游流量模块申请报文的方法,其包括:
S901:报文流向入口调度发送报文申请,可包括利用函数send-request()进行报文流发送的申请,跳到S902;
S902:入口调度选择将报文申请送往哪个上游流量模块,可利用函数choose-next-block()选择上游流量模块,跳到S903;
S903:在选择的上游流量模块进行生成报文的流程,例如,可利用函数get-next-packet()从上游模块出口的获取报文,如果生成成功,跳到S904,否则跳到S909;
S904:上游流量模块的出口调度选择将生成的报文返回哪个下游模块,例如,利用函数choose-return-block()确定出返回的下游模块,跳
到S905;
S905:在选择返回的流量模块的入口调度中选择将报文返回哪一个报文流,例如,利用函数choose-return-flow()确定出返回的报文流,跳到S906;
S906:将返回的报文存进报文流的缓存中,跳到S907;
S907:检查报文申请是否被完成,既申请者的缓存中是否存入了报文,如果是则跳到S908,否则跳到S902,重新申请流程,直到申请被完成为止;
S908:返回成功状态;
S909:返回失败状态;
下面结合附图对本发明的优选实施例进行完整清晰的说明,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
在下面的描述中,阐述了很多特定的细节,如特定类型的网络名称,通信协议,验证装置,待测设计,UVM组件名称,比较板(scoreboard),参考模型等,以便对本发明的内容的透彻理解,然而对于本领域的技术人员来说是显而易见的,不需要采用这些特定细节来实现本发明。下文描述的方法、装置,流程主要用于为网络通信芯片提供测试激励报文。具体的来说,主要焦点在于模拟网络流量模型,如以太网,同步数字网等。然而本文所描述的方法,装置,流程,不应该被这样限制。本发明所描述的流量模型组件和构建方法,可以模拟任何类报文的激励生成,包括设备内部使用的通信协议,底层物理接口协议等。也可以在其它类型的集成电路验证中实施。
一种单端口流量组合的实施例。
多种不同流量组合在一起是一种常见的网络流量模型,参考图10,该验证平台由以太网流量模型生成以太网激励报文,再通过以太接口代理
组件发送给待测设计。
该流量模型主要完成以太网激励报文的生成,流量模型由四组相同的以太网流量组合而成。每组流量有四条报文流,分别生成四种类型激励报文。
首先分别对四种类型报文进行建模;
再编写以太流量模块,在流量模块中分别例化四条报文流,注册各自的报文,并将报文流加入流量模块;配置每条报文流的流量和发包方式;配置出口调度使用的调度算法;由于该流量模块没有父流量模块,也不是顶层模块,所以没有例化入口调度器与报文端口;
然后编写顶层流量模块,在该模块内将以太网流量模块例化四次,并将其加入顶层流量模块;配置出口调度使用的调度算法;例化报文端口;
最后对于报文端口与底层以太网接口代理建立连接。
底层以太网接口代理通过调用顶层流量模块的报文端口获取报文;报文端口调用出口代理,递归的查找子模块中的报文流,并调用报文流接口生成报文并返回给以太网接口代理。接口代理将其转换为物理接口信号发送给待测设计,如果返回的是失败状态,接口代理则向待测设计发送空闲的物理信号后,再次申请获取报文。
用户可以通过配置提供的配置接口和钩子函数,改变某条流的流量,发包个数,关闭或打开某条流,改变调度算法,也可以用新的报文替换原有报文流中的报文,也可以直接修改流量模型,灵活构造各种流量用例。
一种单端口流量级联的实施例。
参考图11,模拟了一种通道化STM-1报文流量模型。该模型中一条STM-1报文流量复用了63条E1流量。
首先,对于STM-1报文流量建立流量模块,STM-1流量模块只包含一条STM-1报文流。
再编写E1流量模块,在一个EI流量模块中采用组合的方式包含了63条E1报文流,配置E1流量模块的出口调度算法为轮询;
最后,将STM-1流量模块连接上E1流量模块,组成流量模型。
图12提供了通道化STM-1报文流量模型的另一种实施例,每个E1流量模块只包含一条E1报文流,STM-1流量模块同时与63个E1流量模块相连接。配置STM-1的入口调度的模块选择算法为轮询。
两种流量模型的实施例,最终生成的激励报文效果是一致的。
参考图13,提供了一种ppp报文流量承载于上述E1报文流量的模型。E1提供通道绑定功能,既一条PPP报文流量可以将负载分担到多条E1报文流量中。
首先,编写PPP报文的流量模块,每个模块包含一条报文流;
再次,编写将PPP2E1流量模块,此模块与PPP流量模块相连,负责将PPP报文封装为E1;
最后,将上述STM-1流量模型,与PPP2E1流量模块按照用户设置的绑定策略进行连接;
采用本实施例提供的模型架构和组件,报文生成方法,与现有技术相比,最大限度的减少了报文组件之间的依赖,实现了对流量模型较好的抽象,通过流量模块和报文流之间的组合,可以实现任意类型的报文流量。。同时基于该架构提供了一种模型生成的方法以及报文生成流程,能够便捷灵活的生成所需要的激励报文;同时统一了模型结构,为流量模型的复用提供了较好的基础。
综上可知,通过本发明实施例的实施,至少存在以下有益效果:
本发明实施例提供了一种激励报文产生控制方法及逻辑检测设备,该方法通过分析待模拟网络流量的结构,获取所有待生成的激励报文的报文类型,调用至少一个流量模块,根据各激励报文的报文类型,进行激励报
文的建模,生成对应的报文模型,通过流量模块,根据各激励报文的报文模型,生成对应的激励报文流,即提出一种标准化的报文层流量模型建模方法,并从该模型能够有效,方便的生成出复杂的激励报文,具备的效果包括但不限于:1.支持任意条,任意层次的流量模型;2.支持端口内流量的多种调度方式:如轮询,带优先级的轮询,自定义等;3.支持对每条流量的流量大小控制;4.支持多种流量报文发包模式:如连续发包,固定个数发包,定时发包,自定义等:5.支持主流的网络流量模型,如分组,分时复用,固定大小分组等等;从而解决现有激励报文生成方法的不足。
本发明实施例还提供一种逻辑检测设备,包括:
存储器,配置为存储计算机程序;
处理器,与所述存储器连接,配置为通过执行所述计算机程序,实现上述一个或多个技术方案提供的激励报文产生控制方法,具体可执行如图2等附图所示的方法。
所述存储器可包括各种类型的存储介质,例如,随机存储介质、只读存储介质或闪存等。
所述处理器可为:AP(AP,Application Processor)、中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital Signal Processor)或可编程门阵列(FPGA,Field Programmable Gate Array)等。
所述处理器与所述存储器之间,可以通过总线,例如,集成电路总线(IIC)总线等连接。
本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序用于实现上述一个或多个技术方案提供的激励报文产生控制方法,具体可执行如图2等附图所示的方法。
所述计算机存储介质可为各种类型的存储介质,优选为非瞬间存储介
质。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡按照本发明原理所作的修改,都应当理解为落入本发明的保护
范围。
本发明实施例提供的技术方案中,会分析待模拟的网络流量结构获得需要发送的激励报文的报文参数,从而产生对应的激励报文用于数字芯片的前期的逻辑验证,具有实现简便及工业上可实现性强及工业应用推广简单的特点。
Claims (19)
- 一种激励报文产生控制方法,包括:根据分析得到的待模拟的网络流量结构获取所有待生成的各激励报文的报文参数;调用流量模块根据所述各激励报文的报文参数生成激励报文流。
- 如权利要求1所述的激励报文产生控制方法,其中,所述生成激励报文流包括:选择需要生成的激励报文流;判断激励报文流中的各报文流是否可以发包;若可以发包,则生成对应的报文流,将生成的报文流组合为激励报文流。
- 如权利要求2所述的激励报文产生控制方法,其中,所述判断报文流是否可以发包,包括:检测报文流是否超过流量;若报文流没有超过流量,则检测报文流的发包模式,所述发包模式包括可以发包和不可以发包;若发包模式为可以发包,则检测生成报文流的报文流模块的归属流量模块是否为未连接上游流量模块的源流量模块。
- 如权利要求3所述的激励报文产生控制方法,其中,所述判断报文流是否可以发包,还包括:在所述归属流量模块已连接上游流量模块的源流量模块的情况下,检测所述报文流模块的缓存状况;判断所述缓存状况是否满足发包要求。
- 如权利要求4所述的激励报文产生控制方法,其中,在所述判断缓 存状况是否满足发包要求之后,所述激励报文产生控制方法还包括:在所述缓存状况不满足发包要求的情况下,发送报文申请;在申请成功后,重新检测缓存状况,并判断重新检测的所述缓存状况是否满足发包要求。
- 如权利要求1至5任一项所述的激励报文产生控制方法,其中,所述调用流量模块根据所述各激励报文的报文参数生成激励报文流包括:控制被调用的流量模块根据所述各激励报文的报文参数,生成各激励报文的报文模型;控制被调用的流量模块将报文模型以参数形式,注册到报文流模块,生成报文流模型;根据所述待模拟的网络流量结构,配置各报文流模块的优先级、发包模式及流量值;在需要生成激励报文流时,根据配置结果选择各报文流模块的归属流量模块并连接;控制各报文流模块的归属流量模块,生成报文流模型与对应的报文流,并将生成的报文流组合为所述激励报文流后输出。
- 一种激励报文产生控制装置,包括:分析模块及控制模块,其中,所述分析模块,配置为根据分析得到的待模拟的网络流量结构获取所有待生成的各激励报文的报文参数;所述控制模块,配置为调用流量模块根据所述各激励报文的报文参数生成激励报文流。
- 如权利要求7所述的激励报文产生控制装置,其中,所述控制模块配置为选择需要生成的激励报文流,判断激励报文流中的各报文流是否可以发包,若可以发包,则生成对应的报文流,将生成的报文流组合为激励报文流。
- 如权利要求8所述的激励报文产生控制装置,其中,所述控制模块配置为检测报文流是否超过流量,若报文流没有超过流量,则检测报文流的发包模式,若发包模式为可以发包,则检测生成报文流的报文流模块的归属流量模块是否为未连接上游流量模块的源流量模块。
- 如权利要求9所述的激励报文产生控制装置,其中,所述控制模块用于在所述归属流量模块已连接上游流量模块的源流量模块的情况下,检测所述报文流模块的缓存状况,判断所述缓存状况是否满足发包要求。
- 如权利要求9所述的激励报文产生控制装置,其中,所述控制模块用于在缓存状况不满足发包要求的情况下,发送报文申请,在申请成功后,重新检测缓存状况,判断重新检测的所述缓存状况是否满足发包要求。
- 如权利要求7至11任一项所述的激励报文产生控制装置,其中,所述控制模块配置为控制被调用的流量模块根据所述各激励报文的报文参数,生成各激励报文的报文模型;控制被调用的流量模块将报文模型以参数形式,注册到报文流模块,生成报文流模型;根据所述待模拟的网络流量结构,配置各报文流模块的优先级、发包模式及流量值,在需要生成激励报文流时,根据配置结果选择各报文流模块的归属流量模块并连接;控制各报文流模块的归属流量模块,生成报文流模型与对应的报文流,并将生成的报文流组合为所述激励报文流后输出。
- 一种逻辑检测设备,包括:至少一个配置为产生激励报文流的流量模块、结果分析装置、及如权利要求7至12任一项提供的激励报文产生控制装置,所述激励报文产生控制装置用于调用所述流量模块产生激励报文流,并进行测试,所述结果分析装置用于分析测试结果。
- 如权利要求13所述的逻辑检测设备,其中,所述流量模块包括用于流量模块间连接和入口报文调度的入口调度器;配置为所述流量模块间连接和出口报文调度的出口调度器;配置为与底层接口的发包器建立映射 关系,并提供相关发包接口的报文端口;以及至少一个用于根据报文模型生成报文流的报文流模块;以及至少一个用于生成报文模型的报文模块。
- 如权利要求14所述的逻辑检测设备,其中,所述流量模块还包括子流量模块和/或子报文流模块。
- 如权利要求14所述的逻辑检测设备,其中,所述报文流模块包括流量控制器、流量生成器及上游报文缓存队列。
- 如权利要求13至16任一项所述的逻辑检测设备,其中,所述激励报文产生控制装置用于通过并行和/或级联的方式,调用多个所述流量模块,产生所述激励报文流。
- 一种逻辑检测设备,包括:存储器,配置为存储计算机程序;处理器,与所述存储器连接,配置为通过执行所述计算机程序,实现上述权利要求1至6任一项所述的方法。
- 一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序用于执行权利要求1至6任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610516589.XA CN107566204B (zh) | 2016-06-30 | 2016-06-30 | 激励报文产生控制方法、装置及逻辑检测设备 |
CN201610516589.X | 2016-06-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018001025A1 true WO2018001025A1 (zh) | 2018-01-04 |
Family
ID=60785874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2017/086367 WO2018001025A1 (zh) | 2016-06-30 | 2017-05-27 | 激励报文产生控制方法、装置及逻辑检测设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107566204B (zh) |
WO (1) | WO2018001025A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111478825B (zh) * | 2020-04-10 | 2023-04-18 | 深圳市风云实业有限公司 | 一种可扩展的网络流量生成和分析方法及系统 |
CN114338434A (zh) * | 2020-09-25 | 2022-04-12 | 深圳市中兴微电子技术有限公司 | 激励报文发送方法、装置、电子设备及存储介质 |
CN112839057A (zh) * | 2021-02-09 | 2021-05-25 | 芯河半导体科技(无锡)有限公司 | 一种灵活可扩展的以太网报文激励发生器 |
CN114679411A (zh) * | 2022-03-24 | 2022-06-28 | 芯河半导体科技(无锡)有限公司 | 一种速率可控制的以太网报文发包器的实现方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1691611A (zh) * | 2004-04-23 | 2005-11-02 | 华为技术有限公司 | 激励报文实现装置及方法和数字电路逻辑仿真的测试方法 |
US20060069805A1 (en) * | 2004-07-30 | 2006-03-30 | Microsoft Corporation | Network system role determination |
CN1783805A (zh) * | 2004-12-01 | 2006-06-07 | 华为技术有限公司 | 一种激励数据的流量控制方法及装置、激励报文产生器 |
CN105610641A (zh) * | 2015-12-21 | 2016-05-25 | 武汉微创光电股份有限公司 | 一种基于半实物仿真的交换机测试系统及其测试方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100511149C (zh) * | 2003-05-07 | 2009-07-08 | 华为技术有限公司 | 逻辑仿真测试系统和方法 |
CN1708016A (zh) * | 2004-06-08 | 2005-12-14 | 华为技术有限公司 | 激励报文的产生方法、装置以及逻辑检测设备 |
CN101414935B (zh) * | 2008-07-09 | 2011-06-22 | 北京星网锐捷网络技术有限公司 | 测试用例生成方法及系统 |
CN102523159A (zh) * | 2011-12-15 | 2012-06-27 | 盛科网络(苏州)有限公司 | 网络芯片的验证报文生成方法及系统 |
CN105704083A (zh) * | 2014-11-24 | 2016-06-22 | 中兴通讯股份有限公司 | 以太网激励报文的产生方法、装置及仿真系统 |
-
2016
- 2016-06-30 CN CN201610516589.XA patent/CN107566204B/zh active Active
-
2017
- 2017-05-27 WO PCT/CN2017/086367 patent/WO2018001025A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1691611A (zh) * | 2004-04-23 | 2005-11-02 | 华为技术有限公司 | 激励报文实现装置及方法和数字电路逻辑仿真的测试方法 |
US20060069805A1 (en) * | 2004-07-30 | 2006-03-30 | Microsoft Corporation | Network system role determination |
CN1783805A (zh) * | 2004-12-01 | 2006-06-07 | 华为技术有限公司 | 一种激励数据的流量控制方法及装置、激励报文产生器 |
CN105610641A (zh) * | 2015-12-21 | 2016-05-25 | 武汉微创光电股份有限公司 | 一种基于半实物仿真的交换机测试系统及其测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107566204A (zh) | 2018-01-09 |
CN107566204B (zh) | 2020-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018001025A1 (zh) | 激励报文产生控制方法、装置及逻辑检测设备和存储介质 | |
Miranda et al. | Appia, a flexible protocol kernel supporting multiple coordinated channels | |
Distefano et al. | From UML to Petri nets: the PCM-based methodology | |
CN104520814B (zh) | 用于配置云计算系统的系统和方法 | |
CN104541247B (zh) | 用于调整云计算系统的系统和方法 | |
CN104734954B (zh) | 一种用于软件定义网络的路由确定方法和装置 | |
US20160241481A1 (en) | Traffic scheduling device | |
CN107689882A (zh) | 一种虚拟化网络中业务部署的方法和装置 | |
US8204732B1 (en) | Modeling communication interfaces for multiprocessor systems | |
CN101094151A (zh) | 将web服务策略从逻辑模型转换到物理模型的方法和装置 | |
WO2011150777A1 (zh) | Web应用的开发装置及其开发方法 | |
CN107624230A (zh) | 业务可用性管理的方法与实体 | |
Gherbi et al. | UML Profiles for Real-Time Systems and their Applications. | |
CN106202685B (zh) | 一种软硬件协同仿真加速器运行环境搭建方法和装置 | |
Carara et al. | Differentiated communication services for NoC-based MPSoCs | |
CN113169899A (zh) | 确定网络服务(ns)的规模 | |
CN108985459A (zh) | 训练模型的方法和装置 | |
CN111597058A (zh) | 一种数据流处理方法及系统 | |
Wagner et al. | SODA: Service-oriented architecture for runtime adaptive driver assistance systems | |
CN109858257A (zh) | 访问控制方法及装置 | |
Jrad et al. | STRATFram: A framework for describing and evaluating elasticity strategies for service-based business processes in the cloud | |
CN110062396A (zh) | 一种配置基站的方法及装置 | |
Theelen et al. | Performance modelling of a network processor using POOSL | |
US7925490B2 (en) | Method of transactional simulation of a generic communication node model, and the corresponding computer program product and storage means | |
Rygielski et al. | Flexible performance prediction of data center networks using automatically generated simulation models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17819022 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17819022 Country of ref document: EP Kind code of ref document: A1 |