一种用于仿真的通用芯片验证装置的制作方法

文档序号:31661123发布日期:2022-09-27 23:05阅读:51来源:国知局
一种用于仿真的通用芯片验证装置的制作方法

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 包括系统序列发生器、配置模块、第一序列发生器、第二序列发生器、第一序列驱动模块、第二序列驱动模块、m个标准总线协议模块{if1,if2,

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

ifm}和非标准总线协议模块,其中,ifm为第m个标准总线协议模块,m的取值范围为1到m;所述装置通过m个标准总线协议模块和非标准总线协议模块中的其中一个接口与待测设计连接;具体的,标准总线协议模块和非标准总线协议模块设置为参数化systemverilog接口,具体采用systemverilog中的bind语法建立验证ip与待测设计的互联。需要说明的是,所述装置支持标准总线协议和非标准总线协议,实际实例化验证ip时仅针对实例对应的一种协议进行实例化。所述标准总线协议包括axi总线协议、apb总线协议,pcie总线协议、sata总线协议和usb总线协议。非标准总线协议根据具体应用需求设置,在此不再赘述。
18.所述配置模块用于配置激励序列项和协议的映射关系,配置模块基于激励序列项能够确定对应的协议。配置模块还用于支持所述装置所有功能的灵活配置。
19.所述系统序列发生器用于获取激励序列项(sequence item)并通过所述配置模块确定所述激励序列项所对应的协议,若为标准总线协议,则将所述激励序列项发送给所述
第一序列发生器,若为非标准总线协议,则将所述激励序列项发送给所述第二序列发生器。需要说明的是,本发明实施例所述协议均为总线协议,基于验证ip与待测设计之间的总线协议和互联关系,生成对应的激励序列项(sequence),所述系统序列发生器从所述对应的激励序列项中获取对应的激励序列项激励序列项。激励序列项为事务数据(transaction),每一激励序列项对应一组事务数据的域(transaction field),对应一组总线接口信号。
20.所述第一序列发生器用于将标准总线协议激励序列项发送给第一序列驱动模块。所述第二序列发生器用于将非标准总线协议激励序列项发送给第二序列驱动模块。
21.所述第一序列驱动模块用于缓存标准总线协议激励序列项,并按照标准总线协议激励序列项所对应的协议,将标准总线协议激励序列项分发给对应的标准总线协议模块。所述第二序列驱动模块用于缓存非标准总线协议激励序列项,并将非标准总线协议激励序列项拼接成向量,发送给非标准总线协议模块,所述向量为变长向量,向量长度与对应的非标准总线协议相关。具体可以在第一序列驱动模块和第二序列驱动模块设置先进先出队列(first input first output,简称fifo),从而可以实现处理连续背靠背(back2back)的时序。
22.所述标准总线协议模块用于将对应的标准总线协议的激励序列项发送给所述待测设计;所述非标准总线协议模块用于将对应的非标准总线协议的激励序列项发送给所述待测设计。
23.如图2所示示例,ifm包括第m个标准总线协议组件um和第m个标准总线协议接口单元ifm,um用于包括驱动器udm和监视器umm, udm用于根据标准总线协议激励序列项对应的总线接口信号将标准总线协议激励序列项转换为对应的总线接口信号,并通过ifm发送给所述待测设计;umm用于从ifm获取um实际发送信号记录。
24.如图2所示示例,所述非标准总线协议模块包括时钟组件、复位组件、控制向量组件、数据向量组件、时钟接口单元、复位接口单元、控制向量接口单元、输入数据向量接口单元和输出数据向量接口单元,其中,所述时钟组件用于生成时钟信号,并通过时钟接口单元发送给待测设计;时钟接口单元可以配置为不间断的时钟信号,也可以配置为门控时钟。通过配置所述时钟组件可以产生多种时钟相关特性,例如频率、占空比、抖动等。
25.所述复位组件用于生成同步或异步复位信号,并通过复位接口单元发送给待测设计;非标准总线协议模块可以被一个时钟接口单元对应的时钟信号和复位接口单元对应的复位信号影响,根据接口模块和待测设计具体的连接方式,可以确定复位接口单元具体连接的reset信号线,可以是一根,也可以是多根,复位接口单元对应的复位信号基于所连接的一根或多根复位信号线共同确定。需要说明的是,待测设计对应的一些数据线,在验证ip与待测设计交互时,复位信号一定要通过时钟信号同步,才能驱动和访问待测设计,因此对于任意一种非标准总线协议,验证ip中一定需要设置时钟接口单元和复位接口单元。需要说明的是,复位信号支持即插即用的上电复位(por reset)和中途发生的复位(inflight reset)。
26.作为一种实施例,所述第二序列驱动模块还用于按照非标准总线协议激励序列项所对应的总线接口信号将所述非标准总线协议激励序列项分发给控制向量组件和/或数据向量组件;所述第二序列驱动模块基于激励序列项对应的总线接口信号与能够确定激励序
列项为控制信号还是数据,从而分发给对应的控制向量组件和/或数据向量组件,控制向量组件和/或数据向量组件再通过控制向量接口单元、输入数据向量接口单元或输出数据向量接口单元,基于对应的总线接口信号线发送给待测设计。
27.控制信号具体包括有效信号或握手信号(例如vaild、ack、ready等信号)和/或时钟使能信号(例如ck_gate信号)等与数据配合,实现控制。但是,不同的总线协议的控制信号、数据的宽度通常是不相同的,为了让所述装置的验证ip适用于所有的总线协议,所述控制向量组件用于将接收到的非标准总线协议激励序列项拼接为控制向量,通过控制向量接口单元发送给待测设计;所述数据向量组件用于将接收到的非标准总线协议激励序列项拼接为输入数据向量,通过所述输入数据向量接口单元发送给待测设计;还用于通过所述输出数据向量接口单元,接收所述待测设计发送的响应数据,并拼接为输出数据向量;其中,控制向量、输入数据向量和输出数据向量均为变长向量,变长向量即为不定长向量,向量长度与总线协议相关。具体的,可以采用拼接符进行向量拼接,不同的非标准总线协议对应的总线接口信号数量和信号宽度均可能不同,本发明实施例通过向量拼接,使得无论哪种非标准总线协议,控制向量接口单元、输入数据向量接口单元和输出数据向量接口单元统一以向量形式进行传输,从而可以适用于不同的非标准总线协议。控制向量接口单元还可设置内建的协议时序检查模组,用于检查协议时序。
28.需要说明的是,所述验证ip除了可以用于芯片验证之外,还可以用作时钟发生器和复位发生器。
29.作为一种实施例,所述时钟组件还用于监测时钟接口单元,生成时钟接口单元实际发送的时钟信号记录;所述复位组件还用于监测复位接口单元,并生成复位接口单元实际发送的复位信号记录;所述控制向量组件还用于监测控制向量接口单元,并生成控制向量接口实际发送的控制向量记录;所述数据向量组件还用于监测输入数据向量接口单元和输出数据向量接口单元,生成输入数据向量接口单元和输出数据向量接口单元实际传输的输入数据向量记录和输出数据向量记录。
30.作为一种实施例,所述装置还包括验证组件,验证组件具体可以为计分板(scoreboard)、参考模型(reference model)或比较器(checker),现有的计分板、参考模型或比较器应用为本发明所述的验证组件时全部落入本发明保护范围之内,计分板、参考模型或比较器的具体结构在此不再赘述。用于从umm、非标准总线协议模块获取um实际发送信号记录、时钟接口单元实际发送的时钟信号记录、复位接口单元实际发送的复位信号记录、控制向量接口实际发送的控制向量记录、输入数据向量接口单元和输出数据向量接口单元实际传输的输入数据向量记录和输出数据向量记录对所述待测设计进行验证。
31.当验证组件为计分板时,需要将验证ip内的组件监视器对应的记录发送给计分板,待测设计的输出也需要将对应的输出数据发送给计分板进行比对,计分板通常设置在验证平台(testbench),这便使得在建立验证平台时,需要设置计分板实例,验证ip的输出实例,待测设计的输出实例,以及建立计分板实例、验证ip的输出实例、待测设计的输出实例之间的互联,非常复杂。基于此,本发明实施例对此进行了改进,所述验证组件为位于验证ip内的内嵌计分板,内嵌计分板可以顺序(in order)或乱序(out of order)排列,用于支持动态的内建数据比对,所述内嵌计分板包括第一接口和第二接口,所述标准总线协议组件、时钟组件、复位组件、控制向量组件和/或数据向量组件通过所述第一接口将对应的
记录传输给所述内嵌计分板,所述第二接口用于和验证ip外部的参考模型连接,获取所述参考模型输出的数据,与所述第一接口获取的记录进行比较。通过此设计,无需在验证平台中设置计分板,且减少了互联关系,直接将计分板内嵌在验证ip中,简化了验证平台的搭建过程,提高了验证效率。
32.作为一种实施例,所述时钟组件、复位组件、控制向量组件和/或数据向量组件中均包括对应的组件驱动器和组件监视器,组件驱动器用于将组件中接收到的激励序列项转换为对应的总线接口信号,通过对应的接口单元发送给待测设计;组件驱动器发出的信号可能成功也可能失败,组件监视器用于从对应的接口单元获取对应的记录,记录对应接口单元实际发出的信号。所述标准总线协议组件、时钟组件、复位组件、控制向量组件和/或数据向量组件具体可以设置为uvm的uvc(universial verification component)组件。
33.作为一种实施例,所述验证ip还包括系统监视器,与umm、所述时钟组件、复位组件、控制向量组件和数据向量组件中的组件监视器中的至少一个相连接,用于从umm、对应组件监视器获取的记录。
34.所述验证ip分为应用层和物理层,系统序列发生器、配置模块、第一序列发生器、第二序列发生器、第一序列驱动模块、第二序列驱动模块设置在所述应用层,用户直接通过应用层与所述装置进行交互,具体的,用户直接通过系统序列发生器获取激励序列项。所m个标准总线协议模块{if1,if2,

ifm}和非标准总线协议模块设置在所述物理层。用户无需直接从物理层获取数据,直接通过应用层设置对应的激励序列项供序列发生器使用,直接通过应用层的系统监视器获取每一接口单元实际才发出信号的记录,提高了交互效率,提升了用户体验。
35.作为一种实施例,所述标准总线协议模块还用于基于对应的标准总线协议对所述标准总线协议激励序列项进行时序控制;所述第二序列驱动模块还用于基于对应的非标准总线协议对所述非标准总线协议激励序列项进行时序控制。需要说明的是,标准总线协议的时序控制可以直接在标准总线协议模块设置,因为标准总线协议时序控制较为复杂,例如axi总线对应五个通道,如果全部放在第一序列驱动模块,显然会增加时序控制的难度。而非标准总线协议的时序控制通常可以设计的较为简单,因此可以直接在第一序列驱动模块执行时序控制即可。
36.验证ip可能为从设备(slave 或 target 或 completer)验证ip,也可能为主设备(master 或 initiator 或 originator)验证ip,具体取决于对应的待测设计,若待测设计为从设备,则验证ip为主设备,若待测设计为主设备,验证ip为从设备,当验证ip为从设备时,所述验证ip还包括存储器,所述装置还包括存储器模型,所述存储器设置在所述应用层,所述存储器和所述存储器模型直接编程接口dpi(direct programming interface)进行交互,其中,存储器可以为systemverilog存储器和存储器模型可以为c++模型。作为一种实施例,所述装置还包括寄存器抽象模型,寄存器抽象模型(register abstract layer,简称ral)是对待测设计连接的寄存器的抽象,所述验证ip为基于通用验证方法学 (universal verification methodology,简称uvm)生成的验证ip,所述验证ip中还包括适配器(adapter)和预测器(predictor),所述适配器为总线协议对应的适配器,即基于对应的总线协议配置对应的适配器。所述适配器用于从所述寄存器抽象模型获取寄存器激励序列项,将寄存器激励序列项转换为总线激励序列项,再通过序列驱动模块分发给对应的组
件;所述预测器用于更新所述寄存器抽象模型。本发明实施例将适配器和预测器设置在验证ip内,降低了验证过程中,访问寄存器抽象模型的复杂度,提高了验证效率。
37.作为一种实施例,待测设计通过至少一个总线接口与待测设计的兄弟组成模块互联,每一总线接口对应设置一个所述验证ip,每一总线接口对应一个总线类型,每一总线类型对应一个总线协议和总线接口重组结构,每一总线接口重组结构包括多个总线接口信号,每一总线接口信号包括信号方向、信号宽度、信号复位值和信号默认值,基于总线接口重组结构生成对应的激励序列项,每一总线接口信号对应一个激励序列项,所述序列发生器从所述对应的激励序列项中获取对应的激励序列项激励序列项。
38.作为一种实施例,所述装置还可以包括用户提供的内建的序列数据库,供用户直接调用来向系统序列发生器发送激励序列项。所述装置还可以在标准总线协议模块和非标准总线协议接口模块设置断言(sva),来检测协议的时序,从而保证协议时序的完成性。验证ip中还可设置一些基本的内置检测器,进行检测,当发现错误时及时报错。
39.本发明实施例所述的芯片具体可实现为层级设置的k1个组成模块(mod1,mod2,...,mod
k1
)和k2个原子单元(au1,at2,...,at
k2
),k1》=1,k2》=1,原子单元存在预先编写好的rtl代码。
40.顶层组成模块(芯片)不具有父组成模块,原子单元不具有子组成模块或子原子单元;除顶层组成模块之外的任意组成模块mod
i1
和任意原子单元au
i2
均仅具有一个父组成模块,i1的取值为1到k1,i2的取值为1到k2。所述父组成模块为包括mod
i1
和au
i2
的,且比mod
i1
和au
i2
高一个层级的组成模块。
41.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)
)。
42.芯片还包括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}。
43.总线接口描述重构库包括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总线协议、pcie总线协议、hbm总线协议、sata总线协议、usb总线协议等标准总线协议,也可以是非标准的自定义总线协议,优选的,本发明所述装置主要针对非标准的自定义总线协议,标准总线协议可以基于现有技术中对应的验证ip来。所述信号方向可被设置为输入方向(input)、输出方向(output)和双向方向(inout)。所述信号宽度wid(i3,i4)为信号sig
i3i4
所使用的信号线(wire)的数量。当将其中一个组成模块作为
待测设计进行验证时,需要为每一外部总线接口设置一个对应的芯片验证ip,来代替待测设计对应的兄弟组成模块与待测设计交互,进行验证。
44.本发明实施例通过设置通用的芯片验证装置,支持所有标准总线协议和非标准总线协议,在芯片验证过程中直接基于总线接口对应的协议实例化验证ip,且能实现统一修改和升级,提高了芯片验证的效率和准确性,减小了出错风险。
45.以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1