随着设计复杂度的增加,以及
SoC应用的普及,功能
验证的重要性在日益增加。传统的基于仿真的验证需要数百万的测试向量来验证一个行为,而且仿真一般都处于系统集成完成后,因而设计返工次数多,验证的可靠性不能保证。Verisity公司提供的前端验证工具SPECMAN和e语言是为验证工作量身定做的系统。e语言在2003年6月的DAC会议上被IEEE认定的一种标准验证语言,而SPECMAN是一种标准功能验证
平台。Verisity在中国大陆的唯一授权代理商新益(NewPlus)系统科技有限公司总裁彭京说:"SPECMAN具有自动向量生成、功能覆盖、自动数据检查和硬件协议检查功能,以及验证工作重用性等特点。使用该平台,可有效保证项目进度、减少设计返工次数,缩短产品面市时间、节约开发成本。"
Verisity功能验证平台具有一系列有利于SoC设计的特性,首先,其随机产生测试向量功能可大大缩短产品开发周期,提高产品质量。在使用传统方法进行验证工作的时候,工程师不得不自己编写测试向量,这种方法从根本上限制了在单位时间内产生测试向量的数量。同时,当设计复杂度增高时,验证工程师并不能考虑到所有需要的测试向量,
因而降低了发现"Bug"的几率,继而危害到设计的可靠性。Verisity的SPECMAN的测试向量是随机产生的,同时施加监督机制,使得SPECMAN能产生出确实有效的测试向量。
其次,功能覆盖使验证工程师明确项目进度。Verisity所提供的监督机制在其产品中的具体表现就是功能覆盖。传统验证方法使用的代码覆盖只能告诉设计者在整个仿真过程中有多少代码被运行了,而SPECMAN的功能覆盖是基于设计规范而定义的,使用简单直接的方式对设计规范的功能进行描述,可以告知工程师代码到底实现了多少在设计规范中所定义的功能,在整个验证过程中对验证进行监督,而且这样的监督机制可以很好地度量整个验证过程,使工程师很容易了解验证进行到了何阶段。
再有,自动检查功能确保设计正确性。为了使工程师明确设计输出什么样的值才是正确的。SPECMAN提供了两种设计正确性检查机制:数据检查和硬件协议检查。所谓数据检查,就是在某个特定的时间点上,对设计输出数据的正确性的检查,SPECMAN使用记分牌方式进行。而硬件协议检查,即对硬件信号之间的关系进行的检查,SPECMAN使用基于断言的方式进行。所谓断言方式,就是用最接近自然语音的方式来描述硬件协议,而不是使用状态机,然后在仿真时把硬件信号之间变化的关系和断言方式的描述进行比较,从而确定协议的硬件实现是否正确。
Verisity提出的e语言提供简单有效的高级语法来支持断言,一个复杂的协议,e语言可以使用一两行的语句就表述出来,而要使用传统的状态机来表述这样的协议,需要十几行甚至上百行的语句。
最后,验证工作重用性大大提高了验证效率。设计重用可以大大缩短项目的开发周期和产品进入市场的时间,对于验证工程师,验证重用同样重要。e语言由于其简单实用的语法,使工程师可以很容易实现验证重用。同时Verisity在全球拥有广泛的验证联盟,他们为Verisity提供基于e语言的可重用的验证IP,截至目前,Verisity已拥有超过100个验证IP,用户可以使用这些IP来加速自己的验证工作。
Verisity公司是一家总部位于美国的功能验证自动化工具提供商,随着其SPECMAN Elite验证解决方案被越来越多的用户所熟知,其在功能验证市场的占有率不断攀升,到2003年,Verisity在该领域的市场份额已占到65%以上。"作为Verisity全新验证概念和方法的应用软件供应商,新益系统科技可以为客户进行产品介绍、技术交流、人员培训,以及共同解决客户在设计验证中出现的问题。"彭京说。
图:随着设计复杂度的提高,功能验证在IC设计中的重要性日益增加。