一些团队中的工程师既担任设计又担任验证,在编写HDL后顺便执行验证。而另外的一些团队使用独立的验证团队,相比设计人员同时扮演双重角色有明显的优势:
一、验证是一个独立的工种,需要具有和设计完全不同的很多技能,其中最主要的只有两件事(1、创造完备的输入激励场景;2、进行完备的功能检查)。而RTL设计最主要的技能是使用HDL实现所需的功能,同时满足PPA要求。
所以,一旦一个人开始从事验证或者设计就很难在这两者之间跳转,因为这两个工种各自本身的领域就足够大家探索大半辈子了。
第二、 独立的验证工程师不会受到设计思维所影响。因为设计工程师在验证自己的逻辑设计时,肯定不会对自己本来就忽视的场景进行验证,很容易造成漏测的风险。
第三、验证工程师的输入和设计工程师的输入应该都是最初的接口协议文档。独立的验证工程师能够消除设计者本身的理解偏差。一个人理解错误的概率是10%,那么两个独立个体都理解错误的概率就只有1%。
当然,设计和验证也并非完全独立。设计人员在向验证团队交付HDL之前,应先执行冒烟测试,这是发现**芯片功能问题的第一道防线。**如果设计者将未经过冒烟测试的HDL交付给验证团队,很容易出现低级的编译问题,从而造成来回迭代的低效率。
一口锅被丢来丢去,半天煮不成饭。
相比验证工程师,设计者对HDL更为熟悉。简单来说就是,设计者在想了很久才写出来的逻辑,很大概率也是这个模块验证的风险。设计者应该向验证工程师指出他们自己处理过的复杂场景,以便验证工程师进行更加充分的验证,例如更多的断言、白盒覆盖率和波形检视等等。
设计人员协助验证工作的最后一个关键要素是提供更多的实现细节文档,例如接口时序、FIFO深度,状态机跳转等等,以便验证功能师能够针对性地进行更多的压力测试。
回到最开始的问题:数字芯片验证项目中设计验证的比例应该是多少?
一般是1:1到1:4之间,这和实际项目情况有很大关系,如商业压力。一家处于市场竞争激烈的小公司,为了第一时刻产品成功TO,无法接受流片后出现功能问题的代价就可能雇佣更多的验证人员。简单来说,硅后发现功能问题的代价要远大于招聘几十个验证工程师。
所以,如果市场给予的时间太多了,验证工程也许就没那么有价值了。市场给予的时间少了,有经验的验证工程师就愈发具有价值,当然压力也会更大。一个人值多少钱,那得看你能够给公司提供多少剩余价值,这是永恒的(残酷)真理。
作者:验证哥布林
原文链接:https://mp.weixin.qq.com/s/FAHZeUe9tGim9RbXqNebzg
微信公众号:
推荐阅读
更多IC设计技术干货请关注IC设计技术专栏。