新闻中心

EEPW首页 > 设计应用 > 证重用具有现实意义

证重用具有现实意义

作者:■ 美国Verisity公司时间:2005-04-28来源:eaw收藏
  当今功能验证在人力资源、复杂度和完成时间上的挑战远远超过了设计方面的挑战,这就要求尽可能多地重复利用验证资源。什么是验证的重用?和设计重用类似,从高层次定义,验证重用是通过重复利用一些验证代码来提高验证效率,减少验证代价并且得到高质量的设计。
  但大部分人并没有意识到,如果一个项目组不按照一个已经被证实有效的验证重用方法来做,要做到验证重用会是多么困难。举个例子,一个原有的模块已经针对一个特定的设计环境设计并验证通过了,而现在项目组想要在一个和原先的设计环境不一样的环境中使用这个模块。即便新的设计和原来的设计只是有细微的差别,验证组的工程师还是不能主观地认为这个模块在新的环境中能够像在原来的环境中一样正常地工作。现在使用这个模块的项目组的工程师可能并不是原先设计这个模块的,他们怎么知道这个模块在某个特定的应用环境里可以正常工作呢?如果他们并不知道该模块的深层次结构信息,又怎么能够去验证它呢?
  考虑到现在验证工作已经占到整个开发周期的50%到80%,如果能够重复利用一些验证工作,哪怕只是减少验证周期的一小部分时间,都会对缩短整个开发周期有很大的影响。并且,如果能够按照一个已经被证明过的、经过实践的方法去做,验证工作也就走上了一条正确的轨道。
  验证重用的三个层次
  验证重用具有三个层次,必须在开发验证重用策略的时候考虑到以下三个方面:
  不同抽象等级之间的重用,在单一项目中的重用以及不同项目之间的重用。
  不同抽象等级之间的重用指的是,将最开始用来验证初始C++模型的验证环境应用到后面修正过的模型,如System C到RTL,到门级,最后到芯片模型。
  在单一项目中的重用是,在开发和验证周期的不同阶段重复使用验证代码。一个很好的例子就是将验证代码从模块级别提升到整体级别,然后是系统级别。这些重复使用的验证代码包括很多部分,当在不同抽象等级中使用这些代码的时候,有些部分是要被舍弃掉的,但是这样的重复使用对于开发整个验证方法还是有很大好处的(见图1)。
  在不同项目之间的重用指的是,将以前做过的项目中的验证代码拿到新一代产品中进行使用,或者是将原先的验证代码放到一个使用标准模块或者和先前设计类似的但是全新的设计中去。
  验证重用的要求
  不管验证工作组怎样重复使用验证环境,要重用验证环境是有一些特定要求的。一开始,设计和验证组需要有一个能够允许验证部件重复使用的验证方法。举例来说,当验证一个系统中单个模块的时候,针对每一个模块的测试平台都必须包括三个部分:一个信号发生器用来产生输入去驱动仿真器,一个检查器用来检查数据和协议的正确性,还有一个覆盖率分析器。
  为了在系统层次上重用这些部分,验证组需要保持这三个部分在模块级别的测试平台具有独立性,这样才能够将可重复使用的部分在系统级的验证环境中结合起来。并且,当这些部分应用在不同的端口和接口的时候,必须区分它们。
  当模块被整合到系统设计中的时候,验证人员可以重复使用模块中的检查和覆盖的部分,然后添加额外的检查和覆盖的代码,这些代码用来检查模块之间的相互关联。
  从单一的模块级别到系统级别的验证中,重复使用激励产生的部分通常来说比较困难,因为不是要驱动单个的模块,而是要测试这些模块整合在一起的性能。但是如果存在一个方法,能够做到检查和覆盖的重复使用,而且能够针对保留外部接口的端口和接口的激励产生部分重复,对于验证工程师同样可以节约大量的时间。
  验证组需要达到最理想的重用效果, 需要知道可扩展性这个关键的特点。基本上,这一特点是指在外部将一段已经存在的验证代码加以扩展。举例来说,验证工作组需要重复利用一些验证代码,因为这些代码几乎提供了所有需要的检查和覆盖分析。 一个可扩展的验证环境可以让验证人员直接在外部扩展原来的验证代码以适应新的设计,而不需要改动原来的代码。 换言之,验证人员能够使用现成的代码,并且根据当前系统规格的要求修改或者关掉原先代码中的一些功能,但是对于原先的验证环境不造成任何影响。 事实上,原始的验证环境甚至可能是经过加密、不能进行改动的,这些被加密过的验证环境还是提供了可扩展的特性,从而使其在后面的设计验证中还能起到作用。
  值得注意的是,如果软件语言具备一个特性,能够被用来实现这种可扩展性,这种可扩展的方法就被大大简化了。e语言就是一个可扩展的验证语言的很好例子。 IEEE正在审核提供的e语言,很快就会成为标准,编号为IEEE P1647。
  验证重用的最后一个要求是可配置性。验证工程师需要软件有能力配置代码来符合所验证的设计。通过在另外的文件中添加约束,工程师能够设置控制原代码操作的参数。通过在测试平台使用约束条件来建立不同模块之间的关联性。举例来说,如果针对设计中的两个单独的接口创建了两个激励发生器,约束条件能够在这两个激励发生器的顶端控制它们的工作(通过扩展它们针对特定测试目的的定义),从而使得两个激励发生器所产生的测试激励具有相关性。
  能否获得现成的验证IP
  市场上已经有现成的验证IP。工程师可以针对标准接口购买这些验证环境,然后把它们放到特定的设计里面。公司提供了eVC,这是针对标准接口,用e语言来搭建的验证环境(见图2)。
  这些eVC支持上面提到的验证重用的各种要求,包括针对该接口的各种信号生成器、时序检查器以及覆盖分析器。同时,e语言的可扩展性也使得工程师能够很方便地将eVC中的验证环境接入到工程师当前要搭建的验证环境中来,并且可以针对工程师的不同应用要求进行不同的扩展。并且,这些eVC所提供的验证环境同样是可配置的,工程师可以根据需要,配置几乎所有的方面,并且所有这些配置都不需要进入eVC代码内部去做任何修改。
  这些eVC和其他的商用IP一样,能够大大提高验证的效率和质量,并且这些eVC已经经过完全的测试。就像前面所提到的,验证是整个开发周期中最长和最难的部分,任何可以简化验证过程的做法都会给验证工程师带来很大的帮助。
  结语
   验证重用已经被证实是非常有好处的,要得到验证重用的好处,必须在一开始就有一个能够提供可扩展的验证方法,在拥有一些预先封装好的现成的验证组件后,验证重用并不是想像的那么困难。■


关键词: Verisity

评论


技术专区

关闭