原文链接:IC职场说——入职4个月数字IC前端设计师兄感受(篇一)
IS、POWER
本期导读
从本期开始,IC媛公众号将推送职场人采访系列,我们邀请了在数字IC一线岗位的师兄师姐,对大家常见的疑惑作以解答。希望对大家有所启发!
FAQ1
工作后的感受?你想给学弟学妹们什么建议?
做IC这个岗位的感受
我在校期间是做FPGA开发的,工作后做的是数字IC前端,很多同学可能和我一样在入行IC之前并不是集成电路本专业科班出身,可能会一些FPGA经验或者只会用Verilog开发一些小的设计,从FPGA转到IC上来是目前应届生求职的一个普遍现象。所以就先谈谈工作了一段时间后感受到的这两者的联系和区别。
联系:都是用硬件描述语言(目前Verilog HDL是主流)进行设计开发工作,都是通过对时序的设计来实现最终的功能,架构框图设计、模块波形设计、模块代码编写、模块仿真这些步骤都是需要做的。
区别:
首先就是开发环境和平台不同,这个我想大家最容易理解。
在设计的最前期需要考虑的问题不同,这是FPGA适用于定制化需求和IC适用于通用化需求的应用场景导致的,设计一款最终可以量产的芯片在前期需要考虑的问题往往会更多。
做FPGA开发往往写代码的机会更多一些,关于这点大家可能会有疑问,如果做一个复杂的数字芯片,那代码量可是非常巨大的。是这样的,没错,但一款芯片往往因为研发成本高,很多产品都是迭代的,虽然整体的代码会很多,但大多数都是基于成熟的上一版迭代的,尤其是新人在接触项目时,很难有机会从0开始做一款新类型的芯片,即便是有新的,公司也会为了加快产品上市而大量使用IP,进入公司后你需要做的就是先看懂之前复杂的设计,然后再根据实际的需求修改一些内容,相当于是先逆向理解架构再正向迭代新的设计。而FPGA因为定制化的需求比较多,需要变化的内容也更多,很多情况下都需要新的设计,更多情况下都是正向的设计。
数字IC设计、数字电路设计、数字集成电路设计、数字IC前端,虽然名字稍有差异,但其实都是一样的岗位,为什么有些公司叫数字前端呢?这也是和FPGA开发不同的一点。在一些中小规模的芯片或IP设计中数字前端除了以设计为主,还要参与模块级的芯片验证(也叫前仿,中小规模的芯片或IP设计有些不用UVM),跑nLint做严格的语法检查,做仿真模型(数模混合芯片要做模拟部分的模型或者测试模型),混仿(把模拟真实的部分和数字部分一起进行仿真),综合(写约束,添加工艺库生成网表),做Formality检查,出Lib(里面包含时序信息),出Lef(里面包含元器件的物理位置和层次信息),做Qualib检查,后仿(加入后端生成的网表和sdf一起仿真),前端需要做的工作看上去很多,但有很多做好的脚本可以使用,就方便很多了。而FPGA远没有这么多流程,设计、验证、约束、调试是FPGA主要的开发流程。相比之下差异还是挺大的。
生活和工作状态上的感受
在公司和在学校的状态不一样。在学校的话,导师给你分配一个任务,往往工作时间是相对自由的,规矩没这么多,可能做的没那么快也不要紧,无论是横向课题还是纵向课题,都由导师直接承担责任,当然导师也收益最大,如果碰上好的导师会有一些额外的补助,但如果碰到了不好的导师,那只能苦三年了,为了顺利毕业也只能忍耐一下。而在公司的里要更多的给公司创造价值,这是本分也是责任,责任变多了但也有非常丰厚的收入,也更有干劲。公司每天都有任务,要按时上下班,不能迟到也不能早退,上班时间就要好好工作,尽快完成自己负责的部分,而且每天都要有工作进展,节奏是相对紧凑。如果工作中遇到了让自己很不舒服的事完全可以离职跳槽,和学校里不同,个人和公司是一种平等的关系,从这一点来讲又是相对自由的。而且下班后或者周末还可以完全享受自己的生活,不用再去关心工作的事儿。
建议
数字IC设计方向如:算法芯片、接口类芯片、存储器芯片、物联网芯片、GPU、SoC等等,每个大方向又细分很多领域,在学校里学习的时候,目标可能不是很明确;找到工作之后,如果能够有机会了解到自己未来要做的某个方向可以提前去了解相关的知识或协议,如果不能够了解自己未来在公司做的具体方向,但是想学习一些东西的时候,可以多去掌握一些设计的方法,对于工具的使用不用刻意学习,进公司以后,多用用就会了。
如何入手
如果你现在就是做FPGA相关设计的,又想找IC设计相关的工作,可以继续学习下去,而不用去专门接触IC设计相关的内容,至于你担心IC应聘时的笔试,这个完全不用担心,届时刷刷题就可以了。如果你有FPGA相关的基础,需要你继续深入的学习FPGA相关的开发,比如可以学习下FPGA开发中的高速接口设计或者一些算法的逻辑实现等等,这对找IC相关的工作是非常有优势的。如果你没有FPGA开发的经验,可以先从FPGA入手学习Verilog语言和硬件电路设计方法,多接触一些接口相关的设计。刚开始的时候,可以从一些简单的接口,如:UART、SPI、IIC、VGA、SDRAM等等入手,有时间和精力的话可以多去学习一些高速接口,如Aurora、DDR、JESD204B、USB、MIPI、HDMI、SATA、DP、PCIe、以太网等等,但一定要注意不要单独去看这些协议或者写代码,要把这些内容融入到项目中,面试时才能让面试官感觉你已经融会贯通了,可以自己根据上面提到的相关接口做一个自由组合来锻炼自己,比如:上面提到的DDR、HDMI、以太网相结合就可以做成一个以太网接收数据存储到DDR,再从DDR中读取出通过HDMI在显示器上显示的项目。通过这些复杂接口协议的学习,会让你拥有更多的逻辑功底和对设计方法的理解,找IC相关的工作时更有竞争力,更容易脱颖而出。
大家对文章中的内容如果有疑问,欢迎到公众号IC媛留言,我们看到了会给大家解答的。也欢迎大家加入下面的qq群672607418或者微信进行讨论交流!