位置:51电子网 » 技术资料 » IC/元器件

成功构建分层化的百万门级芯片验证平台

发布时间:2008/5/28 0:00:00 访问次数:570

  随着芯片复杂度的增加,快速搭建一个强大、高效、灵活、可扩展性好的验证平台是芯片成功的关键因素之一。本文以一个成功的百万门级芯片项目为背景,介绍了如何构建一种基于文件的分层化验证平台,该平台使用openvera,c++和perl,在方法学上具有一定通用性。作者还阐述了整个验证过程中涉及的其它一些重要问题和实践经验。

  芯片规模的不断增大导致验证对象空间的组合爆炸,步入百万门级后,验证能力与设计能力之间的鸿沟已越来越明显。虽然synopsys公司主席兼首席执行官aartdegeus曾说过只有3%的设计错误用现有的验证技术无法确认,但现实情况是受项目进度和资源投入的制约,工程师们往往没有足够的时间和资源去发现并改正所有的设计问题,因此,如何在有限的时间内尽量有效地验证成为一个很大的挑战。

项目简介及验证分析

  该芯片项目(以下称sdxxx)完成wcdma下行物理信道调制,sdxxx除ram外的总逻辑约400万门,由于部分模块实例化了多次,真实逻辑约百万门。

  sdxxx的大致结构如图1所示,包含3个输入,其中定时接口承载主时钟和wcdma帧定时,dsp接口承载下行物理信道配置和待调制的下行物理信道数据,上行接口承载上行物理信道传来的下行物理信道控制信息。sdxxx输出所有下行物理信道调制后合路的数据。sdxxx的逻辑主体是下行公共物理信道调制模块和下行专用物理信道调制模块,这两个模块几乎是独立的,只存在极少的联系,另外在下行公共物理信道调制中,不同种类的信道也几乎是独立的。

sdxxx的验证难点在于:

  1.静态地看,支持的各类信道总数较多,静态配置的全组合约104量级;动态地看,很多性能是通过重配置才能反映的,重配的组合也是大量的(全组合时相比静态的情况还要多很多)。

  2.部分下行物理信道受上行物理信道的控制信息序列影响,这种影响人工较难考虑周全。例如,功控过程受上行控制信息和多个配置项影响,且和历史的控制信息相关,相关深度可能多达几十个值,人工很难计算清楚。

  3.不同的信道定时不同,输入激励需较精确地控制发送时刻,且三个输入接口上的激励存在内容和时序上的约束。例如,配置某些项后需要送相应的上行控制信息,且配置时刻点和上行控制信息送入时刻点间存在时间约束。

验证策略

上述验证难点对于许多同类型芯片也是适用的,我们的相应策略如下

  1.针对静态/动态配置大量组合的难点,要求tc(testcase)必须能方便地表征各种配置组合。我们认为,纯文本形式在定义其格式后可以作为tc的载体(使用纯文本的好处还在于绝大多数工具都提供纯文本的处理功能,因此通过纯文本可以方便地将各个工具连接起来)。验证环境必须能兼容地识别各种配置组合下的tc,这可以由一个通用的harness将tc用意转化成芯片接口上的实际激励。

  2.针对人工较难考虑周全的难点,受约束的随机验证成为必不可少的验证环节。同时这也是静态/动态配置大量组合的需求,因为人工不可能去遍历组合,只能选取我们认为重要的,但这样往往容易忽略某些组合。针对激励间存在内容和时序约束的难点,我们没有采用传统的通过信号来传递约束信息的方法,也没有单纯依赖openvera提供的同步机制(sync,mailbox等),因为这两种方法的处理都比较繁杂。我们的方法是在harness内实例化一个timebase类的对象“center_cnt”(需要new函数来实际分配内存空间),它主要实现一个定时计数器,然后我们在harness的其它部件中也分别实例化一个timebase类的对象,但是不用new函数,而是直接将center_cnt赋值,这是openvera的一个特定语法,作用相当于类指针,这样harness中的各部件就有了一个统一的定时基准――center_cnt,时序约束的处理在这个统一定时基准上变得简便多了。

验证过程中其它的相关策略包括:

1.随机tc和直接tc的结合

  随机验证的前期投入是巨大的,往往随机环境还未准备好,项目就已逼近一些关键时刻点,并且随机验证涉及到的一些技术和理念需要验证工程师具备相当的经验,因此通常直接的tc也是必要的。sdxxx采用先直接tc后随机tc的策略。虽然平均调试一个随机tc的时间是直接tc的几倍,但一个随机tc覆盖的特性往往相当于数十个直接tc,因此,从全程来看随机验证的效率更高。

2.rm的必要性

  sdxxx可以简单地看成一个巨大而复杂的扩频加扰计算器,其输出靠人工是难以计算的,需要一个rm(referencemodel)替我们计算期望,随机验证也要求必须能自动产生期望,因此,rm对于sdxxx的验证是必须的。

3.顶层验证环境和模块验证环境的复用

  针对sdxxx的并行独立结构,同时也考虑到项目进度和人力投入,我们的策略是集中人力做一套顶层验证环境。这套顶层验证环境也可用于单独验证下行公共物理信道模块和下行专用物理信道调制模块,只要将不用的模块用空模块替代即可。另外,对于一些比较复杂或比较重要的

  随着芯片复杂度的增加,快速搭建一个强大、高效、灵活、可扩展性好的验证平台是芯片成功的关键因素之一。本文以一个成功的百万门级芯片项目为背景,介绍了如何构建一种基于文件的分层化验证平台,该平台使用openvera,c++和perl,在方法学上具有一定通用性。作者还阐述了整个验证过程中涉及的其它一些重要问题和实践经验。

  芯片规模的不断增大导致验证对象空间的组合爆炸,步入百万门级后,验证能力与设计能力之间的鸿沟已越来越明显。虽然synopsys公司主席兼首席执行官aartdegeus曾说过只有3%的设计错误用现有的验证技术无法确认,但现实情况是受项目进度和资源投入的制约,工程师们往往没有足够的时间和资源去发现并改正所有的设计问题,因此,如何在有限的时间内尽量有效地验证成为一个很大的挑战。

项目简介及验证分析

  该芯片项目(以下称sdxxx)完成wcdma下行物理信道调制,sdxxx除ram外的总逻辑约400万门,由于部分模块实例化了多次,真实逻辑约百万门。

  sdxxx的大致结构如图1所示,包含3个输入,其中定时接口承载主时钟和wcdma帧定时,dsp接口承载下行物理信道配置和待调制的下行物理信道数据,上行接口承载上行物理信道传来的下行物理信道控制信息。sdxxx输出所有下行物理信道调制后合路的数据。sdxxx的逻辑主体是下行公共物理信道调制模块和下行专用物理信道调制模块,这两个模块几乎是独立的,只存在极少的联系,另外在下行公共物理信道调制中,不同种类的信道也几乎是独立的。

sdxxx的验证难点在于:

  1.静态地看,支持的各类信道总数较多,静态配置的全组合约104量级;动态地看,很多性能是通过重配置才能反映的,重配的组合也是大量的(全组合时相比静态的情况还要多很多)。

  2.部分下行物理信道受上行物理信道的控制信息序列影响,这种影响人工较难考虑周全。例如,功控过程受上行控制信息和多个配置项影响,且和历史的控制信息相关,相关深度可能多达几十个值,人工很难计算清楚。

  3.不同的信道定时不同,输入激励需较精确地控制发送时刻,且三个输入接口上的激励存在内容和时序上的约束。例如,配置某些项后需要送相应的上行控制信息,且配置时刻点和上行控制信息送入时刻点间存在时间约束。

验证策略

上述验证难点对于许多同类型芯片也是适用的,我们的相应策略如下

  1.针对静态/动态配置大量组合的难点,要求tc(testcase)必须能方便地表征各种配置组合。我们认为,纯文本形式在定义其格式后可以作为tc的载体(使用纯文本的好处还在于绝大多数工具都提供纯文本的处理功能,因此通过纯文本可以方便地将各个工具连接起来)。验证环境必须能兼容地识别各种配置组合下的tc,这可以由一个通用的harness将tc用意转化成芯片接口上的实际激励。

  2.针对人工较难考虑周全的难点,受约束的随机验证成为必不可少的验证环节。同时这也是静态/动态配置大量组合的需求,因为人工不可能去遍历组合,只能选取我们认为重要的,但这样往往容易忽略某些组合。针对激励间存在内容和时序约束的难点,我们没有采用传统的通过信号来传递约束信息的方法,也没有单纯依赖openvera提供的同步机制(sync,mailbox等),因为这两种方法的处理都比较繁杂。我们的方法是在harness内实例化一个timebase类的对象“center_cnt”(需要new函数来实际分配内存空间),它主要实现一个定时计数器,然后我们在harness的其它部件中也分别实例化一个timebase类的对象,但是不用new函数,而是直接将center_cnt赋值,这是openvera的一个特定语法,作用相当于类指针,这样harness中的各部件就有了一个统一的定时基准――center_cnt,时序约束的处理在这个统一定时基准上变得简便多了。

验证过程中其它的相关策略包括:

1.随机tc和直接tc的结合

  随机验证的前期投入是巨大的,往往随机环境还未准备好,项目就已逼近一些关键时刻点,并且随机验证涉及到的一些技术和理念需要验证工程师具备相当的经验,因此通常直接的tc也是必要的。sdxxx采用先直接tc后随机tc的策略。虽然平均调试一个随机tc的时间是直接tc的几倍,但一个随机tc覆盖的特性往往相当于数十个直接tc,因此,从全程来看随机验证的效率更高。

2.rm的必要性

  sdxxx可以简单地看成一个巨大而复杂的扩频加扰计算器,其输出靠人工是难以计算的,需要一个rm(referencemodel)替我们计算期望,随机验证也要求必须能自动产生期望,因此,rm对于sdxxx的验证是必须的。

3.顶层验证环境和模块验证环境的复用

  针对sdxxx的并行独立结构,同时也考虑到项目进度和人力投入,我们的策略是集中人力做一套顶层验证环境。这套顶层验证环境也可用于单独验证下行公共物理信道模块和下行专用物理信道调制模块,只要将不用的模块用空模块替代即可。另外,对于一些比较复杂或比较重要的

相关IC型号

热门点击

 

推荐技术资料

单片机版光立方的制作
    N视频: http://v.youku.comN_sh... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!