原帖地址 http://bbs.eetop.cn/thread-206314-1-69.html
数字IC前端设计工程师:
职能:
负责RTL级的电路建模,单元级验证,附加:综合、算法。
要求:
需数集电知识。
数字IC后端设计工程师:
职能:
P&R,layout版图设计。
要求:
需半导体物理工艺知识。
模拟IC设计工程师:
职能:
模拟电路设计,版图layout。
要求:
需模集电知识,半导体物理器件工艺知识。
IC验证工程师:
职能:
主要面向数字或数模混合电路的验证,负责IC电路的模块级、芯片级验证(凡芯片级和系统级验证均包括FPGA验证,以下略),负责驱动软件设计(BIOS),附加:芯片诊断代码设计、软硬件协同仿真。
要求:
需计算机软件、计算机组成原理、数集电知识,有极强的软件建模的能力。
SOC系统架构设计工程师:
职能:
根据产品需求,确定实现的总体软硬件方案,定义CPU和总线架构,定义模块功能以及划分软硬件,进行芯片级和系统级的仿真和验证,设计芯片应用方案。
要求:
需极强的计算机体系架构知识,需要懂计算机软件,数集电,数电知识。
算法设计工程师:
职能:
为芯片内一些复杂的功能进行算法实现,验证算法的效果。
要求:
需极强的图像、视频或网络等方面的专业知识,懂计算机软件以及建模工具。
软件工程师:
职能:
负责BSP设计、bootloader设计、OS移植。负责设计软件系统架构,设计中间层和应用层软件。
要求:
需计算机软件、数据库知识。
产品管理工程师:
职能:
负责各部门沟通协调,确定项目计划和时间节点,确定工艺流程,产品成本计算,管理外协,品质管理。
要求:
需管理学,半导体器件与工艺方面的知识。
项目经理:
职能:
收集客户需求信息,进行市场调研,确定产品规划,进行商务谈判,审核产品设计进度,评定部门工作业绩。
要求:
需市场分析和预测,商务谈判,团队管理方面的能力。
另外,还有销售和市场,也很重要,一个是向市场推销产品,一个是收集市场需求信息。还有现场应用工程师,在产品上市后,为了提高产品服务质量,需要他来更近的服务客户。另外,还有财务、出纳、HR等,不逐一列出来了。
各个公司按照其人员配备情况,功能划分可能会有所不同,按照其产品定义情况,不一定需要以上全部的部门。
目前,很多公司基本上按照这个模式进行部门划分,但对于某些职位的职能和要求却有很大的差异,就比如IC验证工程师这个职位,有些公司把这部门职能划入到设计部门中去了,要求有很强的数字电路设计知识;还有些公司有这个部门,但对职能要求却不同,例如:有的需要有极强的C++语言能力,有的需要设计能力,有的只需要建模不需要混合仿真,有的只需要做模块级ASIC仿真,有的对SOC系统验证有很高的要求,等等。总之,非常的不一样,这也带来一些问题,可能会造成部门之间的职能覆盖或者产品质量没有保证。而对于求职者来说,也造成很多困惑,不知道该如何适应企业的要求。
因此,凭着我对这个职位的理解,重新对这个职位进行了划分和定义,首先,我觉得IC验证工程师必须要有很强的软件功力,否则没有办法在事务级对复杂设计进行建模,有些公司要求设计工程师自己做验证,这是极其错误的,RTL编程的那点编程能力根本就没有胜任不了一个复杂设计的事务级建模,HDL是电路建模语言,和SC/SV/C++等 OOP建模语言还是差异很大,思维方式也不同,这是一,要设计带约束的随机测试为主的自检测测试平台,也要求有面向对象编程的能力,这是二,要使得设计的平台具有可复用的能力,要求设计者要具备面向对象编程的高级技巧,这是三,由这三点,我认为对于验证工程师来说,软件建模能力比数电知识更重要;其次,IC验证工程师也要写驱动。我们在验证一些SOC模块的时候,很多时候需要软硬件协同验证,模拟软件真实驱动硬件的条件下验证设计的健壮性,有可能还要求时钟精确,这就需要验证工程师写一些驱动程序来配合测试平台进行检测,如果这交给软件工程师来写,因为没有硬件平台没有办法进行调试,软件质量不能保证,另外也是为了避免不同部门之间职能重复,可以交给验证工程师来做,一边验证硬件,一边测试驱动,最后这些经过测试过的驱动可以封装成BIOS库,提供API接口给软件工程师做芯片测试或上层调用。我认为,IC验证工程师是联系芯片和系统的职位,以后最有可能成长为SOC系统架构设计工程师。
所有的职位当中SOC系统架构设计工程师应该是最牛的,要求也应最高,不但要具备系统整合的能力,更要具备计算机架构方面的过硬的知识,对芯片内的模块也要足够的熟悉,另外,不但对整个设计要非常熟悉,对生产和应用都要有所了解。在确保芯片质量方面要有足够多的经验,很多系统集成的问题都要在流片前解决掉,所以片级的验证能力必不可少。此外,他必须通晓整个芯片的优点和缺点,培训应用工程师,教他们如何进行应用。