一种芯片验证平台、方法和装置与流程

未命名 08-12 阅读:89 评论:0


1.本公开涉及但不限于芯片领域,尤其涉及一种芯片验证平台、方法和装置。


背景技术:

2.随着芯片制造工艺的不断进步,以及芯片应用场景的不断拓展,芯片的规模越来越大,功能越来越复杂,芯片的验证工作面临更复杂的挑战。
3.传统的芯片验证方法是直接测试,针对芯片的每一个功能特性编写测试激励,采用观察波形或对比文件的方式判断所测功能特性是否正确。其主要步骤包括:先分解测试点,然后设计直接测试用例,再执行直接测试用例,最后分析代码覆盖率,补充测试用例,直到覆盖率收敛。
4.随着芯片复杂度的不断提高,采用传统的芯片验证方法,面临越来越多的问题。例如,由于传统的芯片验证方法都是直接测试,而其所构造的测试激励的抽象层次低,导致测试用例的数量非常庞大,维护比较困难,而且随着芯片复杂度的提高,验证的难度和工作量也会成倍地增长,导致芯片的验证效率低下。


技术实现要素:

5.以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
6.本公开一实施例提供了一种芯片验证平台,应用于芯片设计验证,包括激励发生器、被测设计、参考模型和数据库,其中:
7.所述激励发生器被设置为根据第一功能的测试用例生成第一激励数据并发送;及根据第二功能的测试用例的配置信息,从所述数据库中获取相应的中间信息,根据获取的中间信息生成第二激励数据并发送;
8.所述被测设计被设置为接收所述第一激励数据,基于所述第一功能处理所述第一激励数据;及接收所述第二激励数据,基于所述第二功能处理所述第二激励数据,输出处理结果;
9.所述参考模型与所述被测设计的功能和端口相同,被设置为接收所述第一激励数据,基于所述第一功能处理所述第一激励数据,将处理得到的中间信息保存至所述数据库;及接收所述第二激励数据,基于所述第二功能处理所述第二激励数据,输出处理结果;
10.所述数据库被配置为保存所述参考模型处理得到的中间信息。
11.本公开一实施例还提供了一种芯片验证方法,用于对芯片设计进行验证,其中,应用包括激励发生器、被测设计、参考模型和数据库的芯片验证平台,所述参考模型与所述被测设计的功能和端口相同,所述方法包括:
12.所述激励发生器根据第一功能的测试用例生成第一激励数据并发送;
13.所述被测设计接收所述第一激励数据,基于所述第一功能处理所述第一激励数据;所述参考模型接收所述第一激励数据,基于所述第一功能处理所述第一激励数据,将处
理得到的中间信息保存至所述数据库;
14.所述激励发生器根据第二功能的测试用例的配置信息,从所述数据库中获取相应的中间信息,根据获取的中间信息生成第二激励数据并发送;
15.所述被测设计接收所述第二激励数据,基于所述第二功能处理所述第二激励数据,输出处理结果;所述参考模型接收所述第二激励数据,基于所述第二功能处理所述第二激励数据,输出处理结果。
16.本公开一实施例还提供了一种芯片验证装置,包括处理器和保存有计算机程序的存储器,其中,所述处理器能够读取所述计算机程序,执行如本公开任一实施例所述的芯片验证方法。
17.与相关技术相比,本公开实施例提供的一种芯片验证平台、方法和装置,能够自动修改报文信息,自动构造激励数据,智能化地产生激励。
18.在阅读并理解了附图和详细描述后,可以明白其他方面。
附图说明
19.图1为本公开一实施例芯片验证平台的的示意图;
20.图2为本公开一实施例mac地址项的结构示意图;
21.图3为本公开一实施例激励产生器的结构示意图;
22.图4为本公开一实施例以太网帧的结构示意图;
23.图5为本公开一实施例芯片验证方法的流程图;
24.图6为本公开一实施例激励产生器的结构示意图。
具体实施方式
25.本公开描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本公开所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
26.本公开包括并设想了与本领域普通技术人员已知的特征和元件的组合。本公开已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本公开中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
27.此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此
外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本公开实施例的精神和范围内。
28.激励构造、响应校验、覆盖率收敛是芯片验证的过程中要解决的三大问题。激励构造主要为产生dut(被测设计)的输入信号,响应校验主要为校验dut的输出信号,覆盖率收敛主要为验证的完备性。其中激励构造是最关键的一个环节。
29.随着芯片复杂度的提高,验证工作量会成倍地增长。
30.为了解决上述问题,本公开一实施例提供了一种芯片验证平台,应用于芯片设计验证,如图1所示,包括激励发生器intelligent stimulus generator、被测设计design under test(dut)、参考模型reference model(rm)和数据库:
31.所述激励发生器被设置为根据第一功能的测试用例生成第一激励数据并发送;及根据第二功能的测试用例的配置信息,从所述数据库中获取相应的中间信息,根据获取的中间信息生成第二激励数据并发送;
32.所述被测设计被设置为接收所述第一激励数据,基于所述第一功能处理所述第一激励数据;及接收所述第二激励数据,基于所述第二功能处理所述第二激励数据,输出处理结果;
33.所述参考模型与所述被测设计的功能和端口相同,被设置为接收所述第一激励数据,基于所述第一功能处理所述第一激励数据,将处理得到的中间信息保存至所述数据库;及接收所述第二激励数据,基于所述第二功能处理所述第二激励数据,输出处理结果;
34.所述数据库被配置为保存所述参考模型处理得到的中间信息。
35.其中,所述数据库可以为mac_info类型的数据库(mac_info database),是systemverilog语言的一个数组队列,数组的索引是端口号;所述中间信息可以为mac_info类型的数据结构;所述mac_info类型的数据结构可以用systemverilog语言定义的mac_info类型数据结构,至少包含mac地址和vlan标签,数据结构可以如下:
36.typedef struct{
37.int mac_addr;
38.int vlan_tag;
39.}mac_info;
40.本实施例的芯片验证平台是一种智能化的芯片验证平台,根据被测设计的某个特定功能,通过将芯片处理的中间信息学习到数据库,并在激励数据构造过程中,通过激励发生器自动获取数据库中存储的中间信息,从而能够自动修改报文,智能化地自动构造相应的激励报文,解决手动构造激励报文的繁琐,验证效率低下的问题。
41.在本公开一示例性的实施例中,所述芯片包括以太网交换芯片,所述第一功能包括mac地址学习功能,所述第二功能包括mac地址查找功能;
42.所述第一激励数据为第一以太网报文,所述第二激励数据为第二以太网报文;
43.所述中间信息包括与端口绑定的数据结构,每一数据结构包含所述参考模型根据所述第一以太网报文学习得到的mac地址和vlan标签。
44.在本实施例的一示例中,通过以太网交换芯片对mac地址学习和mac地址查找进行说明:
45.首先需要说明的是,根据目的mac地址的类型,以太网帧分为单播报文、组播报文
和广播报文,以太网帧的源mac地址都为单播地址。
46.以太网交换芯片的主要功能包括源mac地址学习和目的mac地址查找,交换芯片通过维护其内部的mac地址表实现源mac地址的学习和目的mac地址的查找。mac地址表由一系列的mac地址项组成,图2为mac地址项的结构示意图,mac地址项的结构可以参照图2。
47.具体的,源mac地址学习工作原理是:
48.当以太网交换芯片接收到一个报文时,首先检查该报文的源mac地址是否是单播地址;如果不是,则丢弃该报文;如果是,则根据源mac地址和vlan标签组成的key,通过hash算法计算得到一个地址,按照该地址读取mac地址表;
49.如果mac地址表里已经存在该key,则更新mac地址表的状态;如果不存在,则把该key写到mac地址表里。
50.目的mac地址查找的工作原理是:
51.当接收到一个广播报文时,它会向除接收端口之外的所有端口进行洪泛;
52.当收到一个单播或组播报文时,根据目的mac地址和vlan标签组成的key,通过hash算法计算得到一个地址,按照该地址读取mac地址表,检查报文的key和mac地址表内的key是否相同,如果相同,则按照mac地址表对应的端口转发,否则,则洪泛到所有端口。
53.在本公开一示例性的实施例中,所述激励发生器根据所述第一功能的测试用例生成第一激励数据并发送,包括:根据mac地址学习功能的测试用例生成第一以太网报文并发送到所述被测设计的第一端口和所述参考模型的第一端口,所述第一以太网报文的源mac地址为第一mac地址,vlan标签为第一vlan标签;
54.所述参考模型基于所述第一功能处理所述第一激励数据,将处理得到的中间信息保存至所述数据库,包括:基于mac地址学习功能对所述第一以太网报文进行解析,将解析得到的所述第一以太网报文中的第一mac地址和第一vlan标签作为所述中间信息,存储到所述数据库中与所述第一端口绑定的数据结构中。
55.本公开的参考模型基于mac地址学习功能得到学习的以太网报文的mac地址和vlan标签作为中间信息,而数据库则分端口存放学习的以太网报文的mac地址和vlan标签处理得到的中间信息。
56.在本公开一示例性的实施例中,所述激励发生器根据第二功能的测试用例的配置信息,从所述数据库中获取相应的中间信息,根据获取的中间信息生成第二激励数据并发送,包括:根据mac地址查找功能的测试用例所配置的目的端口,查找所述数据库中与所述目的端口绑定的数据结构,在所述目的端口为第一端口的情况下,生成第二以太网报文并发送到所述被测设计的第二端口和所述参考模型的第二端口,以测试所述被测设计将以太网报文从所述第二端口转发到所述第一端口的能力,其中,所述第二以太网报文中的目的mac地址为所述第一mac地址,vlan标签为所述第一vlan标签。
57.在本公开一示例性的实施例中,参见图3,图3中wseq代表工作序列的指针,aseq代表应用序列的指针,ral代表寄存器模型的指针,cfg代表仿真配置类的指针;sqr代表序列发生器的指针;
58.所述激励发生器包括三层序列结构及序列发生器;
59.所述三层序列结构包括用于描述生成激励数据的一系列操作的测试序列test sequences、工作序列worker sequences和应用序列api sequences;每一测试序列对应于
sequences的port_a_tseq生成pkt_a,port_a_seq调用worker sequences的mac_fwd_wseq,mac_fwd_wseq调用api sequences的eth_data_aseq。mac_fwd_wseq自动从mac_info数据库中获取b口发送报文的mac_info类型的数据结构,把mac_info里的mac_addr赋给eth_data_aseq里的frame的目的mac地址dmac_addr,把mac_info里的vlan_tag赋给eth_data_aseq里的frame的vlan标签vlan_tag。
77.详细代码如下:
78.(1)test sequence的port_a_tseq示例如下:
[0079][0080]
(2)worker sequence的mac_fwd_wseq示例如下:
[0081]
[0082][0083]
(3)api sequence的eth_data_aseq示例如下:
[0084][0085]
第三步,激励发生器把报文pkt_a通过端口a送给被测设计,同时送给参考模型,参考模型使用报文a的目的mac地址和vlan标签组成的mac地址项,查找mac地址表,会命中从端口b报文pkt_b学习到mac地址表的mac地址项,因此报文pkt_a会通过端口b发送出去。
[0086]
上述test sequence代码中的direct_destination_port_enable用于设置指定目的端口使能,destination_port用于设置报文转发的目的端口,所述目的端口使能可被设置为第一标识0和第二标识1;例如,从a端口发送的报文,如果目的端口使能配置成第一标识1,且目的端口是b,则只能从数据库中获取转发到目的端口b的中间信息,从而a端口发送的报文只会转发到目的端口b;如果目的端口使能配置成第二标识0,则从数据库中随机获取一个中间信息,从而端口a发出的报文可能转发到端口b或端口c或端口d。
[0087]
本公开的芯片验证平台能够自动获取数据库中存储的中间信息,从而能够自动修改报文,达到自动构造激励报文的目的。
[0088]
另外需要说明的是,所述测试序列由于用于完成某个特定测试用例所构造的序列,因为每个测试用例所测的测试点都不一样,所以测试序列一般不会复用;工作序列与dut和寄存器或表项的配置相关,可以在不同的测试用例之间复用;所述应用序列和dut的寄存器或表项的配置无关,可以在不同的项目中重用。
[0089]
在本公开一示例性的实施例中,参见图3,至少部分所述工作序列包含寄存器模型的指针ral和/或仿真配置类的指针cfg,以通过所述寄存器模型的指针读取寄存器的配置,
和/或通过所述仿真配置类的指针读取表项的配置,以根据所述寄存器和/或表项的配置执行生成激励数据的操作。
[0090]
其中,所述寄存器和表项是芯片内部的存储单元,可以保存数据,芯片的各种功能特性需要通过把其内部的寄存器或表项配置成特定的值才能实现,要测试芯片的某个功能要完成必要的寄存器或表项的配置。芯片内部的寄存器或表项和端口有关系,每个端口有一组寄存器或表项,测试某个功能时,需要配置使用的端口对应的寄存器或表项,不使用的端口对应的寄存器或表项可以不配置。
[0091]
可见,在寄存器和表项的配置发生更改后,本公开的工作序列在代码生成过程中,可以通过寄存器模型的指针读取最新的寄存器配置,通过仿真配置类的指针读取最新的表项配置,及时的根据寄存器和表项的配置去生成激励数据。
[0092]
在本实施例的一示例中,以4个端口的交换芯片为例,每个端口都可以进行mac地址学习,但是芯片的mac地址表空间有限,所以芯片设计时可能会限制某个端口可以学习的mac地址的数量,也可能会限制某个vlan可以学习的mac地址的数量。
[0093]
寄存器的配置可以是通过寄存器模型实现的,配置端口可以学习的mac地址的最大数量的示例可以如下:
[0094]
ral.port_learn_control[0].mac_learn_limit.set(100);
[0095]
ral.port_learn_control[1].mac_learn_limit.set(200);
[0096]
ral.port_learn_control[2].mac_learn_limit.set(300);
[0097]
ral.port_learn_control[3].mac_learn_limit.set(400);
[0098]
其中,port_learn_control为对应的寄存器名字,mac_learn_limit为寄存器里包含的域名字,用来控制端口可以学习的mac地址的最大数量。
[0099]
表项的配置可以是通过仿真配置类实现的,假设需要限制vlan标签是100/200/300/400的vlan可以学习的mac地址的数量分别是1000/2000/3000/4000,配置示例可以如下:
[0100]
cfg.vlan_learn_control[100].vlan_learn_limit=1000;
[0101]
cfg.vlan_learn_control[200].vlan_learn_limit=2000;
[0102]
cfg.vlan_learn_control[300].vlan_learn_limit=3000;
[0103]
cfg.vlan_learn_control[400].vlan_learn_limit=4000;
[0104]
通过ram(即表项)实现对每个vlan可以学习的mac地址数量进行限制,比通过寄存器实现对每个vlan可以学习的mac地址数量进行限制,能够减少芯片的面积。
[0105]
在本公开一示例性的实施例中,所述工作序列还包括用于获取覆盖率的工作序列;
[0106]
所述获取覆盖率的工作序列用于从测试后生成的覆盖率数据库获取测试的覆盖率,在所述覆盖率低于设定的覆盖率阈值时,调整产生激励的随机种子,以增加测试用例的覆盖率。
[0107]
在本实施例的一示例中,假设通过synopsys公司的仿真器vcs进行仿真,功能覆盖率模型a设定的目标测试用例的覆盖率为90%假设给仿真设定的目标测试用例的覆盖率是功能覆盖率模型a的覆盖率达到90%,可以包括以下步骤:
[0108]
第一步,使用vcs命令vcs编译激励发生器(stimulus_gen.sv)、参考模型
(reference_model.sv)、被测设计(dut.sv),生成可执行文件simv,命令如下:
[0109]
vcs

sverilog stimulus_gen.sv reference_model.sv dut.sv;
[0110]
第二步,执行可执行文件simv,输入执行仿真的种子,命令如下:
[0111]
simv

seed=seed_001
[0112]
仿真执行完毕后,自动生成覆盖率数据库文件simv.vdb;
[0113]
其中,所述种子是一个整数,可以是用例配置的,也可以是自动生成的。
[0114]
第三步,执行vcs的覆盖率收集命令urg,收集覆盖率,命令如下:
[0115]
urg

dir simv.vdb
[0116]
urg命令执行完毕后,自动生成覆盖率报告文件test.html。
[0117]
第四步,读取test.html文件,获取覆盖率的数值,假设是80%,覆盖率没有达到我们设定的目标90%,重复执行第二步,输入不同的种子,再次执行仿真,命令如下:
[0118]
simv

seed=seed_002
[0119]
并使用脚本重复执行第二步至第四步,直到覆盖率达到我们设定的目标测试用例的覆盖率90%。
[0120]
在本公开一示例性的实施例中,所述芯片验证平台还包括计分板模块scoreboard,所述计分板模块被设置为将所述被测设计输出的处理结果和所述参考模型输出的处理结果进行比较,在两者相同时,确定所述第二功能的测试用例验证通过;
[0121]
如图4所示,典型的以太网帧包括目的mac地址、源mac地址、vlan标签、类型、数据区、crc校验区。其中,所述被测设计输出的处理结果和所述参考模型输出的处理结果的格式均是以太网帧,所述以太网帧内容完全相同则所述被测设计输出的处理结果和所述参考模型输出的处理结果一致,否则,不一致。
[0122]
本公开的芯片验证平台,通过将芯片处理的中间信息学习到数据库,并在激励数据构造过程中,通过激励发生器自动获取数据库中存储的中间信息,并且能够自动感知芯片的寄存器或表项配置,从而能够自动修改报文,智能化地产生激励。另外,本公开的芯片验证平台能够自动获取覆盖率数据,从而能够自动调整产生激励的随机种子,以增加测试用例的覆盖率。
[0123]
本公开一实施例还提供了一种芯片验证方法,用于对芯片设计进行验证,应用包括激励发生器、被测设计、参考模型和数据库的芯片验证平台,所述参考模型与所述被测设计的功能和端口相同,如图5所示,所述芯片验证方法可以按以下步骤执行:
[0124]
步骤s510,所述激励发生器根据第一功能的测试用例生成第一激励数据并发送。
[0125]
步骤s520,所述被测设计接收所述第一激励数据,基于所述第一功能处理所述第一激励数据;所述参考模型接收所述第一激励数据,基于所述第一功能处理所述第一激励数据,将处理得到的中间信息保存至所述数据库。
[0126]
步骤s530,所述激励发生器根据第二功能的测试用例的配置信息,从所述数据库中获取相应的中间信息,根据获取的中间信息生成第二激励数据并发送。
[0127]
步骤s540,所述被测设计接收所述第二激励数据,基于所述第二功能处理所述第二激励数据,输出处理结果;所述参考模型接收所述第二激励数据,基于所述第二功能处理所述第二激励数据,输出处理结果。
[0128]
本实施例的激励构造方法,通过将芯片处理的中间信息学习到数据库,并在激励
数据构造过程中,通过激励发生器自动获取数据库中存储的中间信息,从而能够自动修改报文,智能化地自动构造相应的激励报文,解决手动构造激励报文的繁琐,提高芯片的mac地址学习和mac地址查找功能的验证效率。
[0129]
在本公开一示例性的实施例中,所述芯片包括以太网交换芯片,所述第一功能包括mac地址学习功能,所述第二功能包括mac地址查找功能;
[0130]
所述第一激励数据为第一以太网报文,所述第二激励数据为第二以太网报文;
[0131]
所述中间信息包括与端口绑定的数据结构,每一数据结构包含所述参考模型根据所述第一以太网报文学习得到的mac地址和vlan标签。
[0132]
在本公开一示例性的实施例中,所述激励发生器根据所述第一功能的测试用例生成第一激励数据并发送,包括:根据mac地址学习功能的测试用例生成第一以太网报文并发送到所述被测设计的第一端口和所述参考模型的第一端口,所述第一以太网报文的源mac地址为第一mac地址,vlan标签为第一vlan标签;
[0133]
所述参考模型基于所述第一功能处理所述第一激励数据,将处理得到的中间信息保存至所述数据库,包括:基于mac地址学习功能对所述第一以太网报文进行解析,将解析得到的所述第一以太网报文中的第一mac地址和第一vlan标签作为所述中间信息,存储到所述数据库中与所述第一端口绑定的数据结构中;
[0134]
所述激励发生器根据第二功能的测试用例的配置信息,从所述数据库中获取相应的中间信息,根据获取的中间信息生成第二激励数据并发送,包括:根据mac地址查找功能的测试用例所配置的目的端口,查找所述数据库中与所述目的端口绑定的数据结构,在所述目的端口为第一端口的情况下,生成第二以太网报文并发送到所述被测设计的第二端口和所述参考模型的第二端口,以测试所述被测设计将以太网报文从所述第二端口转发到所述第一端口的能力,其中,所述第二以太网报文中的目的mac地址为所述第一mac地址,vlan标签为所述第一vlan标签。
[0135]
在本公开一示例性的实施例中,所述激励发生器包括三层序列结构及序列发生器;
[0136]
所述三层序列结构包括用于描述生成激励数据的一系列操作的测试序列、工作序列和应用序列;每一测试序列对应于一种功能的一个测试用例,可调用所述工作序列和/或所述应用序列;每一工作序列对应于芯片的一种功能,可调用所述应用序列和/或其他工作序列;每一应用序列用于基于接口协议完成设定的一个或多个操作;
[0137]
所述序列发生器被设置为通过调用所述测试序列以生成激励数据,所述激励数据包括所述第一激励数据和所述第二激励数据。
[0138]
在本实施例的一示例中,所述序列发生器包括与端口一一对应的多个序列发生器,其中的每一序列发生器用于调用对应端口的测试序列以生成对应端口的激励数据,如图3中的序列发生器a、序列发生器b和序列发生器c分别对应端口a、b、c;
[0139]
所述对应端口的测试序列包括用于测试mac地址学习功能的第一测试序列,所述第一测试序列用于根据设置的或自动生成的源mac地址和vlan标签,调用设置的工作序列和/或应用序列,生成发给该对应端口的第一以太网报文。
[0140]
在本实施例的一示例中,所述对应端口的测试序列还包括用于测试mac地址查找功能的多个第二测试序列;所述根据第二功能的测试用例的配置信息,从所述数据库中获
取相应的中间信息,根据获取的中间信息生成第二激励数据并发送,包括:
[0141]
所述第二测试序列根据配置的目的端口,调用对应于mac地址查找功能的工作序列以生成所述第二以太网报文;
[0142]
所述对应于mac地址查找功能的工作序列在被调用后,从所数据库中获取与所述目的端口绑定的mac地址和vlan标签,调用用于生成以太网报文的应用序列;
[0143]
所述用于生成以太网报文的应用序列在被调用后,生成所述第二以太网报文,所述第二以太网报文中的目的mac地址为与所述目的端口绑定的mac地址,vlan标签为与所述目的端口绑定的vlan标签。
[0144]
在本公开一示例性的实施例中,至少部分所述工作序列包含寄存器模型的指针和/或仿真配置类的指针;所述序列发生器通过调用所述测试序列以生成所述激励数据,包括:
[0145]
通过所述寄存器模型的指针读取寄存器的配置,和/或通过所述仿真配置类的指针读取表项的配置,根据所述寄存器和/或表项的配置执行生成激励数据的操作。
[0146]
在本公开一示例性的实施例中,所述工作序列还包括用于获取覆盖率的工作序列,所述方法还包括:
[0147]
所述获取覆盖率的工作序列从测试后生成的覆盖率数据库获取测试的覆盖率,在所述覆盖率低于设定的覆盖率阈值时,调整产生激励的随机种子,以增加测试用例的覆盖率。
[0148]
在本公开一示例性的实施例中,所述芯片验证平台还包括计分板模块,所述计分板模块将所述被测设计输出的处理结果和所述参考模型输出的处理结果进行比较,在两者相同时,确定所述第二功能的测试用例验证通过。
[0149]
本公开还提供了一种芯片验证装置,参见图6,包括处理器和保存有计算机程序的存储器,其中,所述处理器能够读取所述计算机程序,执行如本公开任一实施例所述的芯片验证方法。
[0150]
本公开的芯片验证平台、方法和装置,能够自动感知芯片的寄存器或表项配置,自动获取芯片处理的中间信息,自动获取覆盖率数据,从而智能化地产生激励。
[0151]
本公开上述实施例的处理器可以是通用处理器,包括中央处理器(cpu)、网络处理器(network processor,简称np)、微处理器等等,也可以是其他常规的处理器等;所述处理器还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)、离散逻辑或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,或其它等效集成或离散的逻辑电路,也可以是上述器件的组合。即上述实施例的处理器可以是实现本发明实施例中公开的各方法、步骤及逻辑框图的任何处理器件或器件组合。如果部分地以软件来实施本公开实施例,那么可将用于软件的指令存储在合适的非易失性计算机可读存储媒体中,且可使用一个或多个处理器在硬件中执行所述指令从而实施本公开实施例的方法。本文中所使用的术语“处理器”可指上述结构或适合于实施本文中所描述的技术的任意其它结构。
[0152]
在以上一个或多个示例性实施例中,所描述的功能可以硬件、软件、固件或其任一组合来实施。如果以软件实施,那么功能可作为一个或多个指令或代码存储在计算机可读介质上或经由计算机可读介质传输,且由基于硬件的处理单元执行。计算机可读介质可包
含对应于例如数据存储介质等有形介质的计算机可读存储介质,或包含促进计算机程序例如根据通信协议从一处传送到另一处的任何介质的通信介质。以此方式,计算机可读介质通常可对应于非暂时性的有形计算机可读存储介质或例如信号或载波等通信介质。数据存储介质可为可由一个或多个计算机或者一个或多个处理器存取以检索用于实施本公开中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可包含计算机可读介质。
[0153]
举例来说且并非限制,此类计算机可读存储介质可包括ram、rom、eeprom、cd-rom或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来以指令或数据结构的形式存储所要程序代码且可由计算机存取的任何其它介质。而且,还可以将任何连接称作计算机可读介质举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)或例如红外线、无线电及微波等无线技术从网站、服务器或其它远程源传输指令,则同轴电缆、光纤电缆、双纹线、dsl或例如红外线、无线电及微波等无线技术包含于介质的定义中。然而应了解,计算机可读存储介质和数据存储介质不包含连接、载波、信号或其它瞬时(瞬态)介质,而是针对非瞬时有形存储介质。如本文中所使用,磁盘及光盘包含压缩光盘(cd)、激光光盘、光学光盘、数字多功能光盘(dvd)、软磁盘或蓝光光盘等,其中磁盘通常以磁性方式再生数据,而光盘使用激光以光学方式再生数据。上文的组合也应包含在计算机可读介质的范围内。虽然本公开所揭露的实施方式如上,但所述的内容仅为便于理解本公开而采用的实施方式,并非用以限定本公开。任何本公开所属领域内的技术人员,在不脱离本公开所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本公开的专利保护范围,仍须以所附的权利要求书所界定为准。

技术特征:
1.一种芯片验证平台,应用于芯片设计验证,其特征在于,包括激励发生器、被测设计、参考模型和数据库,其中:所述激励发生器被设置为根据第一功能的测试用例生成第一激励数据并发送;及根据第二功能的测试用例的配置信息,从所述数据库中获取相应的中间信息,根据获取的中间信息生成第二激励数据并发送;所述被测设计被设置为接收所述第一激励数据,基于所述第一功能处理所述第一激励数据;及接收所述第二激励数据,基于所述第二功能处理所述第二激励数据,输出处理结果;所述参考模型与所述被测设计的功能和端口相同,被设置为接收所述第一激励数据,基于所述第一功能处理所述第一激励数据,将处理得到的中间信息保存至所述数据库;及接收所述第二激励数据,基于所述第二功能处理所述第二激励数据,输出处理结果;所述数据库被配置为保存所述参考模型处理得到的中间信息。2.如权利要求1所述的芯片验证平台,其特征在于:所述芯片包括以太网交换芯片,所述第一功能包括mac地址学习功能,所述第二功能包括mac地址查找功能;所述第一激励数据为第一以太网报文,所述第二激励数据为第二以太网报文;所述中间信息包括与端口绑定的数据结构,每一数据结构包含所述参考模型根据所述第一以太网报文学习得到的mac地址和vlan标签。3.如权利要求2所述的芯片验证平台,其特征在于:所述激励发生器根据所述第一功能的测试用例生成第一激励数据并发送,包括:根据mac地址学习功能的测试用例生成第一以太网报文并发送到所述被测设计的第一端口和所述参考模型的第一端口,所述第一以太网报文的源mac地址为第一mac地址,vlan标签为第一vlan标签;所述参考模型基于所述第一功能处理所述第一激励数据,将处理得到的中间信息保存至所述数据库,包括:基于mac地址学习功能对所述第一以太网报文进行解析,将解析得到的所述第一以太网报文中的第一mac地址和第一vlan标签作为所述中间信息,存储到所述数据库中与所述第一端口绑定的数据结构中。4.如权利要求3所述的芯片验证平台,其特征在于:所述激励发生器根据第二功能的测试用例的配置信息,从所述数据库中获取相应的中间信息,根据获取的中间信息生成第二激励数据并发送,包括:根据mac地址查找功能的测试用例所配置的目的端口,查找所述数据库中与所述目的端口绑定的数据结构,在所述目的端口为第一端口的情况下,生成第二以太网报文并发送到所述被测设计的第二端口和所述参考模型的第二端口,以测试所述被测设计将以太网报文从所述第二端口转发到所述第一端口的能力,其中,所述第二以太网报文中的目的mac地址为所述第一mac地址,vlan标签为所述第一vlan标签。5.如权利要求2或3或4所述的芯片验证平台,其特征在于:所述激励发生器包括三层序列结构及序列发生器;所述三层序列结构包括用于描述生成激励数据的一系列操作的测试序列、工作序列和应用序列;每一测试序列对应于一种功能的一个测试用例,可调用所述工作序列和/或所述
应用序列;每一工作序列对应于芯片的一种功能,可调用所述应用序列和/或其他工作序列;每一应用序列用于基于接口协议完成设定的一个或多个操作;所述序列发生器被设置为通过调用所述测试序列以生成激励数据,所述激励数据包括所述第一激励数据和所述第二激励数据。6.如权利要求5所述的芯片验证平台,其特征在于:所述序列发生器包括与端口一一对应的多个序列发生器,其中的每一序列发生器用于调用对应端口的测试序列以生成对应端口的激励数据;所述对应端口的测试序列包括用于测试mac地址学习功能的第一测试序列,所述第一测试序列用于根据设置的或自动生成的源mac地址和vlan标签,调用设置的工作序列和/或应用序列,生成发给该对应端口的第一以太网报文。7.如权利要求6所述的芯片验证平台,其特征在于:所述对应端口的测试序列还包括用于测试mac地址查找功能的第二测试序列,所述第二测试序列用于根据配置的目的端口,调用对应于mac地址查找功能的工作序列;所述对应于mac地址查找功能的工作序列用于在被调用后,从所数据库中获取与所述目的端口绑定的mac地址和vlan标签,调用用于生成以太网报文的应用序列;所述用于生成以太网报文的应用序列用于在被调用后,生成所述第二以太网报文,所述第二以太网报文中的目的mac地址为与所述目的端口绑定的mac地址,vlan标签为与所述目的端口绑定的vlan标签。8.如权利要求5所述的芯片验证平台,其特征在于:至少部分所述工作序列包含寄存器模型的指针和/或仿真配置类的指针,以通过所述寄存器模型的指针读取寄存器的配置,和/或通过所述仿真配置类的指针读取表项的配置,以根据所述寄存器和/或表项的配置执行生成激励数据的操作。9.如权利要求5所述的芯片验证平台,其特征在于:所述工作序列还包括用于获取覆盖率的工作序列;所述获取覆盖率的工作序列用于从测试后生成的覆盖率数据库获取测试的覆盖率,在所述覆盖率低于设定的覆盖率阈值时,调整产生激励的随机种子,以增加测试用例的覆盖率。10.如权利要求1所述的芯片验证平台,其特征在于:所述芯片验证平台还包括计分板模块,所述计分板模块被设置为将所述被测设计输出的处理结果和所述参考模型输出的处理结果进行比较,在两者相同时,确定所述第二功能的测试用例验证通过。11.一种芯片验证方法,用于对芯片设计进行验证,其特征在于,应用包括激励发生器、被测设计、参考模型和数据库的芯片验证平台,所述参考模型与所述被测设计的功能和端口相同,所述方法包括:所述激励发生器根据第一功能的测试用例生成第一激励数据并发送;所述被测设计接收所述第一激励数据,基于所述第一功能处理所述第一激励数据;所述参考模型接收所述第一激励数据,基于所述第一功能处理所述第一激励数据,将处理得到的中间信息保存至所述数据库;所述激励发生器根据第二功能的测试用例的配置信息,从所述数据库中获取相应的中
间信息,根据获取的中间信息生成第二激励数据并发送;所述被测设计接收所述第二激励数据,基于所述第二功能处理所述第二激励数据,输出处理结果;所述参考模型接收所述第二激励数据,基于所述第二功能处理所述第二激励数据,输出处理结果。12.如权利要求11所述的芯片验证方法,其特征在于:所述芯片包括以太网交换芯片,所述第一功能包括mac地址学习功能,所述第二功能包括mac地址查找功能;所述第一激励数据为第一以太网报文,所述第二激励数据为第二以太网报文;所述中间信息包括与端口绑定的数据结构,每一数据结构包含所述参考模型根据所述第一以太网报文学习得到的mac地址和vlan标签。13.如权利要求12所述的芯片验证方法,其特征在于:所述激励发生器根据所述第一功能的测试用例生成第一激励数据并发送,包括:根据mac地址学习功能的测试用例生成第一以太网报文并发送到所述被测设计的第一端口和所述参考模型的第一端口,所述第一以太网报文的源mac地址为第一mac地址,vlan标签为第一vlan标签;所述参考模型基于所述第一功能处理所述第一激励数据,将处理得到的中间信息保存至所述数据库,包括:基于mac地址学习功能对所述第一以太网报文进行解析,将解析得到的所述第一以太网报文中的第一mac地址和第一vlan标签作为所述中间信息,存储到所述数据库中与所述第一端口绑定的数据结构中;所述激励发生器根据第二功能的测试用例的配置信息,从所述数据库中获取相应的中间信息,根据获取的中间信息生成第二激励数据并发送,包括:根据mac地址查找功能的测试用例所配置的目的端口,查找所述数据库中与所述目的端口绑定的数据结构,在所述目的端口为第一端口的情况下,生成第二以太网报文并发送到所述被测设计的第二端口和所述参考模型的第二端口,以测试所述被测设计将以太网报文从所述第二端口转发到所述第一端口的能力,其中,所述第二以太网报文中的目的mac地址为所述第一mac地址,vlan标签为所述第一vlan标签。14.如权利要求12或13所述的芯片验证方法,其特征在于:所述激励发生器包括三层序列结构及序列发生器;所述三层序列结构包括用于描述生成激励数据的一系列操作的测试序列、工作序列和应用序列;每一测试序列对应于一种功能的一个测试用例,可调用所述工作序列和/或所述应用序列;每一工作序列对应于芯片的一种功能,可调用所述应用序列和/或其他工作序列;每一应用序列用于基于接口协议完成设定的一个或多个操作;所述序列发生器被设置为通过调用所述测试序列以生成激励数据,所述激励数据包括所述第一激励数据和所述第二激励数据。15.如权利要求14所述的芯片验证方法,其特征在于:所述序列发生器包括与端口一一对应的多个序列发生器,其中的每一序列发生器用于调用对应端口的测试序列以生成对应端口的激励数据;所述对应端口的测试序列包括用于测试mac地址学习功能的第一测试序列,所述第一测试序列用于根据设置的或自动生成的源mac地址和vlan标签,调用设置的工作序列和/或
应用序列,生成发给该对应端口的第一以太网报文。16.如权利要求15所述的芯片验证方法,其特征在于:所述对应端口的测试序列还包括用于测试mac地址查找功能的多个第二测试序列;所述根据第二功能的测试用例的配置信息,从所述数据库中获取相应的中间信息,根据获取的中间信息生成第二激励数据并发送,包括:所述第二测试序列根据配置的目的端口,调用对应于mac地址查找功能的工作序列以生成所述第二以太网报文;所述对应于mac地址查找功能的工作序列在被调用后,从所数据库中获取与所述目的端口绑定的mac地址和vlan标签,调用用于生成以太网报文的应用序列;所述用于生成以太网报文的应用序列在被调用后,生成所述第二以太网报文,所述第二以太网报文中的目的mac地址为与所述目的端口绑定的mac地址,vlan标签为与所述目的端口绑定的vlan标签。17.一种芯片验证装置,包括处理器和保存有计算机程序的存储器,其特征在于,所述处理器能够读取所述计算机程序,执行如权利要求11至16任一所述的芯片验证方法。

技术总结
一种芯片验证平台、方法和装置,应用于芯片设计验证,该验证平台包括:激励发生器、被测设计、参考模型和数据库。通过激励发生器生成激励数据,数据库中记录中间信息,被测设计和参考模型接收和处理激励数据,另外,参考模型还用于将处理激励数据得到的中间信息保存至数据库。激励发生器、被测设计、参考模型和数据库相互配合,能够实现自动构造激励数据,智能化的产生激励。化的产生激励。化的产生激励。


技术研发人员:魏刚 唐云霁 杨锐
受保护的技术使用者:北京晟芯网络科技有限公司
技术研发日:2023.05.08
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐