SOC层次化验证方法及应用
发布时间:2008/5/28 0:00:00 访问次数:723
关键词:soc;交易;层次化验证;子系统;随机测试
soc(systemonachip)是近几年在ic产业出现的重大技术突破,有人把他同晶体管的发明相提并论。随着soc设计日趋复杂化,设计验证工作也越发繁重。据统计,验证过程占据了整个设计周期的2/3甚至更高,并且设计过程所需要专门的验证工程师的人数一般是rtl设计工程师人数的2倍之多,而在设计完成时,测试程序构成全部设计编码的80%。所以,验证成为集成电路设计过程中最关键的环节,他贯穿了整个设计流程。如何通过寻找新的验证方法来缩短验证时间提高验证效率是当今ic设计领域中最为关注的问题之一。
soc功能验证
soc系统验证就是对基于ip核实现的soc系统进行功能验证、静态时序分析、功耗分析及规则检查等,以保证正确的系统功能和良好的产品性能。在设计被综合前,首先要对rtl描述进行逻辑功能验证,验证的目的是为了确保验证过的模块或芯片具有100%的功能正确性。通常,rtl级功能验证主要采用自底向上的验证策略,即在模块集成到芯片以前尽可能地对每一个ip核或模块进行验证,然后再对整个芯片或系统进行验证,因此rtl级验证可分为模块级验证,子系统级验证和系统级验证3个阶段。
模块级验证就是对soc系统中某个模块或ip核进行单独的验证。模块级验证的目标是要达到足够高的功能覆盖率,使得模块在集成到整个系统中时不会带来任何模块本身的功能错误。如果模块本身有一些功能错误,那么系统级验证将变得非常困难。
当单个模块被验证完毕之后,他就可以被集成到其从属的子系统中去验证。在子系统中可能包含其他已被验证过的模块,所以,子系统级验证主要侧重于模块间接口的验证和模块间交互的验证。系统级验证就是对整个系统芯片进行验证,他通过模拟一个芯片运行的真实环境,来测试系统运行的状况是否与设计规范中的要求相符合。
为了成功的对系统中每个模块及整个系统进行验证,在写测试激励之前一定要先写一个全面高计划,并对其进行评估,而后作为规范来遵守。由于soc是由多个模块组成的一个复杂的系统级芯片,所以,在验证计划中不仅要有对整个系统的验证策略,而且还要包括系统中每个模块的验证策略。
层次化验证
功能验证的方法有多种,如兼容性测试、边界测试、回归测试等,这里讨论一种新型的验证方法:层次化验证方法。层次化的验证方法就是把验证步骤分层进行,如图1所示。验证层次被划分为三层,每一层都构建于其他层之上,这使得层与层之间衔接非常紧密,以便于在完成了第一层的测试之后可以快速的扩展到第二层进行测试。第一层测试主要验证接口协议;第二层测试对随机产生的大量的交易序列的测试;第三层测试主要是对特定的逻辑功能进行验证。下面以一个基于amba总线架构的soc系统为例(如图2所示)来讨论对层次化验证方法的应用。
模块级验证
在进行模块级验证以前,首先要创建一个模块级验证平台,该验证平台可以有多种形式,但由于绝大部分模块都是与总线直接相连的,故在搭建模块级验证平台时多采用基于总线的功能模型bfm(busfunctionmodel)。以对系统中的一个双通道ahb?pci桥模块的验证为例,构建验证平台如图3所示。
由于被测对象是一个连接pci总线和ahb总线的桥,所以在构建验证平台时用到了ahb总线功能模型,pci总线功能模型和两种总线的监控器模型。在设计ahb主设备功能模型时,首先设计验证模块的最底层,他提供被测模块和总线模型之间的基本接口,即提供了模块间的信号连接,如haddr,hwrite,htrans,hwdata等总线信号的连接。然后根据总线协议中信号被驱动的时序关系利用最底层的信号写出基本的总线交易,如ahb_read和ahb_write等任务。这为总线功能模型提供了第一级命令,他可以使模型在ahb总线上产生基本的总线读写操作,这些基本的读写操作可以用在层次化验证方法中的第一层测试中,而更加复杂的总线操作如读写命令的组合是在层次化验证方法中的第二层测试中实现的。用opencore上提供的已被设计好的pci桥验证模块作为pci主设备功能模型和从设备功能模型。在测试平台中,ahb监控器和pci监控器的作用是分别对ahb总线上发生的操作和pci总线上发生的操作进行检查
关键词:soc;交易;层次化验证;子系统;随机测试
soc(systemonachip)是近几年在ic产业出现的重大技术突破,有人把他同晶体管的发明相提并论。随着soc设计日趋复杂化,设计验证工作也越发繁重。据统计,验证过程占据了整个设计周期的2/3甚至更高,并且设计过程所需要专门的验证工程师的人数一般是rtl设计工程师人数的2倍之多,而在设计完成时,测试程序构成全部设计编码的80%。所以,验证成为集成电路设计过程中最关键的环节,他贯穿了整个设计流程。如何通过寻找新的验证方法来缩短验证时间提高验证效率是当今ic设计领域中最为关注的问题之一。
soc功能验证
soc系统验证就是对基于ip核实现的soc系统进行功能验证、静态时序分析、功耗分析及规则检查等,以保证正确的系统功能和良好的产品性能。在设计被综合前,首先要对rtl描述进行逻辑功能验证,验证的目的是为了确保验证过的模块或芯片具有100%的功能正确性。通常,rtl级功能验证主要采用自底向上的验证策略,即在模块集成到芯片以前尽可能地对每一个ip核或模块进行验证,然后再对整个芯片或系统进行验证,因此rtl级验证可分为模块级验证,子系统级验证和系统级验证3个阶段。
模块级验证就是对soc系统中某个模块或ip核进行单独的验证。模块级验证的目标是要达到足够高的功能覆盖率,使得模块在集成到整个系统中时不会带来任何模块本身的功能错误。如果模块本身有一些功能错误,那么系统级验证将变得非常困难。
当单个模块被验证完毕之后,他就可以被集成到其从属的子系统中去验证。在子系统中可能包含其他已被验证过的模块,所以,子系统级验证主要侧重于模块间接口的验证和模块间交互的验证。系统级验证就是对整个系统芯片进行验证,他通过模拟一个芯片运行的真实环境,来测试系统运行的状况是否与设计规范中的要求相符合。
为了成功的对系统中每个模块及整个系统进行验证,在写测试激励之前一定要先写一个全面高计划,并对其进行评估,而后作为规范来遵守。由于soc是由多个模块组成的一个复杂的系统级芯片,所以,在验证计划中不仅要有对整个系统的验证策略,而且还要包括系统中每个模块的验证策略。
层次化验证
功能验证的方法有多种,如兼容性测试、边界测试、回归测试等,这里讨论一种新型的验证方法:层次化验证方法。层次化的验证方法就是把验证步骤分层进行,如图1所示。验证层次被划分为三层,每一层都构建于其他层之上,这使得层与层之间衔接非常紧密,以便于在完成了第一层的测试之后可以快速的扩展到第二层进行测试。第一层测试主要验证接口协议;第二层测试对随机产生的大量的交易序列的测试;第三层测试主要是对特定的逻辑功能进行验证。下面以一个基于amba总线架构的soc系统为例(如图2所示)来讨论对层次化验证方法的应用。
模块级验证
在进行模块级验证以前,首先要创建一个模块级验证平台,该验证平台可以有多种形式,但由于绝大部分模块都是与总线直接相连的,故在搭建模块级验证平台时多采用基于总线的功能模型bfm(busfunctionmodel)。以对系统中的一个双通道ahb?pci桥模块的验证为例,构建验证平台如图3所示。
由于被测对象是一个连接pci总线和ahb总线的桥,所以在构建验证平台时用到了ahb总线功能模型,pci总线功能模型和两种总线的监控器模型。在设计ahb主设备功能模型时,首先设计验证模块的最底层,他提供被测模块和总线模型之间的基本接口,即提供了模块间的信号连接,如haddr,hwrite,htrans,hwdata等总线信号的连接。然后根据总线协议中信号被驱动的时序关系利用最底层的信号写出基本的总线交易,如ahb_read和ahb_write等任务。这为总线功能模型提供了第一级命令,他可以使模型在ahb总线上产生基本的总线读写操作,这些基本的读写操作可以用在层次化验证方法中的第一层测试中,而更加复杂的总线操作如读写命令的组合是在层次化验证方法中的第二层测试中实现的。用opencore上提供的已被设计好的pci桥验证模块作为pci主设备功能模型和从设备功能模型。在测试平台中,ahb监控器和pci监控器的作用是分别对ahb总线上发生的操作和pci总线上发生的操作进行检查