关于IC设计的想法:一个老鸟的忠告

一、
工具的使用
欲善其事 必先利其器。我们做IC设计的需要掌握的工具:仿真(vcs、modelsim),综合工具(dc、QS、ISE),时序分析(pt、其他的)。以及后端的一些工具,比如astro。可以看到,这个synopsis公司一套工具都全了。那么,很多大学也许没有这一套的工具(记得当年的candence的软件居然没办法自动综合版图)。那么,如果你进公司一年的时间就为了学习这些工具的使用,而其他的跟你一起进去的人都会使用了,那么也许你学会的时候,别人已经做完一个项目了,等你有实力做项目的时候,你也只能够给这个人打下手,也许一辈子都这样,除非你相当厉害(以前有个同事,清华的,不到一年时间学会所有,关键是他会做人,跟个项目组长混的好,所以是例外)。因此建议还没毕业的人走出去之前都学会这些工具。可以去实习啊,,当你学会这些工具后,也许你想问题的方式都不同了。路是走出来的。
工具的学习,一是反复看usergude,然后用一个小项目去实现。你会发现,做完一个项目后,你突然发现需要再反复去看文档,也许才能够做好。先前自认为懂了的,也会哭了。还有多看高手现场操作,很多技巧性的操作是文档上没有的。
还有救是lunix的学习,你如果懂了将是对你帮助很大,因为现在很多公司都是建立不久的,很多东西都不健全。。很多公司都是用
盗版软件,很多问题需要网管,但网管总是不空,如果这个时候你站出来为大家解忧,呵呵,你就是大家心目中的英雄,当英雄有什么好处?呵呵,你要充分利用这个好处。还有很多工具,也许用不了多久,比如leda、比如形式验证工具。这些很简单,不是很难,但如果你是公司第一个用的人,而且把方法告诉大家,哪怕他们一辈子也许都用不上这些工具,只要你把他吹的天花乱坠,呵呵,你又为公司立功了,回报就是你的绩效会变高,而且留下相当好的印象。但是,这个方法不可常用,到了一定时候你就要保留了,比如很多东西很难,你都要研究半天才懂的,你就要握着不放,除非老大叫你贡献了。这个时候你就是唯一啊,,因为太难,所以公司的人特别是老大没有空去看的,他们会叫你做,你这样就接触到也许根本就跟你不沾边的项目。你又比其他人走的进步了。一点是,简单的分享,难的留做。
二、
语言的学习
设计Verilog、systemVerilog、perl、tcl。验证vmm。这个是将来的趋势。如果你懂c语言,就systemC。还就是matlab的建模,一定一定要学好。当今世界很多小的模块啊都是现成免费的,你要学的就是那些收费的ip做练习。学习sv的话,一定要找通信方面的例子来学习,你才看得出来sv的优势所在。那么,这期间做好之后,最重要的是熟悉到随心所欲。
比如,你可以用matlab建模验证fft的设计思想,你可以用Verilog做fft的设计,用sv写testbench。然后用perl写处理这些文件的脚本。
直到最后的版图的出现。
三、
项目的管理
学好归类吧。因为一个项目的最终定版前会有很多很多的版本,而且每次都有很多的文档。你必须好好归类,必须做好记录。因为这个相当的重要。也许你平时不注意,因为你平时的项目绝对是很随意的,因为你一直追求的就是实现一个功能。比如,fir设计,也许你要的就是输出的结果对了,你就会高兴的忘记一切了,包括要不要看看时序啊,要不要看看功耗面积啊。什么的,所以你的版本不会改了,所以你的版本也许就一个。关键是你这版本是你一个人做的,但在公司里,也许很多人都在改你这个版本,到时候你都不知道到底哪些版本的性能更好些。
如果一个人成长,肯定是在公司。因为只有在公司,会有人要求你去做这些你平时感觉大可不必的事情。其实,这些事情就是经验。
四、
后端相关
一般的公司都会有人专门做后端的。那么我们需要做后端吗?答案是肯定的。因为他们做后端的一般都是忙的很,忙模拟版图,忙数模混合。忙优化等。对于像数字版图这种自动设计的事情,他们一般没有时间去做。你想知道你设计的项目最后一步能够用pc评价的,就是后端。因此,如果你会astro,那么你可以很早的知道这个设计时序、功耗特别是面积等等的更加准确的估计。你就有更多的时间去修改。一般人会想,这个不是项目组长做的事
情吗?我可以很负责的人告诉你,项目组长一般都忙的要命。。如果有人帮他做astro,那么他会视你为救命恩人啊,你的前途如何,不用我多说了吧。
五、
Soc设计
Soc设计,呵呵,说白了就是积木块堆砌。链接他们的就是总线(比如AMBA)。其他积木块是什么呢?存储器管理、处理器、DMA、以及其他接口(比如uart)还有就是最重要的设计的主体(一般是总线的从机)。把这些用AMBA连接起来,就是SOC。这里的主机,就是那些可以思考下一步做什么的期间,从机就是别人告诉你做什么你完成就是了。比如视频处理芯片的解码器等。主机比如ARM。这跟常说的ARM不同,市场上很便宜的,就是别人做好了的,其中那些接口都是做好了,所以开发比较简单。但arm核这个东西就是裸机,什么都没有。因此,做soc,最主要的就是做接口的协议。如何连接好这些就行了。其他的都是买的,arm核,dma等等,都是现成的ip的。
说了这么多,一句话,做soc的是跟asic的很大不同的。Asic关心的是模块完成什么样的功能,根据一定的算法做出来,因为内部连接的内部线没有太多的竞争,因此不需要特别的总线,不需要特别的接口。Soc就做这些了。所以,如果你是asic的高手,也许是soc的新手哦。将来这个也许会分的越来越明显。就像我们现在模拟和数字的分别一样大。
六、
成长之路
我感觉这是最重要的,就是如何成长。也许很多人有这些优点,但希望没有这些习惯的人能够改变了。
首先是学会作报告。不管你现在刚进公司还是做了项目组长,你都要学会作报告。新手要想老大报告。组长因为你是新手,一般分给你的任务就是不重要的,即使你做不出来也影响不到项目的完成。因为他根本就没有指靠你。但是,很多人反倒觉得幸运,觉得老大几周来都不管自己。也有人很郁闷,觉得老大是不是就放弃自己了。都不对,其实是老大很忙,他们没有心思去猜测你倒底学的怎么样了。所以其实他也是一直在等你的报告,等你把分配的事情完成情况报告。这样他才会有下步的安排。比如,老大也许会叫你看文档,你也许早都看明白了,一天也没什么事情干,然后就等老大来考察你?呵呵,这不是学生时代了,也许老大有时候会想,这小子怎么这么久都还没搞懂呢。转眼又忙其他的去了。
其次是学会写文档。很多人也许完成老大布置的任务后,会口头告诉老大,比如老大叫你看某个方案可行不?你经过千山万水后得出结论,这个方案可以啊。然后乐颠颠的跑去告诉老大,这方案可以。老大是谁啊,他提出的方案,肯定是想了很久了,,行是正常的,因此他一般会点下头,然后说说:恩,知道了。几天后,你就被忘记了曾为这事忙的头破血流。你也感觉到学到不少东西了。这样的人很多,这样的人也是一辈子做下手的写照。呵呵,我不是看不起这些人呢,真的是为这些人不值得。其实,只要你
这个时候把这方案的论证写成文档,老大需要的正是这个文档,因为他们也要写可行性分析的,如果你有这个文档,他说不定直接copy你的,然后你的文档就是你的工作体现。公司里,讲证据给绩效,没有一点可看的文档,老大想提拔你都没理由。
再举例,老大也许叫你去研究下某个软件怎么用,肯定有userguide。你学会后,现场给老大演示了。然后你就感觉飘飘然了,而且你觉得有userguide,还有必要写这个文档吗?你说呢,写了文档,在某些公司是有奖金的哦。。
老大也是人,更重要的是,老大也是中国人。因此,中国人的某些劣根性他也是有的,你拍点马屁,多针对解决他的一些问题,他也是会记住你的。你纵有天才,可不做事情,一心想做大的。也许什么都没有了。
要让人尊敬你,只有你比他有实力。很多项目组长,呵呵,其实很多都不懂。不要想得他们什么都懂,你觉得很多东西用不到就不去研究,研究了觉得老大都懂了也不告诉老大。最根本原因是,很多人提出问题,但不解决问题。把问题抛给老大,自己只会傻傻的站在旁边等答案。记住,这不是向老师提问,这是同组长交流。你总得有自己的一点看法吧。

发表评论