数字芯片设计岗求职准备专题

一、了解校招

(1)基本情况Q&A

Q:校招从什么时候开始?
A:校招分为提前批、秋招正式批和春招补录。
    提前批最早在四、五月份就接收简历投递了;
    秋招正式批一般集中在七、八、九三个月份;
    春招补录一般是来年春节后学校开学时开始。
Q:校招适合哪届的同学
A:对于在国内读书的本硕博学生,2021年的校招主要面向2018年本科入学、2019年研究生入学,将在2022年毕业,取得学位、学历证的应届生。
Q:校招有哪些渠道?
A:校招有招聘企业岗位网上申请、学校线下招聘专场、企业员工内推等渠道。
Q:校招有哪些形式?
A:网申形式有企业自己的招聘官网和借助招聘平台的网申渠道;
    笔试形式有线下笔试和线上机试;
    对于数字芯片设计的研发岗,面试一般有技术面、主管面和HR面,没有群面的情况。

(2)岗位介绍

一般对于数字芯片设计,主要有两种岗位可供选择:
    一是数字芯片设计工程师,这是最对口的工作;
    二是FPGA工程师,因为FPGA的设计同样是用到Verilog等硬件描述语言,与数字芯片工程师有着类似的技术栈,且部分公司对FPGA工程师的要求与数字芯片工程师类似。
对于数字芯片工程师,企业的“护城河“,未来的职业发展越好。
因此,对于数字芯片工程师,具体从事的领域的优先级,我认为如下:

    1st CPU、GPU的开发;
    2ed SoC的开发;
    3rd ASIC的设计;
    4th 公司核心业务非数字设计,设置数字设计部分为了配合其他部门的工作。

(3)行业介绍

行业介绍将列举主流芯片设计公司:

1)国内企业篇

1.1)国内民营企业

[1]华为/海思
[2]中兴
[3]联发科
[4]创发科
[5]乐鑫
[6]大疆
[7]vivo
[8]oppo
[9]大华
[10]海康威视
[11]阿里平头哥
[12]卓胜微
[13]芯原
[14]商汤
[15]地平线
[16]汇顶科技

1.2)研究所或具有国资属性企业

[1]中电五十所
[2]中电五十八所
[3]紫光展锐
[4]兆芯

2)国外企业篇

[1]AMD
[2]NVIDA
[3]Intel
[4]ARM中国
[5]Cadence
[6]TI
[7]Cisco

二、校招规划

(1)自我认知和职业规划

在选择公司、岗位的时候,需要问自己几个问题,并得到真实的答案,如下:
Q1:我是否想从事本专业研发工作?是否想转行?
Q2:我能够接受的最远工作地是哪里?是否愿意出省或可能长期出差?
Q3:如果公司需要加班,我是否接受996,甚至9117?我是否必须得955?
Q4:我对目标企业的偏向,是体制内工作,还是外企,还是没有限制?
Q5:我有没有特别想去工作的企业?
回答完上述问题,可以确定自己偏向的几家公司
如果依旧是从事数字芯片设计岗位,那么,职业规划有三条路:
    一、纯技术路线,成为一个“技术大牛”;
    二、技术转管理,懂得技术,带领团队,完成公司项目;   
    三、技术兼职管理,这样混合的成长路线,不是每一个公司都能提供的,管理岗需要拉通资源、对齐需求,相较单职业路线,需要更多的精力和能力。

(2)我的秋招历程

对于秋招规划,笔者将以自己在2020年的经历举例,来讲解。
STEP120203月,岗位预研+简历制作

笔者研究生期间课题组分为两部分。一部分是做软件协议栈开发,一部分是做FPGA相关工作,在2020年3月制作简历前,笔者需要觉得自己求职是投递软件工程师,还是FPGA工程师的岗位。
对于集成电路工程专业,数字芯片设计工程师较FPGA工程师更为对口,因此,笔者确定自己的求职岗位为数字芯片设计工程师,同时可以兼投FPGA工程师。

STEP2:2020年5月,实习投递

实习的投递时间应该是四月到五月,由于笔者低估了实习招聘的难度,直到五月中旬才投递了两家公司,一家是华为海思的芯片与器件设计工程师,一家是NVIDA的Digital design engineer,NVIDA的实习生招聘不需要笔试,在面试时有英文面,由于笔者没有准备英文的自我介绍,略过了英文介绍,没有按数字芯片设计工程师的技术树准备面试,最终两家实习生的招聘没有通过,技术树在后续会给出。

STEP3:2020年6月,学习招聘技术树,秋招准备,提前批投递

吸取了实习招聘失败的教训,笔者发现自己对招聘的准备工作不足,梳理了从事数字芯片设计方面工作需要的技能树,全方面学习专业知识,修改、优化简历。
提前批是企业争抢人才的阶段,一般都会开出SP,甚至SSP等级的Offer,一般有华为的FX、中兴的蓝剑、乐鑫、大疆等企业,有丰富项目经历、SCI等顶会顶刊的同学可以尝试,大部分公司的提前批,是不影响秋招正式批的结果的。

STEP4:2020年7月-9月,进行秋招,不断修正

七月前后,陆陆续续各大公司都开始正式批的招聘了,这时候建议用EXCEL建立两个表,第一个表是目标企业,如NVIDA、华为等企业,投递一个标记一个,使得自己不错过较不错的企业;第二个是秋招详情表,表内有投递时间、企业、岗位、投递渠道、当前状态、性格测试时间、笔试时间、技术面时间、薪酬、工作地等信息,这样方便自己实时跟进,也方便最终选择。

STEP5:2020年10月-12月,签三方、毁约、确定最终企业

时间推移到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)设计工具的使用

对于不同公司,可能有不同的设计工具,但通用的SynplifyQuartusVivadoISE等是需要掌握基础使用技能的。

四、学习资源推荐

在上文已经介绍了从事数字芯片设计岗位需要具备的基本技能,下面我将推荐一些对应的学习资源供同学们可以用于自学。

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的使用





全部评论

相关推荐

Java抽象带篮子:难蚌,点进图片上面就是我的大头😆
点赞 评论 收藏
分享
09-25 10:34
东北大学 Java
多面手的小八想要自然醒:所以读这么多年到头来成为时代车轮底下的一粒尘
点赞 评论 收藏
分享
8 35 评论
分享
牛客网
牛客企业服务