您的位置 首页 传感器

各种盛行验证技能的特性比较和挑选规范

功能验证在设计周期中占了最大的一部分,这是一个人所共知的事实。然而,面对如此众多用于缓解该问题的现有技术,我们真正应该采用的是哪一项(或哪几项)?得到的答案通常并不简单明了,而且往往令人感觉含混不清和

功用验证在规划周期中占了最大的一部分,这是一个人所共知的现实。但是,面临如此很多用于缓解该问题的现有技能,咱们真实应该选用的是哪一项(或哪几项)?得到的答案一般并不简单明了,并且往往令人感觉含混不清和本钱贵重!

笼统级越高,规划就越简单;同理,笼统级越高,就越简单犯较大的过错。假如产生架构缺点,就有或许危害整个芯片,这与产生在逻辑门衔接表级上的导线误衔接是天壤之别的(后者可经过从头连线的办法得到修正)。

以Verilog为例,它为规划者供给了一个较为简易的接口,以便在一个恰当笼统的等级上进行规划。但是,假如规划者并不知晓在多个规划周期中取得的言语的细微差别,那么就十分简单犯错。许多论文要点论述了Verilog误用的不良后果。当规划曾经是瓶颈时,Verilog独登时使规划出产率取得了指数性的进步(如选用原理图捕获),并首要推进了杂乱芯片的开发!在很多的验证技能和言语、查验成为瓶颈的今日,相同的争议依然存在。

验证瓶颈

EDA职业经过引进东西来协助进步规划出产率,从而到达缩短产品时刻的目的,并终究完结规划时刻的减缩。规划时刻与硅片杂乱性之间存在某种函数联系。硅片杂乱性指的是工艺精密度调整以及新式材料或新式架构的引进对器材互连的影响。在硅片结构中具有杂乱性的才能将导致体系杂乱性的构成(由于特征尺度的缩小以及顾客对添加功用的需求而在相同的面积之内压缩进更多晶体管的才能)。

跟着规划方案构筑进程中所集成的晶体管数量的指数性添加,核算时刻或工程师数量的线性添加已不足以缩短规划时刻。体系杂乱性继续依照摩尔定律添加,而功用杂乱性(一个体系所具有的不同状况的数量)的增长速度则愈加迅猛。为处理这一问题,EDA职业提出了经过自动化来完结“规划笼统”(Design Abstraction)的概念。从可以在多个电路层上捕获规划的原理图捕获东西到依据言语的处理方案等均已面市。

这种跟随局势需求的规划办法依然是恰当的。EDA界行将推出并给予支撑的最新言语是SystemC和SystemVerilog,它们可以处理一些由现在所选用的技能和工艺构成的体系杂乱性问题。咱们可以说,就现在的技能工艺而言,规划杂乱性现已得到了很好的了解,并且,规划瓶颈也由于选用EDA东西所完结的出产率进步而在必定程度上得到了战胜。

规划出产率的进步速度将继续低于杂乱性的增速,此刻与之相关的瓶颈已并非规划时刻,而是验证时刻

由于下列原因所导致的规划笼统级的进步是构成验证瓶颈的元凶巨恶之一。

在一个较高的笼统级上进行规划使得咱们可以轻松地构筑高度杂乱的功用。规划杂乱性的这种添加接着会导致验证作业量简直翻番(假如规划者考虑添加锁存器和逻辑门的数量,这就等于功用杂乱性将加倍,并且其验证规划也将因此翻番)。
在规划、改换以及至终端产品的终究映射中选用较高的笼统级总会存在信息丢掉和解说过错的状况。比方,选用HDL级规划并将之改换为逻辑门级(映射至某一特定技能)的归纳进程;在这一级上需求进行验证,以保证所施行的改换正确无误,并且规划内容没有丢掉。进步笼统级还会带来代码解说方面的问题,代码解说是用来在仿真进程中对规划进行描绘的,用于保证所编写的代码如实地反映了功用规范。
其他影响验证问题的要素包括:

由于当今规划的异类特性(比方硬件-软件、模仿-数字的共存等)所导致的功用杂乱性的添加;
对较高的体系可靠性的要求迫使验证作业有必要保证芯片级功用可在体系环境中圆满地履行,尤其是当某个芯片级缺点具有多重影响时更应如此。
相关核算成果表明:验证问题是客观存在的,并正在消耗有关的公司的巨额资金。

规划差错导致的芯片缺点:在由于逻辑和功用缺点的缘故而导致需求进行从头布线的规划傍边,有82%存在着规划差错。这意味着在验证进程中并未考虑一些极点场合,并且一向到最后的查看之前,bug都会藏匿在规划之中。

规范差错导致的芯片缺点:在由于逻辑和功用缺点的缘故而导致需求进行从头布线的规划傍边,有47%存在着规范不正确或不完整的状况。在由于逻辑和功用缺点的缘故而导致需求进行从头布线的规划傍边,有32%对规范进行了改动。

选用复用IP和外来IP所引发的问题:14%的缺点芯片在复用单元或外来IP中存在bug。

从头布线的影响:从头布线有或许给公司带来高达10万美元的丢掉。此外,它还会推延产品面市,并因选用这些缺点芯片的体系所产生的毛病而导致费用的上扬。

为了抵挡验证瓶颈问题可以:1.进步规划师的出产率:这一范畴大有优化空间。规划出产率现现已过改进核算机功用、选用比方微软公司的软件东西(如Excel)等个人东西而得到了进步。尽管它们在捕获测验和验证方案中大有助益,但大部分时刻却花在了测验场合的编码、运转和调试上。2.进步验证出产率:这种办法显着具有用于进步出产率的潜力。

为了进步验证出产率,EDA职业选用了一种与处理规划瓶颈问题类似的“笼统”概念。比方Verilog和VHDL等高档言语被用来验证芯片;包括比方使命、线程(分叉、衔接)等以及比方“while”等操控结构。这供给了对数据的进一步操控,以便在一切的功用隅角上完结规划的全面履行。但是,这些构件曩昔是不行归纳的,因此未被规划师用作实践规划代码的一部分。

跟着杂乱性的继续进步,人们创立并引进了可以在不同的笼统级上对杂乱规划进行验证的新式验证言语。伴跟着这些新式言语的面世又呈现了对其供给支撑的技能和东西。

验证与承认(Validation)的比较

除了验证问题之外,芯片制作商还饱尝承认时刻的困扰。Kropf将“承认”界说为“经过查看完结方案的作业行为来取得对规范的决心的进程”。对验证与承认的比较,观念很多。一种观念是:“承认用于保证这是一种正确的规划,而验证则用于保证规划是正确的”。另一种观念是:“验证是在硅片测验之前(Verilog/VHDL仿真等)进行的,而承认则是在硅片测验之后(在实验室中,在电路板上进行硅片测验)进行”。

不管是承认仍是验证,为了保证硅片满意规范,有两件事是必需做到的:

1)芯片规范得到了正确的解说(一般是凭借文档资料,有时也选用建模的办法);

2)这种解说被正确地捕获和履行(一般选用VHDL)、归纳到硅片之中、并被封装为芯片。

本文将第二步视作验证,而把第一步看作承认。图1给出了被业界用来保证上述两个进程得到满意的常见规划流程的概略。

视被履行功用的杂乱性的不同,可以越过其间的某些进程,也可以添加更多的进程。例如,假如知道某个特定规划彻底是面向硬件的,且不包括驱动器或软件,便可从笼统级3直接跳至笼统级1(无需进行硬件-软件折衷)。PLL(锁相环)规划好像便是这样的一个比方。

应该留意,当逐步走向较低的笼统级时,有必要始终保持等效性,以保证最低的笼统级可以满意体系规范的要求。

当今的验证技能和发展趋势

1. 动态功用验证

运用最为遍及的功用验证办法具有动态特性。之所以将其冠名为“动态”,原因在于输入图形/鼓励信号是在一段时刻内(若干个时钟周期)生成并运用于规划的,并且,对应的成果被搜集起来并与一个参阅/黄金模型进行比较,以便与规范相符。

一个仿真器被用来核算一切信号的悉数数值,并将规则的预期值与核算值加以比较。现在,业界可以选用的仿真器有两种。

1. 依据周期的仿真器:该仿真器彻底不理睬时钟内部产生的事情,而是在每个周期中进行一次信号评价。由于履行时刻较短,这类仿真器的运转速度往往较快。

2. 依据事情的仿真器:这些仿真器捕获事情(在时钟内部或在时钟的鸿沟上)并经过规划进行传达,直到完结一个安稳状况中止。

动态仿真的一个首要的缺点是,在一个限时仿真行程傍边,只能对芯片的典型(而不是一切或许的)作业特性进行验证。构成这种状况的首要原因在于芯片是针对已知测验空间(而不是不知道测验环境)进行测验的,选用的是定向测验法。EDA职业推出了比方Open-VERA、E和SVL(SystemC Verification Library)等愈加高档的验证言语。这些言语引进了新的概念,比方束缚随机鼓励、随机鼓励信号分配和电抗性测验台。伴跟着这些言语的运用呈现了一些用于对其进行解说的东西,就本场合而言,它们有或许是VERA、Specman和OSCI内核(即CCSS)。

除了引进了随机化功用之外,新式验证言语和东西还经过削减公司在构筑各种用于鼓励信号产生的测验场合/方案所花费的时刻量而完结了出产率的进步。例如,测验方案可以选用最高的笼统级来编写,并可以经过选用功用强大的面向对象型结构而“扩展”至任何较低的笼统级。

当选用动态验证时,规划者一般期望具有一个以可量化项来掩盖和捕获的功用空间的估计值:

1. 被验证的代码行的数量(行掩盖率);

2. 被验证的逻辑表达式有多少?(表达式掩盖率)

3. 在一个FSM规划中到达了多少种状况(FSM掩盖率);

4. 在一个仿真行程中进行双向改换的端口和寄存器的数量(改换掩盖率);

5. 规划代码中被掩盖的逻辑通路的数量(通路掩盖率);

这可以经过选用比方代码掩盖和lint等东西来完结。

规划者将“断语”用作一个占位符,用来描绘与某项规划相关联的假定和作业特性(包括暂时的特性)。假如规划满意或未满意规范或假定,则断语将会在一个动态仿真进程中被触发。断语也可在办法/静态功用验证环境中运用。

2. 混合功用验证

在该办法中一般履行动态仿真,仿真成果被捕获并用作静态验证的输入。在静态验证期间,逻辑方程/符号经过规划进行传达(而不象在动态仿真中那样传达的是数值)。这种办法尽管不如办法验证翔实周全,但却可以被证明具有比纯动态仿真更高的功率,由于它开始于动态仿真中止之时。

3.静态功用验证

在静态功用验证中,没有向规划施加输入鼓励信号。而是将规划映射至一个选用BDD(双择判定图)或其他数学表达式(它们规则了一切时刻周期中的规划功用)来阐明其功用的图形结构上。运用这种图形结构来证明或辩驳特点将可以验证这些数学表达式。这是经过确认数学结构中的对立式(办法是顺着或逆着信号流来传递数值)来完结的。

现有东西选用以下两种办法来满意静态验证商场的需求。

1. 选用断语:这些是在模型/规划本身傍边规则并公式化的规划束缚(运用比方SystemVerilog、Open-VERA、Verilog、VHDL等规划/验证言语)。

2. 选用特点:这些经过选用一种特点言语(比方PSL、Sugar)供给了特点的规范。

4. 等效性验证

为了确认逻辑门级表明与HDL完结是相同的,经过选用匹配点并比较这些点之间的逻辑来履行一种所谓的“等效性查看”。生成一种数据结构,并将其与相同输入特性曲线条件下的输出数值特性曲线进行比较。假如它们不同,则表明(在本场合为逻辑门和RTL)是不等效的。当其间一种表明经过了某种类型的改换时,等效性查看有时是在两个衔接表(逻辑门级)或两个RTL完结之间履行的(图2)。

构成规划表明呈现差异的一些实践原因如下:

1. 组成算法/启发式法:依据对组成东西的束缚条件(区域、时刻、功率)的不同,组成东西将对逻辑运算进行优化,以推导出恰当的逻辑门级表明。为此,组成东西将选用启发式法和逻辑最小化算法。

2. 笼统级:有时可以选用HDL来完结规划,它有或许与规划者的目的存在必定的差异,原因是言语的局限性,抑或是缺少(或不具备)对组成东西解说特定言语结构并将其改换为逻辑门级表明的办法进行猜测的才能。

正确验证办法的挑选规范

在预备将新技能引进自己的东西流程之前,芯片供货商应当考虑以下问题并做出恰当的折衷。

1. 在某个特定的产品线中,咱们是商场的领先者仍是跟随者?

2. CAD基础设施、东西和办法是集中式的仍是分布式的?

3. 新式验证技能的评价是针对第一代产品进行的吗?

4. 新式验证技能对本钱和产品面市时刻的直接影响和直接影响是什么?

5. 新式东西能否处理变化的规划才能?

6. 东西的易用性怎么?

7. 可为新式东西供给什么水平的文档和支撑?

8. 新式东西和办法与公司内部现有的东西和办法之间是否具有互操作性?

9. 新式东西的ROI(出资报答)是什么(包括服务、培训、咨询、核算和人力资源)?

10. 新式东西能否支撑处于多个不同地理位置的规划?

11. 关于有关公司而言,他们所需重视的最为重要的问题或许是:咱们招聘的规划师和验证工程师对新式东西是否有成见(规划师不愿意学习和选用新技能)?

1.产品视点

首要从事存储器芯片或存储器密集型(而不是逻辑密集型)芯片出产的公司――比方SRAM和DRAM公司或许底子不需求进行很多的逻辑验证。这些器材大多是定制的。尽管此类产品中有些规划会很大,但它们的逻辑杂乱性并不高,因此不支撑在公司内部装备很多逻辑验证东西的方案。不过,存储器密集型规划提出了其他的应战,比方布线、工艺调整和功耗。

那些制作纯AS%&&&&&%芯片(其上不运转软件)的公司或许无须进行硬件-软件折衷,或许或许不用施行用于捕获运转于硬件之上的软件的测验。例如,只具有硬件的SERDES(并串/串并改换器)芯片所要求的验证和建模办法与一起具有硬件和软件的SoC是不同的。

关于具有类别广泛的产品线的大型公司来说,验证办法有必要包括不同产品的各种要求。

2.体系视点

曩昔,逻辑芯片供货商不担任对芯片是否满意某一参阅体系上的功用和功用要求进行验证。现在的体系厂商在批量订购之前都要求芯片制作商进行体系参阅验证。这就要求芯片公司选用一种他们所不熟悉的附加笼统级来对芯片进行建模和验证。这需求架构模型、参阅模型、拟定杂乱的运用级测验和精密的测验台装备。面临这些类型的难题,有关公司有两种挑选,一是选用现有的言语、技能和办法(这样做将消耗很多的时刻和精力),另一种便是很多选用新技能(如VERA、Specman等)。此外,芯片销售商还有必要保证所选用的参阅模型和验证套件是在一个与客户兼容的环境中履行的(比方,测验场合应该可以运用客户的软件开发套件SDK以及客户所用的仿真器)。

3.办法视点

在芯片集成之前,可以依照一个高置信度将静态功用验证和动态仿真结合起来用于验证模块级功用度。选用动态仿真可以高效履行体系级验证,凭借的办法是确认咱们正在接连不断地验证功用空间的首要隅角。

首要履行随机仿真(以便在验证的初始阶段捕捉到很多的缺点),并随后对随机仿真加以束缚(以确认在测验方案中所规则的测验空间现已在器材上被彻底掩盖)的做法或许相对简单一些。应考虑将束缚驱动型验证在功用掩盖测量上进行细化。“功用掩盖率”这一术语被用来描绘一个对所掩盖的功用空间进行量化的参数,相反,“代码掩盖率”则被用来对现已完结的规划被某一给定的测验套件所掩盖的程度进行量化。定向仿真随后可被用来在验证周期的结尾掩盖隅角测验空间。

断语和特点可在静态功用验证期间的布景中起作用(在模块级上),并可在动态仿真环境中被重用(在模块和体系级上)。假如模块将被转变成IP,则它们也是有用的,由于断语将在IP被重用时继续不断地查看其特点。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/chuanganqi/193035.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部