众所周知,功用验证在芯片的整个规划周期中占用的时刻最多。虽然现在有许多技能可用于削减验证时刻,但终究应当怎么挑选?答案并不简单明了,并且常常令人利诱并要支付昂扬的价值。
一个项目中需求运用的东西和技能有必要在规划周期的初期就承认下来,以便取得新验证办法费用预算的精确信息。常常有公司因为过错估量了作业这些新式东西和技能所需的规划和技能的杂乱性而糟蹋很多的资金和资源。
产品的笼统级越高,越简单规划;相同的,笼统级越高,越简单犯严峻的过错。一个架构上的缺点可能会导致整个芯片的危害,而在门级网表中的连线过错可以经过重制处理。
例如,Verilog为规划者供给了一种相对简单的接口,以便他们在适当笼统的层次上进行规划。当规划从前作为限制性的瓶颈时,Verilog 为规划生产率带来了指数添加,并且大大推动了杂乱芯片的开展。可是假如规划者不了解在杂乱的规划周期中言语上的细微差别,就很简单犯错。在验证成为瓶颈的今日,相同的观念也适用于许多验证技能和言语。
本文将对时下盛行的验证技能(方式验证、随机、定向、有束缚的随机、断语、特点查验)与言语(SystemC、C/C++、SystemVerilog、Open-VERA、E等)进行全面评述,还将剖析在传统的数字ASIC规划流程中应当在何时选用何种验证技能和言语。
1 验证瓶颈
虽然现实标明现在规划生产率的添加速度依然低于芯片杂乱度的添加速度,但是现在需求面临的瓶颈已不再是规划时刻,而是验证时刻。最近的统计数据标明,对一个杂乱逻辑芯片而言,整个产品周期中 60_70% 的时刻都用于验证作业。怎么运用新的东西和技能对规划中的杂乱功用进行验证已经成为缩短整体的产品时刻所需求面临的应战。
因为以下原因,可以说验证瓶颈在某种程度上是规划笼统级逐步进步形成的成果:
1) 在较高的笼统水平上进行规划,易于构建高度杂乱的产品功用。规划杂乱度的进步形成验证作业的成倍添加;
2) 在规划、转化以及映射到终究产品的进程中,运用更高的笼统级进行规划会带来信息丢失和解说过错的问题。例如,选用HDL级规划并将其转化到门级的归纳进程,需求进行验证以保证转化的正确性以及使规划目的彻底得到表现。进步笼统级还带来了代码解说问题,在仿真时要经过这些代码对规划进行描绘,以保证所写的代码实在反映了功用标准。
其它影响验证问题的要素还包含:
1) 因为规划中硬件与软件、模拟与数字等共存而形成的功用杂乱度添加;
2) 对体系可靠性的要求增高,使得对验证作业的要求也添加,以保证在体系环境下,芯片功用可以顺畅履行。
统计数据标明,验证问题现实存在,并且让公司支付了昂扬的本钱:
1)因为规划过错形成的芯片缺点:在需求进行重制的芯片中,有82%是因为逻辑与功用缺点规划过错。这意味着验证进程没有掩盖边角状况,缺点一向隐藏在规划进程中直到流片。
2)因为标准过错形成的芯片缺点:在需求进行重制的芯片中,有47%是因为逻辑与功用标准不正确或不完整,有32%是因为标准发生了改动。
3)重用IP和外来IP的问题:一切失利的芯片中,有14%是因为在重用或外来的IP中存在过错。
4)重制的结果:重制费会高达10万美元,还会延误产品的推出,因为运用这些有缺点的芯片而导致的体系失利也会添加本钱。
为了进步验证生产率,EDA职业提出了一个与处理规划瓶颈相似的处理方案——笼统化的理念。比如 Verilog 和VHDL等高层次的言语被用于验证芯片,这些言语包含各种指令如使命指令和线程指令(fork/join 句子),以及操控结构(while句子)。这供给了更强的数据操控力,以便对一切边角规划进行充沛验证。但是,这些指令不能被归纳,因而不会被用作实践规划代码的一部分。
跟着杂乱度日积月累,可以验证具有不同笼统级的杂乱规划的新言语被创立出来,支撑这些新的验证言语的技能和东西也随之诞生。
一切这一切意味着芯片厂商有必要对新的东西作出评价,有必要针对这些新的东西和技能对工程师进行培训,在公司的研制费用本钱结构中有必要包含新的东西和资源,公司在整体上有必要在短时刻内战胜学习曲线问题,别的,还需求对这些东西进行危险评价,以及考虑新东西与已有技能的集成和协同作业的才能。
2 验证与承认(Validation)
除了验证问题之外,芯片公司还要面临承认时刻问题。Kropf将“承认”界说为“经过查看完结行为以取得对标准的决心的进程”。在验证和承认之间,有一种观念以为,“承认可以保证这是正确的规划,而验证则是保证这个规划是正确的”;别的一种观念以为,“验证指硅片成为制品之前的测验(Verilog/VHDL 仿真等),承认指硅片成为制品之后的测验(在试验室里测验电路板上的芯片)”。
无论是承认仍是验证,若要保证硅片满意标准要求,要完结以下两个过程:1)经过文件或建模,芯片标准得到了正确的解说;2)以上解说得到了正确的了解与完结(一般是经过 HDL),归纳入硅片,并封装成为芯片。
本文以为第二步是验证,第一步是承认。现在业界盛行的规划流程如图1所示,此流程可保证以上两个过程的要求得以满意。依据待完结功用的杂乱程度不同,可以越过一些过程或许添加一些过程。例如,假如某一项规划是朴实面向硬件的,不触及驱动或软件,那么可以从笼统级3直接跳到笼统级1,锁相环规划即为一例。
当规划依照笼统级逐步推进时,要注意有必要一向坚持等效性,以保证最低层的笼统级能满意体系标准的要求。例如:
1)当 C 模型被置于一个体系环境并可以满意标准中所描绘的一切体系要求时,芯片标准(一般是一个文本文件)与其 C 模型之间就达到了等效。这在实质上是功用等效。
2)经过比较 C 模型与HDL 完结的输出,可以在标准的C 模型与其 HDL 完结之间树立等效联系。在没有 C 模型的状况下,可运用“希望数据模型”。这在实质上也是功用等效。
3)HDL完结与门级(归纳后的)之间经过运用“逻辑等效性查验”可以树立等效联系。这时,因为规划采纳的方式是朴实的逻辑门,并且功用可以被表明为逻辑表达式,因而,这在实质上是逻辑等效。