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 …...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
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…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...
