Answers:
是高通公司的ASIC设计验证工程师。用最简单的方式我可以解释一下:
测试:创建产品后,确保产品正常运行(请考虑进行质量检查)。
验证:在创建产品之前,请确保其能够正常工作。
他们都在测试,只是验证更加复杂,因为您必须找到一种在产品存在之前对其进行测试的方法,并且必须能够确保产品按设计工作并在实际推出时进行规格说明。
例如,英特尔正在设计他们的下一个处理器,它们具有规格,原理图和仿真。他们花费了10亿美元进行制造和制造。然后芯片返回,他们进行了测试,发现它不起作用。他们只是从窗外扔了很多钱。
进行验证。验证工程师创建模拟芯片行为的模型,并创建测试平台以测试那些特定模型。他们得到这些模型的结果,然后将其与RTL(用硬件设计语言编写的电路模型)结果进行比较。如果它们匹配,则一切正常。
验证过程有很多不同的方法,一种流行的方法是通用验证方法(UVM)。
该领域有很多深度,人们可以在其中度过整个职业。
另一个随机的信息:通常您需要3位验证工程师才能为1位设计工程师提供帮助。无论如何,这就是该领域每个人所说的。
编辑:很多人认为验证是一种测试角色,但事实并非如此。它本身就是设计角色,因为您必须像设计人员一样了解IC的所有复杂性,然后您必须知道如何设计模型,测试台以及涵盖IC所有功能的所有测试用例,并尝试按RTL代码的每一行查找所有可能的位组合。请记住,由于制造工艺允许越来越小(现在为14nm),当今的处理器具有数十亿个晶体管。
而且,在诸如英特尔,AMD,高通等大型公司中,设计人员实际上并未设计芯片。通常,架构师将定义所有规格,布置需要组合在一起才能获得具有特定要求(例如速度,分辨率等)的特定功能的零件类型,然后设计人员会将其编码为RTL。这绝不是一件容易的事,它只是不像许多来自学校的工程师认为的那样设计。每个人都想成为一名建筑师,但是要达到这一点需要大量的教育和经验。许多建筑师都有博士学位,并且在该领域有15-20年的设计经验。这些才华横溢的人(有时甚至是疯子)应该做自己正在做的事情,并且他们很擅长。我研究的第一个芯片的架构师有点笨拙,并没有真正遵循一些社会规范,但是他可以解决您在芯片方面遇到的任何问题,有时他会在头脑中解决它并告诉您看到一个信号,您会想,“他到底是怎么做到的?”。然后,您让他解释一下,他做到了,事情就超出您的范围了。实际上,即使我已经毕业,但仍然启发了我阅读教科书。
在我的书中,“验证”确保您设计的内容“可以完成”-即,您拥有“设备”需要执行的一系列操作,而验证则将那些内容从列表中剔除了。
不过,测试是确保“设备”所做的事情正确无误。您有一组功能,并且测试每个功能以确保该功能正确执行。
简而言之,Verification是检查设计,而Testing是检查产品。
来自ASIC(硬件)设计背景的三个重要术语:验证,验证和测试。较早的答案通常只讨论其中一个或两个术语,但并没有按照我的方式清楚地对比所有三个术语。这是我理解它们的方式:
测试旨在查看是否满足规范。验证是为了查看设备是否符合设计输入-即所有规格。我想还有更多的解释,但这就是我在FIA指导文档中所看到的。
我们在验证测试和验证测试之间进行区分。假设您要设计一种风扇,以冷却某些设备。进行了验证测试,以确保风扇满足所有设计要求。因此,您可以测试气流,热循环,振动等。
验证测试可确保设计要求是正确的。我们为风扇提供的设计输入实际上是否为我们提供了所需的风扇?例如,您要确保风扇确实按预期冷却了设备。