从skill学习谈个人对EDA工具开发中要点的理解
从skill学习谈个人对EDA工具开发中要点的理解 【评论】 【返回】






本文作者:Evel
阅读次数:2049
发布日期:2011-03-28
 
两年前我开始接触写skill,当时因为很多tool都是海外一个专门部门写的,你知道老外的思维和我们往往不太一样,所以有时候老是想自己写一点出自于自己想法的工具。

而且向来对这个感到有兴趣,而且最最关键就是我比较厌烦那种流程式,一步步来的操作,出问题了,所有东西又要重新开始。后来我就根据自己在前面两年layout过程中遇到的一些实际问题,写了一个移动原点和snap原件的小skill。

虽然很简单,只用了几个函数,但是同事说还挺实用,然后兴趣就来了,慢慢就从文档开始,看代码,写东西。

一直以来也对这方面有做继续学习和积累,所以就谈谈个人对EDA工具开发中的一些理解吧,有说的不对的地方,欢迎交流:

1,包括很多公司在内,专门从事这些tool开发的人往往在使用经验上不足,他们可以开发出很多很多功能的工具;但是往往因为没有实际的考虑到使用者在实际应用中容易碰到的问题,使用者的操作习惯,和可能发生的情况。简单讲叫用户体验。所以我个人是觉得,做工具的人,应该也要非常熟悉使用者的操作流程和操作习惯。而不是光为了解决问题而写工具。我们应该是玩工具,不是被工具玩。

2,缺乏搜集反馈信息,很多工具一些出来之后,很多人用,但是出问题只会叫人去帮忙解决使用出现的问题,并没有向开发者做太多的反馈,当然做开发的人以为没有问题,或者即使是改动,也是某天某个人说,应该改成这样,改成那样,但是这样的改动其实只是一个人的想法。没有把大众多观点考虑在内。这样做出来不够通用,一样没有意义。

3,keep it simple; keep it stupid.尽量的让使用者一目了然,很快的知道怎么操作,和如何使用,将学习使用的花销降到最最低;试想:如果一个开发出来的东西,使用者第一次就要看文档,教程搞上半天才上手,和相对一个一目了然,但是功能却完全一模一样的工具,他会选择哪一个呢?用户总是很懒惰的,就像我们为什么要写这些tool,不就是因为我们人类是懒惰而需要写出来的吗?.

4,尽量的多思考,向多个角度考虑解决问题的方案。我们做板子最终就是要出一张图形给板厂做生产参考,但实际板厂和组装厂都不会太关心板子本身,但是对于layout本身而言需要考虑后续改版,还有板子信息完整性,信息搜集等因素。所以面向不同用户,考虑到侧重点完全不同。但是,只要能最大效率的满足各单位各自的功能需求,而且不会引起后续的问题,我觉得基于这点,板子可以任意折腾。

举个例子说吧,板子会有几千个差不多的元件要按照一定顺序和位置摆放,机构位置也定下来,如何快速解决?

答:1,用skill可以;2,placement by 机构 emn import; 3,用placement import。

这里,第一种完全是基于编程开发者的思维,第二个是基于机构部门职能来实现,第三个却是allegro本身最基本的操作技巧。由此回到上述第一点,我们是不是应该玩工具,而不是被这些问题玩?如果工具本身可以解决,尽量先用工具。如果不行,再考虑第三方技巧;这里明显,因为元件都是差不多的。按照顺序,做一个placement列表,然后直接导入会比开发一个功能强大的工具,或者沟通其他部门一起实现来得更加高效。

5,虽然写出来的tool是为了layout使用它做板子更高效,但是也要熟悉上游RD和下游板厂,工厂的各角色所应该做的事情,还把两边都熟悉和沟通好。做工具也一样,多了解提出需求的最根本原因是什么,基于这个原因再综合各方面因素开始解决问题往往会更加省心省力。比如说板厂制程能力决定了我们工具需要做的某些条件判断,工厂组装流程决定了自动化检查工具流程上必须注意到的顺序等。这些需要更多的综合积累。

最后,无论做什么,没有兴趣就尽量不要碰它,否则浪费自己的精力。但是只要想学习,就把它当作一件快乐的事情去做。专注在上面,相信我们都会有成就的一天!

(欢迎拍砖,谢绝转载)
 
Processed in 0.065766 second(s)