一种激励数据的流量控制方法及装置、激励报文产生器的制作方法

文档序号:6442857阅读:125来源:国知局
专利名称:一种激励数据的流量控制方法及装置、激励报文产生器的制作方法
技术领域
本发明涉及数字逻辑电路的仿真技术,特别是涉及激励数据的流量控制方法及装置、具有该控制装置的激励报文产生器。
背景技术
在数字逻辑电路的设计过程中,通常采用计算机仿真技术来验证其设计的正确性在计算机模拟的环境中,查看数字逻辑电路的工作情况。数字逻辑电路通常使用硬件设计语言来描述,一个数字逻辑电路通常是由多个硬件语言代码文件组成。一些EDA商用软件,比如Mentor公司的Modelsim,可以仿真硬件语言描述的数字逻辑电路,从而验证其设计正确性。
在仿真数字电路逻辑时,需要在数字逻辑电路输入端口施加数据,即激励数据。例如,在进行通讯类数字逻辑仿真时,施加到数字逻辑电路输入端口的数据流(激励报文),比较典型的有IP报文。也就是说,激励报文是在仿真环境下的通讯报文,通常用激励报文输入给被仿真的数字逻辑电路,通过仿真检查数字逻辑电路对通讯报文的处理是否正确。因此,应尽量使激励报文接近实际的通讯报文。
进行通讯类大规模数字逻辑电路仿真时,现有技术中所采用的激励报文产生方法一般是用C语言或脚本语言直接编程。
现有技术的激励报文产生器包括激励模块和报文构造模块。在生成激励报文时,首先由激励模块初始化报文字段的值;然后调用报文构造模块,通过以太网报文构造函数将这些字段组合成以太网报文的头部,并附加到报文缓冲区的尾部。
当构造多层协议封装的报文时,如图1中的报文d,先调用Ethernet(以太网)的报文首部构造函数,然后依次调用IPv4、TCP、Payload的构造函数。当报文产生后,就立即传递给仿真逻辑(即处于仿真状态下的数字逻辑电路)。
该现有技术的激励报文产生器及方法存在一些不足之处首先,由于报文产生后,直接传递给仿真逻辑,产生的报文流不具有流量特征,无法指定流量大小,也无法给出相邻报文的时间间隔以符合指定的流量。其次,实际的报文流是一种无序,但又有一定的流量特征的数据流,一般是多个报文流的无序混合,因此,在进行通讯类大规模数字逻辑电路功能仿真验证时,由于现有技术不具备流量控制功能,难以实现激励模块的重用、支持各种激励通讯报文的产生。

发明内容
本发明解决的技术问题在于提供一种激励数据的流量控制方法及装置、激励报文产生器,可以支持激励报文的流量定义,实现激励数据的流量控制。
为此,本发明解决技术问题的技术方案是提供一种激励数据的流量控制方法,包括1)设置激励数据的期望带宽;2)获取当前时间的实际带宽;3)比较所述实际带宽和前述的期望带宽,生成激励数据的延时;4)获取所述激励数据的延时,并根据该激励数据的延时调节激励数据的产生时间。
优选地,所述步骤2)中,获取实际带宽具体包括更新激励数据的容量;获取当前时间与前次产生激励数据的时间的时间差;根据所述容量与时间差得到实际带宽。
优选地,所述步骤3)中,生成延时具体包括获取期望带宽和实际带宽的差值,根据激励数据的容量与该差值得到延时。
优选地,该方法还包括在所述步骤1)中,设置统计带宽的最大激励数据单元的数目;在所述步骤2)的更新激励数据的容量时,判断激励数据单元的数目是否超过该最大激励数据单元的数目;如果是,则去除最初的激励数据单元够进行更新;如果否,则直接更新。
优选地,所述激励数据单元形成激励数据单元描述队列,该队列的每个成员是一个激励数据单元描述项,激励数据单元描述项包含激励数据的产生时间和该激励数据的字节数。
优选地,所述步骤4)的调节过程具体包括判断该激励数据的延时是否大于预定值;如果否,则生成激励数据;如果是,则等待延时后生成激励数据;在所述步骤4)生成激励数据后还包括重新获取当前时间的实际带宽。
本发明还提供一种激励数据的流量控制装置,包括期望带宽设置接口,用于设置激励数据的期望带宽;实际带宽获取单元,用于获取当前时间的实际带宽;延时生成单元,用于比较所述实际带宽和所述的期望带宽,生成激励数据的延时。
优选地,所述实际带宽获取单元包括带宽刷新单元,用于计算当前时间的实际带宽;实际带宽获取接口,用于反馈该实际带宽。
优选地,还包括统计带宽的最大激励数据单元数目设置接口,用于为实际带宽获取单元提供最大激励数据单元数目。
本发明还提供一种激励报文产生器,包括激励报文生成单元,还包括如前所述的激励数据的流量控制装置,该流量控制装置与所述激励报文生成单元进行数据交互,用于向所述激励报文生成单元传送当前时间的实际带宽和时延;所述激励报文生成单元根据该时延决定生成激励数据的时间。
相对于现有技术,本发明的有益效果是由于本发明能够实时获取当前时间的实际带宽,并且将该实际带宽与设置的期望带宽进行比较,得到产生激励报文数据应该进行的延时,从而可以为产生激励报文的模块提供流量控制功能。
此外,本发明的优选实施方案中,还可以动态设定统计带宽的样本数,从而控制带宽计算的平均效果。
本发明一般应用在逻辑仿真装置中,可以在产生激励数据后实时计算激励报文的产生速率,从而得到被仿真逻辑的处理能力,便于进一步了解其工作性能,为数字逻辑电路的设计和验证提供可靠的参考。
另外,本发明与激励数据的类型无关,可普遍应用到各种需要流量控制的激励报文产生装置中,具有较强的可重用性。


图1是一种多协议封装的报文的示意图;图2是本发明激励报文产生器的示意图;图3是图2所示流量控制装置的框图;图4是图2所示流量控制装置的另一实施方式的框图;图5是本发明中激励报文描述项队列的示意图;图6是本发明激励数据的流量控制方法的流程图;图7是本发明中获取实际带宽的流程图;图8是本发明激励报文产生器的应用实例的框图。
具体实施例方式
请参阅图2,本发明的激励报文产生器100包括激励数据的流量控制装置110、激励报文生成单元120。所述流量控制装置110与所述激励报文生成单元120进行数据交互,用于向所述激励报文生成单元120传送当前时间的实际带宽和时延;所述激励报文生成单元120用于生成激励数据,根据该时延决定生成激励报文的时间。
需要说明的是,本发明中,所述当前时间由仿真时间确定,数字逻辑电路在仿真时通常都自带有时钟模块,该时钟模块在仿真时从0时刻开始工作,产生时钟脉冲,仿真时间就是在仿真过程中,该时钟模块的计时数据。仿真时间与计算机系统的时间一般没有关联。所述带宽是指激励数据馈入仿真逻辑的速率,单位为每秒比特数。本发明中的具体实施方式
中,以激励报文为例说明对激励数据的流量控制。但是,可以理解,本发明并不限于对激励报文的流量控制。
一并参阅图3,该流量控制装置110包括期望带宽设置接口111、实际带宽获取单元112、延时生成单元113。其中延时生成单元113根据期望带宽设置接口111设置的期望带宽和实际带宽获取单元112得到的实际带宽,生成激励数据的延时。
期望带宽设置接口111用于设置激励数据的期望带宽,如用户期望产生激励报文的速率。
实际带宽获取单元112用于计算当前时间的带宽,激励报文生成单元120在启动实际带宽获取单元112时,需要向其发送两个输入参数SimTime和SendByteNum。输入参数SimTime必须是当前仿真时间,该时间总是大于或等于前次调用输入的时间;输入参数SendByteNum是当前时间产生的激励报文字节数。
所述输入参数可以是0,表示当前时间没有产生激励报文,通常发生在激励报文生成单元120在判断是否产生报文之前,刷新带宽时。此外,激励报文生成单元120在产生报文后,一般都要启动实际带宽获取单元112,以刷新带宽。
延时生成单元113用于比较当前时间的实际带宽和期望带宽的差距,如果实际带宽大于期望带宽,则返回一个大于0的延时数据A,表示延时A时间后再产生激励数据;如果实际带宽小于期望带宽,延时生成单元113返回一个小于0的数据,表示现在可以产生激励数据。
实际带宽获取单元112在计算带宽时,通常采用的是统计算法,是一段时间内对激励报文数据量的统计,统计的时间跨度越大,样本数越多,平均效果越强。但是出于效率和资源的考虑,需要对样本数有所限制。
一并参阅图4,实际带宽获取单元112包括带宽刷新单元1121和实际带宽获取接口1122。其中,带宽刷新单元1121计算当前时间的带宽,并通过实际带宽获取接口1122发送到激励报文生成单元120。
本发明的流量控制装置110中,还包括统计带宽的最大激励数据单元数目设置接口114,用于为实际带宽获取单元112提供最大激励数据单元数目,如设置计算带宽的最大激励报文样本数。
工作时,激励报文产生器首先进行初始化,激励报文生成单元120启动期望带宽设置接口111和统计带宽的最大激励数据单元数目设置接口114,设置期望产生激励报文的速率和最大激励报文样本数。
在生成激励报文前,激励报文生成单元120启动带宽刷新单元1121,计算当前时间的实际带宽;随后启动实际带宽获取接口1122,得到带宽计算结果;再启动时延生成单元113,以判断当前是否可以生成激励报文。
在产生报文后,一般会启动带宽刷新单元1121,以刷新带宽,得到最新的带宽计算结果。
请参阅图5,本发明的激励数据的流量控制方法中,维护一个激励报文描述项队列,该队列的每个成员是一个激励报文描述项,激励报文描述项包含激励报文的产生时间和该激励报文的字节数。同时采用计数器来记录报文队列中所有激励报文的字节数总和。基于对该激励报文描述项队列的管理和查询来实现对流量的控制。
通常,激励报文描述项队列有一个长度限制,内部缺省为255,统计带宽的最大激励数据单元数目设置接口114用于设置该限制。
请参阅图6,下面介绍本发明激励数据的流量控制方法的流程。
步骤S1,设置激励数据的期望带宽。
在激励报文产生器初始化时,激励报文生成单元120启动期望带宽设置接口111,设置期望产生激励报文的速率。
步骤S2,获取当前时间的实际带宽。
激励报文生成单元120启动带宽刷新单元1121,计算当前时间的实际带宽;随后启动实际带宽获取接口1122,得到带宽计算结果。激励报文生成单元120需要向带宽刷新单元1121发送两个输入参数SimTime和SendByteNum。输入参数SimTime必须是当前仿真时间,该时间总是大于或等于前次调用输入的时间;输入参数SendByteNum是当前时间产生的激励报文字节数,该参数SendByteNum在生成激励报文前可以为0。
步骤S3,比较所述实际带宽和前述的期望带宽,生成延时。
激励报文生成单元120启动延时生成单元113,比较当前时间的实际带宽和期望带宽的差距,如果实际带宽大于期望带宽,则返回一个大于0的延时数据A;如果实际带宽小于期望带宽,延时生成单元113将返回一个小于0的数据。
步骤S4,获取所述延时数据,根据所述延时数据控制激励数据的产生时间。
激励报文生成单元120如果接收到大于0的延时数据A,则表示延时A时间后再产生激励数据;否则表示现在可以产生激励数据。
需要进一步说明的是,除了可以将延时数据与0进行比较外,为增加对激励数据的产生时间的控制的灵活性,还可以根据各种实际情况的需要进一步设置一不为0的预定值,从而在获取所述延时后比较所述延时数据与该预定值,判断该延时是否大于预定值;如果否,则生成激励数据;如果是,则等待延时后生成激励数据。
此外,在产生报文后,激励报文生成单元120一般会启动带宽刷新单元1121,以刷新带宽,得到最新的带宽计算结果。
请参阅图7,是本发明激励数据的流量控制方法中,计算实际带宽的一个实例的流程图。一并参阅图5,本实例中维护一个激励报文描述项队列。
当带宽刷新单元1121启动后,执行步骤S11,判断输入参数SendByteNum是否为0;如果是,则进入步骤S18;如果否,则进入步骤S12。
步骤S12,当输入参数SendByteNum不为0时,带宽刷新单元1121向队列中添加激励报文描述项。
随后,执行步骤S13,带宽刷新单元1121修正计数器,将输入参数的值加入字节数总和。
步骤S14,更新激励报文描述项队列的长度值。
步骤S15,判断激励报文描述项队列的长度是否超过限制;如果否,则进入步骤S18;如果是,则进入步骤S16。
步骤S16,带宽刷新单元1121修正计数器,在字节数总和中减去被删除激励报文描述项指定的激励报文字节数。
步骤S17,带宽刷新单元1121去除最早加入的激励报文描述项。
步骤S18,重新计算当前产生激励报文的实际带宽。实际带宽的计算过程如下所述。
首先,计算激励报文描述项队列尾激励报文描述项指定的时间与当前仿真时间(输入参数SimTime)的差距TimeGapTimeGap=输入参数SimTime-尾激励报文描述项指定的时间。
随后,计算实际带宽实际带宽=总字节数*8/TimeGap。
然后,实际带宽获取接口1122将上述计算结果返回。
在取得实际带宽后,延时生成单元113计算激励报文生成的延时延时=总字节数/期望带宽-总字节数/实际带宽。
上述实施方式中,需要根据设置的最大统计报文样本数计算总字节数。可以理解,也可以采用比较简单的带宽获取方法,即只对产生的激励报文的字节数累加,计算实际带宽时,从仿真时间0时刻开始到当前时间为时间差距TimeGap=当前仿真时间则,实际带宽=总字节数*8/TimeGap,其中,总字节数表示从仿真时间0时刻开始,到目前为止,产生的所有激励报文的字节数总和。
请参阅图8,是本发明激励数据的流量控制装置的一个应用实例。
该应用实例中,激励报文产生器100用于同时为仿真逻辑(HDL DUV)900及参考单元810提供激励报文数据,仿真逻辑(HDL DUV)900对所述激励报文的处理结果发送到结果比较单元820,结果比较单元820将该处理结果与参考单元810的处理结果进行比较,完成数字逻辑电路的设计验证。其中,激励数据的流量控制装置110与激励报文生成单元120进行数据交互,以确定生成激励报文数据的时机。
仿真逻辑(HDL DUV)900通常是由多个硬件语言代码文件组成,通过第一总线接口模块910与激励报文生成单元120进行通讯、交换数据;通过第二总线接口模块920与结果比较单元820进行通讯。其中,第一总线接口模块910和第二总线接口模块920是由硬件语言写成的接口模块。
仿真逻辑(HDL DUV)900的功能由仿真引擎800进行支持,仿真引擎800是商用逻辑仿真用软件,比如Mentor公司的Modelsim。
仿真开始时,第一总线接口模块910向激励报文生成单元120申请报文,激励报文生成单元120查询流量控制装置110,以确定是产生激励报文给第一总线接口模块910,还是返回延时给第一总线接口模块910。第一总线接口模块910如果得到延时数据,将执行延时,延时到期后,再次向激励报文生成单元120申请报文;第一总线接口模块910如果得到激励报文数据,则将激励报文数据发送给仿真逻辑(HDL DUV)900。数据发送完毕后,再次向激励报文生成单元120申请报文。
激励报文生成单元120传递给第一总线接口模块910的激励报文,也被拷贝一份传递给参考单元810。参考单元810一般是用户用c/c++语言编写的完成与仿真逻辑(HDL DUV)900同样处理功能的模块。参考单元810的输出与第二总线接口模块920的输出在结果比较单元820内进行比较,以判断仿真逻辑处理激励报文的正确性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种激励数据的流量控制方法,其特征在于,包括1)设置激励数据的期望带宽;2)获取当前时间的实际带宽;3)比较所述实际带宽和前述的期望带宽,生成激励数据的延时;4)获取所述激励数据的延时,并根据该激励数据的延时调节激励数据的产生时间。
2.根据权利要求1所述的激励数据流量的控制方法,其特征在于,所述步骤2)中,获取实际带宽具体包括更新激励数据的容量;获取当前时间与前次产生激励数据的时间的时间差;根据所述容量与时间差得到实际带宽。
3.根据权利要求2所述的激励数据流量的控制方法,其特征在于,所述步骤3)中,生成延时具体包括获取期望带宽和实际带宽的差值,根据激励数据的容量与该差值得到延时。
4.根据权利要求2或3所述的激励数据流量的控制方法,其特征在于,在所述步骤1)中,还包括设置统计带宽的最大激励数据单元的数目;在所述步骤2)的更新激励数据的容量时,判断激励数据单元的数目是否超过该最大激励数据单元的数目;如果是,则去除最初的激励数据单元够进行更新;如果否,则直接更新。
5.根据权利要求4所述的激励数据流量的控制方法,其特征在于,所述激励数据单元形成激励数据单元描述队列,该队列的每个成员是一个激励数据单元描述项,激励数据单元描述项包含激励数据的产生时间和该激励数据的字节数。
6.根据权利要求1至3任一项所述的激励数据流量的控制方法,其特征在于,所述步骤4)的调节过程具体包括判断该激励数据的延时是否大于预定值;如果否,则生成激励数据;如果是,则等待延时后生成激励数据;在所述步骤4)生成激励数据后还包括重新获取当前时间的实际带宽。
7.一种激励数据的流量控制装置,其特征在于,包括期望带宽设置接口,用于设置激励数据的期望带宽;实际带宽获取单元,用于获取当前时间的实际带宽;延时生成单元,用于比较所述实际带宽和所述的期望带宽,生成激励数据的延时。
8.根据权利要求7所述的流量控制装置,其特征在于所述实际带宽获取单元包括带宽刷新单元,用于计算当前时间的实际带宽;实际带宽获取接口,用于反馈该实际带宽。
9.根据权利要求7所述的流量控制装置,其特征在于还包括统计带宽的最大激励数据单元数目设置接口,用于为实际带宽获取单元提供最大激励数据单元数目。
10.一种激励报文产生器,包括激励报文生成单元,其特征在于还包括如权利要求7至9任一项所述的激励数据的流量控制装置,该流量控制装置与所述激励报文生成单元进行数据交互,用于向所述激励报文生成单元传送当前时间的实际带宽和时延;所述激励报文生成单元根据该时延决定生成激励数据的时间。
全文摘要
本发明公开了一种激励数据的流量控制方法,包括设置激励数据的期望带宽;获取当前时间的实际带宽;比较所述实际带宽和前述的期望带宽,生成激励数据的延时;获取所述激励数据的延时,并根据该激励数据的延时调节激励数据的产生时间。本发明还公开了一种激励数据的流量控制装置和采用该装置的激励报文产生器。
文档编号G06F17/50GK1783805SQ20041009681
公开日2006年6月7日 申请日期2004年12月1日 优先权日2004年12月1日
发明者王进成 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1