仅讲SOC,架构这个东西太大了。但是理论上来讲,IC领域最适合搞架构的不是IC工程师,而是firmware工程师,或者为硬件开发驱动和算法的工程师。这是我们公司的CTO(工作25年)在跟我们讲职业发展的时候讲的。
这个讲法是很有道理的。因为对于一个很大的芯片项目,做IC的,后端就不说了,即便是前端,也通常很少有人懂整个chip是怎么拼起来的,大部分人懂得都是自己的领域和模块,比如DRAM,比如MCU,比如某类总线,但是有一个角色会全部都懂,即懂底层,也明白上层的需求。这个就是为芯片开发驱动和算法的工程师。
这类工程师要给IC写驱动,必须知道芯片是怎么做的,也必须经常跟IC各个模块的设计者讨论软硬件划分和系统定义的事情(扯皮)。从站的角度上来说,他们就比芯片设计者高度更高,看得更加全面。他们能够知道整个chip的运作方式,整个chip的数据流,所以眼界更宽更大。大部分搞IC的,都是出了自己家门路都不认识,对别的模块一窍不通。比如,搞IC某一块的,通常只看那一块的协议,比如DRAM协议,比如AMBA协议,但是搞FW,整个chip涉及到的所有硬件部件相关协议他们都要看,所以通常知识面也更全,也更适合搞架构。
而IC工程师,因为硬件设计方法的层次还是太低,RTL级的生产力太弱,大部分时候都在搞很细节很具象的东西,所以通常难以获得抽象层次更高的知识。IC工程师在和FW/软件工程师定义完软硬件划分之后,首先思考的就是怎么堆底层逻辑,所以也与更上层的东西无缘。