IC设计职位介绍之“数字后端设计工程师”
数字后端处于数字IC设计流程的后端,属于数字IC设计类岗位的一种。在IC设计中,数字后端所占的人数比重一直是最多的,而且随着芯片规模不断加大,后端工程师需要的人数将会越来越多。
一般来说,数字后端按岗位类别可以分为:逻辑综合,布局布线physical design,静态时序分析(STA),功耗分析Power analysis,物理验证physical verification等岗位。人才的需求量进一步加大,这也是现阶段数字后端工程师招聘量巨大的原因。
1、主要干什么?
逻辑综合(Synthesis)
主要负责将RTL code转换为实际后端使用的netlist网表, 一个好的网表对布局布线的工作起到决定性作用。要尽可能做到performance, power, area的优化。尤其是现如今的一些要求高性能的设计,对综合的要求非常高。
综合质量很大一定程度上取决于综合软件的性能,业界流行的两个综合工具是Synopsys的Design Compiler和Cadence的Genus,熟练的掌握两个工具的使用方法是综合工作的一个基本条件。
布局布线(PD)
布局布线是数字后端中占比最大的工作,主要负责netlist到GDSII的转化过程,步骤包括Floorplan,Place,CTS,Optimize,Route,ECO等,确保自己负责的模块满足时序还有物理制造的要求。同时,需要协同其他工程师,及时提供他们需要的文件,比如def, spef,网表等。是数字后端中最核心的工作。
布局布线对工具的依赖程度较强,而且工具操作相对来说较为复杂。业界较为常用的是cadence的Innovus软件和Synopsys的ICC,掌握这两大工具的使用需要花费一定的时间。
静态时序分析(STA)
静态时序分析简称为STA,时序验证分析是数字后端中的重要一块内容,芯片需要满足各种corner下面的setup,hold时序要求以及其他的transition, capacitance, noise等要求。STA需要制定整个芯片的sdc约束文件,选择芯片需要signoff的corner以及全芯片的timing eco流程。是一份难度要求很高的工作。
静态时序分析通常通常需要掌握Synopsys的primetime以及cadence的tempus两大软件的使用方法。
物理验证(PV)
物理验证也是tape out前的一项重要事项。如果物理验证有错,那芯片生产就会失败。在布局布线工具中,软件只能检查到金属层上的物理违反,而真正的物理验证需要检查到器件底层(base layer).因此,物理验证需要将金属层和底层金属合并到一起,进行全芯片的drc检查。同时,还需要做全芯片的LVS(版图与原理图一致性检查),ERC(电气规则检查)。确保芯片没有任何物理设计规则违反。
物理验证一般在mentor公司的calibre中进行,是业界标准的物理验证工具。
功耗分析(PA)
功耗分析也是芯片signoff的重要一大块,随着现在芯片的规模越来越大,功耗在芯片的中的地位也越来越高。功耗分析的两大任务是分析IR drop(电压降)和EM(电迁移)。及时将结果反馈给布局布线任务组,让他们及时修改后端设计图,解决设计中潜在的问题。
一般功耗分析使用的工具有Ansys公司的redhawk,以及cadence公司的voltus和synopsys公司的ptpx。
2、主要打交道的人
数字后端工程师通常都是以一个项目组作为一个团队,前面说的这些任务都会分为不同的角色。通常,一个项目中会有一名顶层工程师,一名STA工程师,一名功耗分析工程师,一名物理验证工程师以及若干名模块工程师,这些工程师需要相互合作,共同完成全芯片的RTL到GDSII的过程,同时确保没有时序以及物理验证上的违例。
数字后端工程师还需要经常与前端工程师打交道,确保网表的功能正确以及sdc的正确制定,及时将后仿文件交付给前端,让前端工程师能尽快通过仿真发现潜在的设计问题。
DFT工程师也是我们经常与要交流的,因为测试逻辑设计在现在的芯片中的比重越来越大,后端工程师需要与DFT工程师确认好测试SDC的制定,扫描链scan chain的物理走向等任务。
3、需要掌握的技能和条件。
数字后端主要以软件工具为主,主要掌握以下软件(以cadence, synopsys,mentor公司为主)
布局布线:Innovus/Encounter, ICC2/ICC
综合:DC, Genus
物理验证:Calibre
静态时序分析: PrimeTime, Tempus
功耗分析: Redhawk, Voltus,PTPX
每种平台需要你掌握的技能不大一样,通常学会每种平台下学会一种工具即可。一个初级工程师想全部掌握这些技能也很难,如果这些工具你都会使用,就变成老司机了。
由于数字后端工程师需要跑一些自动化的任务,所以掌握必要的脚本语言也是必须的,比如掌握下面知识就显得比较重要:
Verilog
TCL
Perl
Python
所有的技术类岗位,主要看的两点就是:专业技能(skills)和项目经验(experience)。所以除了上面列的这些技能,你能实际做过一两个项目,哪怕是一些小模块的后端设计,也是很重要的,尤其是做项目过程中积攒的debug经验。
如果你是在校学生,学校里实践数字后端的机会较少,所以基本上你只要简单懂一点流程以及时序方面的内容,可能就可以找到数字后端工程师的职位了。现在在校学生通过各种渠道(比如E课网),很多同学都掌握了上面的这些技能,甚至积累了一两个项目经验。会的人多了,招聘的要求也自然高一些了。
现阶段,数字后端工程师主要还是以招聘研究生为主,本科生招的很少。不过好消息是对专业的要求并不是很苛刻,并非集成电路方向不可,只要你掌握了上面的这些技能,哪怕不相关专业,比如材料、物理、自动化、机械等专业,也是可以成功应聘。
学历本科的同学也不要气馁,有工作经验的本科生,还是可以找到数字后端工程师的职位的,而且有很多成功的例子的。毕业学校一般的同学也不要气馁,985高校毕业,肯定是有优势的,但毕竟每年毕业生不多,在现在IC行业整体缺人的大背景下,依然会招收学校排名一般的学生的;当然前提还是一样,有专业技能(skills)和项目经验(experience)。
来源:https://blog.csdn.net/qq_38039933/article/details/91355196