数据传输规则验证方法、装置、设备和存储介质
技术领域
本申请涉及芯片验证
技术领域
,具体而言,涉及一种数据传输规则验证方法、装置、设备和存储介质。背景技术
芯片验证就是采用相应的验证语言、验证工具、验证方法,在芯片生产之前验证芯片设计是否符合芯片定义的需求规格,是否已经完全释放了风险,发现并更正相应的缺陷。
在芯片验证过程中,往往遇到针对设计中数据传输排序规则(ordering rule)进行验证的情况,排序规则例如PCIE(peripheral component interconnect express,一种高速串行计算机扩展总线标准)协议中规定:转发事务必须可以超过非转发事务(P mustbe able to pass NP),针对这样的排序规则,需要对这些规则进行完备性验证,以验证芯片设计是否符合上述规则。通常的排序规则验证方法采用大量随机的方式,模拟随机场景的激励给待测芯片设计,然后根据待测芯片设计的输出结果,来检验是否符合上述排序规则。
但是,在实际场景中,上述方式很难覆盖到所有具体的场景,因此激励的种类也就无法覆盖到所有的可能的情况,因此验证结果准确性有待提高。
发明内容
本申请实施例的目的在于提供一种数据传输规则验证方法、装置、设备和存储介质,可以提高芯片验证过程中对数据传输规则验证的准确性。
本申请实施例第一方面提供了一种数据传输规则验证方法,包括:获取待测设计的待测数据传输规则,所述待测数据传输规则中至少包括待测的两种事务类型;配置所述两种事务类型中第一传输事务的事务量为预设阈值,并生成所述第一传输事务的第一激励;分别发送所述第一传输事务的第一激励给所述待测设计,发送所述两种事务类型中第二传输事务的第二激励给所述待测设计;分别获取所述待测设计针对所述第一激励和所述第二激励的传输结果信息,并基于所述传输结果信息验证所述待测设计关于所述待测数据传输规则的完备性。
于一实施例中,所述预设阈值为0;所述配置所述第一传输事务的事务量为预设阈值,包括:在验证环境中配置所述待测设计允许传输所述第一传输事务的事务量为0。
于一实施例中,所述在验证环境中配置所述待测设计允许传输所述第一传输事务的事务量为0,包括:在所述验证环境中配置所述待测设计的所述第一传输事务的信用量为0。
于一实施例中,所述在验证环境中配置所述待测设计允许传输所述第一传输事务的事务量为0,包括:在所述验证环境中配置所述待测设计对所述第一传输事务的使能驱动信号为0。
于一实施例中,所述分别发送所述第一传输事务的第一激励给所述待测设计,发送所述第二传输事务的第二激励给所述待测设计,包括:先发送所述第一传输事务的第一激励给所述待测设计,然后发送所述第二传输事务的第二激励给所述待测设计。
于一实施例中,在所述然后发送所述第二传输事务的第二激励给所述待测设计之前,还包括:发送所述第一传输事务的第一激励给所述待测设计后,等待预设时长。
于一实施例中,所述待测数据传输规则中还包括:所述第一传输事务与所述第二传输事务之间的事务量要求;所述基于所述传输结果信息验证所述待测设计关于所述待测数据传输规则的完备性,包括:基于所述传输结果信息验证所述待测设计关于所述待测数据传输规则是否符合所述事务量要求。
于一实施例中,所述事务量要求包括:第二传输事务的事务量要大于或等于所述第一传输事务的事务量;所述基于所述传输结果信息验证所述待测设计关于所述待测数据传输规则是否符合所述事务量要求,包括:若所述传输结果信息中所述第二传输事务的事务量要大于或等于所述预设阈值,所述待测设计关于所述待测数据传输规则符合所述事务量要求,提示验证通过,否则,所述待测设计关于所述待测数据传输规则不符合所述事务量要求,提示验证不通过。
本申请实施例第二方面提供了一种数据传输规则验证装置,包括:规则获取模块,用于获取待测设计的待测数据传输规则,所述待测数据传输规则中至少包括待测的两种事务类型;阈值配置模块,用于配置所述两种事务类型中第一传输事务的事务量为预设阈值,并生成所述第一传输事务的第一激励;事务发送模块,用于分别发送所述第一传输事务的第一激励给所述待测设计,发送所述两种事务类型中第二传输事务的第二激励给所述待测设计;规则验证模块,用于分别获取所述待测设计针对所述第一激励和所述第二激励的传输结果信息,并基于所述传输结果信息验证所述待测设计关于所述待测数据传输规则的完备性。
于一实施例中,所述预设阈值为0;所述阈值配置模块用于:在验证环境中配置所述待测设计允许传输所述第一传输事务的事务量为0。
于一实施例中,所述在验证环境中配置所述待测设计允许传输所述第一传输事务的事务量为0,包括:在所述验证环境中配置所述待测设计的所述第一传输事务的信用量为0。
于一实施例中,所述在验证环境中配置所述待测设计允许传输所述第一传输事务的事务量为0,包括:在所述验证环境中配置所述待测设计对所述第一传输事务的使能驱动信号为0。
于一实施例中,所述事务发送模块用于:先发送所述第一传输事务的第一激励给所述待测设计,然后发送所述第二传输事务的第二激励给所述待测设计。
于一实施例中,所述事务发送模块还用于,发送所述第一传输事务的第一激励给所述待测设计后,等待预设时长,然后发送所述第二传输事务的第二激励给所述待测设计。
于一实施例中,所述待测数据传输规则中还包括:所述第一传输事务与所述第二传输事务之间的事务量要求;所述规则验证模块用于:基于所述传输结果信息验证所述待测设计关于所述待测数据传输规则是否符合所述事务量要求。
于一实施例中,所述事务量要求包括:第二传输事务的事务量要大于或等于所述第一传输事务的事务量;所述规则验证模块用于:若所述传输结果信息中所述第二传输事务的事务量要大于或等于所述预设阈值,所述待测设计关于所述待测数据传输规则符合所述事务量要求,提示验证通过,否则,所述待测设计关于所述待测数据传输规则不符合所述事务量要求,提示验证不通过。
本申请实施例第三方面提供了一种电子设备,包括:存储器,用以存储计算机程序;处理器,用以执行本申请实施例第一方面及其任一实施例的方法。
本申请实施例第四方面提供了一种非暂态电子设备可读存储介质,包括:程序,当其藉由电子设备运行时,使得所述电子设备执行本申请实施例第一方面及其任一实施例的方法。
本申请提供的数据传输规则验证方法、装置、设备和存储介质,在芯片验证过程中,通过限制待测数据传输规则中任一传输事务的事务量为一定值,将其作为比较标准,然后分别发两种传输事务的激励给待测设计,然后收集待测设计针对上述两种激励的传输结果信息,并根据待测设计的传输结果验证待测设计对该待测数据传输规则的完备性。如此,避免了现有技术中采用随机事务激励的方式带来的覆盖率不全面的问题,提高了芯片验证的准确性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一实施例的电子设备的结构示意图;
图2为本申请一实施例的芯片验证场景的原理示意图;
图3为本申请一实施例的数据传输规则验证方法的流程示意图;
图4为本申请一实施例的数据传输规则验证方法的流程示意图;
图5为本申请一实施例的数据传输规则验证装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如图1所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图1中以一个处理器为例。处理器11和存储器12通过总线10连接。存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程,以对待测设计有关待测数据传输规则的完备性进行验证。
于一实施例中,电子设备1可以是手机、平板电脑、笔记本电脑、台式计算机等设备。
请参看图2,其为本申请一实施例的芯片验证场景的示意图,其中,待测设计DUT例化在验证环境20中,通过给待测设计DUT发送相应的激励,并采集待测设计DUT针对激励的输出结果,验证输出结果是否符合芯片设计的要求,如果符合,则验证通过,否则验证不通过,需要研发人员检查相应错误进行更正,进而完善芯片设计。
在芯片验证过程中,往往会遇到数据传输规则(ordering rule)的验证,即验证待测设计DUT的相关数据传输功能是否满足要求的数据传输规则。例如PCIE协议中的一种数据传输规则:转发事务P必须可以超过非转发事务NP(即P must be able to pass NP),通常的验证方法是大量随机的激励方式,这种方式覆盖率不全面,验证结果不够准确。
本申请实施例中,在待测设计DUT中设置有转发事务P的缓冲器(P buffer)和非转发事务NP的缓冲器(NP buffer),通过限制两种事务类型中任一中传输事务的信用量,来采用控制变量法,实现对待测设计DUT关于数据传输规则功能的完备性验证,可以提高验证准确率。
请参看图3,其为本申请一实施例的数据传输规则验证方法,该方法可由图1所示的电子设备1来执行,并可以应用于如图2所示的芯片验证场景中,以更加准确的对待测设计DUT有关待测数据传输规则的完备性进行验证。该方法包括如下步骤:
步骤301:获取待测设计DUT的待测数据传输规则,待测数据传输规则中至少包括待测的两种事务类型。
在本步骤中,待测设计DUT可以是一个完整的芯片电路设计,也可以是某个芯片功能模块设计,待测的数据传输规则可以是一些数据传输协议标准规定的数据传输规则,比如PCIE协议中的一种数据传输规则:转发事务P必须可以超过非转发事务。也可以是待测设计DUT中基于实际需求为实现某一种功能而需要符合的自定义数据传输规则。该数据传输规则中至少包括两种事务类型,比如上述PCIE协议中的数据传输规则中的转发事务P和非转发事务NP,即该规则用来规定这两种事务之间的传输秩序。
步骤302:配置两种事务类型中第一传输事务的事务量为预设阈值,并生成第一传输事务的第一激励。
在本步骤中,事务量可以是数据传输事务的传输量,比如可以是数据传输的次数或者发送量。由于实际场景中,一种传输事务可能要经过很多次的传输,也就意味着事务量很大,在验证时,如果将每一次传输事务都验证一边,那样将大大增加芯片验证过程的任务,效率低下。为了提高效率,可以在验证环境20中把数据传输规则中任一数据传输事务的事务量限制为一个定值(预设阈值),该被限制事务量的传输事务称为第一传输事务,如此可以控制第一传输事务的事务量不变,再进行后续验证,可以大大缩短验证此处,提高验证效率。
步骤303:分别发送第一传输事务的第一激励给待测设计DUT,发送两种事务类型中的第二传输事务的第二激励给待测设计DUT。
在本步骤中,配置好第一传输事务的事务量为定值后,即可分别针对第一传输事务生成对待测设计DUT的第一激励,针对第二传输事务生成对待测设计DUT的第二激励,分别发送两个激励给待测设计DUT,以供待测设计DUT进行相关测试过程。此处激励是一种激励信号,实际场景中,激励信号可以是具体的电平信号,也可以是脉冲信号,此处不做限定。
步骤304:分别获取待测设计DUT针对第一激励和第二激励的传输结果信息,并基于传输结果信息验证待测设计DUT关于待测数据传输规则的完备性。
在本步骤中,待测设计DUT接收到激励后,会基于激励执行相应的动作,比如对于数据传输事务的激励,待测设计DUT会执行相关数据的传输和发送。可以实时采集待测设计DUT的数据传输端口,获得数据传输结果信息,比如传输事务被发出去的话,相应的端口上就能采到有效信号。传输结果信息中可以包括某种传输事务的已传输的量以及数据传输方向,然后验证传输结果信息是否符合待测数据传输规则的要求。
上述数据传输规则验证方法,在芯片验证过程中,通过限制待测数据传输规则中任一传输事务的事务量为一定值,将其作为比较标准,然后分别发两种传输事务的激励给待测设计DUT,然后收集待测设计DUT针对上述两种激励的传输结果信息,并根据待测设计DUT的传输结果验证待测设计DUT对该待测数据传输规则的完备性。如此,避免了现有技术中采用随机事务激励的方式带来的覆盖率不全面的问题,提高了芯片验证的准确性。
请参看图4,其为本申请一实施例的数据传输规则验证方法,该方法可由图1所示的电子设备1来执行,并可以应用于如图2所示的芯片验证场景中,以更加准确的对待测设计DUT有关待测数据传输规则的完备性进行验证。该方法包括如下步骤:
步骤401:获取待测设计DUT的待测数据传输规则,待测数据传输规则中至少包括待测的两种事务类型。详细参见上述实施例中对步骤301的描述。
步骤402:在验证环境20中配置待测设计DUT允许传输第一传输事务的事务量为0。
在本步骤中,被限制的事务量的预设阈值可以为0,也就是说,可以直接将第一传输事务阻塞在待测设计DUT中,不让它发出来。
于一实施例中,步骤402可以包括:在验证环境20中配置待测设计DUT的第一传输事务的信用量为0。
在芯片测试场景中,数据传输过程通常会涉及到数据发送端和数据接收端,发送端和接收端会互相知道对方能接收多少笔数据,比如接收端通过信号告知发送端说其只能接收10笔读操作、2笔写操作,那么发送端如果已发了2笔写操作,还想再发第3笔写操作时,就发不出去,暂时只能存在发送端里面,无法发给接收端,除非接收端通过信号告诉发送端又能接收更多写操作了。上述发送端与接收端之间互相规定的数据发送量可以称为信用量。信用量可以根据各个待测设计DUT的不同而定。
在实际验证场景中,涉及数据传输规则通常有2种情况,A传输事务可以超过B传输事务,或者A传输事务不能超过B传输事务。不管是哪种情况,此类待测设计DUT中通常都会有信用量(credit或者ready)的要求,为了快速验证这些数据传输规则,可以用其中一种传输事务的信用量来限定事务量。假设以PCIE协议中规定的转发事务必须可以超过非转发事务(P must be able to pass NP)这条数据传输规则的验证为例,可以将非转发事务(NP)作为第一传输事务,可以直接把非转发事务(NP)的信用量配置为0。让这种类型的事务因为没有信用量,只能一直被阻塞(保留)在设计中,无法被发出。
于一实施例中,步骤402还可以包括:在验证环境20中配置待测设计DUT对第一传输事务的使能驱动信号为0。即有些场景中,传输事务是通过使能信号控制的,因此,也可以直接将第一传输事务的使能信号驱动为0,来将第一传输事务阻塞在待测设计DUT中,使其无法发出。
步骤403:先发送第一传输事务的第一激励给待测设计DUT,然后发送第二传输事务的第二激励给待测设计DUT。
在本步骤中,以PCIE协议中规定的转发事务必须可以超过非转发事务(P must beable to pass NP)这条数据传输规则的验证为例,可以先发非转发事务(NP)的第一激励给待测设计DUT,等待超过预设时长后,再发转发事务(P)的第二激励给待测设计DUT。其中等待预设时长是为了确保非转发事务(NP)已经阻塞在待测设计DUT中。预设时长可以根据待测设计DUT时钟周期来决定,比如可以设定为1ms。激励生成方式详细参见上述实施例中对步骤303的描述。
步骤404:基于传输结果信息验证待测设计DUT关于待测数据传输规则是否符合事务量要求。
在本步骤中,待测数据传输规则中还可以包括:第一传输事务与第二传输事务之间的事务量要求。比如PCIE协议中规定的转发事务必须可以超过非转发事务(P must beable to pass NP)这条数据传输规则,其中要求转发事务的事务量必须可以超过非转发事务的事务量。那么可以通过验证待测涉及的传输结果信息是否符合上述事务量要求,即可验证待测设计DUT关于待测数据传输规则的完备性。
于一实施例中,事务量要求包括:第二传输事务的事务量要大于或等于第一传输事务的事务量。步骤404可以包括:若传输结果信息中第二传输事务的事务量要大于或等于预设阈值,待测设计DUT关于待测数据传输规则符合事务量要求,提示验证通过,否则,待测设计DUT关于待测数据传输规则不符合事务量要求,提示验证不通过。
在本步骤中,以PCIE协议中规定的转发事务必须可以超过非转发事务(P must beable to pass NP)这条数据传输规则为例,如果通过采集待测设计DUT的传输端口,得到转发事务P超过了非转发事务NP,则待测设计DUT关于该待测数据传输规则符合事务量要求,可以提示验证通过,否则提示验证不通过。比如转发事务P也一直被保留在设计中,无法被发出,那么本次验证不通过,说明待测设计DUT某个地方可能出现了错误,可以及时去检查待测设计DUT是否存在问题。
于一实施例中,假设PCIE协议中规定的完成事务必须可以超过非转发事务(Completion must be able to pass NP)这条规则为待测的数据传输规则,本实施例可以采用如下方法进行验证:
1、在验证环境20中限制非转发事务(NP)的信用量,让这种类型的事务在设计中因为没有信用量本身就没办法发出去,只能一直被阻塞(保留)在设计中,无法被发出。
2、然后先发非转发事务(NP)的激励给待测设计DUT。
3、等足够长的预设时长,确保非转发事务(NP)已经阻塞在设计中,再发完成事务(completion)的激励给待测设计DUT。
4、验证是否完成事务(completion)能够被设计发出去,而非转发事务(NP)由于信用量的缺失一直阻塞在待测设计DUT中,发不出去。比如可以在待测设计DUT的数据传输端口上采集传输信息,判断是否完成事务(completion)确实被设计先发出去了,如果是,就说明完成事务超过了非转发事务(NP),提示验证通过,否则,提示验证不通过。
请参看图5,其为本申请一实施例的数据传输规则验证装置500,该装置可应用于图1所示的电子设备1,并可以应用于如图2所示的芯片验证场景中,以更加准确的对待测设计DUT有关待测数据传输规则的完备性进行验证。该装置包括:规则获取模块501、阈值配置模块502、事务发送模块503和规则验证模块504,各个模块的原理关系如下:
规则获取模块501,用于获取待测设计DUT的待测数据传输规则,待测数据传输规则中至少包括待测的两种事务类型。
阈值配置模块502,用于配置两种事务类型中第一传输事务的事务量为预设阈值,并生成第一传输事务的第一激励。
事务发送模块503,用于分别发送第一传输事务的第一激励给待测设计DUT,发送两种事务类型中第二传输事务的第二激励给待测设计DUT。
规则验证模块504,用于分别获取待测设计DUT针对第一激励和第二激励的传输结果信息,并基于传输结果信息验证待测设计DUT关于待测数据传输规则的完备性。
于一实施例中,预设阈值为0。阈值配置模块502用于:在验证环境20中配置待测设计DUT允许传输第一传输事务的事务量为0。
于一实施例中,在验证环境20中配置待测设计DUT允许传输第一传输事务的事务量为0,包括:在验证环境20中配置待测设计DUT的第一传输事务的信用量为0。
于一实施例中,在验证环境20中配置待测设计DUT允许传输第一传输事务的事务量为0,包括:在验证环境20中配置待测设计DUT对第一传输事务的使能驱动信号为0。
于一实施例中,事务发送模块503用于:先发送第一传输事务的第一激励给待测设计DUT,然后发送第二传输事务的第二激励给待测设计DUT。
于一实施例中,事务发送模块503还用于,发送第一传输事务的第一激励给待测设计DUT后,等待预设时长,然后发送第二传输事务的第二激励给待测设计DUT。
于一实施例中,待测数据传输规则中还包括:第一传输事务与第二传输事务之间的事务量要求。规则验证模块504用于:基于传输结果信息验证待测设计DUT关于待测数据传输规则是否符合事务量要求。
于一实施例中,事务量要求包括:第二传输事务的事务量要大于或等于第一传输事务的事务量。规则验证模块504用于:若传输结果信息中第二传输事务的事务量要大于或等于预设阈值,待测设计DUT关于待测数据传输规则符合事务量要求,提示验证通过,否则,待测设计DUT关于待测数据传输规则不符合事务量要求,提示验证不通过。
上述数据传输规则验证装置500的详细描述,请参见上述实施例中相关方法步骤的描述。
本发明实施例还提供了一种非暂态电子设备可读存储介质,包括:程序,当其在电子设备上运行时,使得电子设备可执行上述实施例中方法的全部或部分流程。其中,存储介质可为磁盘、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccess Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等。存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。