凡亿专栏 | 如何设计一块有百亿晶体管的芯片?
如何设计一块有百亿晶体管的芯片?

众所周知,晶体管是每个芯片最基本的组成单元,而芯片设计是个由小到大的过程,几个晶体管组成逻辑门、几个逻辑门组成寄存器/组合电路、很多的寄存器和组合电路组成运算电路、控制电路、存储电路等,很多电路组成通信计算模块,这些模块经过一定组合最终形成一个完整的芯片。

20-30年前芯片里的所有模块和电路甚至晶体管全是人工手画出来的,但现在的一个手机芯片的算力比阿波罗登月全部的算力还要高。这反映出芯片的功能越来越复杂,晶体管数量越来越多。以苹果新出的M1 Ultra芯片为例,内置的晶体管数量高达570亿个!若是选择手画这些晶体管,恐怕一辈子也画不完。

那么,我们怎么设计芯片?答案是写代码!而将代码自动转化为电路和芯片的工具是EDA软件。

EDA外文名为Electronic Design Automation,即电子设计自动化,属于工业软件,现在的芯片公司是通过使用各种不同的EDA软件来辅助完成芯片的设计,EDA最大的特点是具有明显的杠杆效应,虽然它的市场价值约100多亿美元,处于芯片供应链的下游,但它却撬起了超4400亿美元的全球半导体产业,也就是说一旦EDA出问题,整个芯片产业链将受到重大冲击。

我们常说光刻机是芯片设计的核心部分,但其实EDA软件的重要性也不输光刻机。

一般来说,像高通、英特尔等大型公司,它们的芯片设计流程基本上相似。芯片设计主要分为前端和后端,前端负责芯片的逻辑电路设计(系统架构定义、RTL编码、逻辑综合、仿真验证);后端负责芯片的物理设计(布局规划、时钟树综合、布线、参数提取),最终提交给晶圆厂代工生产。EDA工具在里面的最大好处是能极大地缩短芯片设计的时间,提升设计效率,易于修改保存。

在前端和后端的电路设计流程里,都要用到不同的EDA工具,以全球最大的EDA厂商Synopsy新思科技为例,假设我们要做一个简单的加法电路,计算1+1=2,我们需要用硬件专用语言如Verilog、VHDL等写出代码,为验证加法电路是否正确需要用上EDA的仿真软件VCS、VC Formal、若代码出错需要用上调试软件Verdi,也要用上静态和动态分析软件如SpyGlass,若代码无误,可进行编译,然后生成一堆互相连接的门电路,从而生成网表,其中要用到综合工具Design Compiler。而后端再用IC Compiler布局布线、用PrimeTime做时序分析、用PrimePower做功耗优化、用IC Validator做物理验证、用StarRC做寄生参数提取等,最终才生产一个符合要求的GDSII文件,将被送去做流片生产,最终芯片设计才完成。

当然,若是在大型公司,所用到的EDA工具只会多不会少。

整个芯片设计流程里用到了大量的EDA工具,而EDA工具的好坏,则影响着芯片的性能、功耗和面积,同样一段代码,若是用不同EDA工具,会做出截然不同的芯片。

所以要想设计一块优秀的芯片,学会EDA软件的操作才是最重要的,想成为一名优秀的芯片工程师,可以来看看弟子计划:高速PCB设计&1对1》、《弟子计划:Cadence Allegro》、《弟子计划:PADS》。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论