a. 芯片在制造过程中的问题 如今,半导体是整个电子行业不断发展的核心。新技术的发展,尤其是先进技术节点,如7nm及以下工艺,使集成电路行业能够跟上消费者不断增长的性能需求,也即摩尔定律得到延续,毫不夸张的说,集成电路技术是人类科技的支点。 但是,新的技术同时带来了新的挑战,芯片尺寸的变小会增加某些错误的可能性。芯片制造过程中的错误是我们不愿看到的,下面列出芯片制造中可能出现的一些问题。
即使在封装过程中,也有可能出现故障。考虑到所有这些问题,最关键的是在芯片出厂前进行测试,并且在每个关键过程都需要测试。 b. 解决问题的办法:DFT 测试从来就不是免费的午餐。现在的CPU都包含超过1000多个pins,内部包含许多功能,如果芯片内任一晶体管出现故障,整个芯片就会失效。作为消费者,我们不希望用到有故障的芯片。但是,要从数十亿个晶体管中找到单个缺陷晶体管,犹如大海捞针。我们需要穷尽各种组合来测试芯片所有功能,如果以这种方式进行测试,那么芯片上市时间非常久远,甚至以至于芯片可能永远无法到达消费者手中。那么如何解决这种问题?我们使用一种方法为芯片添加测试功能,叫可测性设计design for testability,DFT并不影响芯片的正常工作。 简而言之,可测性设计是一种通过向芯片添加更多电路来使芯片测试变得可行且具有成本效益的设计。此外,可测性设计技术可以改善内部节点的可控性和可观察性,从而可以测试芯片内部功能。 c. DFT的作用 i.测试时序电路 DFT提供了测试时序电路的解决方案,时序电路由于和时钟相关,正常的测试非常困难。与组合逻辑电路不同,我们无法仅通过查看输入来确定时序电路的输出。时序电路的输出取决于输入和时钟状态,很难从外部控制和观测内部触发器。 因此,除非将时序逻辑电路初始化为已知值,否则无法对其进行测试。为了初始化它们,我们还需要一组特定的功能。DFT使我们能够将此功能添加到时序电路中,从而使我们能够对其进行测试。 ii. 优化芯片制造过程 DFT在芯片制造过程中实现了两个重要目标:
芯片在制造过程中会经过很多次测试,如果测试失败,EDA软件可以定位到某个具体位置,然后进行切片分析其微观结构,最终定位到制造过程中。 d. DFT可以永久的消除故障吗? 测试是否可以保证芯片再也不会出现故障? 不会,芯片到客户手中,也有可能出现故障。如果芯片暴漏在高温或潮湿的环境或由于老化而随时可能出现故障。 举个例子,如果你有未锁定的CPU,你可以尝试超频,但是请不要这么做! 超频是一种将系统频率和电压提高到额定值以上的方法,配置不正确的超频可能会干扰时序指标并导致不稳定性。长时间超频会导致系统过热并承受压力,从而缩短计算机的使用寿命。这可能会导致芯片间歇性故障,并在将来造成随机崩溃。除此之外,它也可能使保修无效。以上例子只是对现实生活中可能发生故障的一种解释。 关键是,您甚至可以自行产生故障,芯片永远无法抵抗故障。它们总会发生,那么我们需要做些什么?测试设备可以增强我们的信心,通过测试芯片,供应商试图最大程度地减少将来发生错误和故障的可能性。 为了确保高质量的芯片,芯片在设计过程中还涉及一个辅助过程,即为验证。
2. 验证和测试的关系
a. 验证和测试的不同点 验证证明设计的正确性和逻辑功能,在使用硬件描述语言(VHDL/Verilog)对RTL设计进行编码后,即可完成该过程。它是用高级语言编写testbech来完成的。这仅在芯片实际制造之前执行一次,在设计中,通过system verilog进行验证,例如UVM。验证本身是一个单独的话题,这里不深入讨论。 相反,测试试图在芯片设计过程的每个抽象级别上保证所制造的芯片的正确性。由于在芯片制造和封装过程中均有可能发生故障,因此需要对每个芯片进行测试。通过测试,我们可以改善市场上出售的芯片的质量。b. 职业选择?验证 vs DFT 让我们先讨论下这两个职位的工作内容。 验证和DFT在芯片设计行业中都很重要,从产品开发的角度,这两者的范围都很广,你可以根据自己的兴趣爱好,自行选择。 芯片设计大约2/3的时间用于验证,从而使其成为VISL设计流程中最耗时的过程,因此与DFT工程师相比,验证工程师的数量也是很大的,如果你是DFT工程师,那么与验证团队相比,团队规模会小很多。 DFT:对于DFT,你需要精通CMOS VLSI,数字电路,数字电路测试,Verilog和一些脚本语言,这些技能将在你日常工作中发挥重要作用。你工作中会用到perl,shell和TCL等脚本语言。同时,DFT相关的EDA工具如:DFT compiler,TetraMAX,Tessent等。你将会和后端物理设计工程师和前端设计工程师紧密合作,职业道路,可能更适合后端物理设计,并且必须面对新技术的发展。 验证:对于验证领域,你将从事设计开发和某些高级的testbench的编写,这需要分析和软件编程能力,以及硬件技能。需要具有verilog,system verilog,C++的专用知识等。验证分为两个阶段:功能验证和物理验证。大多数验证工程师不会直接参与电路设计,晶体管或后端设计部分,主要着眼于前端领域。要成为验证专家,你需要实际项目经验。
3. 术语介绍
下面介绍DFT相关的一些术语,如果你不完全理解,不用担心,后面有更详细的介绍。
Testing: An experiment in which the system is put to work and its resulting response is analyzed to ascertain whether it behaved correctly
Diagnosis: Process for locating the cause of misbehavior in the circuit if it happened
Defect: Refers to a flaw in the actual hardware or eleectronic system
Fault: it is a model or representation of defect for analyzing in a computer program
Error: it is caused by a defect and happens when a fault in hardware causes line/gate output to have a wrong value
Failure: this occurs when a defect causes misbehavior in the circuit of functionality of a system and cannot be reversed or recovered
Fault Coverage: Percentage of the total number of logic faults that can be tested using a given test set T
Defect Level: Refers to the fraction of shipped parts that are defective. Or, the propotion of the faulty chip in which fault isn't detected and has been classified as good.