时间:2024-08-10 来源:网络搜集 关于我们 0
来源:公众号【ZYNQ】
ID :FreeZynq
整理 :李肖遥
岗位简介
数字IC设计流程
数字验证处于数字IC设计流程的前端,属于数字IC设计类岗位的一种。主要是对数字前端的设计做验证。
随着芯片规模不断加大,在IC设计过程中验证的复杂度也进一步加到,需要的用到的岗位人数也越来越多,很多大公司,数字前端设计工程师与验证工程师的比例已经达到1:3。
IC行业的技术门槛高、投入资金大、回报周期长、失败风险高,做一款中等规模的芯片大致需要10多人做1年半,开模的费用一般都在几百万。设计过程的笔误或者设计bug至少都会有上千个,由于设计缺陷或者工艺缺陷很容易造成芯片完全变成所谓的石头。而如果要重新投片,不但需要投入额外的费用,更会将芯片上市时间延后至少半年,这些风险对于商业公司来说都是不可接受的。
正因为芯片的高风险,才凸显了验证的重要性。在流片之前,通过验证人员的验证活动,发现所有的设计bug,这就显得特别重要。
下图是一副比较完整的芯片端到验证端流程图,大多数公司的验证流程是大同小异的,差异点在于各个流程中具体做的事情。
IC验证的流程
验证做任何事情都需要按照一定的流程来走,否则很容易陷入混乱之中,对刚入门的新手来说,更是如此。通用流程大致如下:
1)提取测试点,明确验什么
分析FS/浮点平台,提取芯片的规格及测试点;
分析AS/定点平台,提取测试点;
分析DS,提取测试点并识别asic与算法的不一致点;
2)制定验证方案,明确怎么验
刷新测试点列表,明确测试点的覆盖方式:功能覆盖率、代码覆盖率、直接用例;
验证环境的搭建策略,这个步骤是可以做成自动化工具的;
验证的重点难点,提前识别重难点,并制定相应的对策;
刷新用例列表,明确测试用例的方法及步骤;
3)用例执行,随机测试,发现bug
执行直接用例,发现大部分的bug;
带随机的大量测试,试图撞出bug;
4)完备性分析,确保无漏验
FA/AS完备性确认,确认FS/AS中的所有点都已纳入测试点,并确保已被覆盖,包括应用场景;
接口完备性确认,保证所有的接口时序都已覆盖,包括正常时序及异常时序;
覆盖率确认,分析所有的代码覆盖率、功能覆盖率,保证全部覆盖;
代码分析,熟练掌握电路的实现逻辑,保证所有的电路corner都已覆盖;
上述这几个步骤是一个比较规范的流程,只要每个步骤都做好,基本就能做到无漏测、零漏验。
招聘对象
教育背景
验证工程师常常具有电子工程、计算机科学或相关学科的工程学位。
验证工程师需要有较强的分析能力,系统思维的能力。
其他软技能
验证工程师的工作质量,直接决定了产品的功能/性能。为此,认真的态度是验证工程师最需要具备的工作态度。
除此之外,验证工程师还应具有以下技能:
沟通能力
验证工程师需要不断和设计工程师沟通协调,才能将工作进行下去。
学习能力
无论是验证面对的产品的复杂度,还是产品种类的数量,都要求验证工程师不断学习,才能胜任。
责任心
首先要做到不偏不倚、不做假设地对每一个角落都认真验证。抱着对产品负责的态度做事,认真负责。
以某公司招聘要求为例:
1.微电子、电子、通信、自控等相关专业;
2.具有扎实的数字电路理论基础,熟悉数字电路IC设计流程,熟悉ASIC芯片和FPGA开发流程
3.掌握Verilog语言,熟悉EDA工具(VCS/Verdi等)
4.熟悉DC、PT、Spyglass、starRC、Formality等工具者优先
5.熟悉FPGA验证者优先
6.熟悉UVM验证者优先
7.有安全芯片、IOT芯片、智能卡芯片设计经验者优先
岗位职责
验证工程师的工作就是要在产品投入生产前将产品中的潜在缺陷尽可能找出来。为此,验证工程师要完成下面这些工作。
1、学习和理解产品的功能、规范和性能指标
2、分析待验目标,拟定验证计划
3、开发验证方案、验证环节和脚本工具等
4、按计划执行验证过程,认真记录结果,分析验证覆盖
5、评判验证结果,并形成验证报告
作为验证工程师,和其他工程师一样,经常还有无穷无尽的会议要开,各种review,各种讨论。
所以总结来说,最主要做的两件重要的事情是:
编程
debug
以各家公司具体要求为例:
华为海思:
1、负责面向华为终端P系列/Mate系列/荣耀手机短距无线通信数字芯片开发,包含FPGA,ASIC设计,数字芯片验证,SOC、IP开发等岗位;
2、牵头负责物联网核心芯片交付,负责NB-IOT(WLAN,智能家居,车载蓝牙,车载导航,智能监控,行业物联网,无人机技术)物联网芯片开发和设计;
3、面向5G全连接,负责IEEE802.11 ac/ad/ax等领先技术预研,包括60G高频手势识别,AR、VR,智能驾驶等;联发科:
1. 通讯芯片的开发,利用Verilog撰写功能模块以及系统架构的RTL。
2. 通讯芯片的模拟验证,利用System Verilog开发testbench以进行模拟验证和除错。
3. 功能模块和系统架构的FPGA以及ASIC验证。
紫光:
1、根据设计规格书制定验证计划;
2、搭建验证平台,执行验证计划;
3、基于SV/UVM搭建芯片系统级和模块级验证平台,并满足覆盖率要求;
4、负责产生和维护验证过程相关设计文档及报告。合作岗位
验证工程师需要和不同岗位的工程师配合工作,查找出芯片设计过程中的bug,并进行修复。
验证工程师打交道最多的就是前端设计工程师(RTL设计工程师),一起讨论问题,经常一起debug case,目的就是让写的verilog代码没有bug。
如果你在小公司,那么你负责的板块可能比较多,合作的对象也会增多。
还经常需要和架构工程师打交道,去了解更多芯片的整体架构和features;如果你也负责后仿gatelevelsimulation的话,那还经常需要和后端工程师打交道,因为后仿的网表是他提供给你的。
DFT工程师经常也会来找你,因为他也需要做测试和验证,很多时候他的验证平台经常就是从你的验证平台移植过去的;FPGA工程师也经常会打交道,因为FPGA验证也是数字验证的一种,你们会复用很多的测试用例,他也会经常来找你复现一些错误现场。
当然,如果你是在一家大公司的话,分工就非常明确,你也就不需要和这么多人打交道了,比如如果你只负责IP level的验证,那基本只要和前端设计工程师打交道就可以了。
岗位技能
要想做好验证,保证无漏验、零漏测,以下三个要素是必须要具备的:验证工具的掌握、算法/协议的理解、验证的意识。
1)验证工具的掌握
验证工具包括vmm/uvm等验证方法学、sv/sc等验证语言、vcs等验证仿真工具、perl/python等脚本语言,这些东西是做验证要掌握的基本技能。不论你做什么样的芯片,都需要这些东西来支撑你的验证工作。
这些验证工具可以帮助你解决“我们该怎么验”这个问题,当你很好的掌握这些验证工具后,你可以有很多种方法途径去达成你的验证目标。
说实在话,验证工具的东西很多,要想在短时间内全部掌握也不可能,而且很多工具可能在你的验证过程中不会用到。
对验证工具的感悟:不要贪求全部掌握,你可以先看书学习实践,把这些东西都学习一遍;在学习的过程中你肯定会发现一些好东西。
对于那些暂时不知道怎么应用到实践中的东西,你也不要认为它们是没用的,其实只是你不知道用在哪儿而已,在你以后的验证中也许就会发现它的应用场景。当你需要它的时候,也许你已经忘记怎么用了,这个没关系,你可以再回去查阅资料,很快就能解决。
这样做的好处是,当你碰到可以用到它的时候,你至少能想起曾经看到某个东西可以来实现它。如果你从未学习过,那么你根本就不会想起有这个方法可以解决它,这才是可怕的,我都不知道这个问题是可以被解决的。
2)算法/协议的理解
芯片要实现什么,不外乎是xx算法、某某协议,算法/协议才是芯片的魂。验证其实也就是验证的算法/协议实现是否正确。就跟批改作文一样,只有批改者有一定的文学功底,才能更好的评判作文水平。
因此,验证人员对算法/协议理解越深刻越好,要理解算法的原理以及算法的实现结构,只有这样才能找出其中的corner点。
3)验证的意识
验证的意识究竟是什么,给大家的建议是:
对任何东西都要有质疑的态度
手要伸长,延伸到上下游
对问题要刨根问底
薪资和发展
这是最新2019届硕士应届生的薪水情况,最高已经可以拿到40万的年薪,一线城市平均薪资大概在25万左右,二三线城市稍微低一些。
另外一个好消息是,国内现在在大力发展集成电路产业,所以,最近几年薪资都在不断上涨,5年之内应该都会保持这个趋势。
未来的发展,基本按照上图的发展阶梯来走,一些人会一直做技术,成为一名资深验证工程师,有些人会成为验证经理,做一些管理类的工作。好消息是大部分人只要一直做下去都能成为一名资深工程师(STAFF级别)或者经理,坏消息是只有极少数人能成为技术专家或者总监这个级别。
验证工程师做了很多年之后,有部分人会选择转岗,比如转去做架构工程师,去EDA公司做应用工程师(AE),或者创业。总体来说,绝大多数验证工程师还是会一直做下去,毕竟这个岗位的天花板并不低。
工作环境
验证工程师的工作环境就比较简单,大多数时间就是待在办公室里面,面对电脑进行工作。一般配备两台电脑,一台台式机用来工作,一台笔记本用来看资料、处理邮件、文案等。
当然会议室是验证工程师经常要去的地方,各种会议、各种review都要在办公室完成。
如果你在的公司,在全国甚至全球有很多site,偶尔也会需要出差。总的来说出差概率都比较少。当然,如果你是在设计服务公司做验证工程师,可能另当别论,一个项目完成之后可能会派到另外一家公司去。
验证工程师的工作强度还算可以,项目启动的时候相对轻松一些,越接近deadline,就会更忙,加班也是常事。当然,工作的强度还是依所在公司的性质来看,一般外企比较轻松,国内的公司就要辛苦很多。
验证工程师总的来说还算比较稳定,因为个人原因被裁员的概率很小,大多数情况都是公司的战略调整或者业务亏损,才会裁员。裁员也不要慌,大多数公司都提供不错的经济补偿,而且从现在的行情来看,很快就能找到新的工作。拿一笔可观的遣散费,立马去新公司上班,也算一种IC行业“福利”。
代表公司
数字验证工程师主要都是在IC设计公司,代表公司有:
外企大公司:
国内比较大的IC设计外企有Qualcomm、AMD、Nvidia、Marvel等,外企的待遇现在处于中上水平,但是工作强度相对小一些,论性价比来看的话,还是不错的选择。
国内大公司:
国内大公司有华为海思、紫光展锐、豪威科技等等,现在开的待遇都很不错,加上奖金远超外企,当然工作强度也是大很多,加班是常事,对于初级工程师来说可以考虑,辛苦一些,技术快速增长也是不错的。
EDA公司:
三大EDA公司和IC设计是密不可分的,synopsys、Cadence、Mentor三家外企待遇都还不错,性价比也还可以,还可以选择一些验证工具技术支持类的工作。
国内IC新锐:
最近几年,国内IC行情见涨,出现了很多土豪的芯片公司,薪资待遇也是开的非常高,比如大疆芯片设计部、寒武纪、比特大陆、地平线,规模也已经做的很大了。汇顶科技、ASR、兆易创新等也发展迅速。
国内IC初创公司:
还有一些成立不到两年的公司,手握大笔融资或者背靠金主,也是有很好的发展空间,比如平头哥半导体、燧原科技、天数智芯等。
从IC设计公司的分布来看,上海、北京是聚集地,工作机会最多,接下来是深圳、合肥、成都、西安、杭州、南京、苏州、武汉、广州、珠海、长沙。随着全国集成电路大战略的兴起,未来二三线城市的IC设计公司会越来越多的,对于想回家乡工作的小伙伴来说,是一个好消息。
以下是某招聘网站上面最新的IC验证岗位招聘信息,包括但不限于应届生,仅供参考:
本文部分内容整理自芯司机、追梦人_小山的博客和CSDN,侵删
‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧推荐阅读:ZYNQ 学习专辑关注微信公众号『ZYNQ』,后台回复“m”,查看更多精彩内容,回复“加群”,加入『fpga/zynq技术交流群』。长按识别图中二维码关注
如果对您有用,给我点个[赞]、[在看]吧