很多朋友都听说过芯片设计行业高门槛、高要求、高薪资,但没有具体了解这个门槛和要求到底有多高。
以芯片设计校招来看,基本都是要求硕士起步。
再说知识储备,数电模电、数集模集是基础中的基础,模块/接口/协议是重要考核项,Verilog/sv你得烂熟于心,EDA工具你得用的驾轻就熟……后文会讲,此处不再赘述。
还有对行业的了解程度,芯片是怎么设计、怎么制造的?ASIC和FPGA啥区别?IDM和Fabless都是啥?数字电路和模拟电路区别是啥?选数字IC还是模拟IC?做设计/验证/后端/版图/DFT/ATE哪个更好?
看到这,诸君可能已经开始头疼了。
但是!只要通过系统的学习和实践,任何复杂的概念和技能都可以被逐步掌握。所以从入门到精通,其实也没有大家想象中的那么难。
这是一篇初学入门指南,欢迎分享~
01基础知识和语言
老生常谈的数电模电、数集模集、半导体物理,之所以老生常谈,正是因为它们很重要。
初学者都需要从最基本的数字逻辑门(如与门、或门、非门)开始学,才能进一步用这些基础电路构建更复杂的逻辑电路。
Verilog和SV是IC设计端工程师们的基本功,设计岗需要精通Verilog,验证岗需要精通SV。
除此之外,C语言、perl、Makefile、python、TCL、Shell这类脚本语言也需要学习,可以实现一些批量操作,都属于基本的工作需要。不过不用学的太深,熟悉基本语法和命令就差不多了。
但需要注意,虽然verilog和C语言语法相似,但是底层逻辑确不一样。C语言需要产出一个功能正确并能上生产的软件程序;而Verilog要做的是描述硬件电路,追求的是物理层面的PPA(性能、功耗、面积)。
这也是芯片行业的魅力所在,芯片设计不仅需要考虑芯片功能和代码,更要考虑物理层面的实现和生产。
02设计流程
芯片设计,是一个从芯片概念到芯片产品的复杂流程。
我们以数字芯片为例,大体需要经历需求分析、架构设计、逻辑设计、仿真和验证、综合与优化、版图设计、测试等关键阶段。
说的更详细一些:
芯片设计最首要的环节是分析需求,明确IC设计的目标和需求,包括性能指标、功耗要求等。
具体的设计工作以设计架构(确定处理器核心、内存结构等)为起点,以生成可以布局布线的网表为终点,是用设计的电路实现需求。
主要包括RTL编程和仿真,前端设计还可以划分为IC系统设计、验证、综合、STA、逻辑等值验证 (equivalence check)。其中IC系统设计最难掌握,它需要多年的IC设计经验和熟悉那个应用领域,就像软件行业的系统架构设计一样,而RTL编程和软件编程相当。
数字后端以布局布线为起点,以生成可以送交foundry进行流片的GDSⅡ文件为终点。
根本目的是将设计的电路制造出来,在工艺上实现想法。后端设计包括芯片封装和管脚设计,floorplan,电源布线和功率验证,线间干扰的预防和修正,时序收敛,自动布局布线、STA,DRC,LVS等,要求掌握和熟悉多种EDA工具以及IC生产厂家的具体要求。
03芯片设计常用工具
一套好的EDA工具对于芯片设计来说非常重要。在不同的设计环节需要使用的EDA也不同,比如综合工具、布局工具、时序分析工具等等。
之前专门出过一篇文章讲设计流程和EDA工具,指路:IC设计全流程科普,要用到的EDA工具有哪些?
04IC设计岗位分布
我们要清楚自己的工作主要处于设计流程中的哪个位置。即输入是什么,产出是什么。
首先要有数字IC和模拟IC的概念,模拟电路IC是处理和提供模拟信号的器件,比如运算放大器、线性稳压器、基准电压源等。数字电路IC就是处理数字信号的器件,比如CPU、逻辑电路等。
模拟IC的设计流程大致要经历:电路设计→仿真→版图设计→后仿真→流片。
数字IC的流程就更加细分了:前端设计→验证→综合→DFT→后端→后仿真→流片。
数字芯片和模拟芯片设计开发流程不同,岗位设置也就有所不同。
数字IC:
数字IC设计工程师:也就是前端设计工程师。需要根据芯片Spec,通过硬件描述语言设计RTL代码,实现芯片的功能。负责描述并实现芯片的具体行为和功能,主要是逻辑设计。
数字IC验证工程师:验证工程师要对RTL代码进行EDA仿真,从中发现RTL代码BUG后,再提交设计工程师进行BUG修复。这是保证芯片功能正确性和完整性最关键的环节。
数字后端设计工程师:把验证后的RTL代码转化成门级网表,再通过布局布线、物理验证,最终产⽣供制造⽤的GDSII数据。后端设计也叫后端实现,是连接设计与制造的桥梁,主要实现物理设计。
数字DFT设计工程师:DFT可测性设计是在设计电路时为了达到故障检测目的所做的辅助性设计,也就是在电路设计之初就考虑测试的问题,主要用来检测生产故障。
模拟IC:
模拟IC设计工程师:模拟设计工程师需要从系统规格定义开始,明确设计的具体要求和性能参数,然后进行电路设计及电路仿真,最后通过模拟仿真来评估电路性能。模拟设计就是通过宏观测量约束子电路的性能而实现电路功能与设计。
模拟版图工程师:模拟版图工程师要通过EDA设计⼯具,进⾏布局布线等工作,最终⽣成可供芯⽚输出的GDSII数据。模拟版图是连接模拟芯片设计和制造的桥梁。
05项目经验储备
项目经验才是IC工程师最深的护城河。
芯易君经常能收到未入行、甚至是已入行工程师提出的疑问“IC设计/验证/后端做什么项目比较加分?”不同岗位的项目不同,这里就不再赘述,想要详细了解的同学可以点击文末“阅读原文”
这里想和大家说的是,很多同学做的项目虽然是一样的,但是最终效果可以打60-100分不等。
以验证岗位为例,如果你负责一个ip模块,然后从验证计划开始到覆盖率收敛的走一遍,会遇到很多问题,解决这些问题才会是真的成长,自己要把相关的项目吃透。不仅要知其然,更要知其所以然。
同样是项目,含金量却也分三六九等,流片项目就是含金量最高的那一类。主要原因有二:
1、流片经历是表示这个项目具备工程价值的有力佐证:
· 设计阶段已经达到了一定的成熟度和可靠性,才能进入下一步——流片,来验证设计在实际硬件上的正确性和可行性;
· 仿真模型和实际硅片之间是存在差异的,流片可以帮助发现在仿真中未曾考虑到的问题;
· 流片过程中会积累大量的经验和教训,这些宝贵的经验可以帮助夯实未来工作的基础。
2、资金消耗大,时间周期长,不是所有高校/课题组都愿意花费这个时间和精力的。这就导致了科研资源差距大。甚至在同一位指导老师手下,能流片的项目都被师兄师姐做的差不多了,也就没有新的流片项目轮到学弟学妹了。
06持续学习适应变化
IC设计是一个不断发展的领域,时常了解就业市场的需求,针对性的补充相关技能,持续学习新的技术和工具对于保持竞争力至关重要。
最后,附上本文开头问题的答案:
IC学习之路上,IC修真院与你同行。共勉!