热度 67| |
1. 如果一个应届生,进入大型团队中,如果不进行深入的思考,或者力度不够,仅仅被项目schedule推着向前走。
- 参加架构讨论,似懂非懂,更多记住了结论,去实施
- 主要精力在集成上,然后集成方案画图,各自review,最后实施集成,利用平台工具脚本,陷入其中不能自拔。
- 过了很久,能够达到3个层次
层次1:特别适应大厂的工作节奏,善于集成。利用各自工具去集成,对方案背后原因略知一二,对基本的RTL设计技巧略知一二
层次2:仍然适应大厂节奏,但对方案理解较透彻,但无法高屋建瓴融汇贯通;由于写了较多的IP,且接触了成熟高效的做法,所以
对RTL技巧较熟练,由于较专一,比小厂熟练的RTL coder考虑更加全面细致,配合各种来自SoC的需求,例如test/debug/robust
等。
层次3:RTL code达到层次2的水平后,没有多少上涨空间了,优势不在RTL code;而是对标准协议,架构的理解非常深刻,且融汇贯通;
能够站在产品的高度往下看,对应用场景,架构方案设计权衡取舍游刃有余,支持芯片全周期(bring up,测试,量产,失效分析)
且对设计风险有敏感的认识,能够组织把控风险,这点对于芯片设计非常重要。
2. 如果一个应届生,进入小型团队,小规模芯片中,也会有三个层次
层次1:对于基础概念都不牢靠,似是而非例如对于基本的亚稳态都理解不到位,对异步处理理解也不透彻,只要涉及较subtle的东西
都模棱两可,工作处于应付状态,思想处于神游状态,仅能够支持一些基础简单的事务性工作。例如这个寄存器什么含义,去
查IP文档,费劲力气或者在外部支持下才解决一个常规问题,没有沉淀总结思考。
层次2:基础概念理解透彻牢靠,负责IP的设计,负责SoC子系统的集成与设计,参与制定方案并实施,对其中的细节特别清楚,但由于
需求原因,设计完备性,各种corner考虑略显不足;由于复杂性不高,对鲁棒性设计高亮不够;由于不需要较复杂的协议,架构,
所以数字设计水平停留在这里,主要是因为需求不高。但由于接触了不少中后端,模拟,原型验证,实验室调试等工作,所及技能
树会很杂,缺乏highlevel思考统筹的能力,陷在底层解决具体问题,而这些问题在大厂里都是有专门的岗位去做,会把这些基础
工作都做到很完善,总之只有较少时间去专注数字相关的协议,架构设计;较多的精力去解决杂散的问题,每个问题阈值都不高,
但挡不住问题多,所以看起来很忙。
层次3:在长时间处于层次2以后,意识到问题了,因为层次2无法保证芯片的质量,疲于应付,培养了几个骨干去对几个方向处理
常规性事务后,终于回头思考一个问题,如何保证小型芯片的成功,这个才是核心竞争力。
不是ACE总线,虚拟化,片上高速互联网络,最新的服务器架构。
那是什么呢?首先必须经过层次2,这样在各个方向上都积累了足够的经验,但是又能从中脱离出来,对如下问题深入研究
- 典型模拟设计的架构,typical电路结构所能达到PPA,不去纠结过于细节结构优化,但应对背后设计的基础理论相当熟悉,例如稳定性分析相位裕度
以此知道模拟需要做每种仿真的目的都清楚,并且很全面。例如LDO稳定性仿真时,知道除了外部电容外,整个数字cell寄生电容都是其负载。
即从high-level看待模拟设计。
- 在理解模拟之后,会结合要实现的具体需求,灵活的对模拟,数字,软件功能进行划分,使得设计复杂度,成本,功耗之间找到最佳平衡点。
- 从用户角度考虑问题,保证好用,充分和软件沟通,充分理解终端客户的使用习惯,例如调试器,一个健壮高效的调试器能够简化客户开发过程;
例如一个简单硬件功能的添加与软件配合后大大提升了效率;
- 一些简单IP feature烂熟于心,对他们的典型使用场景非常熟悉,不会因为数字设计简单而排斥,因为看到最终用户使用时发挥的巨大作用。
例如PWM,从数字设计角度会吐槽,这个有什么很简单嘛,一些小的feature一点难度也没有;但是这些feature客户用起来能够灵活的控制电机,灯...
各种东西,这其中会遇到很多具体细节的问题,正是依赖数字一行小小代码改动而实现的;
- 一些较复杂的IP,例如sdio/usb等,不会因为其相对复杂性而排斥,能够highlevel理解其协议的初衷与能力,能力是通过软硬件结合实现的,对这些IP出现问题
时能够给与工程师以指导,必要时亲自debug,快速解决问题。
- 站在品质测试角度思考问题,多站一会,体会其中的方法论哲学
- 对于ESD latchup等基础问题也要多揣摩思考,把半导体物理拿过来当作兴趣多看看
- 对于TO之前的关键阶段,多想问题:在数模混合仿真的基础上,每个人的checklist等通用方法学外,多想想是否还有什么漏洞,或者没有检查到的地方
和下面工程师反复推演,增加checklist item。
总结:很明显大型数字芯片重在逻辑的复杂性,因为牵扯到复杂的协议与架构,要满足PRD,架构设计是很关键的,要平衡很多东西,包括团队的能力,已有经验的继承,
可实现性,TO的窗口,PMIC的限制,一个优秀的架构师是在既有条件下平衡各方约束,给出一个解决方案,就类似要设计一款优秀的航空发动机,几十甚至上百个
子系统之间相互牵扯关联,每个子系统目前积累水平高度不一,有的短时间都无法实现突破,但项目仍需要向前推进,在资源足够情况下,各个子系统多去研究摸索
实验他们的工作规律,可行性方案尝试,等待稳定后集成进入系统,然后与其他子系统打磨,甚至再走回头路。
可以深入去研究子系统,或者若干个子系统相互协调的优化控制,例如cpu,NoC,DDR,Camera之类;或者单纯对高速接口进行定制化研究,使得其性能在specific
需求下得到优化,而不是general东西。
-----------------------------------------
而小型芯片重在每个细节的打磨,虽有权衡,但相对独立。
小型IP feature 准确定义,每行代码都细扣以降低成本且满足市场需要;模拟数字软件和合理划分,特别是他们之间耦合工作过程;
关键模拟模块的成本性能优势,例如在成本控制下得到设计PVT偏差较小的OSC电路;一致性好,耐操且精度良好的ADC;
低功耗的成功也很大程度依赖快速起振的OSC,弱LDO的工程校准能力,模拟模块standby/running 低功耗设计。