这次抓鬼的过程应该说是成功的。说起来,有几条经验可以总结:
现在的设计复杂程度越来越高,周期也拉的较长。短的几个月,长的可能就得以年记。这么长的时间,中间还要穿插许多不同的内容,任谁都很难保证记住设计过程中的每个细节。这样一来,随时注意留下记录,保存好所用技术文件及关键的数据就显得极为重要。你的工作笔记本的作用不是教科书,不一定非要清清爽爽,横平竖直。它应更像一块黑板,不但记下你的计算过程和结果,还可以包括你的问题,困惑和疑问。文字,数字,图形,甚至情绪化的标记都可以是内容。这样作的目的只有一个:帮你记住尽可能多的信息。你在设计过程中随手写下的几个字,文件中标注的几个数据,日后都有可能对你有所帮助,帮你回忆起当时的设计依据和条件.
以这次的事情为例,如果我没有保留K公司原来的技术文件,就很难在事发后的分析中发现新老文件的差异,以判断出可能的故障原因。即使后来排除了故障,也很难让人相信,这是器件厂商的原因,而不是我设计的问题。麦克很可能会问:为什么在开始设计时没有注意这个问题, 而导致现在造成这么大的恐慌?那就真是有嘴说不清了。
你的头衔是个“硬件工程师”, 但你不止是一个“硬件”工程师。现在电子工程设计的集成度越来越高,硬件与软件的界限也越来越模糊。现在一个硬件工程师所从事的工作,几乎等同于若干年前一个系统设计师。我总喜欢将现在硬件工程师的工作比喻成“搭台”的,软件工程师的工作是“唱戏”的。观众看到的是演员在台上五花八门的演出,可没了舞台,灯光和布景,那就啥也不是。
系统的功能要靠软件实现,但它必须要在硬件环境的支持下。在现在的产品开发过程中,多数情况下硬件设计要先于软件开始,软件的工作要在硬件已经形成的环境里进行(我这里指的是那些直接与硬件打交道的底层驱动程序和管理程序,而不是指上层的应用程序和操作系统)。这就决定了硬件设计在整个流程中起着一定的引领作用。从某种程度上说硬件设计者是整个设计阶段的带路人并不为过。因此你不能把自己仅仅局限在硬件的领域内. 在设计过程中必须要考虑:这样作,对软件会有什么要求?有没有实现的可能?如何能使相应软件设计工作变得简单? 你可能不需要去写程序,但你必须要了解与你的硬件相关的软件部分如何工作。
还以上面的事为例:当我认为可以通过软件修改来解决这个问题时,不搞清具体的相关寄存器的功能和操作方式,而只是简单地推给软件组让他们去修改,以应对存储器的初始化的问题,那结果很可能就是被置之不理,因为他们很可能不理解存储器的上电过程与他们有什么关系。至于存储器的错误那更是与他们无关:你们搞硬件的难道不应该先把硬件故障排除后再找我们吗?
这里说的余地,并不单指在选择器件时,其参数相对于应用环境要留有一定的余量。更指 的是,应该充分利用你的设计中的可用资源,为其功能或工作特征的改变或拓展留下空间。
比如说:按照现在的硬件结构,有没有可能应对不同的使用环境?这个产品将来有没有升级的要求? 如果要升级硬件要做哪些变动?能否让你的设计用很少的修改,甚至不修改,只通过改动软件来实现?你选用的器件将来会有变动吗?如果有,你能做到不修改电路板就实现吗?
举个例子:一个器件管脚的设置会导致不同的功能状态,那么有可能的话,在电路中就不妨将上拉和下拉电阻都放上,在装配时根据需要只安装其中之一即可。再比如,如果你的设计中有FPGA,那么通常情况下它的管脚和内部逻辑单元的使用量最好控制在80%以下。一方面这样FPGA的编译/合成速度会很快,内部的定时关系也容易保证,同时剩余的管脚和逻辑单元也可能成为你的备用资源。分析一下你的设计,把那些将来有可能用来改变电路功能或特征的的某些信号(主要是控制类信号),接到FPGA上,而不是简单地固定在一个逻辑电平上。这样一旦有需要,只要修改你的FPGA设计即可。这都远比你将来再修改电路板要容易的多。
只所以这样做,是因为就现在硬件的复杂程度而言,翻新一版硬件所需时间和费用远非软件的修改所能比。单说修改过程,一旦方案确定,软件的修改只是敲敲键盘以及系统编译的时间,几乎没有其他成本。而硬件的改动,即便你只是要增加一个电阻,电路图-布线-元器件表-制板-装配-调试这一系列过程少那个也不成。这种耗费往往是惊人的。更不要说碰到前面提到的紧急情况。如果我在前面提到的设计中,不是简单的将QDR存储器上的DOFF控制线固定死,而是连到FPGA上,那么我就有可能在FPGA中加一个简单的控制即可达到目的,而无需兴师动众去麻烦千里之外的软件组的人,所需的时间还要少得多。在板子上增加几个电阻,多布几条线,不是很困难的事,但可能带来的收益却是不可低估的。
当然,所有这些都要在不影响主体设计性能的前提下,不能喧宾夺主。说句玩笑的话,这多少有点儿像谍战剧中那些深藏不露的间谍卧底,武侠小说中密不示人的行侠剑客。这些人从受领任务的那一天起,就大隐于世,从不张扬。只是冷眼旁观他们的同伴建功立业,争奇斗艳。他们也许永远不会被启用,只能默默一生,直到终老。而如果有一天他们被召唤,那多半是形势已经到了关键时刻,生死关头. 他们的出手一击,有可能成为扭转乾坤的胜负手,一决生死的杀手锏。到了那时,你可能会由衷地感叹,自己当初是多么“英明”。
如果这样的比喻可以接受,就这样来概括吧:
各位将军,当驱动你的大军攻城略地之时,别忘了埋下一支伏兵,留下几个卧底。他们可能使你在关键时刻反败为胜。
列位庄主, 在差遣你的镖局出发上路之前,要记得派出几个潜行的剑客,布放几个隐身的保镖。他们也许会让你在生死关头转危为安。
捉鬼系列文章:
用户1711538 2014-2-25 15:22
用户1406868 2012-10-24 20:01
用户1406868 2012-7-20 17:22
出书!!!
用户1277994 2012-6-25 20:29
用户1603699 2012-6-25 16:10
用户1601452 2012-4-17 18:27
用户1580664 2012-4-17 11:15
用户1537892 2012-4-12 23:11
用户1134229 2012-4-9 14:57
用户1365801 2012-4-9 10:29