对IC设计行业的简单介绍,对芯片的概念、制造过程、IC设计中各个岗位的分工了解之后,我认为可以接着介绍学习路径了。本着聚焦的目的,因为我个人倾向于做数字IC设计领域,因此主要梳理了数字IC设计领域的一些入门资源。
一、入门的书籍
数字IC设计入门书单 - 知乎,这里推荐一下这位up主,Forever snow(邸志雄),14年在西安电子科技大学获得了微电子学与固体电子学博士学位,目前在西南交大任教,相关的信息他的知乎号中都有提及。我已经学习了他知乎下的很多回答,还有MOOC上的课程也刷了一遍。确实是一位资深大咖,知识体系完善而且还很乐意分享,MOOC讲得也是深入浅出,我有时间再单独梳理一遍他发的知乎和MOOC课程学习经历,这里暂时就说这些。总的来说,数字IC设计这块想要入门其实可以好好的刷一遍他的知乎分享,然后再行动。
IC前端设计技能树及相关资料推荐 - 知乎也是比较全面的一个回答,从技能树角度梳理了一系列的学习框架,个人对这种梳理的方式比较喜欢,后续有时间会考虑在该图基础上补充自己的理解。
二、各个岗位的大致介绍和学习路径整理,找到一个比较全的,但视频质量一般,可以尝试看看。
数字IC设计入门之全流程讲解(包括linux的基本操作,脚本编写,DC,VCS,PT,ICC等)_哔哩哔哩_bilibili
2.1 架构设计(简要介绍)
职能:根据整个芯片的功能和性能要求进行算法或架构的建模分析,作为后续的RTL设计的输入。
①语言:MATLAB/C++/C/System C/System Verilog等。
②学习途径:暂不关注、暂无。
2.2 RTL设计
职能:根据架构设计的输入,将模型转换为硬件描述语言。
①语言:verilog HDL/VDHL
②工具:Vim、Emac
③学习途径:语言——verilog的数据和视频都很多,这方面暂空。
工具——Vim:数字IC设计入门必备——VIM自定义模板调用与VCS基本仿真操作示例 - 没落骑士 - 博客园
Emac:vim和emac体验_BigPig_LittleTail的博客-CSDN博客_emac
2.3 验证
职能:通过理想模型,对前期的RTL设计进行功能性仿真。
①语言:C++/C/System C/System Verilog
②工具:Modelsim、VCS、NC-verilog
③学习途径:语言——C++:C++ 如何入门? - 知乎 (zhihu.com) C:学 C 语言该怎么入门? - 知乎 (zhihu.com) System C:SystemC语言学习笔记 - 知乎 (zhihu.com)
System Verilog:自学SystemVerilog+UVM该怎么进行? - 知乎 (zhihu.com)
工具——Modelsim:Modelsim仿真入门及testbench文件编写 - 知乎 (zhihu.com)VCS:VCS入门基础,编译文件与查看波形 - 知乎 (zhihu.com)NC-verilog:自学SystemVerilog+UVM该怎么进行? - 知乎 (zhihu.com)
2.4 逻辑综合
职能:将RTL代码映射为与工艺库相关的网表。
工具:DesignCompiler、RTL Compiler。
2.5 静态时序分析
职能:静态分析的角度,保证设计中所有的路径,满足内部时序单元对建立时间和保持时间的要求。即无论起点是什么,信号都可以被及时地传递到该路径的终点,并且在电路正常工作所必需的时间段内保持恒定。
工具:PrimeTime、Tempus
2.6 一致性验证
职能:RTL代码和逻辑综合后的网表都可以抽象为两幅由节点和边构成的图,一致性验证阶段采用了类似于直接比较两幅图是否一致的方法,来确定逻辑综合生成的网表是否正确。
工具:Formality、Conformal
2.7 数字后端流程数字后端基本认识_桐桐花的博客-CSDN博客_数字后端
职能:将网标格式的文本转化成一个个有物理大小和位置的单元、连线。并且在实现过程中要满足面积、功耗、性能等要求。流程:Floor Plan->Placement->detail place->Prects->CTS->->Routing
工具:
①布局布线APR(Auto Placement &Route):Innovus/Encounter ,ICC2/ICC
②综合工具:(带DFT)Synopsys DC,Genus
③物理验证(PV):Mentor Calibre
④静态时序分析(STA):Synopsys PrimeTime,Tempus
⑤功耗分析(PA):Redhawk,Voltus,PTPX
2.8 时序仿真
同功能仿真,只是将RTL代码替换为网表,然后需要加载SDF文件和工艺库模型。该步骤的目的在于,在延迟等近似实际工作的条件下,观察功能是否还能保持正确。
三、硬件加速相关课程
摩尔吧:精品套餐|深度学习神经网络加速器与SOC芯片设计_Moore8摩尔吧,这个课程其实是我研究生期间自己想往芯片设计和人工智能领域的融合区域学习时接触到的一门课程,也是我个人比较看好的一个方向。这门课是讲了一个针对深度学习神经网络算法进行定制化芯片设计,并将该芯片部署在一块FPGA上。不过大致看下来,觉得还是自己的基础不够,很多地方其实还有很大欠缺,所以最终也是没能完全复刻他的课程。这个课程还是建议有一些深度学习算法和verilog编程基础的人再去学习比较好。
授课人叫蔡宇杰,是复旦大学的博士生,也很厉害。偶然的是他本科也是就读于西安电子科技大学,不知道是不是和Forever snow有过交集,哈哈。
MOOC课程:芯动力——硬件加速设计方法_西南交通大学_中国大学MOOC(慕课),这就是前面Forever snow在MOOC上发的课程视频,也是硬件加速的,但相较于蔡宇杰的课程,这个课程更加注重于理论的铺垫和基础的介绍,而对于具体的代码讲解比较少,个人感觉可以作为蔡宇杰课程之前的一个铺垫来看。
11.26——新找到一个知乎关于学习路径的回答,供参考
数字IC/FPGA设计100问之——学习路径 - 知乎
11.27——iverilog安装、使用
史上最简单的开源仿真软件iverilog使用教程_庸手著文章-CSDN博客
全平台轻量开源verilog仿真工具iverilog+GTKWave使用教程_whik1194的博客-CSDN博客
开源verilog仿真工具iverilog的安装与使用 - 灰信网(软件开发博客聚合)
iverilog安装及基本使用_哔哩哔哩_bilibili
11.27——找到一个IC课程平台,但里面的课程报价都有点高,可以看看一些免费的,大致了解了解
E课网 - 专业集成电路IC职业教育平台 - Powered By EduSoho
说明:文中多数内容引自分享链接中的内容,若有问题随时联系。