芯片验证:能力模型

在贯穿到整个验证系统思想里面,验证人员该具备的素质很关键,为了可以将抽象的词汇具象出来,我们列出了验证人员在验证流程中需要具备的五项技能
**完备性:**无论你从项目经理、系统人员、设计人员还是验证人员,大家谈验证首先提到的就是要“充分”。然而充分一词对于验证而言边界时模糊的,很难量化到什么时候才可以达到验证的完成标准。所以,作为一名验证经理,需要引入各种数据来综合量化出验证的进度,这其中包括了验证功能点的覆盖率,代码覆盖率,是否经过了低功耗验证流程(power aware verification),是否经过了跨时钟域检查等等。 通过数据量化,增强验证人员的信心,验证已经得到了“充分”的验证。当然,对于功能覆盖率部分,如何将功能描述文档充分理解,进而充分列出要测试的功能点并尽可能地细分出来,这需要系统人员、设计人员和验证人员的共同努力。同时,如何将抽象的验证计划转换到功能覆盖语言(SystemVerilog function coverage)需要验证人员具备该能力。
**复用性:**从项目的实际运用角度来看,复用性和完备性是同等重要的。没有人愿意会在下一个项目中将以前的验证环境做较大的更新,因为这意味着额外的资源消耗,包括时间、人力和项目进度的考虑。在硬件设计角度而言,通过标准总线协议,可以最大限度的讲模块之间实现相对独立和快速集成,所以对于目前项目进度不断缩紧的现状来看,一方面是市场的瞬息万变导致的,一方面也是由于SoC自身逐渐趋向于软件的快速周期迭代方式而成的。对于一个系列芯片而言,后续芯片的性能提高、功耗优化都是建立在前一代的基础上的,而这些不断地提高和优化具体到每一个硬件子系统而言,可能就是他们的存储大小、时钟快慢、动态电源开关、总线宽度、缓存深度来综合决定的,然而下一代硬件设计自身一般不会有第一代芯片的艰难历程(否则它也就称不上是系列芯片了)。 那么从硬件设计的角度来看,这些更新如果不会在逻辑上面有大的变动,那么带来的工作量是可以估计的。而从验证角度来看,我们也很自然地希望验证的工作量也不需要太大——可是事实并不一定是这样的。首先从芯片项目的集成性而言,设计人员相比较验证人员,在同一功能模块的稳定性是更高的,那么当一个
验证人员在尝试阅读和修改上一个项目的验证代码时,就要看看他的运气。一般来讲,他的运气会跟上一个验证人员的代码风格有直接的关系……同时,验证人员在处理一些总线协议的时候要有意识引入参数来为日后的复用做好准备。而不断融合的验证方法学,走到今天,UVM(Universal Verification Methodology)之所以划分出不同的功能单元,实现小的颗粒度,提供快速插拔式的环境集成,也是为了复用性考虑的。
**高效性:**高效指的是用尽可能小的工作量来完成验证工作。在保证验证完备性的情况考虑下,实际上复用性和高效性会有存在冲突的可能。例如,验证人员会考虑如何“短平快”地在一个紧张周期内完成验证工作,但可能他不会采用UVM等方法学框架,也有可能他不会考虑将参数引入到验证环境中,因为这些“额外”的因素虽然是对复用性有帮助的,但是也会跟高效性有冲突。所以,验证人员需要针对不同的情况,做好平衡,至少需要保持一种意识,那就是工程学的执行阶段本身就是一种平衡,对于验证人员来讲,他需要作出的判断就是在每一个项目每一项验证任务中做好取舍,来给出一个合适的验证考量维度。甚至对于同一项验证任务而言,采取不同的验证策略也会有不同的完成效果。
**高产出:**在一定的时间,可以调试、报告、帮助修正出多少个设计缺陷,以及可以建立多么完整的验证环境。多年来数字硬件设计(RTL级别)的基础并没有发生太多变化,同时EDA厂商提供的自动化工具又进一步提供了便利,提高的设计本身的可靠性。但是这一情况却并不适用于数字验证,因为EDA工具目前仍然只能作为辅助手段,例如提供更多方便的调试功能和接口,却不能也随之自动化帮助建立复杂的验证环境。这也就不难解释了2014年Wilson在功能验证领域的调查数据显示,今天在设计和验证领域面临着最大的挑战之一就是为快速的芯片产品和员工数量增长之间找到一个平衡点, 实现单位产出的提高。
**代码性能:**代码性能似乎也跟高效高产出有冲
突的地方,因为对于验证代码的整洁性、复用性甚至一点点地美感都对于数字意义上的验证完备性没有直接联系。 但是每一位验证人员也需要记住一句台词“出来混迟早是要还的”,无论是你在看着别人写的验证代码没有注释、没有缩进、超长if-else判断语句等等这些让你已经无力吐槽是时刻,还是你因为项目紧张快速搭建验证环境和编写测试用例的时候没有考虑到“后来阅读者”和“你后来阅读”而偷的各种懒,相信我,时间会让你为此买单的。所以,作为一名验证人员,请在你写每一行代码的时候把它当做你日后行业名声的荣誉墙,尽管你还在迫于项目的压力快速建立环境完成验证,但等到你有闲的时候会去再改善那些代码吗?不要再相信这些鬼话了,现在就去做吧!
从上面的五个角度来看,做一名合格的验证人员实属不易,更不要说考虑到每一个项目每一项验证任务来分别针对制定出合适的指数。虽然项目执行没有尽善尽美,但是针对验证人员自身,如果可以意识到这五个关键点的存在,并且能够在实际工作中都照顾到它们,运用到验证任务的考量中,那你就是有意识地在培养自己成为一名合格的验证工程师。

参考链接:http://blog.sina.cn/dpool/blog/s/blog_13f7886010102x4y2.html?vt=4

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值