华为硬件开发揭秘:专题分析之三

发表时间: 2020-03-15 20:50

写了两期“漫谈华为是怎样开发硬件的”,受到了朋友的期待,大家都呼吁:“村口厕所没有纸了,快写吧”。


因为今天是周六,写点轻松点的。

先说个故事,传说哈,大家当笑话听。

早期,我大中华自研的潜艇,都是海蓝色的,跟军舰一样颜色“蓝灰色”。后来我大海军去参观前苏联的军事演习,发现俄国人的潜艇不是蓝色的,是黑色的。于是回来大讨论,为啥俄国人的潜艇是黑色的。猜想:一定是黑色在夜里面不容易被发现,所以油漆成黑色的。于是全国油漆大运动。 后来才知道,原来俄国人的黑色不是油漆,是黑色的橡胶,消声瓦。于是我们也贴橡胶,可是我们贴了橡胶之后就潜艇跑不动了,因为我们的潜艇的动力不如别人。(以上故事纯属虚构,如有雷同,请把发生时间改为清朝。)


为啥在这里说这个照葫芦画瓢失败的故事呢。我觉得很多硬件工程师有个误区,觉得自己的核心竞争力是在于会使用几个软件(cadence、Protel),画画原理图,画画PCB。我早期的一份工作就这样,最大的本事就是照葫芦画瓢,抄Demo板,抄以前成熟的电路,如果碰到了新的电路设计,一般是按照参考电路先画出电路,再通过调试,去尝试,碰到问题,再去解决问题。


那么我现在的观念是,硬件工程师最值钱的地方是在于懂硬件原理,懂得电路分析,模电数电原理,电磁场理论,而不是会使用画图软件。


那么华为是怎样做电路设计的呢?为什么会有专题分析的说法呢?为什么电路设计的时候要做专题分析?


第一、 例行的,每个电路一般都会做几个必选的专题:电源、时钟、小系统;把每个管脚怎么用,怎么接,对接的管脚的电平是否满足要求,都需要文档化,分析清楚。在选用新器件的话,对应硬件工程师的工作量还是比较大的。但是如果是其他公司,直接按照推荐电路设计就完事了。电源专题,需要分析电源需求,每种电源的电压范围,电流需求,动态响应,上电时序;时钟专题,针对每个时钟的输入的电平标准,频率,抖动等参数,时钟时序,并按照各种时钟解决方案进行优化;


第二、 当电路设计过程中,碰到一些新的问题,之前团队中没有接触过的问题,或者认为是重点,难点的内容,会专门做这个问题点的专题分析:例如我们做过的一些双BIOS启动,摄像头的红外LED的驱动,主备倒换啊,之类的,就会把一个问题点分析透,然后再动手做画原理图。


第三、 那么在开发硬件的时候,Demo只是作为参考,每一个依据都是来自于datasheet,除了看芯片的数据手册之外,还要仔细查看数据手册的勘误表errata,核对datasheet与Demo的差一点,如果器件有checklist还得核对checklist。曾经开发AMD的时候,datasheet、Demo、checklist,三个文档对不上的情况。也出现过,一个比较难复现的问题,后来查看了Errata,发现是厂家芯片升级了,修正了bug,而我们还在采购老版本的芯片。


第四、 由于项目本身有交付时间要求,那么在有限时间内其实不可能做到每个问题点都做得深入透彻。那么问题来了:

是怎么做到的呢?首先,每个项目都有《问题跟踪表》,而硬件团队由于事情非常的杂,所以把这个表要用的非常好,不然丢东拉西很正常。我曾经把这个表应用到家里装修。这个表的原理很简单,就是记录,问题内容,责任人,完成状态,完成时间。但是只要你坚持用,你会发现,你问题不会跟踪丢,做事情会比较有条理,而且会有成就感。用了这个表以后,发现问题之后,先记录下来,即使现在不解决,那么也会识别他要不要解决,什么时候解决。其次、问题分优先级,任何项目都是带着风险前进的,那么识别出高风险的问题,优先解决高风险的问题,带着低风险的问题继续走。这也是华为电路设计中“0欧姆”电阻用的比较多的有一个原因,识别出风险之后,但是又分析不清楚,或者来不及分析,只好做兼容设计。这里不得不感慨一句,在你的设计过程中,你马虎对待,没有分析清楚的问题,最后一定会暴露出来。

所以,在“菊花厂”做硬件工程师,“专题分析”是设计硬件最核心的工作,而不是画原理图。

通过这个方法,用1~2个月做电路分析,而用1~2周时间画原理图,取代了,画图,调试,改版,再调试,在改版的形式。


多快好省,是不可能同时实现的,那么硬件工程师有责任做很好的折衷和权衡。