DFT和ATE岗位前景薪资对比,手把手教你如何选择岗位?
ATE测试和DFT可测性设计,虽然二者都对芯片测试至关重要,但是两个岗位的区别还是很大的。
两个岗位应该如何做选择?
先讲产业环节
我们知道芯片设计、芯片制造、芯片封测每个环节都是大工程,且每个环节都关键且重要。测试是芯片诞生的尾声部分,主要用来确保芯片的功能性、稳定性和可靠性。
如果在某层测试上漏掉了一颗有故障的芯片,就可能需要在下一层测试上花费10倍的物力、人力、时间成本才能发现,这就需要DFT设计,在设计环节就对测试环节的事“未雨绸缪”。
DFT是面向测试的设计,属于芯片设计环节。这是一个越在大厂越重要的角色,目前国内IC设计公司但凡是有些规模或者所做产品需要一定产量,都会设置DFT岗。
而ATE属于测试环节,市场需求相对更广泛,芯片设计公司、测试机制造商、晶圆制造厂和封装测试厂对于ATE测试岗位都有招聘需求。
再说工作内容
之前写过数字设计和功能验证岗位的区别,这是两个配合度比较高的岗位。ATE和DFT之间同样是两个互相配合的岗位,但工作内容却相差比较大。
芯片内部往往都自带测试电路,DFT的工作就是在设计的时候就解决流片后测试环节的一部分问题,提高芯片流片之后的可测试性,很大程度上能够降低测试的金钱以及时间成本。
参与芯片DFT架构定义和设计。
完成DFT电路设计,包括Scan、Mbist、Bscan等。
协助后端团队处理DFT相关的时序分析和timing收敛工作。
使用EDA工具生成测试向量,并且进行仿真验证。
参与ATE,debug 测试failure。
ATE比较依赖于测试机台(芯片生产完成之后检测芯片缺陷的设备),ATE测试工程师要做的就是使用ATE测试机完成芯片产品的测试。
负责芯片功能、性能和可靠性测试。
制定芯片测试方案、计划及测试环境搭建。
调试测试程序。
撰写测试计划和测试报告。
ATE和DFT的工作需要相互配合、相辅相成,从DFT的全称Design for test中就可见一斑了。DFT的一些岗位JD中也要求工程师配合测试团队完成芯片ATE测试和良率分析等工作。
技能要求的区别
无论是理论知识储备也好,还是软硬件技能掌握也好,都是从事IC端岗位的必要条件。
DFT
学历专业要求:本科及以上学历,微电子、集成电路、电信、自动化、电子类等相关专业。(对本科学历比较友好,实际招聘中本科学历占比64.9%)
基础知识要求:数电模电、数集模集等理论基础知识;对SCAN、BIST、JTAG等知识有深刻理解。
软件技能要求:熟练掌握Shell/TCL/Perl/Python等脚本语言;熟练使用Synopsys DFT Compiler/DFTMUX、Mentor Tessent等EDA工具以及Verilog。
ATE
学历专业要求:本科及以上学历,微电子、集成电路、电信、自动化、电子类等相关专业。(对本科学历比较友好,实际招聘中本科学历占比64.9%)
基础知识要求:对数字/混合/模拟/RF各类型集成电路有一定认识;拥有芯片测试原理的理论知识储备;了解CPU/GPU,对通用接口/高速接口有一定了解。
软件技能要求:对ATE测试机熟练操作,掌握ATE测试机的编程环境;熟悉C/C++/VB,有基本的编程经验。
硬件技能要求:掌握loadboard /probe card的制作过程,掌握基本layout技能。
薪资及前景
如果不考虑地区、企业等差异看综合水平的话,DFT和ATE的岗位薪资水平大差不差,基本都是20W起步。这里给大家罗列几个校招案例,仅供参考。
DFT岗位:
· 某民企base上海,211硕薪资21.5*14,另有3W股票。
· 某民企base成都,985硕18.3*16,算上其他福利和补贴,年包34W左右。
ATE测试岗:
加粗样式
· 某民企base上海,985硕年包25.6W,其他福利和补贴不详。
· 某国企base无锡,硕士薪资9.2*18-20,公积金12%,另有餐补和加班费,具体金额不详。
薪资方面相差并不大,所以这个因素反而成为了不太重要的参考项,所以可以再从长期发展和岗位天花板的角度来考虑。
ATE岗位入行门槛和上手难度更低,对于学历背景不那么过硬的同学来说会更友好;DFT岗位的门槛和上限都要更高,前些年我们对DFT并不算重视,近些年才逐渐进入高端线,所以现在的DFT工程师比较稀缺。
有一部分同学担心ATE岗位依赖测试机台之后会被机器/AI所取代。机台的精度虽高,但无论发展到什么阶段,都需要人判断芯片参数规格,需要人工写程序,机台不可能脱离人去操作,所以完全不用担心被替代。
总而言之,ATE和DFT在芯片测试中有相互依赖性,但岗位职责却不同。
到目前为止高校依然没有针ATE、DFT岗位的相关课程。ATE工程师就是靠用人单位自主培训,DFT也所以不存在一毕业就能直接干DFT岗位的科班生,要么是企业内部培养,要么是其他岗位工程师转岗。
如果你对两个岗位还是不知道怎么选择的话,不妨先跟行业的工程师了解一下岗位的学习难度,薪资,就业这些信息,再做抉择。
这里放个入口:IC入行指导
相关文章:

DFT和ATE岗位前景薪资对比,手把手教你如何选择岗位?
ATE测试和DFT可测性设计,虽然二者都对芯片测试至关重要,但是两个岗位的区别还是很大的。 两个岗位应该如何做选择? 先讲产业环节 我们知道芯片设计、芯片制造、芯片封测每个环节都是大工程,且每个环节都关键且重要。测试是芯片诞…...

驱动day4作业
通过字符设备驱动的分步实现编写LED驱动,另外实现特备文件和设备的绑定 head.h #ifndef __HEAD_H__ #define __HEAD_H__ typedef struct{unsigned int MODER;unsigned int OTYPER;unsigned int OSPEEDR;unsigned int PUPDR;unsigned int IDR;unsigned int ODR; }…...
【Oracle】VC6.0使用 odbc 访问 Oracle 存储过程
环境说明 系统环境 系统:Windows XP IDE: Microsoft Visual C 6.0 使用的对象 msado15.tlh _ConnectionPtr m_pConnection; HRESULT hr m_pConnection.CreateInstance(“ADODB.Connection”); _RecordsetPtr m_pRecordset; m_pRecordset.CreateInstan…...

QWidget快速美化-圆形蓝色单选框
将代码复制进QRadioButton的样式表 效果: 代码: QRadioButton{font:75 9pt "Arial";background:transparent;color:white;border:none; }QRadioButton:disabled{color:gray; }QRadioButton::indicator{width:12px;height:12px;border-radius:8px; }QRadioButton::i…...
adb 获取当前界面元素
adb配置正确,直接看6,pull的位置是你执行pull的目录下。 --------------------------------------------------------------------------------------------------------------------------------- 使用adb命令获取当前应用的元素需要先连接到手机或模…...
SpringSecurity源码学习四:会话管理
目录 1. 什么是会话管理2. springSecurity中的session管理怎么做的3. springSecurity源码中的session管理4. 代码示例5. 源码5.1 不同策略的含义 6. 集群模式session管理7. 总结 1. 什么是会话管理 会话管理是指在Java应用程序中管理用户会话状态的过程。在Spring框架中&#…...
Kotlin笔记(七):协程
1. 协程的定义 协程属于Kotlin中非常有特色的一项技术,因为大部分编程语言中是没有协程这个概念的。 什么是协程呢?它其实和线程是有点类似的,可以简单地将它理解成一种轻量级的线程。要知道,线程是非常重量级的,它需要…...

存储优化知识复习二详细版解析
存储优化 知识复习二 一、 选择题 1、 对数据库调优的方法中,最困难但是最有成效的是( )。 A、优化表的架构设计 B、添加内存 C、索引优化 D、查询语句优化 【参考答案】A2、 防止与处理死锁的方法有( )。 A、尽量避免或尽快处理阻塞 B、访…...

《持续交付:发布可靠软件的系统方法》- 读书笔记(七)
持续交付:发布可靠软件的系统方法(七) 第 7 章 提交阶段7.1 引言7.2 提交阶段的原则和实践7.2.1 提供快速有用的反馈7.2.2 何时令提交阶段失败7.2.3 精心对待提交阶段7.2.4 让开发人员也拥有所有权7.2.5 在超大项目团队中指定一个构建负责人 …...
Go源码实现使用多线程并发下载大文件的功能
摘要:Go语言编码实现了使用多线程并发下载文件的功能。 1. 代码流程介绍 1. 获取系统的CPU核心数量,并将其作为线程数的参考值,并打印出来。 2. 定义要下载的文件的URL、线程数和输出文件名。 3. 使用getFileSize()函数获取文件大小…...

Python基础入门例程1-NP1 Hello World!
描述 将字符串 Hello World! 存储到变量str中,再使用print语句将其打印出来。 输入描述: 无 输出描述: 一行输出字符串Hello World! 解答: str "Hello World!" print(str) 解释说明: 赋值变量&…...
前端面试题10.23
解决的最复杂的前端问题,介绍一下 最复杂的前端问题之一是浏览器兼容性,不同浏览器对网页的渲染方式存在差异,需要针对不同浏览器做兼容性处理。此外,前端性能优化也是一个复杂的问题,需要综合考虑网页加载速度、渲染…...

DYC算法开发与测试(基于ModelBase实现)
ModelBase是经纬恒润开发的车辆仿真软件,包含两个大版本:动力学版本、智能驾驶版本。动力学版包含高精度动力学模型,能很好地复现车辆在实际道路中运行的各种状态变化,可用于乘用车、商用车动力底盘系统算法开发、控制器仿真测试&…...

第四章 路由基础
目录 4.1 路由器概述 4.1.1 路由器定义 4.1.2 路由器工作原理 4.1.3 路由表的生成方式 (1)直连路由 (2)静态路由 (3)动态路由 4.1.4 路由器的接口 (1)配置接口 ࿰…...

Java逻辑运算符(、||和!),Java关系运算符
逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是 true 或 false。 逻辑运算符是对布尔型变量进行运算,其结果也是布尔型,具体如表 1 所示。 表 1 逻辑运算符的用…...

三个设备文件
...

Java赋值运算符(=)
赋值运算符是指为变量或常量指定数值的符号。赋值运算符的符号为“”,它是双目运算符,左边的操作数必须是变量,不能是常量或表达式。 其语法格式如下所示: 变量名称表达式内容 在 Java 语言中,“变量名称”和“表达式…...

提升药店效率:山海鲸医药零售大屏的成功案例
在医药行业中,特别是医药零售领域,高效的药品管理和客户服务至关重要。随着科技的飞速发展,数字化解决方案已经成为提高医药零售管控效率的有效工具之一。其中,医药零售管控大屏作为一种强大的工具,正在以独特的方式改…...
使用Fragement(碎片)
一、Fragment简介 屏幕大小的差距可能会使同样的界面在不同设备上显示出不同的效果,为了能同时兼顾到手机和平板电脑的开发,从Android3.0版本开始提供了Fragment。 Fragment(碎片)是一种嵌入在Activity中的UI片段,它…...
种花问题(Python题目)
假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。 给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 …...

Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...

Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...

2.3 物理层设备
在这个视频中,我们要学习工作在物理层的两种网络设备,分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间,需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质,假设A节点要给…...