发布信息

一种接口验证系统及芯片的制作方法

作者:admin      2022-07-30 18:40:29     724



计算;推算;计数设备的制造及其应用技术1.本技术涉及通信技术领域,特别是涉及一种接口验证系统及芯片。背景技术:2.目前的固网核心设备的网络处理芯片可以接收以太网数据报文,对接收到的以太网数据报文进行处理后,将以太网报文转发到对端设备。例如,网络路由器设备接收到以太网数据报文后,可以通过路由表查找与该以太网数据报文匹配的路由信息,进而基于查找到的路由信息转发该以太网数据报文。3.在网络处理芯片中,以太网接口数量较多,且以太网接口支持的速率种类较多,进而网络处理芯片可使用的接口配置组合较多。如果针对每种接口配置组合分别开发一个定向测试用例,那么需要开发大量的定向验证用例(case)才可以对网络处理芯片支持的各种接口配置组合进行电子设计辅助(electronic design assistance,eda)验证,而开发大量的定向验证用例所需的人力成本和时间成本较高,将会影响eda验证进度和代码覆盖率收敛效率。技术实现要素:4.本技术实施例的目的在于提供一种接口验证系统及芯片,以提高eda验证进度和代码覆盖率收敛效率。具体技术方案如下:5.第一方面,本技术实施例提供了一种接口验证系统,包括:验证设备和芯片配置模型,所述验证设备中包括场景随机化产生器、多个被测接口模块和验证平台tb组件;6.所述场景随机化产生器,用于基于预先配置的芯片规格集合随机生成接口配置组合场景,基于所述接口配置组合场景生成tb组件配置信息以及场景描述文件,基于所述tb组件配置信息对所述tb组件进行配置,并向所述芯片配置模型发送所述场景描述文件;其中,所述接口配置组合场景包括所述多个被测接口模块中的目标被测接口模块、每个目标被测接口模块的被占用接口信息,所述目标被测接口模块为本次需要被测试的被测接口模块;7.所述芯片配置模型,用于基于所述场景描述文件为每个目标被测接口模块生成一个配置序列,分别向每个目标被测接口模块发送一个配置序列,以对每个目标被测接口模块进行配置,以使配置后的每个目标被测接口模块与自身的被占用接口信息匹配;8.所述tb组件,用于在完成配置后,对每个目标被测接口模块进行验证。9.在一种可能的实现方式中,所述tb组件包括驱动组件、多个验证ip组件以及第一记分牌scb模块;其中,所述验证ip组件的数量与所述多个被测接口模块包括的串行解串通道总数相同;10.所述驱动组件,用于在完成自身配置后,向每个目标被测接口模块发送第一测试报文,并将向每个目标被测接口模块发送的第一测试报文发送给第一scb模块;11.每个目标被测接口模块,用于接收所述驱动组件发送的第一测试报文,对第一测试报文进行处理得到第二测试报文,通过串行解串通道向验证ip组件发送第二测试报文;12.每个验证ip组件,用于接收与自身连接的串行解串通道输出的第二测试报文,并转发给所述第一scb模块;13.所述第一scb模块,用于针对每个目标被测接口模块,基于该目标被测接口模块对应的第一测试报文和第二测试报文对该目标被测接口模块进行验证。14.在一种可能的实现方式中,所述tb组件还包括第二scb模块和多个监测组件,每个监测组件连接于一个被测接口模块;15.每个验证ip组件,还用于在完成自身配置后,通过自身连接的串行解串通道向目标被测接口模块发送第三测试报文,并将向目标被测接口模块发送的第三测试报文发送给所述第二scb模块;16.每个目标被测接口模块,用于通过自身的串行解串通道接收验证ip组件发送的第三测试报文,对接收到的第三测试报文进行处理得到第四测试报文,向连接的监测组件发送第四测试报文;17.所述监测组件,用于接收与自身连接的目标被测接口模块发送第四测试报文,并转发给所述第二scb模块;18.所述第二scb模块,用于针对目标被测接口模块,基于该目标被测接口模块对应的第三测试报文和第四测试报文对该目标被测接口模块进行验证。19.在一种可能的实现方式中,每个目标被测接口模块的被占用接口信息包括:被占用的接口数量和接口标识、每个被占用接口的接口速率以及每个被占用接口使用的串行解串通道的数量和位置;所述tb组件配置信息包括驱动配置信息、每个与目标被测接口模块连接的监测组件的监测配置信息、以及每个与被占用的串行解串通道连接的验证ip组件的验证配置信息;所述驱动配置信息包括:每个目标被测接口模块的标识以及每个目标被测接口模块被占用的接口数量和接口标识;监测组件的监测配置信息包括:与该监测组件连接的目标被测接口模块的标识、被占用的接口数量和被占用的接口标识;验证ip组件的验证配置信息包括:与该验证ip组件对应的串行解串通道的位置,以及与该验证ip组件对应的串行解串通道所属接口的接口标识和接口速率;20.所述场景随机化产生器,具体用于向所述驱动组件发送所述驱动配置信息,向与每个目标被测接口模块连接的监测组件发送监测配置信息,向与每个被占用的串行解串通道连接的验证ip组件发送验证配置信息;21.所述驱动组件,用于基于所述驱动配置信息进行配置操作;22.每个监测组件,用于在接收到监测配置信息的情况下,基于接收到的监测配置信息进行配置操作;23.每个验证ip组件,用于在接收到验证配置信息的情况下,基于接收到的验证配置信息进行配置操作,并与自身对应的串行解串通道建立通信连接。24.在一种可能的实现方式中,所述场景描述文件包括每个目标被测接口模块的场景描述信息,所述场景描述信息用于描述目标被测接口模块的被占用接口信息。25.在一种可能的实现方式中,所述芯片配置模型,具体用于解析所述场景描述文件,分别针对每个目标被测接口模块的场景描述信息,生成该目标被测接口模块的配置序列,并向该目标被测接口模块发送配置序列。26.在一种可能的实现方式中,所述配置序列包括对目标被测接口模块的寄存器访问格式;27.每个目标被测接口模块,具体用于接收所述芯片配置模型发送的配置序列,解析接收到的配置序列,基于解析得到的寄存器访问格式对自身的寄存器进行配置,以使配置后的该目标被测接口模块与自身的被占用接口信息匹配。28.在一种可能的实现方式中,所述场景随机化产生器,具体用于通过随机种子算法从所述芯片规格集合中随机选择芯片规格参数,将所选择的芯片规格参数组合为所述接口配置组合场景;其中,所述芯片规格集合中包括:所述多个被测接口模块适用的速率信息、每个被测接口模块包括的串行解串通道的数量和标识。29.在一种可能的实现方式中,所述被测接口模块为以太网接口模块。30.第二方面,本技术实施例提供了一种芯片,所述芯片包括通过上述第一方面所述的系统验证后的接口模块。31.本技术实施例有益效果:32.本技术实施例提供的接口验证系统,验证设备中的场景随机化产生器可以基于预先配置的芯片规格集合随机生成接口配置组合场景,并基于接口配置组合场景生成tb组件配置信息以及场景描述文件,进而在基于tb组件信息对tb组件进行配置后,目标被测接口模块与自身被占用的接口信息匹配,即基于场景描述文件所描述的接口配置组合场景已生效。进而且芯片配置模型基于场景描述文件生成配置序列并对目标被测接口模块进行配置后,tb组件就可以对每个目标被测接口模块进行验证。如此,每次进行验证时,场景随机化产生器都可以随机生成一种接口配置组合场景,如此就无需分别针对每种芯片规格开发测试用例,可以节约人力成本和时间成本,提高eda验证速度和代码覆盖率收敛速度。33.当然,实施本技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。附图说明34.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。35.图1为本技术实施例提供的一种接口验证系统的结构示意图;36.图2为本技术实施例提供的另一种接口验证系统的结构示意图。具体实施方式37.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员基于本技术所获得的所有其他实施例,都属于本技术保护的范围。38.如图1所示,图1为本技术实施例提供的一种接口验证系统的结构示意图,该系统包括:验证设备10和芯片配置模型20,验证设备10中包括场景随机化产生器11、多个被测接口模块12和验证平台(test bench,tb)组件13。39.可选的,该验证设备10具体可以为服务器,芯片配置模型20可以基于python语言实现,python为一种计算机编程语言。40.场景随机化产生器11,用于基于预先配置的芯片规格集合随机生成接口配置组合场景,基于接口配置组合场景生成tb组件配置信息以及场景描述文件,基于tb配置信息对tb组件13进行配置,并向芯片配置模型20发送场景描述文件。41.其中,接口配置组合场景包括多个被测接口模块中的目标被测接口模块、每个目标被测接口模块的被占用接口信息。目标被测接口模块为本次需要被测试的被测接口模块。42.可选地,被占用接口信息可以包括:被占用的接口数量和接口标识、每个被占用接口的接口速率以及每个被占用接口使用的串行解串通道(serdes de-serdes lane,serdes lane)的数量和位置。43.本技术实施例中,芯片规格集合中包括:多个被测接口模块适用的速率信息,每个被测接口模块包括的串行解串通道的数量和标识。场景随机化产生器可以从芯片规格集合中随机选择目标被测接口、目标被测接口的速率信息和目标被测接口使用的串行解串通道的标识,从而生成接口配置组合场景。44.例如,验证设备10可以包括5个被测接口模块,每个被测接口模块可以包括8个serdes lane,且被测接口模块的接口可支持的速率包括以下11种:1ger1、10ger1、25ger1、50ger1、50ger2、40ger4、100ger4、100ger2、200ger4、400ger8、800ger8。其中,ge为gigabyte ethernat的缩写,表示千兆以太网,r1表示串行解串通道的数量。以40ger4为例,40ger4表示以太网接口的速率为400gbit/s,实现400gbit/s的速率需要4个串行解串通道。45.那么,本技术实施例中,场景随机化产生器生成的接口配置组合场景可以为芯片规格集合中包括的芯片规格参数的多种排列组合,场景随机化产生器每次随机生成的接口组合配置场景不同。46.作为示例,一种接口配置组合场景可以为将被测接口模块1作为此次需要被测试的目标被测接口模块,且被测接口模块1被占用1个接口,该接口使用8个serdes lane,接口速率为400ger8;被占用的第一个serdes lane的编号为0。47.芯片配置模型20,用于基于场景描述文件为每个目标被测接口模块生成一个配置序列,分别向每个目标被测接口模块发送一个配置序列,以对每个目标被测接口模块进行配置,以使配置后的每个目标被测接口模块与自身的被占用接口信息匹配。48.tb组件13,用于在完成配置后,对每个目标被测接口模块进行验证。49.本技术实施例提供的接口验证系统,验证设备中的场景随机化产生器可以基于预先配置的芯片规格集合随机生成接口配置组合场景,并基于接口配置组合场景生成tb组件配置信息以及场景描述文件,进而在基于tb组件信息对tb组件进行配置后,且芯片配置模型基于场景描述文件生成配置序列并对目标被测接口模块进行配置后,目标被测接口模块与自身被占用的接口信息匹配,即基于场景描述文件所描述的接口配置组合场景已生效。进而tb组件就可以对每个目标被测接口模块进行验证。如此,每次进行验证时,场景随机化产生器都可以随机生成一种接口配置组合场景,如此就无需分别针对每种芯片规格开发测试用例,可以节约人力成本和时间成本,提高eda验证速度和代码覆盖率收敛速度。50.在本技术的实施例中,场景随机化产生器11,具体用于通过随机种子(random seed)算法从芯片规格集合中随机选择芯片规格参数,将所选择的芯片规格参数组合为所述接口配置组合场景。51.例如,场景随机化产生器11可以随机选择被测接口模块作为目标被测接口模块,然后对于一个目标被测接口模块,随机生成一个随机数,选择该随机数对应的速率。例如,随机数0-10分别对应1ger1、10ger1、25ger1、50ger1、50ger2、40ger4、100ger4、100ger2、200ger4、400ger8、800ger8。52.如果生成的随机数为8,则代表选择的接口速率为200ger4,也就是一个接口的速率为200gbit/s,使用4个串行解串通道。因一个目标被测接口包括8个串行解串通道,那么,此时该目标被测接口还剩余4个串行解串通道,所以,场景随机化产生器可以再生成一个随机数,此时生成的随机数的对应的接口速率占用的串行解串通道需小于等于4,假设生成的随机数为7,则代表选择的接口速率为100ger4,也就是另一个接口的速率为100gbit/s,使用4个串行解串通道。此时该目标被测接口模块的串行解串通道被全部占用,即确定该目标被测接口模块被占用的接口数量为4,接口速率分别为200ger4和100ger4。53.然后,可以为每个接口随机选择所使用的串行解串通道位置,此时可以为200ger4的接口生成一个随机数,选择该随机数对应的串行解串通道的编号,作为该接口使用第一条串行解串通道的编号。例如,随机数0-7对应串行解串通道的编号0-7,若为200ger4的接口生成的随机数为0,则代表该200ger4的接口使用的首个串行解串通道的编号为0,也就是说,该200ger4的接口可以使用编号为0至编号为3的4个串行解串通道。进而,可确定100ger4使用的首个串行解串通道的编号为7。54.采用该系统,场景随机化产生器可以针对验证设备包括的多个被测接口模块随随机生成所有可能的接口组合配置场景,对于接口配置复杂的情况,也可完成自动化的验证,无需人工配置验证用例,可以提高验证效率。55.在本技术实施例中,tb组件13中包括驱动组件、多个验证知识产权(intellectual property,ip)组件以及第一记分牌(scoreboard,scb)模块;其中,验证ip组件的数量与多个被测接口模块包括的串行解串通道总数相同。例如,如果验证设备中有5个被测接口模块,每个被测接口模块包括8个串行解串通道,则验证设备中包括40个验证ip组件。其中,验证知识产权(verification intellectual property,vip)组件是预定义的功能模块,在tb组件中vip用于对被测接口模块进行验证。56.其中,本技术实施例中的被测接口模块可以为以太网媒体访问控制(ethernet media access control,eth mac)接口模块,也可以为其他类型的芯片接口模块,本技术实施例对此不作限定。为方便理解,下文中将以太网媒体访问控制接口模块简称为以太网接口模块。57.以验证设备中包括5个被测接口模块,每个被测接口模块包括8个串行解串通道为例,验证设备中包括5个待测设计(design under test,dut),每个dut为一个被测接口模块,被测接口模块具体可以为以太网接口模块。如2所示,图2中示出了验证设备包括的1个驱动组件、5个被测接口模块和40个验证ip组件。场景随机化产生器在生成tb组件配置信息后,可基于tb组件配置信息对驱动组件、验证ip组件和监测组件进行配置。并且,场景随机化产生器可调用芯片配置模型,使得芯片配置模型基于场景描述文件生成配置序列,从而基于配置序列对目标被测接口模块进行配置。58.其中,该驱动组件分别与每个被测接口模块相连,且该驱动组件还与第一scb模块相连。该驱动组件具体可以为发送方向接口驱动(transmit interface driver,txif driver)。59.图2中的40个验证ip组件分别为验证ip组件0、验证ip组件1、……、验证ip组件39,每个验证ip组件与一个串行解串通道具有对应关系。验证ip组件完成配置后,可连接与自身具有对应关系的串行解码通道的物理编码子层(physical coding sublayer,pcs)接口。并且,每个验证ip组件的另一端连接于第一scb模块。其中,验证设备的初始化模块可在初始化流程中,获取场景随机化产生器产生的接口配置组合场景,进而针对接口配置组合场景中,每个目标被测接口模块的每个被占用接口的接口速率,对该被占用接口连接的pcs接口的时钟(clock,clk)和数据位宽进行配置,以使pcs接口的速率与该被占用接口的接口速率匹配。60.在被测接口模块为以太网接口模块的情况下,验证ip组件可以为以太网验证知识产权(ethernet verification intellectual property,eth vip)组件。61.驱动组件,用于在完成自身配置后,向每个目标被测接口模块发送第一测试报文,并将向每个被测接口模块发送的第一测试报文发送给第一scb模块。62.其中,驱动组件在完成配置后,在测试阶段可针对每个目标被测接口生成第一测试报文,且驱动组件会将向每个目标被测接口发送的第一测试报文均发送给第一scb模块,以便后续第一scb模块对目标被测接口进行验证。63.每个目标被测接口模块,用于接收驱动组件发送的第一测试报文,对第一测试报文进行处理得到第二测试报文,通过串行解串通道向验证ip组件发送第二测试报文。64.本技术实施例中,目标被测接口模块对第一测试报文的处理可以为通过路由表查找路由信息,根据路由信息对第一测试报文进行转发,或者也可以为按照报文队列优先级对接收到的第一测试报文进行排队等处理操作,本技术实施例对此不作限制。65.每个验证ip组件,用于接收与自身连接的串行解串通道输出的第二测试报文,并转发给第一scb模块。66.第一scb模块,用于针对每个目标被测接口模块,基于该目标被测接口模块对应的第一测试报文和第二测试报文对该目标被测接口模块进行验证。也就是说,第一scb模块可以基于发送到目标被测接口模块的第一测试报文,以及目标被测接口模块对第一测试报文处理后输出的第二测试报文进行比较,以验证目标被测接口模块的功能。67.可选的,驱动组件可以将第一测试报文的数据部分发送给第一scb模块,相应地,验证ip组件接收到第二测试报文后,可以对第二测试报文进行解析,将解析得到的第二测试报文的数据部分发送给第一scb模块,进而,第一scb模块可以验证同一目标被测接口模块对应的第一测试报文和第二测试报文的数据部分是否相同,若相同,则该目标被测接口模块的功能不存在异常,若不同,该目标被测接口模块的功能存在异常。68.在本技术实施例中,驱动组件模拟了连接真实网络处理芯片的cpu的操作,验证ip组件模拟了真实网络处理芯片的接口连接的外侧网口的操作,也就是驱动组件向目标被测接口模块发送第一测试报文,目标被测接口模块向验证ip组件发送第二测试报文的过程,相当于仿真了cpu通过真实网络处理芯片的接口向外侧网口发送报文的过程,进而第一scb模块基于第一测试报文和第二测试报文对目标接口进行验证相当于验证了网络处理芯片的被测接口模块向外侧网口发送报文的功能。在上述验证过程中,无需开发人员开发定向验证用例,可以节省人力,提高验证效率。69.在本技术另一实施例中,因网络处理芯片的接口可以进行双向报文转发,所以本技术实施例还可以对网络处理芯片的接口转发来自对端报文的功能进行验证。在此基础上,上述tb组件还包括第二scb模块和多个监测组件,每个监测组件连接于一个被测接口模块。70.仍以验证设备包括5个被测接口模块为例,如图2所示,tb组件可以包括5个监测组件,每个监测组件连接于一个被测接口模块。本技术实施例中的监测组件具体可以为发送方向接口监测(receive interface monitor,rxif monitor)组件。71.每个验证ip组件,还用于在完成自身配置后,通过自身连接的串行解串通道向目标被测接口模块发送第三测试报文,并将向目标被测接口模块发送的第三测试报文发送给第二scb模块。72.其中,验证ip组件在完成自身配置后,在测试阶段可生成第三测试报文,且验证ip组件会将该第三测试报文分别发送给自身连接的串行解串通道以及第二scb模块,以便后续第二scb模块对目标被测接口进行验证。73.每个目标被测接口模块,用于通过自身的串行解串通道接收验证ip组件发送的第三测试报文,对接收到的第三测试报文进行处理得到第四测试报文,向连接的监测组件发送第四测试报文。74.本技术实施例中,目标被测接口模块对第三测试报文的处理可以为通过路由表查找路由信息,根据路由信息对第三测试报文进行转发,或者也可以为按照报文队列优先级对接收到的第三测试报文进行排队等处理操作,本技术实施例对此不作限制。75.监测组件,用于接收与自身连接的目标被测接口模块发送第四测试报文,并转发给第二scb模块。76.第二scb模块,用于针对目标被测接口模块,基于该目标被测接口模块对应的第三测试报文和第四测试报文对该目标被测接口模块进行验证。也就是说,第二scb模块可以基于发送到目标被测接口模块的第三测试报文,以及目标被测接口模块对第三测试报文处理后输出的第四测试报文进行比较,以验证目标被测接口模块的功能。可选的,第二scb模块具体可以对同一目标被测接口模块对应的第三测试报文和第四测试报文的数据部分进行比较,若数据部分相同,则代表目标被测接口模块的功能不存在异常,若数据部分不同,则代表目标被测接口模块的功能存在异常。77.本技术实施例中,验证ip组件模拟了真实网络处理芯片连接的外侧网口的操作,也就是说,验证ip组件通过自身连接的串行解串通道向目标被测接口模块发送第三测试报文,相当于目标被测接口模块接收到了其他设备发送的第三测试报文;目标被测接口模块向监测组件发送第四监测报文的过程,相当于模拟了目标被测接口模块转发报文的过程,进而第二scb模块基于第三测试报文和第四测试报文对目标被测接口模块进行验证,相当于验证了网络处理芯片的被测接口模块接收到其他设备发送的报文后,对其他设备发送的报文的转发功能。在上述验证过程中,无需开发人员开发定向验证用例,可以节省人力,提高验证效率。78.本技术实施例中的tb组件具体可以为基于统一验证方法学(universal verification methodology,uvm)验证用例的tb组件。在uvm的构建阶段(build phase),场景化随机产生器可以生成tb组件配置信息和场景描述文件。79.以下分别对本技术实施例中场景随机化产生器生成的tb组件配置信息和场景描述文件进行介绍。80.其中,tb组件配置信息可以包括驱动配置信息、监测配置信息以及验证配置信息。具体的,tb组件配置信息包括驱动配置信息、每个与目标被测接口模块连接的监测模块的监测配置信息,并且还包括每个与被占用的串行解串模块通道连接的验证ip组件的验证配置信息。81.驱动配置信息包括:每个目标被测接口模块的标识以及每个目标被测接口模块被占用的接口数量和接口标识。可选的,驱动配置信息还可以包括每个被占用接口的接口速率、需要发送的测试报文数量和测试报文长度。82.场景随机化产生器,具体用于向驱动组件发送驱动配置信息,向与每个目标被测接口模块连接的监测组件发送监测配置信息,向每个与被占用的串行解串通道连接的验证ip组件发送验证配置信息。83.驱动组件,用于基于驱动配置信息进行配置操作。84.每个监测组件,用于在接收到监测配置信息的情况下,基于接收到的监测配置信息进行配置操作。一个监测组件接收到的监测配置信息可以包括:与该监测组件相连的目标被测接口模块的标识、该目标被测接口模块被占用的接口数量和该目标被测接口被占用的接口标识。可选的,该监测配置信息还可以包括该目标被测接口模块每个被占用接口的接口速率。85.每个验证ip组件,用于在接收到验证配置信息的情况下,基于接收到的验证配置信息进行配置操作,并与自身对应的串行解串通道建立通信连接。一个验证ip组件接收到的验证配置信息包括:与自身对应的串行解串通道位置,该串行解串通道所属接口的接口标识和接口速率。可选的,该验证配置信息还可以包括该验证ip组件需发送的测试报文的数量和测试报文的长度。86.可以理解的是,在build phase,场景随机化产生器可以完成上述各配置信息的发送,进而在配置阶段(config phase),驱动组件、每个监测组件和每个验证ip组件可以基于自身接收到的配置信息完成配置操作,进而在运行阶段(run phase)即可基于已完成的配置对目标被测接口进行验证。87.在本技术另一实施例中,上述场景描述文件包括每个目标被测接口模块的场景描述信息,场景描述信息用于描述目标被测接口模块的被占用接口信息。88.其中,每个目标被测接口模块的被占用接口信息可以包括:被占用的接口数量和接口标识,每个被占用接口的接口速率以及每个被占用接口使用的串行解串通道数量和位置。被占用接口使用的串行解串通道的位置可以由被占用及接口使用的首个串行解串通道的编号表示。例如,若一个接口使用4个串行解串通道,使用的首个串行解串通道的编号为1,则代表该接口使用的4个串行解串通道的编号分别为1、2、3、4。89.其中,场景描述文件为通过场景描述语言描述的配置场景,作为示例,结合图2,以验证设备中包括5个被测接口模块,即5个eth mac,每个eth mac包括8个串行解串通道为例,场景描述文件可以为:[0090]“#mac para config[0091]mod=mac_be0[0092]attr=port_list_num;type=dec;value=1[0093]attr=400ge_port_sds_lane;type=dec;value=8[0094]attr=400ge_port_list;type=str_list;value=[0][0095]mod=mac_bel[0096]attr=port_list_num;type=dec;value=3[0097]attr=200ge_port_sds_lane;type=dec;value=4[0098]attr=200ge_port_list;type=str_list;value=[0][0099]attr=100ge_r2_port_sds_lane;type=dec;value=2[0100]attr=100ge_r2_port_list;type=str_list;value=[4,6][0101]mod=mac_be2[0102]attr=port_list_num;type=dec;value=3[0103]attr=200ge_port_sds_lane;type=dec;value=4[0104]attr=200ge_port_list;type=str_list;value=[0][0105]attr=100ge_r2_port_sds_lane;type=dec;value=2[0106]attr=100ge_r2_port_list;type=str_list;value=[6,4][0107]mod=mac_be3[0108]attr=port_list_num;type=dec;value=0[0109]mod=mac_be4[0110]attr=port_list_num;type=dec;value=0”[0111]其中,上述mod关键字用于表示描述的dut所属的目标被测接口模块,例如mod=mac_be0表示接下来是eth mac模块0的描述信息。[0112]attr关键字表示一条描述信息,port_list_num表示该项描述信息用于配置的mac port个数。其中,mac port个数是指目标被测接口模块被占用的接口个数。type关键字表示value值域的格式,dec表示value值按照十进制解析,value值表示该项描述信息具体的值,即mac port的实际个数。[0113]“xxx”ge_port_sds_lane用于表示接口的速率为“xxx”,例如,200ge_port_sds_lane表示接口的速率为200ge。“xxx”ge_port_sds_lane对应的value值用于表示速率为“xxx”ge的接口占用的serdes lane数量。[0114]“xxx”ge_port_list用于表示表示速率为“xxx”ge的接口占用的serdes lane的位置信息列表,value值表示接口使用的serdes lane中的第一个serdes lane的编号。[0115]基于上述场景描述语言的定义可知,上述场景描述文件描述的配置场景包括:[0116]将mac_be0所表征的eth mac0作为一个目标被测接口模块,针对eth mac0随机出来的场景为:占用的接口个数为1,接口速率为400ger8,占用8个serdes lane,占用的第一个serdes lane的编号为0。[0117]将mac_be1所表征的eth mac1作为一个目标被测接口模块,针对eth mac1随机出来的场景为:占用的接口个数为3,其中一个接口的速率为200ger4,占用4个serdes lane,占用的第一个serdes lane的编号为0。另外两个接口的速率为均100ger2,各占用2个serdes lane,占用的第一个serdes lane的编号分别为4和6。[0118]将mac_be2所表征的eth mac2作为一个目标被测接口模块,针对eth mac2随机出来的场景为:占用的接口个数为3,其中一个接口的速率为200ger4,占用4个serdes lane,占用的第一个serdes lane的编号为0。另外两个接口的速率为均100ger2,各占用2个serdes lane,占用的第一个serdes lane的编号分别为6和4。[0119]在该场景中,mac_be3所表征的eth mac3和mac_be2所表征的eth mac4未被占用,处于空闲状态,无需配置。[0120]在本技术另一实施例中,芯片配置模型,具体用于解析上述场景描述文件,分别针对每个目标被测接口模块的场景描述信息,生成该目标被测接口模块的配置序列,并向该目标被测接口模块发送配置序列。[0121]在被测接口模块为以太网接口模块的情况下,本技术实施例中的芯片配置模型,可以为基于dut寄存器编程指南,使用python脚本语言开发的eth mac寄存器配置模型。[0122]芯片配置模型可以基于python脚本语言将上述场景描述配置文件处理为目标被测接口模块的寄存器可识别的配置序列。基于python脚本语言实现配置序列的生成,便于对配置序列的统一管理,可以实现配置序列和tb组件配置信息的结构,进而,为目标被测接口的配置序列可以被应用到eda验证的其他层级的验证系统中。[0123]其中,配置序列包括对目标被测接口模块的寄存器访问格式。相应地,目标被测接口模块,具体用于接收芯片配置模型发送的配置序列,解析接收到的配置序列,基于解析得到的寄存器访问格式对自身的寄存器进行配置,以使配置后的目标被测接口模块与自身的被占用接口信息匹配。[0124]目标被测接口接收到配置序列后,可以在run phase阶段包括的主要阶段(main phase)仿真阶段基于注册模式的寄存器解析接收到的配置序列,进而基于解析结果配置自身的寄存器。[0125]例如,对于目标被测接口模块eth mac0,被占用接口信息包括:被占用的接口个数为1,接口速率为400ger8,占用8个serdes lane,占用的第一个serdes lane的编号为0。该目标被测接口模块对自身的寄存器进行配置后,该目标被测接口模块的一个接口将能够实现通过编号为0至8的8个serdes lane,实现400ger8的接口速率。[0126]由于目标被测接口模块可以在仿真时解析配置序列,并进行配置操作,无需提前编译配置序列,可以减少编译次数,提高仿真效率和磁盘利用率。[0127]作为示例,基于上述实施例中介绍的场景描述文件中第一个目标被测接口模块(即eht mac0)的场景描述信息,生成的配置序列如下:[0128]“wait 100[0129]indwrite net_if_port_0 0 1a00 ff[0130]indwrite net_if_port_0 0 1a01 ff[0131]indwrite net_if_port_0 0 1a03 fe[0132]indwrite net_if_port_0 0 1a04 fe[0133]write net_if_port_0cfg_1588_glob_reg 10009[0134]write net_if_port_0cfg_1588_port_rx_reg ff[0135]write net_if_port_0cfg_1588_port_tx_reg aaaa[0136]write net_if_port_0cfg_1588_length_reg f6003c[0137]write net_if_port_0cfg_port_txen_reg ff[0138]write net_if_port_0cfg_port_rxen_reg ff[0139]write net_if_port_0cfg_mac_ilkn_eth_tx_sel_reg 0[0140]write net_if_port_0cfg_mac_ilkn_eth_rx_sel_reg 0[0141]write net_if_port_0cfg_link_status_mask ff0ff[0142]write net_if_port_0cfg_sd_sigdet_mask 0[0143]write net_if_port_0cfg_400gr8_ch_reg 3[0144]write net_if_port_0cfg_400gr8_ad_reg 1[0145]write net_if_port_0cemac_cfg_400g_tf_ctrl_reg 1[0146]indwrite net_if_port_0 0 1000fc1c0[0147]indwrite net_if_port_0 0 1001 80008[0148]indwrite net_if_port_0 0 1003 30003000[0149]indwrite net_if_port_0 0ff 80[0150]indwrite net_if_port_0 0 1a00 00[0151]indwrite net_if_port_00 1a01 00”[0152]基于该配置序列可以对寄存器进行一些读写操作、带mask位的读取改写操作以及带mask位的读出比较等操作。[0153]其中,上述配置序列中,write和indwrite为不同类型的写操作,net_if_port0表示需对eht mac0中的寄存器进行写操作,各行net_if_port0与各行末尾表示的数值之间的字段表示寄存器的标识,例如“1a00”表示寄存器1a00,“1a01”表示寄存器1a01,“cfg_sd_sigdet_mask”表示寄存器cfg_sd_sigdet_mask。[0154]以write net_if_port0 cfg_sd_sigdet_mask 0为例,write net_if_port0cfg_sd_sigdet_mask 0用于表示对eth mac 0的cfg_sd_sigdet_mask寄存器写0。[0155]可以理解的是,在各目标被测接口模块完成对自身的寄存器的配置,以及tb组件完成配置后,即可启动验证流程对各目标被测接口模块进行验证,得到仿真结果。[0156]需要说明的是,本技术的上述实施例均以被测接口模块为以太网接口为例进行说明,在实际实现中,被测接口模块还可以是其他类型的接口模块,比如ilkn接口或higi接口等。即采用本技术实施例可以实现对复杂配置场景的各种配置场景的全覆盖验证。[0157]其中,ilkn是interlaken总线的缩写,是一种高速传输总线协议,higi是一种基于以太网的通信接口mac层协议。[0158]通过实践,应用该系统至少可以将验证人力从5人降低到1人,且发现了10个配置组合的寄存器传输级(register transfer level,rtl)问题,有效提高了验证效率。[0159]本技术实施例还提供了一种芯片,该芯片可以包括通过上述系统验证后的接口模块。[0160]在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。[0161]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。[0162]本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可。[0163]以上所述仅为本技术的较佳实施例,并非用于限定本技术的保护范围。凡在本技术的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本技术的保护范围内。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部