刚刚逛论坛,发现了一个资深业内人士关于“fabness”的海思陷入困境困境是因为它没有技术含量,只是从别处买来“芯片设计图”做饭似的混在一起再让厨房炒出来。。。看得我哭笑不得。好吧,下午开会的间隙开帖来讲一下芯片物理设计扫盲吧,定位科普性质,尽量不涉及很容易唬人,类似Fabness这种看起来好像很高深的专有名词,也只做概念性的模糊介绍,毕竟物理设计方面稍微的谈得深入一些的话难免牵涉到各方面的敏感信息。而且D版来自各行业各领域的键盘高手太多,我作为一个假的资深业内人士,肯定不够资格侃侃而谈的。毕竟是一时兴起,想到哪里写到哪里,也许看起来会很凌乱。
怎么开头呢?倒着来吧,首先你想要自己的芯片最后长成什么样子,什么形状什么尺寸?大家应该都知道尽管晶圆本身是圆形的,这是我们的晶体生长理论决定的。为了晶圆利用率的最大化,几乎所有的芯片都会是四方形的。但是,也不是你想要形状大小就可以的。比如台积电,就提供了很多预定义的参考尺寸,学名叫做G...算了不提专有名词。这个参考尺寸也不是说完全就不能动,但这是很多后期约束共同决定的,你得配合着人家来。同时芯片的最终尺寸约束一般有两大方向,大家可以理解成尺寸优先和引脚优先。尺寸优先很容易理解,谁都希望把芯片尽量做小一些。但也不是多小都行,既要考虑前面说过的参考尺寸,同时也要考虑有没有足够的空间把所有的引脚都拉出来,这在最顶层决定了后续的物理设计方向。
现在大家看得起的芯片,集成度基本上都是及几十上百亿个晶体管了,这种规模没有什么工具可以一口气把全芯片的电路描述全吃进去,然后给你吐出可以给你拿去流片的版图了。你需要把全芯片给拆小了来分开来做物理设计,比如天然的按照不同的功能模块来分,其实大部分的主要功能模块也都太大了,自己也要继续往下拆得更小点。当然也有很多小点模块我们可以把它跟别点大块合并起来。当然你还要考虑很多约束因素,比如内存控制器的物理层因为片外引脚太多,你就得把它靠做旁边放。块头最大的呢我们一般得把它摆在靠中间,不然免得没地方放了。同一个功能模块的不同部分我们也尽量把它们摆在一起,连线太多隔得远了会导致很多麻烦。如此种种,你就有了最初期的全芯片布局。然后,魔法就开始了。
现代全芯片物理设计中,最依赖个人经验而非机器工具的就是全芯片布局布线了,上面提到的那些小块,在一定程度上都能把它们捏橡皮泥一样的挤扁拉长,很多时候根本就不是正经的四方形,毕竟针对下一级的子模块并没有参考尺寸一说,现有的工具也能比较从容的随便收拾。但是你要面对的是几十乃至几百个都有一定灵活度的小块,怎么把它们最优化的摆到一起那就是一门艺术了。而且偏偏到了这一步绝大部分布局布线的改变都可能需要几天或者几星期工具运行时间,因为这里面各种约束条件是天文数字。这一步也是芯片设计的劳动密集型步骤。 这里面最狠的当属Apple,A系列处理器里面有几版把全芯片布局放大了看,里面能看到明显的不规则边缘,那不是大规模工具生成的成果,而肯定是难以想象的人力和极其老到的经验优化出来的结果。这里的学问,大的很咧。
到目前为止谈到都还只是总体设计,再往下就更复杂了,首先是分层,普通电路板一般双层4层,8层就已经很高端昂贵了。现代芯片的层数则多得多,包含很多个逻辑层,金属层以及一些特殊层,比如为了寄存器而专门设计的寄存器传输层。我得开会去了,有机会再聊吧。有心写这个只是希望能够起一点科普作用,对这个行业,能够多几分敬畏之心,不至于可以张嘴就来。
---------------------------------------------------------------------------------------------------------------------------
D版真是越来越没有意思了,一知半解什么就都能张嘴就来的,真是好为人师啊。。。一起床看到这种评论忍不住又乐了,牙也不刷了,咱就来解刨一下这只麻雀。
“ RTL (regester transfer level) 你竟然认为是某一种实际的层???
大家退散吧,又一个一知半解的和fabness没有本质区别的小白。
即使你在按摩店也是一个混子,鉴定完毕。”
回复 80# mavers
那除了rtl 还有什么叫寄存器传输层?
这是教科书教的,也是行业约定俗成的叫法,没有第二个意思。你去问任何一个ic设计的人员都不会有歧义。
---------------------------------------------------------------------------------------------------------------------------
一般的金属层上各种信号混杂在一起,电气环境比较复杂,对信号完整性,哦不,担心哪怕低概率的把0传啊传啊莫名其妙变成1了,对于一些特别敏感的部分比如寄存器啊,IO的信号传输,设计上可以单独的拿出金属层来专门给它们用,甚至于在层外还能够继续进行隔离保护,从而尽量保证不出错。这种设计呢,不是你想当然的RTL,而学名叫做RDL,全称叫做Re-distribution layer, 咱不仅竟然要认为它是某一种实际的层,还是挺重要的,挺普遍的技术。
这里有一篇发布在IEEE的论文解释得更加详细,希望这位愤愤不平的朋友有机会看一下,
https://ieeexplore.ieee.org/document/6176727还有问题吗?