一种用于硬件加速的通用芯片验证装置的制作方法

文档序号:32205746发布日期:2022-11-16 04:35阅读:37来源:国知局
一种用于硬件加速的通用芯片验证装置的制作方法

1.本发明涉及芯片验证技术领域,尤其涉及一种用于硬件加速的通用芯片验证装置。


背景技术:

2.在芯片验证过程中,通常需要设置验证ip(verification intellectual property,简称vip)来代替与待测设计(design under test,简称dut)相连的模块,通过验证ip与dut进行交互,来对dut进行验证。待测设计可以通过多种不同的协议与模块互联,每一种协议均对应一种类型的验证ip。待测设计与模块互联可以通过标准总线协议互联,标准总线协议包括amba(arm microcontroller bus architecure)、pci-express(peripheral component interconnect express)等总线协议。还可以通过多种自定义的非标准总线协议互联。现有技术中存在标准总线协议对应的验证ip,但非标准总线协议对应的验证ip需要针对每一种非标准总线协议逐一设计,随着芯片设计规模越来越大,涉及到的非标准总线协议总线也越来越多,如果为每一非标准总线协议逐个设置一种验证ip,验证工作量巨大,验证效率低。此外,每一标准总线协议和非标准总线协议的总线均分别设置对应的验证ip,设计复杂,且一旦出现设计更改,也需要逐一更改对应的验证ip,工作量大,且易出错,导致验证效率低,准确性也无法保证。


技术实现要素:

3.本发明目的在于,提供一种用于硬件加速的通用芯片验证装置,提高了芯片验证的效率和准确性。
4.本发明提供一种用于硬件加速的通用芯片验证装置,应用于芯片验证的硬件加速过程,包括第一验证ip和第二验证ip,所述第一验证ip包括系统序列发生器、配置模块、第一序列发生器、第二序列发生器、第一序列驱动模块、第二序列驱动模块、m个第一标准总线协议模块{if1,if2,

ifm}和第一非标准总线协议模块;所述第二验证ip包括m个第二标准总线协议模块{ie1,ie2,

ifm}和第二非标准总线协议模块,其中,所述第一验证ip不可综合;所述第二验证ip可综合;ifm为第m个第一标准总线协议模块、iem为第m个第二标准总线协议模块;ifm和iem之间、第一非标准总线协议模块和第二标准总线协议模块之间均通过转换接口连接,所述装置通过m个第二标准总线协议模块和非标准总线协议模块中的其中一个接口与待测设计连接。
5.所述配置模块用于配置激励序列项和协议的映射关系。
6.所述系统序列发生器用于获取激励序列项并通过所述配置模块确定所述激励序列项所对应的协议,若为标准总线协议,则将所述激励序列项发送给所述第一序列发生器,若为非标准总线协议,则将所述激励序列项发送给所述第二序列发生器。
7.所述第一序列发生器用于将标准总线协议激励序列项发送给第一序列驱动模块。
8.所述第二序列发生器用于将非标准总线协议激励序列项发送给第二序列驱动模
块。
9.所述第一序列驱动模块用于缓存标准总线协议激励序列项,并按照标准总线协议激励序列项所对应的协议,将标准总线协议激励序列项分发给对应的第一标准总线协议模块。
10.所述第二序列驱动模块用于缓存非标准总线协议激励序列项,并将非标准总线协议激励序列项拼接成向量,发送给第一非标准总线协议模块,所述向量为变长向量,向量长度与对应的非标准总线协议相关。
11.所述第一标准总线协议模块用于通过对应的转换接口将标准总线协议激励序列项转换为标准总线协议结构体,发送给第二标准总线协议模块。
12.所述第二标准总线协议模块用于将标准总线协议结构体发送给所述待测设计。
13.所述第一非标准总线协议模块用于通过对应的转换接口将非标准总线协议的激励序列项转换为非标准总线协议结构体,发送给第二非标准总线协议模块。
14.所述第二非标准总线协议模块用于将非标准总线协议结构体发送给所述待测设计。
15.本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种用于硬件加速的通用芯片验证装置可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有下列优点:
16.本发明通过设置通用的芯片验证装置,支持所有标准总线协议和非标准总线协议,在芯片验证过程中直接基于总线接口对应的协议实例化验证ip,且能对验证过程进行仿真加速,提高了芯片验证的效率和准确性。
17.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
18.图1为本发明一实施例提供的用于硬件加速的通用芯片验证装置的第一验证ip和第二验证ip示意图;
19.图2为本发明另一实施例提供的用于硬件加速的通用芯片验证装置的第一验证ip和第二验证ip示意图。
具体实施方式
20.为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种用于硬件加速的通用芯片验证装置的具体实施方式及其功效,详细说明如后。
21.本发明实施例提供了一种用于硬件加速的通用芯片验证装置,应用于芯片验证的硬件加速(hardware emulation)过程,如图1所示,包括第一验证ip(verification ip)和第二验证ip,所述第一验证ip包括系统序列发生器、配置模块、第一序列发生器、第二序列发生器、第一序列驱动模块、第二序列驱动模块、m个第一标准总线协议模块{if1,if2,

ifm}和第一非标准总线协议模块;所述第二验证ip包括m个第二标准总线协议模块{ie1,
ie2,

ifm}和第二非标准总线协议模块。其中,所述第一验证ip不可综合;所述第二验证ip可综合(synthesis);ifm为第m个第一标准总线协议模块、iem为第m个第二标准总线协议模块,m的取值范围为1到m;ifm和iem之间、第一非标准总线协议模块和第二标准总线协议模块之间均通过转换接口连接。需要说明的是,第一验证ip中的数据为事务数据(transaction),是不可以综合的,通过转换接口,可以将第一验证ip的事务数据转换为结构体(struct),再传输给第二验证ip,结构体是可以综合的。转换接口也可以将第二验证ip的结构体数据转换为事务数据,再传输给第一验证ip,实现第一验证ip和第二验证ip之间的高效通信,实现对第一验证ip的仿真加速。
22.所述装置通过m个第二标准总线协议模块和非标准总线协议模块中的其中一个接口与待测设计连接。需要说明的是,所述装置支持标准总线协议和非标准总线协议,实际实例化验证ip时仅针对实例对应的一种协议进行实例化。所述标准总线协议包括axi总线协议、ahb总线协议、apb总线协议,pcie总线协议、hbm总线协议、sata总线协议和usb总线协议。非标准总线协议根据具体应用需求设置,在此不再赘述。
23.所述配置模块用于配置激励序列项和协议的映射关系;配置模块基于激励序列项能够确定对应的协议。还用于支持所述装置所有功能的灵活配置。
24.所述系统序列发生器用于获取激励序列项(sequence item)并通过所述配置模块确定所述激励序列项所对应的协议,若为标准总线协议,则将所述激励序列项发送给所述第一序列发生器,若为非标准总线协议,则将所述激励序列项发送给所述第二序列发生器。需要说明的是,本发明实施例所述协议均为总线协议,基于第二验证ip与待测设计之间的总线协议和互联关系,生成对应的激励序列(sequence),所述系统序列发生器从所述对应的激励序列中获取对应的激励序列项。激励序列项为事务数据(transaction),每一激励序列项对应一组事务数据的域(transaction field),对应一组总线接口信号。
25.所述第一序列发生器用于将标准总线协议激励序列项发送给第一序列驱动模块;所述第二序列发生器用于将非标准总线协议激励序列项发送给第二序列驱动模块。所述第一序列驱动模块用于缓存标准总线协议激励序列项,并按照标准总线协议激励序列项所对应的协议,将标准总线协议激励序列项分发给对应的第一标准总线协议模块;所述第二序列驱动模块用于缓存非标准总线协议激励序列项,并将非标准总线协议激励序列项拼接成向量,发送给第一非标准总线协议模块,所述向量为变长向量,向量长度与对应的非标准总线协议相关;具体可以在第一序列驱动模块和第二序列驱动模块设置先进先出队列(first input first output,简称fifo),从而可以实现处理连续的时序。
26.所述第一标准总线协议模块用于通过对应的转换接口将标准总线协议激励序列项转换为标准总线协议结构体,发送给第二标准总线协议模块;所述第二标准总线协议模块用于将标准总线协议结构体发送给所述待测设计。
27.所述第一非标准总线协议模块用于通过对应的转换接口将非标准总线协议的激励序列项转换为非标准总线协议结构体,发送给第二非标准总线协议模块;所述第二非标准总线协议模块用于将非标准总线协议结构体发送给所述待测设计。
28.如图2所示示例,ifm包括第m个第一标准总线协议组件um,um用于包括驱动器udm和监视器umm,udm用于通过对应的转换接口将标准总线协议激励序列项转换为标准总线协议结构体;umm用于获取udm实际通过对应的转换接口发送信号的记录。iem包括第m个第二标准
reset)。作为一种实施例,需要说明的是,时钟组件、复位组件、第一控制向量组件、第一数据向量组件;第二控制向量组件、第二数据向量组件中均包括对应的组件驱动器和组件监视器,第一控制向量组件和第一数据向量组件的组件驱动器用于将组件中接收到的激励序列项转换为对应的向量,第二控制向量组件和第二数据向量组件的组件驱动器用于将对应的向量转换为对应的结构体,得到对应的总线接口信号,通过对应的接口单元发送给待测设计。组件驱动器发出的信号可能成功也可能失败,组件监视器用于从对应的接口单元获取对应的记录,记录对应接口单元、以及第一验证ip和第二验证ip之间的在转换接口实际发出的信号。所述时钟组件、复位组件、第一控制向量组件、第一数据向量组件;第二控制向量组件、第二数据向量组件具体可以设置为uvm的uvc(universial verification component)组件。
34.作为一种实施例,所述时钟组件还用于监测时钟接口单元,生成时钟接口单元实际发送的时钟信号记录结构体;所述复位组件还用于监测复位接口单元,并生成复位接口单元实际发送的复位信号记录结构体。所述第二控制向量组件还用于监测控制向量接口单元,并生成控制向量接口实际发送的控制向量记录结构体,发送给对应的转换接口,转换为控制向量记录。所述第一控制向量组件还用于监测第二控制向量组件对应的转换接口,获取控制向量记录。所述第二数据向量组件还用于监测输入数据向量接口单元和输出数据向量接口单元,生成输入数据向量接口单元和输出数据向量接口单元实际传输的输入数据向量记录结构体和输出数据向量记录结构体,发送给对应的转换接口,转换接口转换为输入数据向量记录和输出数据向量记录。所述第一数据向量组件还用于监测第二数据向量组件对应的转换接口,获取输入数据向量记录和输出数据向量记录。
35.作为一种实施例,时钟组件对应的转换接口用于将时钟信号记录结构体转换为时钟信号记录;复位组件对应的转换接口用于将复位信号记录结构体转换为复位信号记录;第二控制向量对应的转换接口用于将控制向量记录结构体转换为控制向量记录;所述第一控制向量组件还用于监测第二控制向量组件对应的转换接口,获取控制向量记录;第二数据向量对应的转换接口用于将输入数据向量记录结构体和输出数据向量记录结构体转换为输入数据向量记录和输出数据向量记录;所述第一数据向量组件还用于监测第二数据向量组件对应的转换接口,获取输入数据向量记录和输出数据向量记录,所述时钟信号记录、复位信号记录、控制向量记录、输入数据向量记录和输出数据向量记录为事务数据。
36.作为一种实施例,所述第一验证ip还包括验证组件;验证组件具体可以为计分板(scoreboard)、参考模型(reference model)或比较器(checker),现有的计分板、参考模型或比较器应用为本发明所述的验证组件时全部落入本发明保护范围之内,计分板、参考模型或比较器的具体结构在此不再赘述。所述验证组件用于从第一标准总线协议模块或第一非标准总线协议模块获取udm实际通过对应的转换接口发送信号的记录、um实际发送信号记录、时钟信号记录、复位信号记录、控制向量记录、输入数据向量记录和输出数据向量记录对所述待测设计进行验证。
37.作为一种实施例,所述第一验证ip还包括系统监视器,用于获取udm实际通过对应的转换接口发送信号的记录、vm实际发送信号记录、时钟信号记录、复位信号记录、控制向量记录、输入数据向量记录和输出数据向量记录中的至少一个进行呈现。所述装置分为应用层和物理层,所述序列发生器、序列驱动模块和系统监视器设置在所述应用层;用户直接
通过应用层与所述装置进行交互。所述第一控制向量组件、第一数据向量组件、所述第二验证ip包括第二控制向量组件、第二数据向量组件和接口模块设置在所述物理层。用户无需直接从物理层获取数据,直接通过应用层设置对应的激励序列供序列发生器使用,直接通过应用层的系统监视器获取每一接口单元实际才发出信号的记录,提高了交互效率,提升了用户体验。
38.第一验证ip和第二验证ip可能为从设备(slave或target或completer)验证ip,也可能为主设备(master或initiator或originator)验证ip,具体取决于对应的待测设计,若待测设计为从设备,则验证ip为主设备,若待测设计为主设备,验证ip为从设备,当验证ip为从设备时,第一验证ip还包括存储器,所述装置还包括存储器模型,所述存储器设置在所述应用层,所述存储器和所述存储器模型直接编程接口dpi(direct programming interface)进行交互,其中,存储器可以为systemverilog存储器和存储器模型可以为c++模型。
39.当验证组件为计分板时,需要将第一验证ip和第二验证ip内的组件监视器对应的记录发送给计分板,待测设计的输出也需要将对应的输出数据发送给计分板进行比对,计分板通常设置在验证平台(testbench),这便使得在建立验证平台时,需要设置计分板实例,第一验证ip和第二验证ip的输出实例,待测设计的输出实例,以及建立计分板实例、第一验证ip和第二验证ip的输出实例、待测设计的输出实例之间的互联,非常复杂。基于此,本发明实施例对此进行了改进,所述验证组件为位于验证第一验证ip内的内嵌计分板,内嵌计分板可以顺序(in order)或乱序(out of order)排列,用于支持动态的内建数据比对,所述内嵌计分板包括第一接口和第二接口,所述时钟组件、复位组件、控制向量组件或数据向量组件通过所述第一接口将对应的记录传输给所述内嵌计分板,所述第二接口用于和第一验证ip和第二验证ip外部的参考模型连接,获取所述参考模型输出的数据,与所述第一接口获取的记录进行比较。通过此设计,无需在验证平台中设置计分板,且减少了互联关系,直接将计分板内嵌在第一验证ip中,简化了验证平台的搭建过程,提高了验证效率。
40.作为一种实施例,所述标准总线协议模块还用于基于对应的标准总线协议对所述标准总线协议激励序列项进行时序控制;所述第二序列驱动模块还用于基于对应的非标准总线协议对所述非标准总线协议激励序列项进行时序控制。需要说明的是,标准总线协议的时序控制可以直接在标准总线协议模块设置,因为标准总线协议时序控制较为复杂,例如axi总线对应五个通道,如果全部放在第一序列驱动模块,显然会增加时序控制的难度。而非标准总线协议的时序控制通常可以设计的较为简单,因此可以直接在第一序列驱动模块执行时序控制即可。
41.作为一种实施例,所述装置还包括寄存器抽象模型(register abstract layer,简称ral),寄存器抽象模型是对待测设计连接的寄存器的抽象,所述验证ip为基于通用验证方法学(universal verification methodology,简称uvm)生成的验证ip,所述第一验证ip中还包括适配器(adapter)和预测器(predictor),所述适配器为总线协议对应的适配器,即基于对应的总线协议配置对应的适配器。所述适配器用于从所述寄存器抽象模型获取寄存器激励序列项,将寄存器激励序列项转换为总线激励序列项,再通过序列驱动模块分发给对应的组件;所述预测器用于更新所述寄存器抽象模型。本发明实施例将适配器和预测器设置在第一验证ip内,降低了验证过程中,访问寄存器抽象模型的复杂度,提高了验
证效率。
42.作为一种实施例,待测设计通过至少一个总线接口与待测设计的兄弟组成模块互联,每一总线接口对应设置一组第一验证ip和第二验证ip,每一总线接口对应一个总线类型,每一总线类型对应一个总线协议和总线接口重组结构,每一总线接口重组结构包括多个总线接口信号,每一总线接口信号包括信号方向、信号宽度、信号复位值和信号默认值,基于总线接口重组结构生成对应的激励序列,每一总线接口信号对应一个激励序列项,所述序列发生器从所述对应的激励序列中获取对应的激励序列项。
43.具体的,本发明实施例所述的芯片实现为层级设置的k1个组成模块(mod1,mod2,...,mod
k1
)和k2个原子单元(au1,at2,...,at
k2
),k1》=1,k2》=1,原子单元存在预先编写好的rtl代码。
44.顶层组成模块(芯片)不具有父组成模块,原子单元不具有子组成模块或子原子单元;除顶层组成模块之外的任意组成模块mod
i1
和任意原子单元au
i2
均仅具有一个父组成模块,i1的取值为1到k1,i2的取值为1到k2。所述父组成模块为包括mod
i1
和au
i2
的,且比mod
i1
和au
i2
高一个层级的组成模块。
45.mod
i1
包括组成模块唯一标识mid
i1
、与mod
i1
的子组成模块和子原子单元互联的z1(i1)个组成模块内部总线接口(interior interface)列表(ini1,ini2,...,ini
z1(i1)
)、以及与mod
i1
的兄弟组成模块和兄弟原子单元互联的z2(i1)个组成模块外部总线接口(external interface)列表(mexi1,mexi2,...,mexi
z2(i1)
)。
46.芯片还包括k4个设计互联组装diy(design interconnect assembly)=(x1_y1_cmd1,x2_y2_cmd2,......,x
k4
_y
k4
_cmd
k4
)。其中,x
i5
和y
i5
属于{mod1,mod2,...,mod
k1
,au1,au2,...,au
k2
},i5的取值范围为1到k4;x
i5
和y
i5
互为兄弟组成模块或兄弟原子单元,或者x
i5
为y
i5
的父组成模块,或者y
i5
为x
i5
的父组成模块。x
i5
和x
i6
可以相同,也可以不同;y
i5
和y
i6
可以相同,也可以不同;i6的取值范围为1到k4。cmd
i5
属于{idf-id1,idf-id2,...,idf-idk3}。
47.总线接口描述重构库包括k3个预先定义的总线接口重构结构idf(interface description refactor)=(idf1,idf2,...,idf
k3
),k3》=0。其中,idf
i3
包括总线接口唯一标识idf-id
i3
、z4(i3)个总线接口信号(sig
i31
,sig
i32
,...,sig
i3z4(i3)
),sig
i3i4
包括信号方向、信号宽度wid(i3,i4)、复位(reset)值(rst
i3i41
,rst
i3i42
,...,rst
i3i4wid(i3,i4)
)和默认(default)值(def
i3i41
,def
i3i42
,...,def
i3i4wid(i3,i4)
)。i3的取值为1到k3,i4的取值为1到z4(i3),z4(i3)是i3的函数。idf-id
i3
与总线协议类型相关。总线协议类型例如是amba中的axi总线协议、ahb总线协议、apb总线协议、hbm总线协议、pcie总线协议、sata总线协议、usb总线协议等标准总线协议,也可以是非标准的自定义总线协议,优选的,本发明所述装置主要针对非标准的自定义总线协议,标准总线协议可以基于现有技术中对应的验证ip来。所述信号方向可被设置为输入方向(input)、输出方向(output)和双向方向(inout)。所述信号宽度wid(i3,i4)为信号sig
i3i4
所使用的信号线(wire)的数量。当将其中一个组成模块作为待测设计进行验证时,需要为每一外部总线接口设置一个对应的芯片验证ip,来代替待测设计对应的兄弟组成模块与待测设计交互,进行验证。
48.本发明实施例所述装置通过设置通用的芯片验证装置,支持所有标准总线协议和非标准总线协议,在芯片验证过程中直接基于总线接口对应的协议实例化验证ip,且能对验证过程进行仿真加速,提高了芯片验证的效率和准确性。
49.以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1