EDA/专用CAD软件 |
|
| 按行业筛选 |
|
|
| 按产品筛选 |
|
|
| |
本产品全部新闻
|
|
|
|
评论:EDA功能验证的漫漫长路 |
|
http://cn.newmaker.com
10/29/2008 12:00:00 PM
Mark Hampton
|
|
在集成电路(IC)开发过程中,验证是非常昂贵的流程。而且也很难高效地完成验证。工业界目前广泛采用的是覆盖率驱动式验证(CDV),但这种方法也被认为是不完备的验证方法。
在执行验证环境时必须满足下列三个条件才能发现设计的缺陷,:
1. 缺陷必须被激活,例如包含缺陷的代码段必须被使用。
2. 缺陷必须传递到可观察的点,例如设计的输出。
3. 缺陷必须可探测,例如可检查的行为和表现为失效。
像代码覆盖和功能覆盖这样的技术可以保证设计代码被激活。然而,它们却无法保证缺陷的传递,以及缺陷可以被检查程序和/或断言语句检测出来。
验证环境必须运行贯穿整个设计的通路(从输入到检查程序),但这些临时的内部关系并不体现在代码覆盖率信息中。很可能代码只是被测试案例无意的副作用所覆盖。代码覆盖可以指明仿真时运行的代码,但无法告诉用户在这段代码中缺陷是否会传递到检查程序,并引起测试案例的失效。此外,代码覆盖并未表面输出行为是否被正确地检验了。
功能覆盖是覆盖率技术中的新生代,允许验证工程师指明他们想要运行什么样的设计行为。理论上,功能覆盖确实可能检测出一些临时的中间关系,但很可能某一功能覆盖点被当作副作用忽略了,导致无法执行相关功能的结果。在伪随机输入序列时,这种情况更有可能发生。设计中大量的可能路径、功能覆盖代码中可能的代码错误,以及其主观性,意味着进行完全的测试是不现实的。与代码覆盖类似,功能覆盖也无法表明行为检查是否充分。也无法知道实际上哪条从输出到检查程序的路径已经被验证了。
功能鉴定是基于功能级的失误仿真,是完全不同的方法,可以测量功能验证的完备程度。通过在设计中插入人工缺陷,功能鉴定测量了验证环境运行设计功能和将人工缺陷传递到检查程序,并引起失效的能力。无法探测的人工缺陷意味着存在验证盲区。如果人工缺陷无法被发现,那么就证明了该验证无法将实际的设计缺陷都找出来。功能鉴定是第一个可以直接测量验证环境、发现缺陷能力的技术。功能鉴定直接覆盖了现有的验证环境,并不是验证的分支,就像检查程序不是综合的分支一样。
验证就是对设计代码功能质量的测量。由于我们要依赖验证代码来告诉我们设计代码的质量,因此从基于仿真的验证伊始就存在这个问题,即无法测量验证代码质量。专业的验证工程师是质量控制的专家,对他们来说功能鉴定不啻是一场革命。这样他们就有了客观的反馈来改进验证流程,并且他们还可以控制验证代码的质量。
设计人员具有多种方法客观量度他们的工作,例如设计的面积、延时和功耗。而验证领域则缺乏客观、全面的方法进行衡量,因此还保持着“艺术”的特征。功能鉴定给验证工程师同样的客观量度方法,这样他们可以跟设计工程师一样进行判断了。验证工程师现在可以从艺术领域进入到科学领域,可以客观地演示他们的才能并改进验证。
电子设计自动化(EDA)研究人员对覆盖技术总是感到困惑。为了演示新技术的有效性,他们需要进行测量。由于覆盖方法已经被测量过了,验证技术的主要创新已经转移到如何自动生成覆盖设计的输入序列。但这并不是工业界真正需要的。EDA需要将潜在设计缺陷的探测进行自动化,保证缺陷可以传递,并且设计缺陷可以被检查出来。
EDA行业的典型循环是:在每一个制造节点,都有新的挑战出现;解决这些问题并且EDA研究就像前进去寻找未来节点的挑战。对衡量验证质量来说,覆盖并不是个好方法,但这个行业会继续向前发展,并假设这个问题已经解决了。大量的资源和努力都用于将EDA用户推向CDV方法。然而,还有一只大象在屋里——覆盖并无法充分测量!
功能鉴定可以提供对设计验证客观、完备的度量。这样各种选择和策略都会被间接测量,因此验证团队和工程师都要变得小心翼翼。对具有专业性的验证人员来说,这是一个喜讯:他们可以客观地展示他们有多么优秀。我们可以预见,由于具有客观的度量方法,更多的工程师会被吸引到验证领域。我们还可以预见到未来会有更多结构创新的EDA验证产品出现,它们可以将潜在缺陷的传递和检验自动化。这一行业需要认识到,对目前的功能鉴定来说,过去的覆盖方法并不充分。功能鉴定需要对衡量验证方法进行根本上的重新思考,并且意味着深刻的变革。
作者:Mark Hampton是Certess公司的CTO。
|
对 EDA/专用CAD软件 有何见解?请到 EDA/专用CAD软件论坛 畅所欲言吧!
|