设计资源最大化
0赞1、 何谓设计资源?
这里说的“设计资源”,其实不是特指“开发工具”,或者其他纯粹的看得见摸得着的物质化的东西。这里的“设计资源”,乃是着重强调在一个项目的开发设计过 程中,工程师在遇到问题、分析问题、解决问题时,所能够采取的各种方法和手段。当然了,有时候使用调试工具,如示波器能够帮助我们找到问题,那么它是设计 资源;有时候看看芯片资料,能够给我们的电路设计做一些参考,或者帮助我们发现电路设计上存在的问题,那么它也是设计资源;此外,在我们的产品开发过程 中,包括硬件的设计和调试、软件的设计和调试上……任何能够给予我们帮助的人、事、物,从某种意义上都能够看作是设计资源。
2、 设计资源就在您身边
特 权同学毕业后就进了一家研究所,新人的压力并不大,因为大事小事都有老师傅们罩着,管事的人说一是一,说二是二,我们只是跟着干。即便出了问题,也和咱干 系不大。但是现在不一样了,在小公司里,干活的人不多,不会老是有人在前面领路,自己要慢慢学会独立。相对而言,小公司要求人人都能够挑大梁,因此也要求 一个工程师能够更加全面的考虑问题,并且对信息的捕获更加敏感,也会更加珍惜各种可以获得的设计资源。因为身边也许没有很多经验老道的工程师,很多时候遇 到问题都得靠自己来解决。而问题解决的过程往往会让人吃尽苦头,甚至于没日没夜的加班调试,也许那那是大众眼中可怜的“电子工程师”吧。
但 是,设计资源最大化这个主题不仅小公司的工程师们需要关注,大公司也是一样的。只不过大公司的很多优秀的管理方法,或者说是由于明确的分工,让员工感觉资 源的捕获相对容易,尤其是当身边有很多“牛人”同事的情况下,不知不觉中很多问题的解决也许就是同事的一句话。从某种意义上来说,这应该也算作你所能够获 取的设计资源之一吧。是的,看看身边抬头朝夕相处的同事们,很多时候他们就是你伸手可及的设计资源。
3、 设计资源的案例
案例1:特权同学近期的一篇博文里提到了关于CPLD的IO口上电弱上拉的问题,当时是在调试一个液晶屏,由CPLD来驱动,并且CPLD的IO脚 直接和液晶屏的背光使能信号相连。在代码中是设置了上电初始化关闭背光的使能信号,板级调试时出现的现象是上电后瞬间,也就是电源开关打开后的瞬间,液晶 屏闪了一下,也就是说在正常打开液晶的背光前,液晶背光有一个开了又关的过程。用示波器定位这个背光使能信号,确实上电后、复位结束前这个信号出现了几十 毫秒的高电平,毫无疑问,问题就是它导致的。这个问题遇到了,到这里也定位了,那么下一步就要分析原因。但是我怎么也想不通,到底为什么会有这个高脉冲 呢,明明复位时是让这个IO脚输出低电平的,而他却输出高电平。百思不得其解之下,找资料,找Quartus II的软件设置,但最终却是一个电话问到了altera的FAE解决了问题。他给出的答复也很简单:CPLD的所有IO脚在上电后、复位前都会保持一段时间的高电平,因为所有IO脚的内部都有一个弱上拉。当然了,后来另一个项目中遇到了altera的FPGA出现同样的问题,答案也是一样的。
案例2:公司有一块3.5寸 的手机屏让我测试一下。我就看液晶资料,搭测试板,写测试代码;等到平台搭起来后,无论如何折腾,液晶都无法按照预期显示彩条,也就是说根本没有驱动起 来,我就很纳闷了。做了这么多液晶的驱动,还真没有我搞不定的。过了一段时间,经理咨询了原厂的技术支持,并且从他们那里拿到了一份初始化寄存器的demo代码,然后我才明白,说明书上其实给了一套专用串口的时序,只是没有详细的说明使用方法和注意事项,这个液晶和一般的不同,他需要在上电后给寄存器配置一长串的数据,然后才能够正常使用。我按要求做了新的测试代码,OK,显示各种色彩都正常。
在这两件简单的事情上,个人的感受也是蛮深的。尤其对我个人来说,我一直很喜欢独立思考,能够自己解决的问题从不愿意去麻烦人,但这也导致了很多时候大量 的时间和精力浪费在了这些简单的小事上。这就好比说在一间黑乎乎的屋子里,你要找东西,你不先伸手按下开关打开电灯,却选择在黑暗里瞎摸,也许最终你会找 到东西。但是,如果你按下开关点亮灯,找东西的效率肯定会大大提高。有时候,能够自己解决问题,确实说明了一个工程师的能力,大多数工程师是喜欢独立思考 的,这点很好。但如果不愿意与人交流,或者在有条件的情况下却不愿意请教他人,总是在黑暗中摸索,这就不可取了。既然有灯有开关,为什么不按下开关把灯打 开呢?我在这里要强调的一个点,乃是说我们在可以借助他人帮助的情况下快速的解决问题时,那么我们就不要陷入单干的困境以至于不能自拔。也就是说,有时设 计资源就摆在我们面前,我们要学会主动的去接触他,让他成为我们的开发项目加速的筹码。
4、 设计资源,无处不在
设计中,我们的资源是无处不在的,记得曾经和一个老师傅聊天,他说在他们年轻的时候,那时的老师傅有绝活,遇到问题或者设计产品找本书一翻就行,这些书籍 就是他们长年累月通过参加各种展会等各种手段积累的“知识财富”。而在知识爆炸的今天,互联网推动了资源的共享,不仅仅元器件厂商们的网站提供的资料做得 越来越到位,甚至越来越多电子工程师们的博客、论坛中共享的点滴经验也都是能够让我们直接受益的设计资源。有时候资源多了反而让人有些茫然,一个问题,公 说公有理,婆说婆有理,孰是孰非都没有定论。那么这也就需要我们有“取其精华,去其糟粕”的能力,从各种资源中筛选出有用的东西了。
对于FPGA设计者来说,Xilinx和Altera两家公司的网站资源是相当丰富的,网友RickSu有一篇名为《Xilinx网站资源导读》的文章,读过这篇文章你会发现很多你想要的东西Xilinx其实都能够满足你。
5、 总结——积攒设计资源
我 很喜欢大道至简的《感悟设计》一书,因为书中谈到了很多活生生的案例,这些案例也许有我遇到过的,即便有些地方想法不一样,当然还有很多我没有遇到过的, 但这并不妨碍我喜欢这本书。因为作者并不仅仅把自己定位成一个设计者而已,有时是在享受那个解决问题的过程,是在感悟那一个个问题背后的问题。我之所以喜 欢写博文,也是源于对问题的总结,对设计的感悟。因为很多时候,浅显的讲,好记性不如烂笔头,记下来的东西忘记了可以复习;往深里看,这些记录下来的东西 也是在给自己、给他人积攒设计资源。
关 于总结,可以按照时间,也可以按照项目,也许一天工作下来你会有很多的感悟,那么很好,尝试在这一天工作结束的时候花五分钟,用三五句话来概括这一天的收 获,然后在一周之后再回头给过去的一周做一些回顾。并且这些总结都是应该记录下来的,一个月、半年、一年,或者三年、五年以后,当你再回头翻看这些记录的 时候,也许那就是你成长的轨迹。我觉得更重要的是,那些经过你深思熟虑,用键盘记录下来的文字,会深深的印刻在你的脑海里,不知不觉的融入工作中,成为无 形的设计资源。
6、 设计思想,来源于生活
最后,对不起,可能会跑题。抛开设计资源这个话题,我们来谈设计思想,或者确切的说应该是谈设计的理念、方法,乃至设计工作中的一些习惯。这其中可能我们也会谈生活,谈做人,也许会很贴近我们每一个人。
我一直在思考一句话“工作就是工作,生活就是生活”,但是尤其像我们这些在上海、北京、深圳等大都市奋斗的年轻人,其实我们最深的感受就好像说“生活就是 工作”。但是无论如何,工作再忙碌,压力再大,其实都完全在于一个人的心态。也许有很多人会抱怨在国内做一名电子工程师不容易,待遇不好,压力偏大,市场 竞争也过于激烈。感觉上不仅小公司,有时大公司也一样,普遍存在着一种比较浮躁的氛围,对产品的开发总是急功近利,过于肤浅的停留在事物的表面,没有深层 次的去做一些长远性的考虑和规划。当然,这些都是大环境照成的,即便有心或者看到这些问题的人也很难去改变现状。话说回来了,一个人生存在这样的环境中, 其实还是要看他的心态,如果你一开始就浑浑噩噩,消极的面对这一切,那么我可以断定你从一开始就不是个适合做开发设计的人。其实我觉得处在这样的环境中对 个人的发展来说也不见得是坏事,俗话说“只有想不到的,没有做不到的”,很多时候是因为我们没有以一种积极向上的心态去面对和把握。
反过来说,越是安逸的环境越是让人没有上进。圣经中提到了亚伯拉罕侄子罗得的后代摩押人,“摩押自幼年以来常享安逸,如酒在渣滓上澄清,没有从这器皿倒在那器皿里,也未曾被掳去。因此,他的原味尚存,香气未变。”摩 押人过的是一种常享安逸的生活,就好比未经过滤含有渣滓的酒在容器里,这个容器没有倒来倒去的时候,静静的放在那里,那么这个酒看上去好像是澄清的,但实 际并非如此。只有当这个容器的酒被倒来倒去,不断的过滤去除渣滓了,它才会是真正澄清的。当然了,对于这个常享安逸的摩押人,圣经里也提到了他们的结局 “摩押的灾殃临近,她的苦难速速来到。”此外,我们看看以色列,也就是犹太这个被认为是极其优秀的民族,抛开圣经中很多对这个民族的祝福和诅咒不说,单单 看这个亡国近两千年竟然又在1948年 奇迹般复国的民族,二战期间更是遭到纳粹分子的疯狂屠杀,我们不能不说这是个多灾多难的民族。但是就这样一个多灾多难的民族居然走出了爱因斯坦、马克思等 众多给全人类作出巨大贡献的伟人,甚至我们也惊奇的看到那本好像都在讲以色列人的历史书《圣经》居然成为了全世界最畅销的一本书。所以,可能我的这个例子 举得有些远了,但是我的一个中心意思乃是说:越是在逆境中,往往越是能够造就一个人——一个优秀电子工程师。要做一名合格的设计者,首先我们要做到的一个 点:不去关注摆在我们面前负面的事物,以一颗积极向上的心态去迎接任何可能遇到的困难。
下面我想再说一个我最近感受很深刻的一个东西。因为我刚跳槽,到了一个小公司,马不停蹄的就开始了我的项目开发工作。从某种程度上来说,我也是第一次以一个近乎独立的方式来面对手中的项目,在这个AV视频采集的项目里,我发现说很多时候出现的问题其实都是由于自己的不好的工作习惯,其实也是很细节的一些疏忽造成。那天我们刚拿到第二版的PCB板,焊接完以后我烧录了FPGA代码进去,因为这个FPGA的 仿真和前期的板级调试都不太成问题了,只是新添加了一些也是在别的项目上做过验证过没有问题的功能。代码烧录进去没有问题,然后交给另一位同事做软件联机 测试,结果同事拿了一条完全相反的连接线做连接,当时他是一上电看着冒烟也闻着味道不对,立马下电找我。我一看坏了,那条线正好把电源反接了。当时心想他 应该也是上电没多久,按照往常经验也不应该会烧毁什么芯片,于是让他换了一条正确的连接线,测试没有短路现象后再上电,结果视频部分总是没有显示。于是就 很自然的联想到板子上某个芯片被烧坏了,于是各种分析、定位,也把能换的芯片统统换了一遍找问题,甚至于最后再焊接了一套完好的板子调试,发现怎么现象都 是一样的啊。这下就纳闷了,于是我就回想是不是我下载的FPGA配 置文件版本不对,感觉上是不会的,因为提交板子前在线烧录观察是正常的。但是,也是前后折腾了快两天时间,我在复查代码的时候发现了问题,我在最后一次编 译成功后,就是生成最后一次配置代码后,改动了代码的内的一个复位信号,而这个改动中对信号的例化里,把复位和时钟的位置映射弄错了,这样一来,系统肯定 跑不起来了。而恰恰我在拿到新板子烧录第一次配置文件的时候用的是改动前的,而出了问题以后重新编译产生配置文件,然后就出现了和接错线搅在一块查问题的 窘境。
在这个调试的过程中,我觉得最大的问题乃是在于当事人,包括我和我的同事,设计习惯不好,或者说是设计不规范。正常而言,先说我自己,代码的更改理论上都 应该有所记录,因为这个版本代码没有初版调试时变动那么大了,基本的功能都差不多定型了,如果有改动应该及时做标注,但是我没有做这个工作。还有,没有对 下载配置后提交可供同事联机调试的板子再做一次验证性的测试,直接导致了同事拿到的是一块本身代码就有问题的板子。对于同事,很简单,他在连接好两块板子 以后,没有对电源短路与否做一次检查就上电了,虽然没有造成任何实质性的损失,但是我想这却给我的排错造成了很大的障碍。
从另外一个角度看这个问题,其实就是因为我们这个人,在日常生活中我们并不是一个足够严谨的人,做事情对标准贯彻的不那么坚决,总是心存侥幸,以为坏事总不会临到自己头上。我觉得这一点是需要检讨的。
其实和大家分享了这么多应该算是我在工作上遇到的一些问题,然后在这些问题当中的一些所感所悟。在生活中,其实我们也会遇到很多很多的小插曲,有时候也会有很多感慨。就拿我那天骑车的事情吧,因为我从家到公司大概有7公里左右吧,正常上下班坐公交车加上步行应该要40多分钟。刚开始的时候我骑过几天的电平车,走一条从地图上看是比较近的一条路,而且是一个方向一直走一条大路,基本上每次是35分钟。因为感觉骑得比较累,所以后来一般都是坐公交。忽然有一天决定要骑车,于是那天早上上路了,没走多远遇上红绿灯,于是就小拐弯走一段路进入了另一条平行的干道上前进,当我到公司的时候,看看时间后惊奇的发现比平时快了足足9分钟,也就是说减少了1/4的 时间,但是从地图上看这么走要远一些。其实细细想想也是,走这条路是靠近黄浦江边,没有什么岔路口,基本上一路不见红绿灯,这就是提速的主要原因吧。在这 个事情中,我感悟出一个道理说:并不一定路径最短就是最快的,考虑问题一定要全面,各种因素都叠加在一块,才有可能得到更接近结果的答案。
7、 结束语
不仅设计资源是无处不在的,是需要我们用心去挖掘的。其实,生活中每一个智慧的闪光点,都是有待我们去发掘、去用心体味的。是的,只要用心,很多时候,我们都可以感悟得更深、执行的更出色。