前些天看到一篇文章,讲低容错率的职业对一个人性格的影响。文中拿常见的路怒症举例,把从事低容错率工作的人形容为经常在拥堵路段中开车的驾驶员,长期下来,容易形成敏感、暴躁的性格特征。姑且不论这个观点是否合理。提到低容错率的工作,首先想到的自然就是自己的本职工作—芯片设计。
曾经做过一个算法的硬件实现,和标准数据做比对总是不符。后来灵光一闪,才发现按数组形式给出的标准数据,最左边的字节应该对应的是优先进入的零地址数据。而芯片数字设计中,硬件描述语言的通常写法是优先进入的零地址数据放在最右边。有些固化的硬件思维在这个场合就显得过于僵硬。
自从中兴遭遇美帝的限售令以来,广大吃瓜群众经过各大媒体有史以来对于集成电路产业的最大的一番狂轰乱炸,想必对芯片这个行业已经非常熟稔了,都知道做芯片是个高投入的行当。成本高,自然试错机会就少,低容错率就成了芯片行业的一个显著特征。
低容错的芯片产品的不出错,是由设计、生产的具体过程保证的。不说芯片规格制定的反复斟酌、市场部门和工程部门的讨价还价、来回拉锯,单从设计来说,从拿到设计规格开始,要仔细的研究规格说明书,做芯片的架构设计,分解设计任务,制定开发进度,安排具体工程师的职责,然后开发过程中的检视,开发进度的跟踪,每个步骤都繁琐复杂,极其考验项目领导者的严谨和耐心。
每个工程师拿到自己的设计任务,要再次审视芯片规格,确保自己负责模块的设计指标和芯片整体指标的一致性。设计过程中还要和验证工程师密切配合,保证设计的每个特性都要有完备的激励和检查。
设计的严谨体现在逻辑的自洽,以及更重要的,体现在有其它的步骤可以对之检验。
设计者首要的任务就是在输入的逻辑空间中进行穷举遍历,做出的设计要能应对出现的各种情况。出于成本的现实考虑,有些输入组合可能无法有效对应,那就需要在设计文档中做出充分的说明。这个任务有个重要的实现方法就是设计的静态检查。包括设计者自己对设计的反复检视,在头脑中抽象出设计的模型,和尽可能多的输入进行匹配,并推理出输出是否合乎要求。这是考验一个设计者思维能力的重要方面。用不怎么恰当的成语来形容,就是“瞻前顾后,踯躅彷徨”,最终到达“志得意满”的程度。
作为设计检验的重要执行者,验证者的任务其实和设计者的差不多,都要从设计规格推导出设计的完备逻辑空间。不同的是,设计者完成的是设计本身,验证者完成的是针对设计的完整激励和检查。这样才能相互检查,最终共同收敛于设计规格。但是由于种种原因,不少团队的验证者都是基于设计者给出的设计方案来做激励和检查,浮沙之上盖高楼,基础就是不太牢固的。
进入上面的工作状态,好比步兵进入了雷区。每一步都要面对流片失败的压力,极度的严谨在芯片开发过程中是常态。芯片从业者除去睡眠的时间,至少有一半的生命都处于这种高度紧张的状态,久而久之,形成谨慎的惯性思维模式是显而易见的。
什么都是过犹不及。过于严谨,就是死板、不灵活,运用在工作中就可能有碍于创新,运用到生活中就可能伤害人际关系。一个人如果存在过于强大的思维模式,就一定能反映到言行举止,甚至仪态气质。这也是为什么码农、工程师、科技工作者在人群中更容易被辨认出来的原因吧。