一、工具的使用

工欲善其事,必先利其器。我们做IC设计的需要掌握的工具:仿真(vcs、modelsim),综合工具(dc、QS、ISE),时序分析(pt、其他的)。以及后端的一些工具,比如astro。可以看到,这个synopsys公司一套工具都全了。那么,很多大学也许没有这一套的工具(记得当年的candence的软件居然没办法自动综合版图)。那么,如果你进公司一年的时间就为了学习这些工具的使用,而其他的跟你一起进去的人都会使用了,那么也许你学会的时候,别人已经做完一个项目了,等你有实力做项目的时候,你也只能够给这个人打下手,也许一辈子都这样,除非你相当厉害(以前有个同事,清华的,不到一年时间学会所有,关键是他会做人,跟个项目组长混的好,所以是例外)。因此建议还没毕业的人走出去之前都学会这些工具。可以去实习啊,当你学会这些工具后,也许你想问题的方式都不同了。路是走出来的。

工具的学习,一是反复看usergude,然后用一个小项目去实现。你会发现,做完一个项目后,你突然发现需要再反复去看文档,也许才能够做好。先前自认为懂了的,也会哭了。还有多看高手现场操作,很多技巧性的操作是文档上没有的。还有救是linux的学习,你如果懂了将是对你帮助很大,因为现在很多公司都是建立不久的,很多东西都不健全。很多公司都是用盗版软件,很多问题需要网管,但网管总是没空,如果这个时候你站出来为大家解忧,呵呵,你就是大家心目中的英雄,当英雄有什么好处?呵呵,你要充分利用这个好处。还有很多工具,也许用不了多久,比如leda、比如形式验证工具。这些很简单,不是很难,但如果你是公司第一个用的人,而且把方法告诉大家,哪怕他们一辈子也许都用不上这些工具,只要你把他吹的天花乱坠,呵呵,你又为公司立功了,回报就是你的绩效会变高,而且留下相当好的印象。但是,这个方法不可常用,到了一定时候你就要保留了,比如很多东西很难,你都要研究半天才懂的,你就要握着不放,除非老大叫你贡献了。这个时候你就是唯一啊,因为太难,所以公司的人特别是老大没有空去看的,他们会叫你做,你这样就接触到也许根本就跟你不沾边的项目。你又比其他人走的进步了。一点是,简单的分享,难的留做。

二、语言的学习

设计:Verilog、systemVerilog、perl、tcl。验证:VMM,UVM。这个是将来的趋势。如果你懂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,还有必要写这个文档吗?你说呢,写了文档,在某些公司是有奖金的哦。老大也是人,更重要的是,老大也是中国人。因此,中国人的某些劣根性他也是有的,你拍点马屁,多针对解决他的一些问题,他也是会记住你的。你纵有天才,可不做事情,一心想做大的。也许什么都没有了。

要让人尊敬你,只有你比他有实力。很多项目组长,呵呵,其实很多都不懂。不要想得他们什么都懂,你觉得很多东西用不到就不去研究,研究了觉得老大都懂了也不告诉老大。最根本原因是,很多人提出问题,但不解决问题。把问题抛给老大,自己只会傻傻的站在旁边等答案。记住,这不是向老师提问,这是同组长交流。你总得有自己的一点看法吧。

参考文献:

[1] 转载地址:http://www.eetop.cn/blog/html/86/319186-39318.html

注:还有就是最重要的设计的主体(一般是总线的从机)。对这句话个人理解是设计的主体是这颗SOC的特殊,灵魂。

(转)关于IC设计的想法 Author :Fengzhepianzhou的更多相关文章

  1. [转]关于几本模拟IC设计书

    1.P.R.Gray的书 这本书被业界誉为模拟IC的Bible,盛名之下,必无虚士.现在已经出到第四版,作者无一例外是业界大牛,该书论述严谨,思路清晰,对电路分析透彻,定义严格明确,无愧Bible之名 ...

  2. 机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA

    本文转自:自己的微信公众号<集成电路设计及EDA教程> <机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA> AOCV AOCV全称:Advanced OCV ...

  3. 数字IC设计工程师的知识结构

    刚毕业的时候,我年少轻狂,以为自己已经可以独当一面,庙堂之上所学已经足以应付业界需要.然而在后来的工作过程中,我认识了很多牛人,也从他们身上学到了很多,从中总结了一个IC设计工程师需要具备的知识架构, ...

  4. 华为IC设计人员的薪酬(5年经验28万),以及麒麟是如何脱颖而出的~

    垂直整合助力麒麟腾飞 由于ARM技术路线大幅降低了技术门槛和研发的资金和时间成本,导致ARM阵营参与者众多,加上大家都是购买ARM的CPU核与GPU核,造成产品高度同质化,市场竞争异常激烈——在价格上 ...

  5. VerilogHDL概述与数字IC设计流程学习笔记

    一.HDL的概念和特征 HDL,Hard Discrimination Language的缩写,翻译过来就是硬件描述语言.那么什么是硬件描述语言呢?为什么不叫硬件设计语言呢?硬件描述语言,顾名思义就是 ...

  6. IC 设计中DFT的Boundary Scan功能

    在很大规模的IC设计中,往往会有一些各种各样的bug出现,不论是在前期design的过程,还是在post silicon流片回来chip的flaw,都会导致chip的功能的失败,时钟频率无法达到期望频 ...

  7. IC设计推荐书籍

    IC设计推荐书籍 听语音 | 浏览:779 | 更新:2014-07-19 10:52 1 2 3 4 5 6 7 分步阅读 接触IC设计这一行已经有7年的时间了,前面4年是大学本科,用来学习知识,现 ...

  8. 数字IC设计入门书单

    首发于观芯志 写文章     数字IC设计入门书单 Forever snow   1 年前 作者:Forever snow链接:你所在领域的入门书单? - 知乎用户的回答来源:知乎著作权归作者所有,转 ...

  9. 【转载】数字IC设计流程及开发工具

    原文链接:https://www.zhihu.com/question/28322269/answer/42048070 Design Flow &amp;lt;img src="h ...

随机推荐

  1. DedeCMS模板中用彩色tag做彩色关键词

    DedeCMS模板中用彩色tag做彩色关键词,下面分享一下吧!修改方法: 1.在/include/common.func.php 中加入如下函数: function getTagStyle() { $ ...

  2. CentOS 7 安装jdk9

    1.下载jdk9 http://download.oracle.com/otn-pub/java/jdk/9.0.4+11/c2514751926b4512b076cc82f959763f/jdk-9 ...

  3. MYSQL初级学习笔记八:MySQL中常用的函数!(视频序号:初级_45-50)

    知识点十:MySQL中的函数(45-50) 数学函数: 名称 描述 CEIL() 进一取整 FLOOR() 舍一取整 MOD 取余数(取摸) POWER() 幂运算 ROUND() 四舍五入 TRUN ...

  4. (转)Vim自动补全神器:YouCompleteMe

    原文出处:http://blog.jobbole.com/58978/ 第一次听说这个插件还是在偶然的情况下看到别人的博客,听说了这个插件的大名.本来打算在实训期间来完成安装的,无奈网实在不给力,也就 ...

  5. 【POJ 1151】 Altlantis

    [题目链接] 点击打开链接 [算法] 线段树扫描线 推荐一篇比较容易理解的线段树扫描线的文章 : https://blog.csdn.net/u013480600/article/details/22 ...

  6. 【NOIP2014】 联合权值

    [题目链接] 点击打开链接 [算法] 如果(u,v)的距离为2,那么有两种可能 : 1.u和v为祖孙关系 2.u和v为兄弟关系 树形DP即可,详见代码 [代码] #include<bits/st ...

  7. Java多线程:线程状态以及wait(), notify(), notifyAll()

    一. 线程状态类型1. 新建状态(New):新创建了一个线程对象.2. 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法.该状态的线程位于可运行线程池中,变得可运 ...

  8. 杂项:ASP.NET Core

    ylbtech-杂项:ASP.NET Core 1.返回顶部 1. ASP.NET Core 是一个跨平台的高性能开源框架,用于生成基于云且连接 Internet 的新式应用程序.使用 ASP.NET ...

  9. E20180419-hm

    rectangle n. [数] 长方形,矩形; ratio n. 比例; 比,比率; 系数;  vt. 求出比值,除,使…成比例; 将(相片)按比例放大[缩小]; aspect  n. 方面; 面貌 ...

  10. thrift配置——windows客户端与linux服务端通信(C++)

    windows客户端: 1.首先要安装boost库 下载源文件 2.安装boost之前先要安装python-3.4.0.amd64,很多地方没有说,弄了很久 3.运行bootstrap.bat 生成b ...