验证和测试,从语文词汇的角度好像意思都差不多,都可以理解为检查、检测之类的含义。但是在芯片研发中,这两个词却是固定的“行话”,有着很大的差别。所以,对于很多新入行的人常把“ic验证工程师”混叫成“ic测试工程师”,这是很不专业的哦。这里我用最简单的语言聊聊他们的区别: 1.位置和对象不同 在芯片研发流程中,其二者处于的位置不同,针对的对象也明显不同。区分节点在流片。(流片可以简单理解为是利用设计好的集成电路的文件,通过工艺流程,生产一小批实体的芯片的过程。) 也就是说:流片之前没有实体的芯片的,只是“虚拟的”设计文件,流片之后,“虚拟的”文件就变成了看得见摸得着的实体的芯片。 处在流片之前的、针对于“虚拟的芯片设计文件”的检查叫做验证。 处在流片之后的、针对于“看得见摸得着的实体芯片”的检查叫做测试。 2.方法不同 因二者针对对象不同故其手段也必然不同: 验证针对的是“虚拟的设计文件”,所以通常只需要EDA软件工具就可以对其进行检查、进行“验证”(当然除了FPGA验证等手段)。 测试针对的是“看得见摸得着的实体芯片”,所以检查不能光靠软件,需要搭建一个硬件电路系统,去让这个实体芯片“动起来”,才能对其进行检查、进行“测试”。(为了提高测试效率发展出如ATE设备、DFT设计思想等) 3.目标不同 在IC研发过程中,检查我们的设计“对不对”,“好不好”是一直都要进行的(例如功能、性能、可靠性等方面)。其实通常验证也可以再细的分为前端 验证和后端验证、以及在这两个中间的FPGA验证。除了验证再加上芯片的各种测试,芯片的检查过程中的每个步骤目标和侧重点都是不一样的。因为越早发现问题越好解决,代价越小,前端验证发现问题最好改,越往后越难,到了测试阶段更难了,所以一般测试阶段发现问题就首先考虑的是使用时候怎么用软件规避过去,以及在下一版项目中改进的问题。 |