发包方法、装置、存储介质和处理器制造方法及图纸

技术编号:37635720 阅读:13 留言:0更新日期:2023-05-20 08:55
本申请实施例提供一种发包方法、装置、存储介质和处理器,属于芯片验证技术领域。本发明专利技术通过获取端口信息,并根据所述端口信息,按照预置的端口调度规则,生成端口调度表;然后获取各个端口的数据切片队列,进而按照所述端口调度表进行端口调度,得到调度端口信息;再根据所述调度端口信息,将对应端口的数据切片队列中的数据切片发送出去。从而保证了端口调度的准确性。同时,该方法是基于查表,没有多次随机带来的软件开销,通过改变端口调度表里面的内容,还可以实现端口随机调度、优先级调度等,使得调度规则灵活可配,简化了芯片验证过程中端口调度实现的难度,优化了软件开销。优化了软件开销。优化了软件开销。

【技术实现步骤摘要】
发包方法、装置、存储介质和处理器


[0001]本申请涉及芯片验证
,具体涉及一种发包方法、一种发包装置、一种机器可读存储介质及一种处理器。

技术介绍

[0002]在交换机芯片中,由于端口数量互联多,端口速率覆盖广,数据在内部存储转发大部分采用基于端口的时分复用技术,并且还会基于端口的速率或者优先级去调度复用。那么在交换机芯片模块级(BT,BlockTest)验证时,很有可能上游模块的输出是多端口时分复用的时序,那么本模块的发包组件就需按照上游模块的输出行为给出激励。但是由于验证环境UVM是基于SystermVerilog语言实现,无法直接调用Verilog实现的端口复用模块,只能用SystermVerilog实现相同的行为。但两者本质上都是根据某种调度算法选出调度端口复用同一个通道,因此复用的核心就是调度。
[0003]对于调度,SystermVerilog有以下几种实现方案:
[0004]一、借助于SystermVerilog的约束函数,在每次选择调度端口时,启动一次随机化,通过约束不同端口的出现的权重,控制各个端口被选中的概率。
[0005]以下分两种情况分别介绍:
[0006]1、各个端口速率相同,调度时只需要保证每个端口被选中的概率相等即可,最简单的实现通过约束函数dist为每个端口设置一样的权重。但是这种实现存在已经选中的端口,在下一次选端口的时候仍然有可能被选中,原因在于前后两次随机是没有关联性的。针对这个问题的改进办法是,可以通过约束函数的随机遍历属性(randc)每次随机选中的端口不会重复。
[0007]2、有多个不同速率的端口,虽然可以增加高速端口的权重,但是依然存在前后两次随机选端口时没有关联性,就算使用randc,只能以同样的概率依次选中每一个端口,不能保证高速率端口选中概率更大。这样造成的影响就是端口流量不均匀,无法覆盖交换机在所有端口全线速转发的情况,导致这种情况下测试中设备(DUT)的问题没法暴露出来。
[0008]因此,在芯片验证领域,现有的发包方法中存在端口调度过程复杂且容易出错的问题。

技术实现思路

[0009]本申请实施例的目的是提供一种发包方法、一种发包装置、一种机器可读存储介质及一种处理器。
[0010]为了实现上述目的,本申请第一方面提供一种发包方法,包括:
[0011]获取端口信息,并根据所述端口信息,按照预置的端口调度规则,生成端口调度表;
[0012]获取各个端口的数据切片队列;
[0013]按照所述端口调度表进行端口调度,得到调度端口信息;
[0014]根据所述调度端口信息,将对应端口的数据切片队列中的数据切片发送出去。
[0015]在本申请实施例中,所述端口信息包括端口带宽和端口数量,所述根据所述端口信息,按照预置的端口调度规则,生成端口调度表,包括:
[0016]根据各个端口的端口带宽,得到端口带宽比;
[0017]根据所述端口带宽比,按照预置的端口调度规则,得到端口调度次数,所述端口调度次数用于表征不同带宽端口的单次端口调度次数;
[0018]根据所述端口调度次数和所述端口信息,生成端口调度表。
[0019]在本申请实施例中,所述按照所述端口调度表进行端口调度,得到调度端口信息,包括:
[0020]A1:根据所述端口调度次数和所述端口信息建立所述端口调度表的端口索引,设置所述端口索引的索引值为n;
[0021]A2:根据所述端口索引的索引值,提取出对应的端口信息;
[0022]A3:根据所述对应的端口信息判断对应端口是否信用可用,若是,则根据对应的端口信息,确定调度端口信息;若否,则令n=n+1,并跳转到A2。
[0023]在本申请实施例中,在步骤A3中,若对应端口信用不可用,还包括:
[0024]判断所述端口调度表中的端口信用是否全部不可用,若是,则等待下一个时钟有效沿到来时,执行A2;若否,则令n=n+1,并跳转到A2。
[0025]在本申请实施例中,在执行A2之前,还包括以下步骤:
[0026]判断时钟有效沿是否来到,若是,则令n=n+1,并执行A2;若否,则跳转到A2。
[0027]在本申请实施例中,所述端口调度次数为在最小带宽端口完成一次调度的情况下,各带宽端口单次调度的次数,步骤A1中,根据所述端口调度次数和所述端口信息建立所述端口调度表的端口索引,包括:
[0028]根据所述端口信息确定最小带宽端口的数量;
[0029]根据所述端口调度次数和所述最小带宽端口的数量,计算得到调度完一轮的总调度次数;
[0030]根据所述总调度次数,建立所述端口调度表的端口索引。
[0031]在本申请实施例中,所述获取各个端口的数据切片队列,包括:
[0032]获取多个报文数据;
[0033]分别对各个所述报文数据进行切片,得到各个报文数据对应的数据切片;
[0034]根据所述报文数据的目的端口,将对应的数据切片存入对应端口的数据队列中,以得到各个端口的数据切片队列。
[0035]本申请第二方面提供一种发包装置,所述发包装置,包括:
[0036]建立模块,用于获取端口信息,并根据所述端口信息,按照预置的端口调度规则,生成端口调度表;
[0037]获取模块,用于获取各个端口的数据切片队列;
[0038]调度模块,用于按照所述端口调度表进行端口调度,得到调度端口信息;
[0039]发包模块,用于根据所述调度端口信息,将对应端口的数据切片队列中的数据切片发送出去。
[0040]本申请第三方面提供一种处理器,被配置成执行上述的发包方法。
[0041]本申请第四方面提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令在被处理器执行时使得所述处理器被配置成执行上述的发包方法。
[0042]通过上述技术方案,通过获取端口信息,并根据所述端口信息,按照预置的端口调度规则,生成端口调度表;然后获取各个端口的数据切片队列;进而按照所述端口调度表进行端口调度,得到调度端口信息;再根据所述调度端口信息,将对应端口的数据切片队列中的数据切片发送出去。由于事先根据预置的端口调度规则,生成好各种端口调度信息,并配置到端口调度表内,然后一直遍历读出端口调度表中的端口信息,读出的端口就能满足预先设置的端口调度规则。发的包是严格按照调度出来的,从而保证了端口调度的准确性。同时,该方法是基于查表,没有多次随机带来的软件开销,通过改变端口调度表里面的内容,还可以实现端口随机调度、优先级调度等,使得调度规则灵活可配,简化了芯片验证过程中端口调度实现的难度,优化了软件开销。此方法严格按照端口调度顺序出包,就算有些端口没有流量进来,整个发包装置依然按照固定的规则调度出包,从而保证了端口流量均匀分布,可以覆盖交换机在所有端口全线速转发的情况下,DUT的问题能够暴露出来。
[0043]本申请实施例的其本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种发包方法,其特征在于,包括:获取端口信息,并根据所述端口信息,按照预置的端口调度规则,生成端口调度表;获取各个端口的数据切片队列;按照所述端口调度表进行端口调度,得到调度端口信息;根据所述调度端口信息,将对应端口的数据切片队列中的数据切片发送出去。2.根据权利要求1所述的方法,其特征在于,所述端口信息包括端口带宽和端口数量,所述根据所述端口信息,按照预置的端口调度规则,生成端口调度表,包括:根据各个端口的端口带宽,得到端口带宽比;根据所述端口带宽比,按照预置的端口调度规则,得到端口调度次数,所述端口调度次数用于表征不同带宽端口的单次端口调度次数;根据所述端口调度次数和所述端口信息,生成端口调度表。3.根据权利要求2所述的方法,其特征在于,所述按照所述端口调度表进行端口调度,得到调度端口信息,包括:A1:根据所述端口调度次数和所述端口信息建立所述端口调度表的端口索引,设置所述端口索引的索引值为n;A2:根据所述端口索引的索引值,提取出对应的端口信息;A3:根据所述对应的端口信息判断对应端口是否信用可用,若是,则根据对应的端口信息,确定调度端口信息;若否,则令n=n+1,并跳转到A2。4.根据权利要求3所述的方法,其特征在于,在步骤A3中,若对应端口信用不可用,还包括:判断所述端口调度表中的端口信用是否全部不可用,若是,则等待下一个时钟有效沿到来时,跳转到A2;若否,则令n=n+1,并跳转到A2。5.根据权利要求3所述的方法,其特征在于,在执行A2之前,还包括以下步骤...

【专利技术属性】
技术研发人员:张高明
申请(专利权)人:成都市楠菲微电子有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1