i3c总线验证方法及验证系统
技术领域
1.本发明涉及数字验证领域,更具体地涉及一种i3c总线验证方法及验证系统。
背景技术:2.目前,随着芯片集成度与复杂度的日益增长,如何把待测设计验证地更完整和高效是一个极大的挑战。i3c总线标准在i2c总线标准的基础上增加了新的功能,例如动态地址分配、带内中断等,并且提供更高的数据速率且兼容i2c设备,因此想要完整地和高效地验证集成i3c总线协议的设计,其难度比传统i2c总线协议的验证更大,因为i2c总线的验证已经有成熟的验证ip,而对于i3c总线协议的验证,现有的技术是通过fpga(现场可编程门列阵)或其他固定设备模拟i3c设备,与待测设计进行通信,将通信结果数据进行验证,而通信的内容一般受设备的限制而内容固定。其中,i3c(improved interintegrated circuit,增强型内嵌集成总线),是mipi联盟在原i2c总线标准基础上制定的一个更快速、低成本、低功耗的、具有更多功能的总线标准。
3.但是,上述现有的技术使用的是fpga或者固定的i3c设备与待测设计进行通信,但是目前各行各业对芯片的需求量特别大,并且各个领域的传感器或其他通信设备种类繁多,依靠固定的i3c设备进行验证很难覆盖各个领域对i3c总线使用的各种情况,缺乏验证的随机性,同时大量的i3c设备需要的成本之高难以估计。若使用fpga模拟i3c设备进行验证,依据不同情况下的代码更替会非常繁琐且容易出错。另外,依靠固定的i3c设备或者fpga模拟i3c设备通常只能验证与待测设计的正常通信,缺乏随机性测试很容易使验证工程师遗漏异常情况下的总线通信,而这些容易被忽视的异常情况由于触发的几率小,正常测试过程中几乎不可能被发现,但实际芯片成品若是发生,其后果往往可能是致命的因此,有必要提供一种改进的i3c总线验证方法及验证系统来克服上述缺陷。
技术实现要素:4.本发明的目的是提供一种i3c总线验证方法及验证系统,本发明的方案使用的uvm通用验证方法学是面向所有数字设计,涵盖了从模块到系统,从asic(专用集成电路)到fpga,以及控制逻辑、数据通路到处理器验证对象的全部场景,验证工程师能够按照具体的设计规格,灵活地改变验证平台的属性,保证验证的完整性和高效性。
5.为实现上述目的,本发明提供了一种i3c总线验证方法,所述方法基于uvm平台实现,其包括如下步骤:
6.a.通过uvm搭建验证平台,构建顶层、中间层及底层的各个组件;
7.b.编写单次测试的测试用例以和待测设计匹配;
8.c.通过eda工具运行测试用例以进行验证测试,并获得验证结果。
9.较佳地,所述通过uvm搭建验证平台具体包括如下步骤:
10.a1.搭建测试项目的最顶层;
11.a2.分别构建顶层、中间层及底层的各个组件;
12.a3.在所述顶层中加入配置文件。
13.较佳地,在所述配置文件中设置自定义的基本参数。
14.较佳地,所述编写单次测试的测试用例步骤中,在测试用例中添加每一项任务对应的序列。
15.较佳地,所述i3c总线验证方法还包括步骤:在测试用例中利用uvm的回调函数机制对序列中输出的数据造错。
16.较佳地,,所述通过eda工具进行验证测试具体包括如下步骤:
17.c11.测试用例启动已添加的序列;
18.c12.根据配置文件里的参数内容产生传输事务单元;
19.c13.将传输事务单元的数据翻译为待测设计兼容的数据格式;
20.c14.将翻译过的数据发送至待测设计,待测设计按照测试用例的设定执行对应功能。
21.较佳地,所述通过eda工具进行验证测试具体包括如下步骤:
22.c21.测试用例启动已添加的序列;
23.c22.根据配置文件里的参数内容产生传输事务单元;
24.c23.根据回调函数内容对传输事务单元的数据进行修改;
25.c24.将传改过的数据翻译为待测设计兼容的数据格式;
26.c25.将翻译过的数据发送至待测设计,待测设计按照测试用例的设定执行对应功能。
27.同时,本发明还提供一种应用于i3c总线验证方法的i3c总线验证系统,所述验证系统基于uvm平台,其包括,n个序列、激励器、总线接口、监视器及计分板;每一个序列内的数据对应一项验证任务,在验证过程中被测试用例调用并根据配置文件的参数产生传输事务单元;所述激励器对传输事务单元的数据翻译成与待测设计兼容的数据格式;所述总线接口分别接收激励器传输的数据与待测设计;所述监视器接收总线接口传输过来的数据,并将数据传输给计分板,计分板将接收到的数据与预测数据进行对比,将验证结果在计分析上显示,n为大于或等于1的自然数。
28.较佳地,所述i3c总线验证系统还包括序列器,所述序列器将传输事务单元从序列里传输至激励器。
29.较佳地,所述激励器还对使用了回调函数的传输事务单元的数据进行造错。
30.与现有技术相比,本发明的i3c总线验证方法及验证系统均基于uvm平台实现,基于uvm验证技术,模拟i3c总线协议中各个总线设备,通过总线接口,与待测设计互相通信,对接口上的所有数据进行监测,实现了验证设计功能是否完善、是否正确的目的;另外,本发明的方案使用的uvm通用验证方法学是面向所有数字设计,涵盖了从模块到系统,从asic(专用集成电路)到fpga,以及控制逻辑、数据通路到处理器验证对象的全部场景,验证工程师能够按照具体的设计规格,灵活地改变验证平台的属性,保证验证的完整性和高效性。
31.通过以下的描述并结合附图,本发明将变得更加清晰,这些附图用于解释本发明的实施例。
附图说明
32.图1为本发明的i3c总线验证方法的流程图。
33.图2为本发明的i3c总线验证方法中搭建验证平台的流程图。
34.图3为本发明的i3c总线验证方法中验证过程的一实施例的流程图。
35.图4为本发明的i3c总线验证方法中验证过程的另一实施例的流程图。
36.图5为本发明的i3c总线验证系统的结构框图。
具体实施方式
37.现在参考附图描述本发明的实施例,附图中类似的元件标号代表类似的元件。如上所述,本发明提供了一种i3c总线验证方法及验证系统,本发明的方案使用的uvm通用验证方法学是面向所有数字设计,涵盖了从模块到系统,从asic(专用集成电路)到fpga,以及控制逻辑、数据通路到处理器验证对象的全部场景,验证工程师能够按照具体的设计规格,灵活地改变验证平台的属性,保证验证的完整性和高效性。
38.本发明的i3c总线验证方法及验证系统均是基于uvm平台实现的,而uvm(universal verification methodology,通用验证方法学)是以systemverilog(一种验证人员使用的编程语言)为基础建立的库,提供一系列的接口,方便验证工程师搭建可重用的具有标准化层次结构(顶层—中间层—底层,这样设计的目的会使验证平台的各个组件所在路径更加清晰)的验证平台;而i3c(improved interintegrated circuit)增强型内嵌集成总线,是mipi联盟在原i2c总线标准基础上制定的一个更快速、低成本、低功耗的、具有更多功能的总线标准。
39.请参考图1,图1为本发明的i3c总线验证方法的流程图。如图所示,本发明的i3c总线验证方法包括如下步骤:
40.步骤s001、通过uvm搭建验证平台,构建顶层、中间层及底层的各个组件;通过本步骤搭建验证平台以为整个验证过程创造验证环境,以保证验证过程的顺利进行。其中,请再结合参考图2,在本步骤中搭建验证平台的具体步骤为:
41.步骤s101、搭建测试项目的最顶层;在本步骤中,所述最顶层是指整个测试项目的最顶层test_top,在所述最顶层实例化(实例化是利用固定格式的代码,操作计算机在物理内存当中开辟一部分空间存储被实例化的事物)待测i3c设计、总线接口、验证环境,以及必要的中间信号声明等,以为后续步骤做准备。
42.步骤s102、分别构建顶层、中间层及底层的各个组件;在本步骤中,通过构建顶层、中间层及底层的各个组件以搭建基于uvm的验证环境;其中,顶层是一个叫env的组件,它用作其他uvm组件的容器,便于验证平台的移植重用,并不承担直接验证待测设计的工作;中间层的组件主要作用是负责数据的产生、传输以及对比检查结果;底层的组件主要用于和待测设计之间进行数据交换。众所周知地,为了能够互相配合完成验证工作,则需要各个组件之间能够实时传递消息,在uvm环境中,一般采用的是tlm(事务级模型)通信,在各个组件之间建立专用的端口来收发消息;也可以使用uvm机制中另一种方式,发送消息的组件将消息内容set(发送)到共享资源区内,接收消息的组件从共享资源区内get(接收)回来。在本发明中,使用可以携带数据的事件触发的方式,这种方式比起tlm通信方式而言,代码量比较小;比起uvm机制的另一种方式而言,不需要知道组件的具体层次和路径。uvm事件是从
systemverilog中的事件发展而来,sv(systemverilog)中的事件本就是用来同步各个进程的,uvm事件不仅能实现sv的事件功能,还能进行数据传输。
43.步骤s103、在所述顶层中加入配置文件;在本步骤中,通过编写配置文件,并添加至顶层中,以方便其它组件使用,所述配置文件中包括验证过程可能用到的各种参数,以使其可以用来验证各种待测设计;另外,在本发明的优先实施方式中,还可以针对不同批次或特定测试要求,也可以在配置文件中设置好自定义的基本参数,以满足不同的测试要求。在本发明中,所述配置文件是基于配置机制来实现的,而所述配置机制主要是指uvm验证平台参数配置;具体地,创建配置组件用来负责配置验证平台的各个参数,依据参数的不同,可以分配验证平台担任不同的i3c总线角色,以此启动不同的序列,与各种各样的待测设计都能进行正常通信。依据参数的不同,可以进行不同的i3c通信类型,可以是i3c广播、动态地址分配、总线配置等ccc(common command code,通用命令代码)命令,可以是带内中断、热插拔等功能验证,也可以是兼容传统i2c设备的i2c通信,从而覆盖i3c协议标准的所有内容;依据参数的不同,可以处于不同的速率模式下,可以是单数据速率模式和高数据速率模式等,还有scl的时钟频率也可以通过配置机制修改,甚至是setup time(建立时间)和hold time(保持时间)等参数;只需要修改参数就能覆盖i3c总线通信的各种各样的正常情况,极大地提高了验证的完整性和高效性。
44.步骤s002、编写单次测试的测试用例以和待测设计匹配;在本步骤中,单次测试的测试用例仅根据当前待测设计进行对应编写,因此也仅应用于当前待测设计;进一步地,在本步骤中,根据待测设计确定待测任务项目(例如,按要求要对待测设计进行哪些地参数的测),在测试用例中添加这些任务所对应的序列,利用uvm的配置机制修改必要参数以和本次验证任务匹配,如总线角色、通信类型、总线速率、时钟频率等;另外,在本步骤中,还可在测试用例中利用uvm的回调函数机制对序列中的最终数据造错,以使本发明可适应其它需要进行造错的情况,从而使得本发明的方案可以覆盖绝大部分i3c协议标准所不允许的非法操作,使用范围更为广泛;另外,回调函数原则上是负责数据被激励器发送到总线接口上之前,可以进行部分修改,以验证平台的复用性,满足不同项目对同一个uvm验证组件的合理使用,在本发明中,可以利用这个可以修改传输事务的特性进行造错,造错的内容包括但不限于数据段造错、开始/结束标志造错、速率模式/时钟频率造错、设备寻址造错等,通过制造错误情况更能验证待测设计在非协议允许情况下的通信策略是否合理,从而协助设计工程师解决设计隐藏的问题,提高了验证的完整性。
45.步骤s003、通过eda工具运行测试用例以进行验证测试,并获得验证结果;在本步骤中,通过eda工具运行测试用例以进行验证测试在本发明中有两种实现方式:
46.其中,请再结合参考图3,如图3所示,方式一包括如下步骤:
47.步骤s311、测试用例启动已添加的序列;在本步骤中,通过启动已添加的序列使对应序列中的数据运行起来,以配合后续步骤的进行;
48.步骤s 312、根据配置文件里的参数内容产生传输事务单元;在本步骤中,被添加的序列根据配置文件里参数内容的要求产生与配置文件里的参数内容对应的传输事务单元,以保证前后数据的一致性;
49.步骤s 313、将传输事务单元的数据翻译为待测设计兼容的数据格式;在本步骤中,通过将传输事务单元的数据翻译为待测设计兼容的数据格式,以使传输事务单元的数
据与待测设计匹配,以保证后续对待测设计进行验证而获得准确的结果;
50.步骤s 314、将翻译过的数据发送至待测设计,待测设计按照测试用例的设定执行对应功能;在本步骤中,将翻译过的数据发送至待测设计,待测设计按照测试用例的设定执行对应功能,以完成验证过程,并最终获得验证结果。
51.另外,请再结合参考图4,如图4所示,方式二包括如下步骤:
52.步骤s321、测试用例启动已添加的序列;
53.步骤s322、根据配置文件里的参数内容产生传输事务单元;
54.步骤s323、根据回调函数内容对传输事务单元的数据进行修改;
55.步骤s324、将传改过的数据翻译为待测设计兼容的数据格式;
56.步骤s325、将翻译过的数据发送至待测设计,待测设计按照测试用例的设定执行对应功能;
57.如上所述,本方式二与方式一的差别在于,增加了步骤根据回调函数内容对传输事务单元的数据进行修改;在本方式二中,根据回调函数内容对传输事务单元的数据进行修改,主要基于在测试用例中利用uvm的回调函数机制对序列中的最终数据造错,在编写单次测试用例的时候,对序列中的数据进行了造错,则在验证过程中也需要相应对数据进行修改,才能使一些特殊的待测设计最后也能得到准确的验证结果。由于本方案二其它均与方式一相同,在此就不再重复描述。
58.如上所述,本发明的i3c总线验证方法,在对待测设计进行验证时,只需根据待测设计的验证要求编写单次测试用例即可正常进行验证,整个验证方法简单易用,而且覆盖范围广泛。
59.相应地,本发明还提供了一种i3c总线验证系统,且该验证系统可应用于上述i3c总线验证方法。请再结合参考图5,图5为本发明的i3c总线验证系统的结构框图。如图5所示,本发明的i3c总线验证系统包括,n个序列、激励器、总线接口、监视器及计分板;每一个序列内的数据对应一项验证任务,在验证过程中被测试用例调用并根据配置文件的参数产生传输事务单元;所述激励器对传输事务单元的数据翻译成与待测设计兼容的数据格式;所述总线接口分别接收激励器传输的数据与待测设计;所述监视器接收总线接口传输过来的数据,并将数据传输给计分板,计分板将接收到的数据与预测数据进行对比,将验证结果在计分析上显示,n为大于或等于1的自然数。另外,作为本发明的优选实施例,所述i3c总线验证系统还包括序列器,所述序列器将传输事务单元从序列里传输至激励器,而所述激励器还对使用了回调函数的传输事务单元的数据进行造错。
60.下面结合图5描述本发明i3c总线验证系统的工作过程:当验证测试开始后,测试用例启动添加好的序列(序列可以是1个或多个,主要看测试用例添加了几个),被启动的序列根据配置文件里的参数内容产生传输事务单元,序列器就将准备好的传输事务单元从序列里转移交到激励器里,激励器对接收到的内容判断是否有回调函数需要执行,若使用了回调函数造错,会根据函数内容对传输事务单元内的数据进行修改,然后根据配置文件里的参数内容将传输事务单元的数据翻译为待测设计兼容的数据格式,最后通过总线接口发送给待测设计,待测设计按照测试用例的设定执行它的功能,通过监测器将总线接口传输过来的数据输入计分板,计分板将这些数据和预测数据进行对比,最后将这验证结果信息进入计分板里显示以得出验证结果;其中,预测数据可以来自参考模型(图未示),也可以由
序列产生预测数据传递到计分板内,还可以直接固定在计分板内。
61.如上所述,本发明提的i3c总线验证系统,利用uvm的特定机制,搭建灵活的、可重用的、且具有随机性的验证系统,通过i3c总线接口的两个信号线sda和scl,与待测设计相连,验证系统包揽了角色切换、数据产生、数据接收、数据驱动、数据监测、结果比对、数据造错等所有工作,通过角色切换、数据随机产生并驱动和数据接收就可以覆盖i3c协议标准所允许的所有设备类型,通过数据监测和结果比对可以验证设计的正常通信功能是否完善和是否正确。通过数据的随机造错,可以覆盖绝大部分i3c协议标准所不允许的非法操作,可以观测待测设计在这些异常情况下的通信策略是否违反协议标准。依靠uvm的特有机制,以上功能的实现会变得非常容易快捷。
62.通过上述方案对i3c协议标准的待测设计进行验证,能够更全面地覆盖i3c协议标准的各种情况。通过callback机制造错,还能设计很多异常情况。通过各种uvm机制,使得验证人员更灵活地去制造各种激励,再通过收集覆盖率,可以使验证更完整、更充分和更加高效。
63.以上结合最佳实施例对本发明进行了描述,但本发明并不局限于以上揭示的实施例,而应当涵盖各种根据本发明的本质进行的修改、等效组合。
技术特征:1.一种i3c总线验证方法,其特征在于,所述方法基于uvm平台实现,其包括如下步骤:a.通过uvm搭建验证平台,构建顶层、中间层及底层的各个组件;b.编写单次测试的测试用例以和待测设计匹配;c.通过eda工具运行测试用例以进行验证测试,并获得验证结果。2.如权利要求1所述的i3c总线验证方法,其特征在于,所述通过uvm搭建验证平台具体包括如下步骤:a1.搭建测试项目的最顶层;a2.分别构建顶层、中间层及底层的各个组件;a3.在所述顶层中加入配置文件。3.如权利要求2所述的i3c总线验证方法,其特征在于,在所述配置文件中设置自定义的基本参数。4.如权利要求1所述的i3c总线验证方法,其特征在于,所述编写单次测试的测试用例步骤中,在测试用例中添加每一项任务对应的序列。5.如权利要求4所述的基于uvm的i3c总线验证方法,其特征在于,还包括步骤:在测试用例中利用uvm的回调函数机制对序列中输出的数据造错。6.如权利要求4所述的i3c总线验证方法,其特征在于,所述通过eda工具进行验证测试具体包括如下步骤:c11.测试用例启动已添加的序列;c12.根据配置文件里的参数内容产生传输事务单元;c13.将传输事务单元的数据翻译为待测设计兼容的数据格式;c14.将翻译过的数据发送至待测设计,待测设计按照测试用例的设定执行对应功能。7.如权利要求5所述的i3c总线验证方法,其特征在于,所述通过eda工具进行验证测试具体包括如下步骤:c21.测试用例启动已添加的序列;c22.根据配置文件里的参数内容产生传输事务单元;c23.根据回调函数内容对传输事务单元的数据进行修改;c24.将传改过的数据翻译为待测设计兼容的数据格式;c25.将翻译过的数据发送至待测设计,待测设计按照测试用例的设定执行对应功能。8.一种应用于权利要求1-7任一项所述的i3c总线验证方法的i3c总线验证系统,其特征在于,所述验证系统基于uvm平台,其包括,n个序列、激励器、总线接口、监视器及计分板;每一个序列内的数据对应一项验证任务,在验证过程中被测试用例调用并根据配置文件的参数产生传输事务单元;所述激励器对传输事务单元的数据翻译成与待测设计兼容的数据格式;所述总线接口分别接收激励器传输的数据与待测设计;所述监视器接收总线接口传输过来的数据,并将数据传输给计分板,计分板将接收到的数据与预测数据进行对比,将验证结果在计分析上显示,n为大于或等于1的自然数。9.如权利要求8所述的i3c总线验证系统,其特征在于,还包括序列器,所述序列器将传输事务单元从序列里传输至激励器。10.如权利要求8所述的i3c总线验证系统,其特征在于,所述激励器还对使用了回调函数的传输事务单元的数据进行造错。
技术总结本发明公开了一种I3C总线验证方法,所述方法基于UVM平台实现,其包括如下步骤:a.通过UVM搭建验证平台,构建顶层、中间层及底层的各个组件;b.编写单次测试的测试用例以和待测设计匹配;c.通过EDA工具运行测试用例以进行验证测试,并获得验证结果。同时,本发明还公开了一种应用于I3C总线验证方法的I3C总线验证系统。本发明的方案使得验证工程师能够按照具体的设计规格,灵活地改变验证平台的属性,保证验证的完整性和高效性。验证的完整性和高效性。验证的完整性和高效性。
技术研发人员:何青松
受保护的技术使用者:四川和芯微电子股份有限公司
技术研发日:2022.03.28
技术公布日:2022/7/5