一、工具的使用

工欲善其事,必先利其器。我们做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. driver, module以及怎么看他们

    1. driver和module的区别 https://unix.stackexchange.com/questions/47208/what-is-the-difference-between-ke ...

  2. [Selenium] 应对使用 Internet Explorer Driver 多个实例时的 cookie 共享问题

    在使用 IEDriverServer 可执行文件时,从理论上来说是可通过它来创建并使用多个同时存在的 Internet Explorer Driver 实例的.但在实际使用过程中,总是会碰到与 coo ...

  3. MongoDB复制集安全认证

    之前我有一篇博客写的是“node.js通过权限验证连接MongoDB”,这篇博客上提到如何在启动文件中通过配置auth参数来开启权限认证,但这种认证方式只适合单机节点,当我们使用复制集时应该怎么开启权 ...

  4. sizeof()解析(原)

    (一)基本概念     sizeof操作符以字节形式给出了其操作数的存储大小.操作数可以是一个表达式或括在括号内的类型名.操作数的存储大小由操作数的类型决定. (二)使用方法 1.用于数据类型     ...

  5. Linux下PostgreSQL 的安装与配置

    一.简介 PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统.有些特性甚至连商业数据库都不具备.这个起源于伯克 ...

  6. idea类名下有红色波浪线

    能编译通过说明SDK导入正确,但是为啥我们点击每一个Java文件会出现好多红色的下划线 ,并提示idea cant resolve symbol 原因就是可能没有清除原来的历史缓存,导致一些错误,解决 ...

  7. VS2008 视图资源.rc无法加载的问题及解决方法

    VS2008 视图资源.rc无法加载 1.首先先把vs关闭,然后执行 开始>>所有程序>>Mircosoft visual studio 2008>>visual ...

  8. CentOS Linux自动备份MySQL数据库到远程FTP服务器并删除指定日期前的备份Shell脚本

    说明: 我这里要把MySQL数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2011_11_03.tar ...

  9. (水题)洛谷 - P1603 - 斯诺登的密码

    https://www.luogu.org/problemnew/show/P1603 有毒,大小写不检测,句号也不管. #include<bits/stdc++.h> using nam ...

  10. 51nod 1268【dp】

    思路: 很水的dp吧...问的都是能否组成.. 哦对,这里sum最大才2e7,不会是2e9所以放心dp #include<cstdio> #include <map> #inc ...