2008年11月22日

EDA软件开发人员的一天

我们可以设计出芯片,但是没有自己的EDA软件,这篇文章在网上转得并不多,所以就粘在这里,并把认为有道理的观点着了着色.
-----

Written by: Peggy Aycinena
Translated by: Hanken

尽管几年来出现了大量关于EDA行业的报道,但我们却对在EDA第一线战斗的人--EDA工具的开发者,知之甚少。就我看来有两个原因:一方面是由于这些开发者都是专注的,受过技术训练的知识分子,他们不会像EDA公司的高级执行官那样在媒体上抛头露面,崭露头角。另外一个原因是这些开发者都是EDA公司皇冠上的明珠。EDA公司的成功极大的依赖着他们工具开发者的能力和创造力。让开发者公开接受采访也许或多或少会暴露公司最机密的智力资本--也是人力资本。在这种情况下,Novas软件的管理层却能够允许我采访,这不仅让我心存感激而且给我留下极为深刻的印象。这既反映了Novas公司管理的成熟,也反映了他们对员工的信赖。11月8日星期四我通过电话采访了Novas高级研发工程师程英才(音译)。

采访部分
问:请问你的教育背景是什么?电子工程还是计算机科学?
答:这还挺复杂的,我(本科时)主修物理和数学。我的博士专业也是物理学而我的研究生专业是电子与计算机工程。所以我的专业背景相当杂。

问:你在学校里面学了哪些计算机语言?
答:就个人而言,在我读物理专业之前,我就非常喜欢编写软件,因此在学校里我学了很多不同的计算机语言。尽管我懂得很多不同的计算机语言,但我在工作中使用的最多的还是C, C++, Perl和Shell Script。实际上,对许多不同的语言感兴趣,人们可能会认为我是一个书呆子,那我给你一个真正属于书呆子的网站[笑声],它就是www.slashdot.org,它是很多程序员喜欢的一个古怪的网站,在那里程序员可以探讨关于科学和计算机编程方面的知识。那儿的确是书呆子的好去处,去那儿的人都为此感到骄傲。

问:这么说你在Novas工作就用C, C++, Perl和Shell Script?
答:是的,这些语言都要用到。实际上每个我所知道的EDA公司都会用到C, C++。

问:你懂Verilog或是VHDL吗?你会用他们来编写程序吗?
答:当然,我使用HDL语言。由于Novas就是一个开发调试软件的公司,我们也必须要处理这些语言。

问:你是怎样学习HDL的?
答:我在学校里学的。我们上的一些工程课必须要求用Verilog写代码,因此我就学了Verilog。但是我进入业界后学了更多HDL语言,因为在业界你会碰到各种稀奇古怪的问题。[笑]

问:你认为HDL长远的前景会是怎样呢?它会被更高层次的语言所取代吗,比如说C?
答:这的确是个非常复杂的问题。就目前的技术形势来看,短期内不太可能。C成为编程语言有些年头了,现在你也能看到Java和其他的一些语言,但是C还是最常用的。然而C在定义硬件行为上不够具体。如果你在乎市场时间,你即便用C也不会提高产品上市时间。我没看到HDL正在消失,至少在未来5年内不会消失。但是这只是我个人的看法。

问:你在工作中一定经常会看看你客户的代码。你是否注意到他们的代码是写得非常好还是非常糟糕?答:[笑]是的,客户们经常会给我们看代码。有时候他们的代码糟透了。但是如果客户的代码能运行工作,其实那也没关系。

问:你每天花多少时间来编程?
答:这个问题有点难回答。我猜想实际上写代码的时间是我总时间的40%到50%。如果包括调试代码,那么时间大概就占到了80%。这些事情得花很多时间来做。

问:你的意思是说有时你的代码里有bugs?
答:[笑]没有人写的代码会没有bugs!没有人写代码不需要调试!实际上如果不是bugs非常复杂的代码,那还不值得去写呢!

问:你剩下来的时间做什么呢?
答:其他的时间用来讨论和用来与同事们探讨项目要求书(SPEC)中的算法和代码。

问:怎样最好地把电路优化的概念用算法表现出来?
答:呃,我们是一家比较特殊的EDA公司,我们是做调试软件的公司,因此我们不是特别注重电路优化。但是为了解决问题,我们会经常查阅现有的文献看看其他人是怎么做的。然后我们看看是否有办法能改进解决问题的方法。然后我们往往会探索更多的方法(来找到最好的解决途径)。

问:为了将算法变为代码,你怎样同那些开发算法的人一起工作来最有效地理解算法?你偶尔也开发算法吗?
答:我们开发了一大堆算法,能提供给客户不同选择来探索解决他们的问题。其实我们大多数研发人员都参与了算法开发。

问:一人开发算法另一人编码实现算法是否可行?还是仅由一人完成开发和编码这个过程较好?
答:嗯,一人开发算法另一人编码实现算法也许可行。但是在EDA公司,解决问题的方式必须非常有效。因此让某些人来构建软件,某些人来执行是可行的。但是在EDA公司,解决问题的方式必须非常有效。在EDA公司,人们关注性能,不仅仅是算法还包括执行。我们的工作一直是和人们讨论某些(我们尽力要获得的)特性以及如何执行这些特性。

问:你是否曾经过分专注于代码问题以至你无时无刻不在想着如何解决这些问题?你是否曾经做梦时都在编写代码?
答:的确是的。我知道许多和我做同样工作的人会有一样的经历。当你程序你有bugs或者有问题你解决不了,你不可能置之不理。即使你在梦里,你也无法停止思考它,这真得很可怕。在我学习物理的时候就有这个问题了。实际上人们很难理解大脑是如何工作的。有时候答案就这样解决了。有时候我想(解决问题)最好是在潜意识的情况下。因此对大多数人来说,如果做梦都在想问题,我认为这就是他们最终解决问题的方式。

问:你是否曾不得站起来散散步来解决一个难题。
答:是的,有时候我不得不离开办公室。就像平常一样,我在街区里转转,看看建筑物。实际上我听说很多人就是听过这种方法来获得灵感--以帮助他们考虑下一步该如何进行。人们在工作之外可以比在工作中思考地更清醒。

问:在找到解决方法后,你下一步怎么做呢?
答:这得看情况。我很可能就编写代码来解决问题,但是如果这个问题涉及的面太广,那很可能就需要一个小组来讨论了。讨论总是非常重要的。

问:如果别人提出一个与你不同的解决方法时怎么办呢?
答:哦,总会有办法来判断(不同方法各自的优劣)的。讨论总是能解决这些争论。

问:你在小组中工作,使用白板吗?
答:是的,我们都在各自的办公室或者会议室中工作,不管在哪儿,附近都会有一块白板的。

问:现在在你办公司的白板上写着什么呢?
答:哪有许多不同的东西。有一个我的工作计划表,还写了一些想法。

问:要在EDA环境中成功,一个人最好应该最好具备什么样的教育背景?
答:对于在EDA中想要从事高层设计和算法的人,你必须要有多样的教育背景。在90纳米和65纳米设计时,与物理学的联系就变得越来越密切。所以,想要成功你需要具备电气工程,物理和计算机科学的教育背景。你需要理解电子器件并且对EDA算法有基本的认识。

问:你认为没有博士学问的人也会在EDA上成功吗?
答:当然,有硕士学位也能成功。博士学位更像是一种训练,它能帮助你树立一个思考问题的方法。我认为这种训练最重要是能让你在寻找信息时变得机智,同时就提炼问题和构建解决方法而言,能让你拥有可靠的解决问题的能力。

问:你的小组里面有多少人,多少人拥有博士学位?
答:我的小组大概有10人,一半都有博士学位。

问:你在学校里读书时就打算要从事EDA职业吗?
答:不是,但是那时我对几个朋友谈论的EDA问题很感兴趣。我觉得在EDA里面算法和方法学非常非常有趣。当我在读电气计算机工程时,学校里的确开了一门EDA算法的独特的课程,那是关于布局和布线(P&R)的。许多学校都有类似的课程,而在课堂上你只是拿到一些课题的介绍,然后你便有机会开始研究这个课题了。所以,如果你真地对那个领域感兴趣,你不得不去埋头苦学。

问:你的博士论文是关于什么的?
答:我的博士论文的题目是:《动态理论的可计算性以及在量子混沌系统中的应用》。

问:如果你的论文是一本书,你认为它会是畅销书吗?
答:[笑]我仍然认为我的论文是开拓性的,因为它指出了前人很少探寻过的,能够引导人们认识物理和数学之美的方向。

问:你在哪里拿到博士学位?
答:在加州大学圣塔芭芭拉校区。

问:就我所知加州大学圣塔芭芭拉校区现在正是硕果累累,人才辈出。
答:是的,它们最近已经有两位诺贝尔获奖者了。

问:你现在已经在南加州和北加州居住过,你比较喜欢哪一个?
答:圣塔芭芭拉校区非常美丽。我在那里生活了6年。但是在北加州,季节变化非常明显。因此,在南加州还是更好点。

问:我认为你更喜欢北加州,你同意吗?
答:完全同意。

问:休息时你读什么书?你喜欢科幻小说吗?
答:我没什么太大的偏好。我确实是喜欢阅读,但并不是特别偏爱科幻小说。

问:你浏览会议文献汇编吗?
答:当然。

问:你认为这是书呆子的好行为吗?
答:当然是。

问:你喜欢看电影吗?你最喜欢哪一类的?
答:我的确喜欢看电影,不过要我说我最喜欢哪一类的有点难了。我想我非常喜欢的一部电影是《时光倒流七十年》。那是一部老电影,一个浪漫爱情故事,我猜想那也是一部科幻小说因为它涉及的时空旅行。

问:你如何学习工作上必须具备的的知识呢?
答:在EDA行业里,你必须坚持学习,因为EDA每年变化都非常大。所以,我阅读书籍报刊,与人们交谈,浏览报刊。当然,我也会参加会议,像ICCAD会议对我非常有帮助。

问:业界人士在会议上发表讲话,他们如何才不会透露他们公司技术优势的内部信息呢?
答:我认为人们不会那么开放的。人们在会上谈到具体的东西时不会那么不敏感的。

问:但是如果你仅仅是谈一些大家都知道的事情,你怎么去学习新东西呢?
答:这个问题真难回答。人们谈论一些其他人应该知道的事情,但是最重要的事情是去了解人们不知道的事情。我想最好是:你要成为第一个知道的人而不是最后一个知道的人。

问:你会建议一些现在刚从大学毕业的人去从事EDA工作吗?
答:会的。我认为EDA是一个绝好的职业。现在EDA里面有许多人们尚来不及能解决的具有挑战性的问题。EDA涉及到许多困难复杂的算法,我认为,它要比电气工程其他领域的算法还要困难复杂。我在EDA行业还是个年轻人,但是我希望有一天我也能出人头地,做出一番大事业。

问:听起来你工作非常紧张,你在工作之余如何放松呢?
答:[笑]我和孩子们玩,实际上我平时都很放松的。

编者注:非常感谢Novas软件的执行官员给我这次机会能够和程英才进行这次精彩的谈话,特别值得一提的是同Novas总经理兼CEO Scott Sandler和研发部副经理胡玉清(音译)两位的交谈。当然,我要特别的感谢程英才能给我机会与他谈论他的工作。

> <

@2008 - * yaowu is here.