设计就是验证,验证就是设计 - humann的感悟
今天下载没钱了,又不想发垃圾。就写点工作感悟,希望对学弟学妹门有所帮助。如果有帮助,就写点有用的回复。如果有用的回复超过50个,我就动笔写下文
工作了3年,见过,听过好几个项目灰飞烟灭,血本无归。一个个美丽的设想,在严酷的打击下,破灭了。究其原因,就是不能在尽量短的时间内,把高质量的芯片产品话。缩短设计周期,生产高质量的芯片,一个团队的验证效率质关重要。
验证难, 取决于以下的一个基本事实:
如果功能复杂度是 N 的话, 那么测试的复杂度就是 2^N。对于一个有50个独立功能的基本模快,他的测试复杂度可以估算为 2^50== 1.12589991 × 10^15 == 1.12 MILLION BILLION
设计就是验证
在当代复杂芯片的设计中,70%的工作都是在验证。验证不仅仅是验证工程师的任务。就是RTL高手,50%以上的工作时间也是花在验证上。几乎100%项目的延期都是因为测试没能完成。可以毫不夸张的说,一个团队的验证能力是它的核心竞争力.
验证就是设计
因为验证在芯片设计中决定了整个设计流程的效率,所以验证系统的设计是一个牵一发动全身的全局级的问题。见过好多设计牛人,在开始设计时忽略了测试方案的设计,结果随着新的功能不断加入,系统越来越复杂,导致无法收场。
话是这么说,但是国内的验证工程师好像好没地位哦。
我才开始做验证 支持lz
这么没人气?别说50个,10个就不错了,呵呵
我来说两句:虽然现在说是验证和设计要同步,但是鉴于现在做验证的人员经验的问题,加上项目的进程问题,人手问题等等,要想早一步做好验证的准备是不太可能的,除非同一个团队有一两个项目的经验,做好了开发的流程和基本的reuse的验证环境,再做新的项目就会有所准备。
虽然我也见过,就算做了好几个项目,但是每个项目基本上都是赶工coding,然后再赶工验证,周而复始……这个主要是人手问题
偶自己也算是有点设计和验证的经验,但是接受一个全新的项目还是没太多头绪,现在不是人手的问题了,却是经验的问题,对项目的陌生的问题
也来冒个泡。原则上讲,验证包括设计,只是其设计部分的实现方式不一样而以,而在模型、环境等建立以后,又有用例设计,又接着实施验证测试工作,又要对缺陷分析,协同设计人员定位问题。系统验证比较麻烦,软硬件验证,数模的验证。
IT 哪一样不是体力活
我做模拟的,也深有感触
验证的重要性不言而喻,没有验证的保证,哪敢投片啊...
验证的重要性不言而喻,没有验证的保证,哪敢投片啊...
同意小编的观点,我是做Analog and Mixed signal verification 的。 现在的主要问题还是没有一个统一的,自动的验证系统,尤其是 Analog。越来越多的时间都是用来做verification了。
你说的没错, 我在国外工作, 部门和客户对我们验证团队的重视程度要超过设计团队, 有一年觉得我们项目做得很辛苦, 部门特别奖励我们验证团队5天额外休假, 设计的继续加班。
但是你到国内和猎头去聊聊, 如果报告自己是做verification的, 多半对你兴趣不是很浓厚, 这是我们面临的现实和尴尬。
唯一聊以欣慰的是工作5年以来, 其中专门做了3,4年的验证,参加过那么多项目,还从来没有因为自己验证过的IP的质量问题导致项目重新流片,当然曾经也有过bug没找到被报告的情况, 但很幸运, 和设计工程师系统工程师探讨后发现这个bug在fullchip里永远不被触发,不需要改设计。 还有一次,自己验证的一个IP没有问题, 但它在一个子系统里集成时和SRAM连接时出错被人报告了, 但确认最后不是我的责任, 毕竟自己担任只是这个IP的验证, 没被要求参加到子系统的测试, 但现在想来, 如果自己当时proactive一点, 主要要求把IP的验证环境migrate到子系统里去, 错误肯定会被发现。
不谈这些了。 突然后悔当初没听父母的劝告去学医, 毕竟医生是越老越吃香啊, 干嘛非要去读那个EE啊, 还学的是数字
呵呵 有这个感悟 就是向成功的设计迈了一大步
我觉得验证工程师越来越像系统工程师,技术总监,
不仅得懂验证,还得懂设计,有的还得懂软件,c,c++,脚本,
我觉得有两个方面的原因:
一是国内设计芯片的复杂度还不是很高。2^N 的可怕性只有 N 比较大的情况下才能体现的出来。
二是国内的经验不足,认为验证测试技术含量比较低。
我想,随着国内设计的发展,这些东西很快就能改过来。我们公司也是"死掉"几个项目以后才有切肤之痛。现在上上下下都在强调验证.
个人认为是国内的IC还没跟上形势,所以会不那么看重验证工程师
新认识 谢谢大家
会慢慢重视起来的吧
验证的确非常重要,谁都知道,但结合我自己的经验觉得我身边的验证人员和环境还有很多问题:
1\验证人员的素质很重要,甚至超过设计人员,要求对所负责的测试模块非常熟悉,但可惜很多情况做不到,导致验证效率低下.所以个人很反对随便找个人进行验证,最好验证人员的工作方向相对固定.
2\验证人员工作能力的全面也很重要,很多事情可以交给机器做,这就需要掌握很多工具,软件的硬件的,这样才能从大量的琐碎工作解脱出来,集中精力分析\查错
3\高层规划人员必须注意设计的可重用性,毕竟验证人员也是技术人员啊,设计随便一动害惨很多人.另外验证流程,自动激励生成,结果自动比较等都应该想办法标准化,流程化,工具话,验证工作中很多工作还是很枯燥的
谢谢21楼的 zhangwei_it的留言。许多朋友在我的贴子上发表了自己的真知灼见,我从中受益良多。也欢迎各个方面路过的高手多多发表自己的意见。
貌似牛人,拜读一下
刚做没多久,感觉精力很难分配,有很多事情需要留心。
这个体会很真实啊
1.验证工程师要懒惰,这样才会想到reuse,而不是这个项目拼命coding TB,下个项目又继续coding TB....永远地牧羊人。
2在中国,拥有懒惰思维的不多。而不仅要懒惰,而且,为了这种懒惰,必须更加勤奋地去钻研,这就是VMM产生的原因。这样的人,更少。
这个见解倒是挺精辟,IC设计里EDA工具出现和发展貌似也和这个有关系
验证确实非常重要,可惜受到的重视不多
In Perl, laziness is a virtue.
Laziness doesn't mean not to work, but work smartly and efficiently. To achieve this, we must automate allrepeatable and boring part ofjob to concentrate on the things which really matter and interest us..
验证啊,体力活哦,真累
赞同小编的意见
芯片是设计出来的,但是验证确实占据了芯片设计的一个很长的周期,规模越大越难以保证完备性
并且这个是领导所不关心的
IT累啊
显然的