中文 英语

验证心态

是什么让良好的验证工程师?它并不总是关于技术专长,很少只是关于验证。

人气

多年来,半导体验证的实践大幅变化,并将继续这样做。功能验证需要20年前的技能集几乎无法识别为今天的验证技能,并且预期应该向前移动,因为设计和验证变得更加抽象,在硬件与固件和软件中实现的内容继续移动,除了采用新技术。对完整验证频谱的移动是对恒定增加复杂性和上市时间压力的持续响应。

这意味着一个好的验证工程师的定义会随着时间的推移而改变。

“一个良好的验证工程师20到30年前了解设计,如何构建简单的功能测试计划检查表,并大致在模拟器中的设计级别唤醒电线,为可以检测功能故障的建筑模型的奖励积分,”克里斯吉尔斯,设计解决方案产品经理西门子eda.

十年前,良好的验证工程师精通面向对象的编码。他们能够构建一个整个测试台基础设施,产生受限的随机刺激,监控接口,监控结果的正确性,以及寻址的覆盖率与联合设计/验证定义的测试计划。

“Today’s good verification engineers understand system functionality, software/firmware functionality, the hardware/software interface, and build object-oriented testbenches that are portable and flexible to run in a myriad of technologies from simulation through emulation and on to prototyping,” Giles said. “On top of that, a good verification engineer today can use formal verification, as well, such that the right tool is applied at the right time to get an entire system built right-first-time.”

其他人也指出了类似的变化。“今天,一个好的验证工程师几乎是一个无所不知的工程师,”Zibi Zalewski说,他是硬件部门的总经理aldec。“拥有一个设计背景非常好,这允许它们构建更好的面向硬件的测试场景。他们需要不同验证方法,HDL语言和库的知识库。它不再足以编码VHDL.verilog.UVM或osvvm提供新的可能性,但也从验证工程师学习它并有效地使用它。这些技能总是有益于验证团队经理。“

这可能是非常具有挑战性的工作。“在Simon Davidmann,CEO的Simon Davidmann说:”高端的验证是令人难以置信的Imperas软件。“它比开发建筑或写作软件更复杂。那些并不容易。但实际上表明他们有很少的虫子,如果有的话,更难。因此,软件世界已经建立了正式的注释工具,硬件世界建立了正式的工具。验证是非常难以理解的,要知道你完成的时候,并知道你正在正确地做到这一点。在处理器验证中,这是一个黑色艺术,所以它是专有的。人们不知道英特尔,ARM,Tensilica如何进行处理器的验证。“

选择正确的人
而这些人供不应求。为特定的团队找到正确的验证工程师需要跳出固有思维。

Hagai Arbel,首席执行官Vtool据说他在验证工程师中寻找的是与别人所寻求的不同。“我在寻找工程潜力的极端方面 - 了解解决问题与知识。我也在极端方面,这是一个很好地了解语言的重要性。对我来说,它可能是10%的语言知识。我不能告诉你一个没有任何经历的聪明的工程师,让我们说,两个月的经验将比一个拥有10年的经验的中型工程师更具生产力。但从长远来看 - 这种长期会很快就会很快 - 我总是更喜欢这种方法,能力,可能是个人品质的能力,将成为一个良好的验证工程师。鉴于合适的情况,学习曲线可能是惊人的。我有几家工程师在公司中,我们从一开始就营养,在6到12个月的工作之后,他们能够做出3,4甚至5年的经验中很少见到的事情。“

Arbel说,在面试一名工程师寻找潜在的就业机会时,衡量一名优秀的验证工程师的最佳指标不是他们给出的答案,而是他们提出的问题和速度。

他说:“真正聪明的核查工程师能立即掌握那些尚未确定的不确定性。”“你问他们一个问题,向他们展示一些东西,他们马上就会问缺少了什么。它可能是故意的,也可能不是故意的,并且可以在多个层面上进行解释。有些人能很快看出这一点。把它等同于天才,它就像电脑里的RAM。他们有能力在头脑中记住一个复杂的抽象形象。这是一个很好的天赋。此外,从定义上讲,优秀的验证工程师是具有广泛视角的人。他们想知道关于很多事情的很多事情。他们想知道周围的一切——也许不一定是晶体管最深的比特或字节,而是它周围的世界。 This is another characteristic of a good verification engineer. I find good verification engineers more similar in their thinking process to architects than to designers. And of course, the softer quality is they have a very strong sense of responsibility and accountability. They are the type of people who say, ‘Yes, I will do it. Count on me. I’m willing to take the risk and the responsibility that comes with it.’”

其中大部分都不是技术性的。“这就是你看待生活的方式,”Arbel说。“有些人专注于他们的小世界,而验证工程师则应该相反。你需要喜欢与人共事。我想不出有哪位优秀的验证工程师既自私,又喜欢独立工作,又不与他人合作。”

但是,技术基础当然是必不可少的。

“不仅仅是一份简历,我也在找有DIY意识的人。密码。“如果他们正在使用覆盆子PI,如果他们在其工作或大学项目范围之外的项目,我希望看到他们的自然创造力有多大,以及解决问题的能力。我对那些了解Python,C,C ++这样不同的计算机语言的人更感兴趣,而不是明确引用UVM和SystemVerilog的人。这对他们的精神和知识的广泛讲话。对我来说,验证工作不仅是设计测试台。它还制作了一个小脚本来运行云上,一点脚本来收集所有结果,一点脚本来测量功能覆盖的结果。这不是,严格地说,UVM或SystemVerilog。“

他说,对多种语言的知识促使验证工程师的驱动器思考如何接近事物。“这是一种与自然语言多格洛斯发生的事情,谈到大脑的学习复杂能力。这是一个积极的迹象。“

在就业面试本身期间,LUC看着候选人是否具有大学获得的理论知识,以及在现场解决复杂问题的能力。“我最喜欢的问题是提出RTL / Design块,其中我提供了原理图,一些波形,并询问候选如何验证此块。这是一个非常大的问题。对于初级人来说,这是一个很复杂的问题。对于具有更多经验的人来说,这是一个更简单的问题。我想听听候选人所说的所有内容。他们是否正在寻找正常情况的测试?他们看看检查角落案件吗?理想情况下,规范中会有一些错误,一些缺少的信息。一些候选人设法找到所有缺少的信息,这对我来说是一个积极的征兆,而一些候选人只是不夸耀它。“

在非大流行时期,LUC有时会为候选人提供金属脑预示。但是现在在网上采访时,他采用了创造性的技术,如要求解决方案问题。“我已经测试过这个特殊的棋问题。我花了几个小时,没有找到解决方案,这家伙在五分钟内解决了它。首先,它令人印象深刻。其次,这是一个好兆头,他没有欺骗他的简历,有时会发生这种情况。“

对开源和软件的误解
验证疼痛有各种形式,特别是在涉及到开源的时候,也有时被误解为“自由”。

AmperAs'Davidmann指出,有些人认为自我测试计划作为验证。“这是一个简单的程序,它说如果3 + 3 = 6,一切都必须好。但这测试了这种琐碎的东西。同样,在开源领域,有些人认为这一点是,例如,RISC-V合规性测试,并且它足够好的验证。(这不是。)当您使事情更为开放的问题时,这是一个基本问题的基本问题是它会适用于更多人。我们发现的是大量的人没有关于验证处理器或SOC的复杂性的线索。如果您忽略RISC-V,在开源中并不是真正存在的问题。任何设计芯片的人都会抬头说,“这将花费30万美元。我需要一个团队。我必须在核实中有50人。 I’ve got to buy a million dollars of Verilog licenses. I’ve got to buy a $5 million emulator. And I need people who understand all that stuff.”

同样,许多软件工程师通过软件镜头查看硬件和系统验证,反之亦然。“Software-based TLM interfaces provide the access layer to build high-level test models or test benches, even to connect virtual platforms that mimic a part of the system with a processor(s) and drive the design under test,” said Aldec’s Zalewski. “A hardware background with software development experience would be a perfect match for such complicated testing platforms, which means C/C++/Python experience is a big advantage for a verification engineer.”

从高水平,有一些特征来定义良好的验证工程师。对于Juergen Jaeger,产品管理集团总监在Cadence,是什么使得一个伟大的验证工程师是以下品质:

  • 组织。在验证中,这一切都是关于结构,纪律,准确的文档和完美的渴望。
  • 好奇心。良好的验证工程师需要希望了解待测试的产品,并了解最终用户如何使用该产品。
  • 坚持。永远不要放弃找到难以捉摸的虫子。
  • 创造力和勇气。找到新的做事方式,即使它以前已经完成了。
  • 不痴迷完美。知道何时足够至关重要,因为什么都没有100%完美。

此外,验证不是工程师只能在书中阅读。它需要实践。

“是的,读读书,但如果你没有真正做过,这是一个挑战,”大卫曼说。“成为一名优秀的验证工程师是一种心态。这是人的思维方式。他们是好奇的。你要么有,要么没有。有些人被它吸引是因为他们想知道某些东西是有效的。如果你向他们展示某些东西在起作用,他们就会想把它拆开,然后说,‘为什么它会起作用?或“为什么不工作?”对这些人来说,一切都是关于事实,而不是假设。这与政治无关。他们会说出真相,因为他们只对真相感兴趣。 It’s a certain type of person who is a good verification engineer. They are precise, they are slow, they really are engineers’ engineers. They don’t believe anything easily. They assume nothing. Everything’s got to be proved. They’re really methodical, and are able to keep track of everything without guessing, jumping steps or assumptions. It’s all detail oriented. And finally, it’s no problem if they’re wrong.”

当验证工程师有不同的验证方法的经验时,它也很好。“您需要能够选择适当的验证方法,具体取决于设计架构,复杂性和功能,”Zalewski说。“它是更古典的,如比特级测试或交易级别,具有需要准备好硬件验证模式的高级代码吗?这意味着对模拟器,仿真器或原型硬件等工具的广泛知识。每个领域都是一个非常宽的域,很难找到可以完成所有验证工程师。这就是为什么很多取决于项目要求和验证团队的适当组织,以利用验证过程的适当阶段的最佳可用技能。经验丰富的验证工程师具有硬件和软件技能,以及对整个过程的高级视图和使用能力正确地使用经验,是验证成功的关键 - 以及整个项目的成功。“

结论
今天的验证工程师的技能并不一定包括设计知识,但它应该。“验证工程师需要了解硬件的顺序性 - 这对于从纯粹的软件背景接近学科的人不一定显而易见,”吉尔斯说。

验证也必须不仅仅是验证功能。贾尔斯指出:“除非验证工程师了解硬件故障的潜在特征,否则此类故障将在未被发现的情况下通过验证。”“一个很好的例子是时钟域交叉,在这种情况下,可能不会在仿真环境中建模违规——或者可能只有在发生软错误时才会激活数据完整性硬件。推进面向对象编码testbenches 10到20年前创建了一个场景,需要建立团队可以有效地构建constrained-random testbenches导致知识差距,与验证团队专注于软件方面,缺乏硬件和设计原则。”

最终,一个良好的验证工程师利用基础知识和理论的基础,以便可以随着时间的推移快速调整。“添加到这是一种智慧的好奇心,继续学习新事物并采用新技能。最后,良好的验证工程师由多年的经验抛光。The result is that of a ‘renaissance engineer,’ understanding everything from hardware design, failure mechanisms, and constraints, to system requirements and software/firmware development, object-oriented coding, formal methods, and the differences between the capabilities of various technologies to be used, such as simulation, emulation and prototyping. This engineer has the fundamentals and curiosity to continue to evolve and adapt to the ever-changing discipline, which explains why a good verification engineer is hard to find and in great demand,” Giles said.



1评论

斯科特橘子 说:

好文章,很好地描述了纪律。

很难找到符合特征的工程师,并希望留在学科中。似乎太多的工程师认为验证不是“设计”所以我为什么要这样做?

你有典型的“优秀”验证工程师的具体例子吗?

留下一个回复


(注意:此名称将公开显示)