应对百万门级系统级芯片验证挑战的可扩展解决方案
功能验证是电子设计人员目前面临的主要挑战,无论是设计团队还是验证团队,都将超过50%的时间用在纠错上,因此这一领域的技术进展将对缩短产品上市时间产生重大影响。本文探讨基于断言的技术和改进的纠错方法,以及为什么它们能够以及如何应对设计团队面临的重大挑战,其目的是提高设计生产力、改进设计质量、加快产品上市时间以及增加投资回报(ROI)。
目前的设计和验证方法面临的问题是验证工作必须屈从于设计。出于几项相关原因,现状必须加以改变,特别是我们正在面对一个巨 大和复杂的电子系统。功能性错误是造成设计重复修改的首要原因。用于查找这些错误的功能验证流程是设计流中目前面临的最大瓶颈。一般而言,验证工作在所有 设计活动中一般至少占有50%的份额。然而,验证技术的发展步伐已经远远落后于设计和制造能力,验证鸿沟在进一步扩大(图1)。这一验证鸿沟是限制设计人 员充分发挥其生产力和设计能力的因素。为了弥合这一验证鸿沟,验证必须成为整体设计方法的一个内在组成部分。
整个设计和验证流必须实现结构化,其基础不仅是如何有利于设计工程师,而且还要考虑如何有利于验证工程师,这对设计分工、模块大小、设计规则以及其它许多我们目前想当然的事情都提出了新的要求。
在成功开展系统验证方面面临的另一挑战仍然是测试基准。随着设计规模的扩大,验证复杂性正以指数级速度提高。尽管仿真能力总 是伴随设计规模不断提高的,但测试基准的复杂性则不然。其中部分原因是设计规模对设计的可观察性和可控制性所产生的戏剧性效果,它增加了需要运行测试的次 数,而且这些测试的持续时间可能延长,如果哪个地方出了差错,那么查找和发现原因的难度就会大大增加。
为了解决验证鸿沟和测试基准问题,我们需要采用可扩展验证解决方案,一方面它基于断言的技术,另一方面,它覆盖了验证中的 多种抽象层次以及整个流程各个阶段的验证工具,功能验证策略必须在每个设计层次以及开发流程的每个阶段将验证目标对准整个系统――其中包括数字逻辑、嵌入 式软件以及混合信号内容。
功能验证危机
功能验证的重要性日益提高,其根本原因就是设计规模和复杂性的不断增长,其中包括设计中的软件和模拟电路比例日益提高。规模 的扩大指的是数量巨大的晶体管以及系统级芯片上的门数。《国际半导体技术线路图》预测,系统级芯片到2006年将包含10亿个晶体管。一片系统级芯片可能 包含数千万门,那么出错的可能性以及验证任务的复杂程度相应也会增加。
复杂性提高意味着更多性能多样性,在单个芯片上实现更多的性能。元器件的多样性包括高性能RISC CPU、数千兆位高速I/O、块RAM、系统时钟管理、模拟混合信号、嵌入式软件、专用数字信号处理器(DSP)等。因此,这些元器件之间的接口对确保整 体功能和性能的重要性就变得日趋重要。
片上软件和模拟器件的不断增加不仅使系统复杂性日益加剧,而且也向传统操作方式发出了挑战。数字工程师必须遭遇并不熟悉的 模拟事项。许多硬件设计都需要通过固件和低层次软件来验证RTL功能性。这要求固件设计人员在硬件设计中发挥重要作用,并对硬件和软件之间的相互影响作出 详细解释。
我们对Collett国际研究公司2001-2003年间的研究数据进行了考察,结果显示:2001年在所有故障和失败 中,47%的故障与逻辑或功能错误相关。然而,在前10位故障原因中,只有一项属于接口问题:混合信号接口,在整个芯片故障中只占4%。反观2003年数 据,逻辑和功能故障的比例已经攀升到67%,并且出现了另外三种故障范畴。模拟故障在芯片故障中占35%的份额,排名第二。混合信号接口故障所占比例则从 4%升至21%,硬件/软件接口故障比例则占13%。
除了复杂性问题,我们必须解决原有系统和知识产权的重用问题,因为超过50%的设计和测试平台都在重复使用,因此,任何有 意义的解决方案都必须支持所有主要语言――包括Verilog、VHDL、C++以及SystemC――这样它才能在所有抽象层次上工作。开放标准确保旧 有设计和测试平台得到重复使用,可以根据其绝对属性选择验证工具,而并不是因为它们适合某家供应商的工具环境。此外,由于可观察和可控制难度伴随设计复杂 性提高,纠错方法必须能够克服测试基准的复杂性。例如,设计规模扩大一倍,可观察性将减半,可控制性也将减半,那么验证难度大约提高4倍。
如上所述,为了应对日益庞大的设计规模、复杂性和性能问题,验证方法必须在不同工具和设计
- 基于RISC-SOC微电容测量模块的研制(08-25)
- 测量并抑制存储器件中的软误差(10-30)
- SoC设计过程中需要考虑的关键测试要素(11-07)
- 嵌入式测试方案及高速测试技术(03-10)
- AFM:应对65nm以下测量技术挑战(11-13)
- 在线检测与分析快速发现不可见的电学缺陷(01-14)