分享

前华为互连部技术老屌丝回忆之(四)----跨界思维:掌握一门高效编程语言SKILL、 ..

 李清龙1023 2022-06-25 发布于四川

跨界思维-掌握一门高效编程语言:SKILL、 PERL、TCL…

阿毛 20140919

作为一个非软件类工程师,你如果掌握一门高效的编程语言,你就会比别人多了把“刷子”,这把“刷子“对你往后的工作会产生极大的正面影响,它能使你脱颖 而出,终身受益。跨界学习相关的知识技能绝对比华为提出的“低频带,高振幅”观点更加实用,跨界技能让你在社会职场上更具竞争力,这就是我们常说的“跨界 思维!”。
提起谭浩强的《C语言程序计》相信大家一定非常熟悉,这本传奇的编程书藉在大学时代占据了很多人的宝贵时间,但毕业后再用它哪怕写一个简单的 “Hello World!”程序,恐怕1万个人中也没有几个,更不用说在平时工作中使用它了(软件专业的同学除外)。我毕业后在珠海南科电子用了2年的汇编语言做IC 测试,这与C语言的使用算是比较接近学有所用的了。;
Note:软件专业的大神们请留点口德,不要笑话我后面提到自己写的那些小程序,这些小程序对于你们专业软件人士来说太EASY了!
刚进入华为基础研究部的时候(1998.12), 发现“光绘拼板程序”及“pads的 网表比较程序”等是本部门的韩朝伦写的,当时我对会写程序的这门手艺佩服得不得了。那个年头的程序开发基本是在DOS环境下进行,界面较少且多数是使用命 令行输入的方式。个人电脑(486)在那时还不太普及,想上个机也不容易,后来我与杨瑞泉通过任浩良那时的女友各买了台组装机, 我向谭永红学POWER BUILDER编程,但是方向不对及所学程序与我日常工作的相关性不大,最后没有写出什么程序……
韩朝伦调到其它部门后,贾可同学继续在部门写程序,他当时改写的拼板程序相当好用,程序简化了pcb制 造商的许多后期光绘处理工作且符合华为工艺部的加工规范,这个拼板程序就一直在华为内部使用,直到2年前(~2012)华为的PCB光绘格式由 Gerber 6x00全换成Gerber RS274X格式(原奇葩的光绘格式终于与国际接轨了)。光绘格式的改变使这个拼板程序就不再适合了,但贾可早已离开华为,这个程序就没有人再接着开发来 适应新的光绘格式了(KPI闯的祸),最后互连部干脆就不拼板了直接把光绘丢给供应商去处理。0 n) Q! M8 W+ A7 @8 E2 t
SKILL语言是基于cadence平 台的一门用于二次开发的语言,它在华为的开花结果得益于一群出于对技术很热爱的同事及当时的领导胡庆虎与姜向忠对这方面的认同。整个部门当时都喜欢钻研软 件的新功能及开发辅助工具并及时共享成果,这种气氛对部门整体效率及水平的提高很有帮助。有一定的SKILL基础后互连部请CADENCE来进行相应的 SKILL培训。贾可先期已经进行了部分SKILL程序的开发,后来由李广生带领的团队专职研发SKILL程序,他的团队在SKILL程序设计方面成绩非 常突出,尤其是针对大家在日常PCB设计中的不同应用需求,开发出了很多实用、高效的程序。最有印象的是:PCB丝印反方向及丝印交叉检查、allegro与 VIEWDRAW的交互布局功能、光绘一键生成等等。这些按华为流程开发出来的SKILL程序大大提高了大家平时PCB的设计及检查的效率,对PCB的设 计质量也起到了非常重要的保障作用,同时SKILL程序也为部门申请了很多专利,我自己也赚了3个专利费。由于华为SKILL对外的知名度提高还闹出很多 笑话:许多客户买CADENCE软件时向CADENCE索要华为开发的这些功能。
CADENCE总部的一个美国人有次到华为进行了SKILL的交流,回去后在随后的ALLEGRO新版本中就直接加入了不少与华为开发出的SKILL类 似功能。由于其它一些原因,SKILL整个团队后来被划到了软件部门从事与SKILL无关的其它软件开发,现在互连部仅剩马红兵一颗仅存的种子留下来维护 及开发SKILL,今年刚经过了'N+1’的小马通过这些年的努力,SKILL方面已日渐成熟,他已不满足写一个单单实现某一小功能的程序了,而是走上了 高大上的部门软件系统规划等方向,互连部后来也没有再在SKILL开发方面大力地投入人力。
SKILL开发除了华为,现外面也有个别有实力的公司专门投入SKILL的开发并开发出许多适合其本公司的功能模块或按客户需要开发出相应的功能。下图1是兴森快捷二次开发出的SKILL菜单样例。

图片

图1 兴森快捷二次开发SKILL样例示图


我当时没有“随大流”去学SKILL是因为同事们已在前面做了这么长时间且成果又好,我再怎么折腾SKILL也很难在短期内超越他们了,还有一个原因是 离开CADENCE这个平台,所学SKILL就用不上,就象我当初所用的汇编语言。怎样实现“弯道超车”呢?使学的编程语言适合所有平台呢 (MacOSX,Windows,Unix)?一个偶然的机会,我找到了途径:那时尹邦石刚好在深圳出差,并在我面前吹PERL语言如何好用及适用的范围 有多广,并在我机器上当场演示了“hello world”的过程,我是这样被他忽悠上的。我今天能使用PERL写出我工作需要的各类小程序还真要感谢尹邦石当年的“忽悠”。
学PERL语言的过程对我也不容易,周围使用这个语言的人不多,或解决不了我提出的问题,遇到问题解决不了,只能是看书及在互联网上问,包括如何安装各 种模块,安装需要和不同版本匹配的TK,如何编译成EXE的方法等,有时遇到问题要几个月后才突然想到解决办法。现在才发现map/sort/grep三 个函数才是精华。
我写的第一个程序是差分线自动提取,这个程序耗费了我一个国庆的假期,是呆在家硬写出来的:即从ALLEGRO网表中,通过匹配算法把符合差分条件的网 络识别出来并组成一定格式的文件,文件可以输入到ALLEGRO中。我写出这个功能并在部门使用了一段时间后,CADECNE软件后来才有这个功能,有了 这个算法在最近我还把它用到了PADS9.5上了,现在可以给PADS9.5增加了差分对自动识别及设置的功能。
自第一个程序成功以后一发不可收拾,终于可以做到在工作中写出实现自己想要功能的各类小程序(PERL功能强大,到目前为止我对PERL也不算深入,只 是写了一些与工作相关的小程序,如:软件接口方面的数据处理程序及工常工作中提高效率的程序等,主要还是针对文本文件的处理,其它强大功能我也不会)。当 在工作中如遇到软件应用或数据处理不顺畅的地方总喜欢写个小程序处理一下,很有成就感。
到目前为止自己觉得写过比较有意思的程序如下:
1) 那个奇葩的网络转换的程序。详情请阅《前华为互连部技术老屌丝回忆之(2)----PCB规则驱动设计》。
在华为notes平台上订百草院羽毛球场地的程序。这个程序只成功订过2次,但后来不行了,我估计是公司内部软件部门的人写程序比我写的运行起来要快,毕竟他们是专业人士,这方面不服也都不行。
2)在海思时写的封装PINMAP自动检查程序。检查项太多(按CHECKLIST写的),程序很长,它集成了我当时所掌握的全部编程知识,可惜离开公司时没能带走。
3)各种网表的比较程序。GDS---PACKAGE---PINMAP---PCB……之间的比较
离开华为后:到现在的新工作环境,还能出新成绩。如最近出品的:
《PADS差分自动提取及输入》,如图2所示。在www. PADS版块提供下载。

图片

图2 PADS差分线自动提取使用示图

4)背板原理图神器。在EXCEL上写背板原理图并能生成ALLEGRO格式的网表,这个效率还真不是一般的高。
《IC封装基础与工程设计实例》这本书中提到的三个程序。这三个程序对封装设计效率提升绝对是好帮手,如下图3所示。程序可以到http://www./thread-99644-1-1.html 上下载,

图片


图3 《IC封装基础与工程设计实例》书中的免费程序

5)把屏幕看到的任何内容自动翻页转为PDF文件。华为公司早期RMS的加密成 风,普通文档也加密,想查阅很不容易,当时就想写个程序,但考虑到可能会违反公司制度没写。离开公司后有时间了就写了一个自动翻页拷屏并转为PDF文件的 程序。可把你有权限的WORD文档转为PDF文件了。对网上要积分才能下材料的文库用这个程序处理起来也很方便,如有兴趣可以在
http://www./forum.php?mod=viewthread&tid=93155&page=1#pid812910 下载程序与使用方法。注意:“本程序只用于学习与研究,禁止用于非法用途”。
6) 把PADS文件中某些网络的颜色传到新的PADS文件中。这个功能我在10多年前就想到但在PADS中没找到对应的功能,那时还不会写小程序。最近发现有同事还需要这个功能,一时兴起就写出来了。
7)加强型网表比较程序。在网络名不同时只比较器件间的连接关系程序,比通常的根据网络名而比较器件间连接关系的算法适用范围更广,更全面,如下图4所示。;

图片


图4 加强型网表比较程序界面


8)其它程序。如:华为的SQPI,SIWAVE,SIGRITY自动赋模型程序,电容S2P,S1P互转换,DML文件的构造……
当工程师会写小脚本来完成部分工作时,你会发现工作起来是一件非常快乐的事情。;
虽然上面提到的程序对一个专业的程序员来说很简单,但对我们这些半路出家的非软件类工程师就非常有用,它使我的工作变简单高效。总结起来就是:跨界容易出成绩!


作为一个工程师你想提高效率或想更HAPPY地工作,你必须要掌握一门高效的编程语言!


******补充说明:使用什么编程语言不重要,关键是你能熟练地使用它写出你想要的东西。每种编程语 言有它的长处及短处,我喜欢使用PERL不代表它就是最好的编程语言,是因为当初尹邦石引导了我并且我觉得它很适合我,还有就是PERL是开源的,有很多 热心网友提供数不清的免费功能模块。*****

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多