麒麟980芯片69亿晶体管是怎样计算的,是准确数?还是估计?
谢谢段马乐咨询的邀请。
麒麟980芯片的69亿晶体管当然是准确数,不是估计数。
为什么这么说呢?
因为芯片的专业名称是集成电路,而麒麟980芯片则是超大规模集成电路,也就是说,在硅片上蚀刻了大量晶体管、电容、电阻以及连线,组成能完成特定功能的电路。
既然要实现特定功能,各元器件必须放在正确的位置,而做到这一步的前提是,在设计时对晶体管的数量要精确地知道,否则连接不正确的晶体管会导致开关错误,形成设计瑕疵(BUG)。
芯片内部高清图。
在芯片设计的最后阶段也就是设计验证阶段,主要的工作是寻找BUG,内容包括设计规则检查(DRC)、电路版图对照检查(LVS)和电学规则检查(ERC)等,保证芯片能准确无误地实现设计功能。
如果在这个阶段,BUG没有被发现,将导致流片(出芯片的样片)失败。
不要以为出个样片很便宜,在台积电那里,28nm工艺下,每平方毫米的流片费用大约是23.5万元人民币(可以找把直尺看看横竖都是1毫米有多大面积),现在手机SOC芯片的主流工艺制程是10nm,流片费用还会呈现指数级上涨。
实力小点的公司,流片失败基本上可以关门了。
在设计风险如此高昂的情况下,你说精确地知道晶体管的数量算嘛事?
那么,怎么知道晶体管精确的数量呢?
肯定不是用手指头一个一个数,以亿计的晶体管,你想数也数不过来,也数不完啊。
答案实际上非常简单:软件统计。
现代的芯片设计早就告别芯片刚发明时用手工画电路图的时代了,设计过程和码农输代码类似:用代码描述硬件电路功能。
常用的是HDL语言,没错,就是一种计算机程序语言。
它可以让设计人员把电路、元件和它们之间复杂的逻辑关系,用计算机能处理的数字语言表述出来(见下图):同时,还有辅助设计软件,把用HDL这种数字语言编写的电路程序翻译成好理解的逻辑电路(见下图):在这个过程中,有多少晶体管,软件秒秒钟给你统计出来。
打个简单的比方,用WORD码字,软件随时可以统计出你码了多少字,可以精确到是否包含标点符号,这根本不算难事啊。