一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种用于仿真的非标准总线协议的芯片验证装置的制作方法

2022-11-16 06:46:02 来源:中国专利 TAG:


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,工作量大,且易出错,导致验证效率低,准确性也无法保证。


技术实现要素:

3.本发明目的在于,提供一种用于仿真的非标准总线协议的芯片验证装置,能够适用于所有非标准总线协议,提高了芯片验证的效率和准确性。
4.本发明提供了一种用于仿真的非标准总线协议的芯片验证装置,应用于芯片验证的仿真过程,所述装置包括验证ip,所述验证ip包括序列发生器、序列驱动模块、时钟组件、复位组件、控制向量组件、数据向量组件和接口模块,所述装置通过所述接口模块与待测设计连接,所述接口模块包括时钟接口单元、复位接口单元、控制向量接口单元、输入数据向量接口单元和输出数据向量接口单元。
5.所述序列发生器用于获取激励序列项,并发送给序列驱动模块。
6.所述序列驱动模块用于缓存所述激励序列项,并按照激励序列项所对应的总线接口信号将所述激励序列项分发给控制向量组件和/或数据向量组件。
7.所述时钟组件用于生成时钟信号,并通过时钟接口单元发送给待测设计。
8.所述复位组件用于生成同步或异步复位信号,并通过复位接口单元发送给待测设计。
9.所述控制向量组件用于将接收到的激励序列项拼接为控制向量,通过控制向量接口单元发送给待测设计。
10.所述数据向量组件用于将接收到的激励序列项拼接为输入数据向量,通过所述输入数据向量接口单元发送给待测设计;还用于通过所述输出数据向量接口单元,接收所述待测设计发送的响应数据,并拼接为输出数据向量。
11.其中,控制向量、输入数据向量和输出数据向量均为变长向量,向量长度与总线协议相关。
12.本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种用于仿真的非标准总线协议的芯片验证装置可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有下列优点:
13.本发明通过设置通用的用于仿真的非标准总线协议的芯片验证装置,适配所有非标准总线协议,在芯片验证过程中直接基于用于仿真的非标准总线协议的芯片验证装置实例化验证ip,提高了芯片验证的效率和准确性。
14.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
15.图1为本发明一实施例提供的用于仿真的非标准总线协议的芯片验证装置示意图;
16.图2为本发明另一实施例提供的用于仿真的非标准总线协议的芯片验证装置示意图。
具体实施方式
17.为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种用于仿真的非标准总线协议的芯片验证装置的具体实施方式及其功效,详细说明如后。
18.本发明实施例提供了一种用于仿真的非标准总线协议的芯片验证装置,如图1所示,应用于仿真(simulation)过程,所述装置包括验证ip(verification ip),所述验证ip包括序列发生器、序列驱动模块、时钟组件、复位组件、控制向量组件、数据向量组件和接口模块。所述装置通过所述接口模块与待测设计连接,具体的,所述接口模块设置为systemverilog接口,具体采用参数化systemverilog中的bind语法建立验证ip与待测设计的互联。
19.所述接口模块包括时钟接口单元、复位接口单元、控制向量接口单元、输入数据向量接口单元和输出数据向量接口单元。
20.所述序列发生器用于获取激励序列项(sequence item),并发送给序列驱动模块,需要说明的是,基于验证ip与待测设计之间的总线协议和互联关系,生成对应的激励序列(sequence),所述序列发生器从所述对应的激励序列中获取对应的激励序列,激励序列项为事务数据(transaction),每一激励序列项对应一组事务数据的域(transaction field),对应一组总线接口信号。
21.所述序列驱动模块用于缓存所述激励序列项,并按照激励序列项所对应的总线接口信号将所述激励序列项分发给控制向量组件和/或数据向量组件;具体可以在所述序列驱动模块设置先进先出队列(first input first output,简称fifo),从而可以实现处理连续背靠背(back2back)的时序。基于激励序列项对应的总线接口信号与能够确定激励序
列项为控制信号还是数据,从而分发给对应的控制向量组件和/或数据向量组件,控制向量组件和/或数据向量组件再通过控制向量接口单元、输入数据向量接口单元或输出数据向量接口单元,基于对应的总线接口信号线发送给待测设计。
22.所述时钟组件用于生成时钟信号,并通过时钟接口单元发送给待测设计;时钟接口单元可以配置为不间断的时钟信号,也可以配置为门控时钟。通过配置所述时钟组件可以产生多种时钟相关特性,例如频率、占空比、抖动等。
23.所述复位组件用于生成同步或异步复位信号,并通过复位接口单元发送给待测设计,并生成复位接口单元实际发送的复位信号记录;一个接口模块可以被一个时钟接口单元对应的时钟信号和复位接口单元对应的复位信号影响,根据接口模块和待测设计具体的连接方式,可以确定复位接口单元具体连接的reset信号线,可以是一根,也可以是多根,复位接口单元对应的复位信号基于所连接的一根或多根复位信号线共同确定。需要说明的是,待测设计对应的一些数据线,在验证ip与待测设计交互时,复位信号一定要通过时钟信号同步,才能驱动和访问待测设计,因此对于任意一种总线协议,验证ip中一定需要设置时钟接口单元和复位接口单元。需要说明的是,复位信号支持即插即用的上电复位(por reset)和中途发生的复位(inflight reset)。
24.控制信号具体包括有效信号或握手信号(例如vaild、ack、ready等信号)和/或时钟使能信号(例如ck_gate信号)等,与数据配合,实现控制。但是,不同的总线协议的控制信号、数据的宽度通常是不相同的,为了让所述装置的验证ip适用于所有的总线协议,所述控制向量组件用于将接收到的激励序列项拼接为控制向量,通过控制向量接口单元发送给待测设计,并生成控制向量接口实际发送的控制向量记录;所述数据向量组件用于将接收到的激励序列项拼接为输入数据向量,通过所述输入数据向量接口单元发送给待测设计;还用于通过所述输出数据向量接口单元,接收所述待测设计发送的响应数据,并拼接为输出数据向量;还用于生成输入数据向量接口单元和输出数据向量接口单元实际传输的输入数据向量记录和输出数据向量记录;其中,控制向量、输入数据向量和输出数据向量均为变长向量,变长向量即为不定长向量,向量长度与总线协议相关。具体的,可以采用拼接符进行向量拼接,不同的总线协议对应的总线接口信号数量和信号宽度均可能不同,本发明实施例通过向量拼接,使得无论哪种总线协议,控制向量接口单元、输入数据向量接口单元和输出数据向量接口单元统一以向量形式进行传输,从而可以适用于不同的非标准总线协议。控制向量接口单元还可设置内建的协议时序检查模组,用于检查协议时序。
25.需要说明的是,所述验证ip除了可以用于芯片验证之外,还可以用作时钟发生器和复位发生器。
26.作为一种实施例,如图2所示,所述装置还包括验证组件,验证组件具体可以为计分板(scoreboard)、参考模型(reference model)或比较器(checker),现有的计分板、参考模型或比较器应用为本发明所述的验证组件时全部落入本发明保护范围之内,计分板、参考模型或比较器的具体结构在此不再赘述。所述时钟组件还用于监测时钟接口单元,生成时钟接口单元实际发送的时钟信号记录,发送给所述验证组件;所述复位组件还用于监测复位接口单元,并生成复位接口单元实际发送的复位信号记录,发送给所述验证组件。所述控制向量组件还用于监测控制向量接口单元,并生成控制向量接口实际发送的控制向量记录,发送给所述验证组件。所述数据向量组件还用于监测输入数据向量接口单元和输出数
据向量接口单元,生成输入数据向量接口单元和输出数据向量接口单元实际传输的输入数据向量记录和输出数据向量记录,发送给所述验证组件。所述验证组件,用于基于所述时钟信号记录、复位信号记录、控制向量记录、输入数据向量记录和输出数据向量记录对所述待测设计进行验证。
27.作为一种实施例,所述时钟组件、复位组件、控制向量组件和/或数据向量组件中均包括对应的组件驱动器和组件监视器,组件驱动器用于将组件中接收到的激励序列项转换为对应的总线接口信号,通过对应的接口单元发送给待测设计;组件驱动器发出的信号可能成功也可能失败,组件监视器用于从对应的接口单元获取对应的记录,记录对应接口单元实际发出的信号。所述时钟组件、复位组件、控制向量组件和/或数据向量组件具体可以设置为uvm的uvc(universial verification component)组件。
28.作为一种实施例,如图2所示,所述验证ip还包括系统监视器,与所述时钟组件、复位组件、控制向量组件和数据向量组件中的组件监视器中的至少一个相连接,用于获取所有组件监视器获取的记录。所述验证ip分为应用层和物理层,所述序列发生器、序列驱动模块、系统监视器设置在所述应用层,用户直接通过应用层与所述装置进行交互。所述时钟组件、复位组件、控制向量组件、数据向量组件和接口模块设置在所述物理层。用户无需直接从物理层获取数据,直接通过应用层设置对应的激励序列供序列发生器使用,直接通过应用层的系统监视器获取每一接口单元实际才发出信号的记录,提高了交互效率,提升了用户体验。
29.验证ip可能为从设备(slave或target或completer)验证ip,也可能为主设备(master或initiator或originator)验证ip,具体取决于对应的待测设计,若待测设计为从设备,则验证ip为主设备,若待测设计为主设备,验证ip为从设备,当验证ip为从设备时,所述验证ip还包括存储器,所述装置还包括存储器模型,所述存储器设置在所述应用层,所述存储器和所述存储器模型直接编程接口dpi(direct programming interface)进行交互,其中,存储器可以为systemverilog存储器和存储器模型可以为c 模型。
30.当验证组件为计分板时,需要将验证ip内的组件监视器对应的记录发送给计分板,待测设计的输出也需要将对应的输出数据发送给计分板进行比对,计分板通常设置在验证平台(testbench),这便使得在建立验证平台时,需要设置计分板实例,验证ip的输出实例,待测设计的输出实例,以及建立计分板实例、验证ip的输出实例、待测设计的输出实例之间的互联,非常复杂。基于此,本发明实施例对此进行了改进,所述验证组件为位于验证ip内的内嵌计分板,内嵌计分板可以顺序(in order)或乱序(out of order)排列,用于支持动态的内建数据比对,所述内嵌计分板包括第一接口和第二接口,所述时钟组件、复位组件、控制向量组件和/或数据向量组件通过所述第一接口将对应的记录传输给所述内嵌计分板,所述第二接口用于和验证ip外部的参考模型连接,获取所述参考模型输出的数据,与所述第一接口获取的记录进行比较。通过此设计,无需在验证平台中设置计分板,且减少了互联关系,直接将计分板内嵌在验证ip中,简化了验证平台的搭建过程,提高了验证效率。
31.所述序列驱动模块还用于基于所述总线协议对所述激励序列项进行时序控制。优选的,本发明所述装置对应的所述总线协议为非标准的自定义总线协议。但可以理解的是,标准的总线协议也可以适用,但也可以直接采用现有的标准总线协议对应的验证ip。
32.作为一种实施例,所述装置还包括配置模块,用于支持所述装置所有功能的灵活配置。
33.作为一种实施例,所述装置还包括寄存器抽象模型,寄存器抽象模型(register abstract layer,简称ral)是对待测设计连接的寄存器的抽象,所述验证ip为基于通用验证方法学(universal verification methodology,简称uvm)生成的验证ip,所述验证ip中还包括适配器(adapter)和预测器(predictor),所述适配器为总线协议对应的适配器,即基于对应的总线协议配置对应的适配器。所述适配器用于从所述寄存器抽象模型获取寄存器激励序列项,将寄存器激励序列项转换为总线激励序列项,再通过序列驱动模块分发给对应的组件;所述预测器用于更新所述寄存器抽象模型。本发明实施例将适配器和预测器设置在验证ip内,降低了验证过程中,访问寄存器抽象模型的复杂度,提高了验证效率。
34.作为一种实施例,待测设计通过至少一个总线接口与待测设计的兄弟组成模块互联,每一总线接口对应设置一个所述验证ip,每一总线接口对应一个总线类型,每一总线类型对应一个总线协议和总线接口重组结构,每一总线接口重组结构包括多个总线接口信号,每一总线接口信号包括信号方向、信号宽度、信号复位值和信号默认值,基于总线接口重组结构生成对应的激励序列,每一总线接口信号对应一个激励序列项,所述序列发生器从所述对应的激励序列中获取对应的激励序列。
35.具体的,本发明实施例所述的芯片实现为层级设置的k1个组成模块(mod1,mod2,...,mod
k1
)和k2个原子单元(au1,at2,...,at
k2
),k1》=1,k2》=1,原子单元存在预先编写好的rtl代码。
36.顶层组成模块(芯片)不具有父组成模块,原子单元不具有子组成模块或子原子单元;除顶层组成模块之外的任意组成模块mod
i1
和任意原子单元au
i2
均仅具有一个父组成模块,i1的取值为1到k1,i2的取值为1到k2。所述父组成模块为包括mod
i1
和au
i2
的,且比mod
i1
和au
i2
高一个层级的组成模块。
37.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)
)。
38.芯片还包括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}。
39.总线接口描述重构库包括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,来代替待测设计对应的兄弟组成模块与待测设计交互,进行验证。
40.本发明所述装置通过设置通用的用于仿真的非标准总线协议的芯片验证装置,适配所有非标准总线协议,在芯片验证过程中直接基于用于仿真的非标准总线协议的芯片验证装置实例化验证ip,提高了芯片验证的效率和准确性。
41.以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献