-时钟复位,子系统时钟方案设计,fullchip的时钟方案设计。
后端出现的各种PR时序和约束问题支持解决,一直到Tape out。
看到了这些才有了做芯片、做硬件的感觉。
SOC工程师很经典的一个工作就是集成,集成各个IP成子系统,集成各个子系统成full chip,要么很多硅农自嘲做SOC就是连连看。比起集成,其实叫整合更贴切,SOC整合,最主要的是整合人,集成代码是最简单的。各个IP的接口,时钟复位,memory的生成管理,地址的划分,中断的规划,互联总线的规划。把这些资源整合起来,才形成最终的产品。接触的人就更多了,SOC验证出了问题先找你debug,完了发现是IP的问题。软件访问寄存器怎么都通不了,找你debug发现原来是偏移地址不对。加速器 EDA FPGA验证平台,找你要版本,不然阻塞进度。综合找你综合又不过,来分析timing。后端找你PR时序还是有问题,怎么能做前端做些优化。做SOC主要是跟人打交道。时间碎片化。
SOC工程师需要承载代码管理发布职责,与IP设计不同,一个设计对一个验证,或者多个设计对多个验证。但都是用一个EDA平台,讲究的就是小步快跑,快速迭代。发现bug了,聊天软件说一下,改完立马上传进行回归。SOC的级别要发布的代码规模最小也是一个子系统级别的,面向多个平台,EDA平台,加速器Zebu/Palladium,FPGA平台,综合等。多方面需求,代码库上的代码是时刻都会有人上传的,所以就需要切出一个稳定版本,保证多个平台在任意时刻取到的都是一致的。这就要用到Tags版本发布。Tags代码版本管理,即研发到一定阶段的里程碑版本,需要包含release note,版本feature说明等。每一个IP,每一个子系统,层层流水发布版本,最后构成了一个full rtl的SOC版本给多个平台。也有一套方法学。
SOC简易设计流程如下图所示,关于芯片设计流程的详细介绍,芯学长网上有,这里就不过多介绍了,如果不太了解芯片设计每个岗位具体负责什么工作?自己更适合哪个岗位,都可以去芯学长网去查看。
SOC的Top肯定是最后一个freeze的,IP组的同事都休息一阵了,甚至都有时间准备开发下一版了。但是SOC的同事还在坚持擦屁股。加班接力棒,算法加班-IP设计加班-IP验证加班-SOC设计加班-SOC验证加班-后端加班。上游delay了,项目不能delay,时间就得往下游压缩。后端同事已经哭晕到厕所。
SOC设计工程师在实现芯片架构、设计验证、性能优化等方面扮演着重要角色。他们能够将复杂的功能和电路集成到一个芯片中,为各个行业带来创新和突破。因此,SOC设计工程师将在未来的科技领域中扮演关键角色。