Killoser

  • 239 主题
  • 255 帖子
  • 2452 积分
  • 身份:版主
  • E币:811

在华为做了14年的硬件,经过我手的单板从没出过问题

2018-7-6 09:31:48 显示全部楼层
2004年加入华为后,我连续做了14年的硬件,还算做了一些让人满意的单板,也有幸参与海思芯片的设计和开发,见证了网络芯片的成长。然而这当中也没什么高深的大招,只有一点一滴的积累。


10年整理600多页的“红宝书”

有人说,做硬件很容易,会拧螺丝会连线画原理图就行,但在我看来,这充其量只是连线工程师、画图工程师,不能叫硬件工程师。硬件工程师要懂的东西很多且很杂,PI(电源完整性)、SI(信号完整性)、时序……小到电阻电容,大到协议标准,遇到问题要能够有自己的判断而不是茫然无措。当时我们的老大说过一句话,“只要是看得见的,硬件都要管”,言下之意是硬件工程师要了解和单板硬件相关的所有领域,并对相关的技术问题做出判断,现在看来就是整个大硬件域。

在加入华为前,我已经在广州的一家公司做了两年的硬件了,当时做的单板规模很小、很简单,远不及华为单板的规模和专业性,接触华为单板后发现自己了解的那点硬件知识真不够用,于是就一边硬啃各种文档资料,一边追着专家请教。在工作中逐步学习PI/SI,学习高速设计,学习工艺,学习结构,学习散热,学习可靠性,总之只要和硬件相关的都会去学。虽然不如该领域工程深入,但也能够和对应领域工程师无障碍沟通并共同解决涉及的问题,到后来无论是做单板还是看别人的单板都会游刃有余。

这么多年的工作让我养成了一个习惯,在看器件手册和技术文档时,如果看到一个没见过的技术名词,就会立刻去google一下。即便是看不明白,也会硬着头皮从头到尾读一遍,在后续的工作中再去慢慢揣摩,同时会把在这个过程中看到的相关技术信息摘出来,专门放到两个文档中(一个word文档,信息记录较详细;一个是excel,方便查阅),这样后续查阅就不需要再翻箱倒柜了。新知识、新技术永远在不停地发展,目前我的“红宝书”还在陆续更新中。10年来,我的word文档已经足足有六百多页的干货了,细看下来,除了技术解释,标准摘要外,典型设计、设计中易犯的错误、各种器件的设计注意事项、等等内容也收集在里面。

除了查阅的便利外,这个过程其实也是我个人学习和总结的一个过程,现在只要是我的电脑开着,我的这两个文档就是开着的。我也无偿把红宝书分享给一些有需要的同事,希望也能方便他们的工作。


攻关像艺术创作,需要坚持也需要灵感


问题攻关几乎成了我司硬件人员的成长必经之路,既磨练意志也开阔眼界,这十几年我主导和参与过的攻关不计其数。

几年前带领过一个芯片接口误码攻关,这个攻关在我投入前已经攻关了月余,完全是被供应商牵着鼻子走,不断给他们测各种数据,然后等他们答复,反复很多次却没看到任何实质性的进展。

加入并带领攻关后,我先将已有的数据梳理了一下,然后和供应商交流了几次,基于这些数据我判断他们的方向是错误的,但他们却坚持己见,认为是我们提供的参考时钟抖动有问题,但从测量数据上分析抖动是正常的,这样一来攻关便陷入了僵局,于是我决定撇开供应商进行问题攻关。

经过对问题的分析和测试,我们判断DDR控制器的读写采样窗口小导致了这个问题,进一步设计实验发现是“读”方向有问题,但是窗口到底有多大,示波器无法准确的测试。通过和海思交流,我们利用芯片已有的寄存器很巧妙的设计了实验,准确的测定了DDR接口的窗口大小,出问题时的窗口确实很小,可是奇怪的是控制器启动后都会做读写窗口的扫描,理论上不应该出现这个问题。于是我把DDR的手册又啃了一遍,分析了DDR的窗口扫描算法,结合示波器的测试,最后发现是供应商集成的DDR窗口扫描算法太简陋,扫出来的窗口比实际的大很多,并且我们使用的某厂家DDR在高温下窗口会缩小,至此整个问题水落石出。针对此问题供应商的算法已无法修改,因此我们设计了一个巧妙的软件算法对窗口进行补偿,同时更换某厂家最新版本的DDR芯片,彻底解决了这个问题。

在最终问题定位之前,供应商始终认为是我们的问题,如果继续由他们控制整个攻关进程,问题定位结果必然跑偏,因此攻关中要有必要的坚持。

最近一次问题攻关在上个月,单板逻辑的兄弟遇到刷表出错的问题跑来问我,当时由于工作太忙无暇顾及,帮忙出了些点子就放在一边。过了几周正在成研出差突然就被呼到一个电话会上,原来这个问题一直没解决,还愈演愈烈了。第二天和逻辑兄弟走读了一上午的代码没有发现问题,一下进入了死胡同。这一天刚好是周末,实验室很安静,完全没了思路之后决定起来走走,绕着整层楼绕圈,同时在脑子里将这个问题现象串一遍。两种类型的单板,C板A片出问题,X板B片出问题,几乎完全一样的硬件设计,逻辑设计几乎完全一样,差别只是逻辑中状态机判断条件C板B片在前,X板A片在前,问题似乎就在这里,但是代码上却看不出问题,会不会是两块单板上两个芯片接口走线的延时差导致出问题?立刻回去查看PCB图,果然是这样,两颗芯片的延时刚好一个是A片长,一个是B片长,至此彻底打开了攻关思路,经过一周的艰苦攻关彻底解决了这个问题。

攻关最常遇到的情况是感觉好像所有招使尽了却难前进半步了,这种时候需要放松休息一下,攻关和创作艺术品一样,需要灵感。

平时的工作中由于时间关系,对于很多接口协议/硬件标准等了解并不深入,但到了攻关的时候为了解决问题,就必须沉下心来硬啃文档,所以每次攻关结束,都会发现自己在某些领域又深入了很多,或者是对协议标准,或者是工程领域最新的技术或问题,因此虽然过程很艰辛,但对于攻关还是乐此不疲。


单板要是做砸了,以后没人敢用你

生活中我是一个特别仔细小心,甚至有点强迫症的人,一件事件经常会反复确认,在工作中也是如此,对于关键问题会反复确认和分析,确保无误。以前跟海思一个项目经理一起做芯片,我从别人那听到他评价我时说,“你别看这个杨勇长得五大三粗的,但心思却非常细!”

硬件绝大部分的问题攻关过程艰辛,但最终的问题根因往往很简单,有的甚至很低级,一分钟犯的错误要用千百倍的时间来解决,一个连线错误就要导致单板花三个月来重新改板,成本巨大。刚入职路由器时,硬件老前辈给我们新人说,“优秀的硬件工程师就是要一根飞线都没有”、“好的单板就是你的品牌,板子要是做砸了,以后是没人敢用你”。因此从做单板以来一直都谨记前辈的教诲,小心翼翼、战战兢兢,用如履薄冰的态度做单板设计,不放过设计中的任何一个细节,有疑问的地方都是多次确认。40Kpin规模单板的原理图和PCB,一遍一遍,一根线一根线地点着看,查完原理图查网表,甚至连原理图设计工具的提示信息也每条都确认。从我的角度来说,要做一个好的单板其实没有捷径,就是每根线都点到,每个器件都看到,每一处设计都分析。

当时我所做的单板是路由器规模最大的一块单板,编译网表时原理图设计工具给出的warning和notes有几千条,我们也坚持每条都点一次确认一下,而且是编译一次点一次,有时感觉看得都有点想吐了,但仍然坚持看完。工作辛苦细致一点,风险就可以小一点,万一这些无效问题中隐藏着一条真正的问题没被看到,那就意味着单板可能要改板。曾经有QA问我如何保证单板质量,我给他开玩笑说“检视,检视,再检视”。

因为看得很仔细,以至于当时原理图设计工具的一些问题都被找了出来,虽然过程很辛苦,但是单板成功了就是对这些辛苦最大的奖励,这块单板是路由器当时最复杂的单板,如今成了路由器发货时间最长,赚钱最多单板之一,前年才终止发货。

我觉得,硬件工程师对待每一块经自己手设计的单板,都要当艺术品一样,设计规范整齐,精益求精。好的单板设计看起来应该给人一种很舒服的感觉,连线整齐,命名规范,标示详细,看一眼网标名称就知道这个信号是什么,从哪来到哪去,方便检视还不容易出错,原理图中详细标注设计细节,这样检视原理图就不用再去翻详细设计报告和数据手册。

这么多年来,但凡经我手的单板从没出过问题。我觉得也许强迫症是硬件工程师的必备素质之一。


转战中国芯

作为硬件工程师,除了做单板我还有幸参加了网络芯片的设计和验证工作,见证了网络芯片设计/验证的团队从无到有,从涓涓细流到如太平洋般宽广的成长。

在交付完路由器最复杂的单板之后,我被抽调去参与路由器40G芯片设计,承担40G芯片的硬件和工程需求的梳理及验证方案的设计,工作从单板硬件转到芯片设计有一定的跨度,有很多芯片板级应用方案、需求分析和决策,每天都是忙于各种硬件方案的分析设计,追着产品的SE和芯片SE确认问题,硬啃最新的芯片工程技术,决策芯片的硬件和工程需求。当时加班多到领导都看不下去了,唯一一次过年没有回家就是这次支持40G芯片回片的验证测试。

40G芯片的成功使华为核心路由器有了中国芯,全面具备了赶超世界一流IP芯片的能力,使路由器硬件竞争力显著提升。能有幸参与这种划时代的项目是人生最宝贵的经历。

现在我的工作也是一半单板交付,一半芯片开发,涉及网络产品线的所有网板和大部分芯片,随着技术的发展,芯片的设计和应用已经全面挑战工程技术极限,参与芯片设计让我能够接触到最新的技术,不断更新自己的知识体系。

在华为工作14年大小奖励也获得很多,金牌个人、金牌团队、总裁奖、明日之星等等,现在公司越来越重视专家的价值,在职级岗位等方面都给予了更大的发展空间,我也就更坚定了专家这条路线。公司重视,专家更应该回归到专家应有之道,在具体的技术领域要持续耕耘,做广做深,既能够承担具体的开发工作也能够洞察业界的发展方向。现在的我在做好单板和芯片的同时,也适时地抽身出来学习,期望能站在更高的视角来看待硬件领域,为硬件将来的发展做出更大的贡献。

本文来自《华为人》,转载请注明作者及出处

回复 收藏 举报

最新评论

楼层直达:

二不过三

  • 8 主题
  • 70 帖子
  • 260 积分
  • 身份:LV2 初级技术员
  • E币:181
二不过三 2018-7-6 15:27:48 显示全部楼层
老牛了。优秀的硬件工程师就是要一根飞线都没有

1115319535_2676

  • 0 主题
  • 9 帖子
  • 117 积分
  • 身份:LV1 技术小白
  • E币:107
腻害了  做到一板成功真的不容易

hszgl_164969590

  • 0 主题
  • 3 帖子
  • 115 积分
  • 身份:LV1 技术小白
  • E币:107
没出过问题,就是最大的问题。失效模式没积累,创新设计没尝试,能力体现在哪里?
广告

allen_zhan_7528

  • 0 主题
  • 19 帖子
  • 298 积分
  • 身份:LV2 初级技术员
  • E币:185
hszgl_164969590 发表于 2018-7-7 11:49
没出过问题,就是最大的问题。失效模式没积累,创新设计没尝试,能力体现在哪里? ...

没去过这种类型的公司, 从这份感想来推论, 这种类型的大型公司, 以单次技术业绩的成败决定一名普通员工的未来项目命运和升迁命运. 估计他们不敢错, 做错的都边缘化了.

xikamini

  • 0 主题
  • 1 帖子
  • 107 积分
  • 身份:LV1 技术小白
  • E币:99
xikamini 2018-7-18 22:44:00 显示全部楼层
来自大3自动化学生的仰慕,,
我要评论
5
广告
关闭 热点推荐上一条 /1 下一条
快速回复 返回列表