发布网友 发布时间:2022-08-30 01:18
共1个回答
热心网友 时间:2023-02-08 03:07
现在手机SoC芯片的晶体管数量动辄百亿个,“愚公移山”拼体力一秒画一个,根本不可能。现在的高端芯片设计,已经和体力活说拜拜,设计流程分工极细,设计过程自动化程度极高,这样才能避免芯片上市,“黄花菜”都凉了的尴尬。
下面以数字芯片为例,为大家简单捋一捋芯片设计的过程。
两大流程,SoC芯片设计流程可以分为前端和后端,前端负责逻辑设计、输出门级网表(netlist),后端进行物理设计,输出版图(layout),然后将版图传给芯片厂制造(tapeout)。
顺带说一句为什么传版图给芯片厂叫tapeout。在早期,芯片设计公司都是用磁带(tape)存储芯片版图文件,需要制造时将磁带送到芯片厂,所以叫“tapeout”。这个词一直沿用到现在,即使现在传送版图文件的方式多样化了。
说白了,这是芯片文化的反映,和计算机的“bug”叫法一样,最早就是电子管大型机时代,工程师清扫追寻电子管亮光而被烤死的飞虫,排除飞虫导致的电路故障。后来,“bug"不再指真实世界中的虫子,而是指软件漏洞。
说回芯片设计流程。
芯片设计两大流程前面说的芯片前端设计,又可细分为行为级、RTL级、门级,行为级描述电路功能,RTL级描述电路结构,门级描述门这一级电路的结构。
芯片后端设计是将前端设计产生的门级网表通过EDA工具进行布局布线,以及物理验证,最终产生供芯片厂制造使用的版图文件。
芯片设计版图详细描述了电路结构,即哪些地方该保留,哪些地方该腐蚀,哪些地方是连线。芯片制造厂将版图制作成光学掩膜,即可用光刻机制造芯片。
上述过程理解比较费力,可以用熟悉的杂志出版打个简单的比方:
前端设计相当于编辑根据选题计划,挑选投稿,编辑处理,并确定哪些稿件排在重要位置(封面文章),哪些稿件仅是填补版面的酱油角色。后端设计的任务,则是将选好的稿件,排成版面,做成版面图文件,交给印刷厂付印。
简单说,芯片前端设计相当于编辑选稿、处理稿件,后端设计相当于版面编辑排版。
芯片设计之所以要分前端和后端,主要是因为芯片特别是高端SoC芯片结构太复杂了。实际上,专业分工是否精细是衡量一个行业复杂度的两大重要指标之一,另一个指标就是自动化程度是否高。
芯片设计就是一个高度自动化的行业,从前端到后端,都离不开EDA软件(Electronic Design Automation,即电子设计自动化)。芯片设计公司在DEA软件平台上完成芯片的前后端设计,不需要手工画电路图。
EDA主要由美国的Cadence和Synopsys公司提供,两家公司都能提供前端和后端设计软件。目前国内的芯片设计公司包括华为海思、中兴、展讯等企业,都离不开Cadence和Synopsys公司的EDA软件平台。为什么非得用Cadence和Synopsys的?因为这两家公司在行业发展几十年,EDA软件功能完备、生态完整,好用。
那么,如何用EDA软件设计芯片呢?
芯片设计七大步,有两步看不到电路第一步,用Verilog编写电路,这个过程是看不到电路图的,就是一堆描述性语言,以代码形式呈现。
第二步,跑数字仿真,用到的工具有VCS或MMSIM等工具。仿真的目的是看写出来的设计能不能正常工作,这个过程也看不到电路,还是一堆源代码。
第三步,跑完仿真后,将源代码转换成标准单元电路(Standard Cell)。
第四步,用IC-Compiler等工具进行布线,就是把标准单元电路找到对应的位置,用软件进行自动连线,这个过程需要和芯片的制造工艺进行辅助配合。
第五步,再将标准单元电路填入图形,按设计需求连线,形成版图图形。
第六步,完成版图后,还不能马上交付芯片厂生产,谁知道那些单元的连线没连好,造成噪音干扰,导致功耗升高、性能降低。为了消灭潜在bug,需要分别进行设计规则验证、和布局与原理图验证。
第七步,两大验证通过后,就可以把版图制成GDSII电子文件,交给芯片厂流片(小批量试制)。
第八步,流片后对芯片检测,如果芯片功能正常,符合设计要求,OK,让芯片厂大规模生产。
可以看出,芯片整个设计过程共有7个大步骤,全程都通过EDA软件在电脑上完成,不存在工程师手工一个一个画电路图的情形,甚至在前端设计的部分阶段,设计者根本不用考虑晶体管长什么样、有多大,在后端,设计者也不会去数该芯片含有多少晶体管,而由软件自动统计。
正是有了EDA软件的帮助,即使芯片内部有多达百亿级的晶体管,设计起来也轻轻松松,这就是高 科技 的力量和魅力。
工程师不需要一个一个晶体管的去设计芯片。很多现成的电路,比如数模转换电路、微积分电路、傅里叶变换电路等等都是前人设计好了的,后人只需要前一代芯片基础上进行架构的优化和精度提升就行了。
1+1+1。。。55亿个1相加,就算一秒钟算一次要好久啊。到了二三年级就不一样了
首先芯片设计,不是一只只的晶体管设计,而是将成熟或以实验过的单元电路,选择所需要的功能电路,将它们用数据线串联或并联在一起,一块完整芯片就设计完成了。在通过配套的系统控制系统,一个完整的芯片组合系统才算完成,至于芯片所需要的生产技术工艺级别,那就是芯片制造的事了,与芯片设计无关系了。
起初工程师是准备晶体管,把它们集中收好,然后趁处理器不注意的时候一起塞进去。
举个例子吧;
你要盖一栋大楼,需要需要先设计图纸,你这个大楼有10000个房间,但其中有5000个是一样的,还有3000个一样的,还有2个1000个一样的,那么你直接用5个设计方案就够了,把这4个不同的房间设计好,再用一种排列连接方式合在一起就行了,
这样你就不需要去设计10000个,只需要设计4个房间和一个组合方式就好了。
这样用多少材料就一目了然了。
芯片设计也一样,尽管有的芯片里面的元器件有几十亿上百亿个,你只需要设计出怎么排列就行了,里面的型号也就几千个,几万个,只是排列方式不同,把那些一样功能的作为一个整体组合进去就行了。
这些组合方式也不是人工去做的,只需要人的思路就行了,就好比你想把100吨混凝土放在哪一个大楼的位置,不用你几百人上千人亲自去手挖肩扛,直接一辆卡车拉过来就行了。卡车就是那个设计芯片的工具,你来开车,你就是芯片设计人。当然还有塔吊,也是工具。
所以设计芯片就是这么一车一车的累积起来的,而不是一铁锨一铁锨的铲起来的,太慢了。
所以芯片设计需要好几个软件,也就是卡车、塔吊。卷扬机,打桩机等等。
工具很重要,没有工具,你就无法把大楼搞得特别大,比如100万个房间,1千万个房间等等,一个房间就是一个晶体管,多了你就要设计通道,组合等等,用人画是绝对不可能的,只能用软件,画1万个的时间,软件只需要几秒就完成了,人工要多少天呢,上百亿个,要多少年呢,用软件只需要几个月就够了。
尽管这个例子举的不太恰当,能理解个大概就好了,反正我们只是使用者,不关心怎么来的,只关心怎么好用就是了。
ctrl+c,
ctrl+v。
模块化设计方法。
设计房子,盖房子,生产砖头水泥钢筋。建筑设计师并不是一粒沙子一勺水泥一根钢筋自己造房子。
比如有个2000万晶体管弄好的部件,这次要用到,就直接拿过来用了。那个部件也是由很多更小的部件组成。
最初的小规模集成电路也就几十个晶体管。
设计大规模超大规模芯片有辅助设计软件,逐次迭代滚动发展,晶体管数越来越多。
看着评论区那么多自以为牛*的人评论说芯片很好造,和盖楼一样,我就放心了,国家果然还是房地产要发展, 科技 先放一放吧,没什么希望了。还以为会有些看的清的,还是跟随洪流吧。
激光打印机了解下,你个幼儿园的小朋友一笔一划要写多少年啊,光刻机比打印机快万倍