数字芯片设计岗求职准备专题
一、了解校招
(1)基本情况Q&A
Q:校招从什么时候开始?
A:校招分为提前批、秋招正式批和春招补录。
提前批最早在四、五月份就接收简历投递了;
秋招正式批一般集中在七、八、九三个月份;
春招补录一般是来年春节后学校开学时开始。
Q:校招适合哪届的同学?
A:对于在国内读书的本硕博学生,2021年的校招主要面向2018年本科入学、2019年研究生入学,将在2022年毕业,取得学位、学历证的应届生。
Q:校招有哪些渠道?
A:校招有招聘企业岗位网上申请、学校线下招聘专场、企业员工内推等渠道。
Q:校招有哪些形式?
A:网申形式有企业自己的招聘官网和借助招聘平台的网申渠道;
笔试形式有线下笔试和线上机试;
对于数字芯片设计的研发岗,面试一般有技术面、主管面和HR面,没有群面的情况。
(2)岗位介绍
1st CPU、GPU的开发;2ed SoC的开发;3rd ASIC的设计;4th 公司核心业务非数字设计,设置数字设计部分为了配合其他部门的工作。
(3)行业介绍
行业介绍将列举主流芯片设计公司:
1)国内企业篇
[1]华为/海思[2]中兴[3]联发科[4]创发科[5]乐鑫[6]大疆[7]vivo[8]oppo[9]大华[10]海康威视[11]阿里平头哥[12]卓胜微[13]芯原[14]商汤[15]地平线[16]汇顶科技
[1]中电五十所[2]中电五十八所[3]紫光展锐[4]兆芯
2)国外企业篇
[1]AMD[2]NVIDA[3]Intel[4]ARM中国[5]Cadence[6]TI[7]Cisco
二、校招规划
(1)自我认知和职业规划
(2)我的秋招历程
笔者研究生期间课题组分为两部分。一部分是做软件协议栈开发,一部分是做FPGA相关工作,在2020年3月制作简历前,笔者需要觉得自己求职是投递软件工程师,还是FPGA工程师的岗位。对于集成电路工程专业,数字芯片设计工程师较FPGA工程师更为对口,因此,笔者确定自己的求职岗位为数字芯片设计工程师,同时可以兼投FPGA工程师。
实习的投递时间应该是四月到五月,由于笔者低估了实习招聘的难度,直到五月中旬才投递了两家公司,一家是华为海思的芯片与器件设计工程师,一家是NVIDA的Digital design engineer,NVIDA的实习生招聘不需要笔试,在面试时有英文面,由于笔者没有准备英文的自我介绍,略过了英文介绍,没有按数字芯片设计工程师的技术树准备面试,最终两家实习生的招聘没有通过,技术树在后续会给出。
吸取了实习招聘失败的教训,笔者发现自己对招聘的准备工作不足,梳理了从事数字芯片设计方面工作需要的技能树,全方面学习专业知识,修改、优化简历。提前批是企业争抢人才的阶段,一般都会开出SP,甚至SSP等级的Offer,一般有华为的FX、中兴的蓝剑、乐鑫、大疆等企业,有丰富项目经历、SCI等顶会顶刊的同学可以尝试,大部分公司的提前批,是不影响秋招正式批的结果的。
七月前后,陆陆续续各大公司都开始正式批的招聘了,这时候建议用EXCEL建立两个表,第一个表是目标企业,如NVIDA、华为等企业,投递一个标记一个,使得自己不错过较不错的企业;第二个是秋招详情表,表内有投递时间、企业、岗位、投递渠道、当前状态、性格测试时间、笔试时间、技术面时间、薪酬、工作地等信息,这样方便自己实时跟进,也方便最终选择。
时间推移到10月份,基本上实验室的同学都手握多个Offer,下面就是选择、签约的阶段了。一般根据薪资水平、工作地点、职业发展等方面进行考虑。职业发展是第一步的,从事好的领域,即使薪资不是最高,也可以积攒三年工作经验,再跳槽增加收入。对于企业平台,一般推荐大公司、非外包岗位,这样的选择是处于职业培养规范和跳槽的难度考虑的。在上述两点比较完后,一般新一线城市和一线城市之间,看能否留下来,如果薪资相差不多,一般选择新一线城市。签完三方后,部分同学可能面临部门企业Offer发放过晚,需要违约换企业的情况,笔者就面临了上述情况,一般是赔付了违约金换企业。
三、校招岗位技能树
(1)业务理论知识
数字信号处理(必修)、通信原理(必修)、编码原理(必修)密码学(选修)、TCP/IP协议(选修)
(2)数字电路设计知识
[1]RTL描述:常用可综合语法、编码规范、编码工具[2]基础电路的设计,分为控制电路和算法电路,具体知识点如下:对于控制电路,需要掌握(时序逻辑电路)和(组合逻辑电路):在时序逻辑电路中,需要掌握典型电路的实现,如分频器、移位寄存器、计数器、RAM等;还需要掌握基础单元的使用,如D触发器。在组合逻辑电路中,需要掌握典型电路的实现,如加法器、编码器、译码器、选择器和比较器;还需要掌握基础单元的硬件实现方法,如与门、或门、非门。对于算法电路,需要掌握(基础电路)和(典型电路的实现):在基础电路中,需要了解定点化、截位定点计算和饱和定点计算在典型电路实现中,有六种主要电路实现需要掌握,分别是除法电路、乘法电路、减法电路、加法电路、开方电路和函数计算。其中,除法电路需要掌握常数除法电路和变量出发电路;乘法电路需要掌握有符号乘法和无符号乘法;函数计算需要掌握Cordic算法的原理和电路实现方式。[3]掌握基础的数字电路设计技巧,有多线程、流水线、时分复用、乒乓操作、串并转换、并串转换和状态机的使用。[4]掌握接口电路的知识,分为高速接口电路和低速接口电路,分别为:对于常用的高速接口,需要掌握PCIE、DDR和以太网接口(选修)的使用和调试;对于低速接口,需要掌握I2C、SPI、UART和FSMC(选修)的使用和调试[5]同步设计,是数字芯片设计必须掌握的知识点,分为同步电路内的设计和异步处理。对于同步电路内的设计,需要掌握:状态机电路,有状态机描述方法、状态机编码;FIFO电路,有同步FIFO的设计与使用、异步FIFO的设计与使用;复位电路,有同步复位、异步复位;边沿检测电路;计数器电路;RAM操作等对于异步处理,需要掌握:单比特信号跨时钟处理、多比特信号跨时钟处理、亚稳态原理等FIFO电路[6]处理器系统是在有CPU、GPU相关背景部门工作必须掌握的知识,需要了解处理器体系结构,如了解ARM体系结构、掌握ARM总线互联协议,如AMBA总线协议
(3)验证知识
学会验证平台的搭建了解验证方法学,如UVM能够使用脚本语言,如Python、TCL能够使用验证语言,如System Verilog
(4)后端知识
时序概率的理解时序约束的添加,如input delay约束、output delay约束、多周期约束、时钟约束、异步组约束和false path约束等对时序收敛的优化,如pipeline、retiming等
(5)设计工具的使用
四、学习资源推荐
(1)业务理论知识
数字信号处理:《数字信号处理——原理、算法与应用》(第四版)通信原理:《通信原理》(张祖凡等编著)编码原理:《纠错编码原理及Matlab实现》
(2)数字电路设计知识
[1]RTL描述:《Verilog HDL入门》[2]基础电路的设计:《数字电子技术基础》、《Verilog数字系统设计教程》[3]掌握基础的数字电路设计技巧:《数字集成电路——电路、系统与设计》、《硬件架构的艺术》[4]掌握接口电路的知识:PCIE、I2C、AMBA阅读官方标准协议[5]了解处理器体系结构:《CPU自制入门》、《现代操作系统——原理与实现》[6]半导体基础知识:《半导体器件物理》
(3)验证知识
学会验证平台的搭建:《System Verilog测试平台编写指南》了解验证方法学,如UVM:《UVM实战》,英文基础较好的同学建议学习《uvm-cookbook》、《The UVM Primer》和《UVM官方手册》能够使用脚本语言,如Python、TCL:《Python学习手册》能够使用验证语言,如System Verilog:《System Verilog数字系统设计》
(4)后端知识
时序概率的理解:《VLSI的统计分析与优化:时序和功耗》时序约束的添加:《集成电路静态时序分析与建模》对时序收敛的优化:《综合与时序的设计约束》
(5)设计工具的使用
Synplify是Synplicity针对FPGA和CPLD实现的逻辑综合工具,可以去Synplicity下载官方用户手册学习;Quartus是配合Altera的FPGA的设计工具、Vivado是配合赛灵思的FPGA的设计工具,上述两种工具是现在主流的设计EDA,Quartus参考《基于Quartus II的数字逻辑实验教程》,Vivado参考《Xilinx FPGA权威设计指南》,建议购买对应厂家的FPGA开发板配合资料学习,动手实践才能真正理解EDA的使用