前言
前面几篇写了环境、PDK、版图规范,还有 Design Manual 里开始画图前更值得先看的几类信息。下面讲讲布局中我的一些个人观点。
平面布局这一步,我一直觉得很像是在给后面的版图定“骨架”。
平面布局可以成就也可以毁掉一个芯片,一个好的平面布局可以使芯片的版图很容易并能很快的完成,而不好的平面布局会使版图设计步履维艰。不管你是负责TOP还是负责底层模块,最好都还是了解一下这款芯片的电路功能和总体布局方案。
一、开始整体布局前,先把关注点和背景信息摸清楚
不同于数字版图,数字版图很多时候更关注芯片尺寸和密度优化;而模拟版图更关注的而是电路性能、匹配程度、速度、寄生,以及功能本身能不能更稳定地实现。比如一条走线是否满足电流承载要求,寄生是不是过大,某一种匹配技巧是不是适合当前电路,甚至同样一种匹配方法,在不同工艺、不同功能结构下,最后得到的效果都可能不一样。所以不同类型的芯片所关注的点也不一样,在布局前我比较关注的点有以下几点;- 理解电路中器件类型,有无电位不同的器件?是否存在高压管?在电路中的位置在哪?旁边有哪些其他不同器件?
- 我是负责TOP还是模块?芯片是IP还是CHIP?是否为数模混合芯片?如果是数模混合芯片,是模拟顶层还是数字顶层?对出pin位置,引脚位置有哪些需求?模拟和数字金属层次方向是否对齐?
- 电路中是否存在大电流信号?是否有特别需要做好匹配的地方?是否有高频信号需要做好屏蔽?是否有噪声敏感模块?
- 使用哪种封装?有多少引脚?PAD位置在芯片那个位置?
这些信息在布局前和电路或者数字部分确认好,后面会省去不少麻烦。
二、决定整体布局的,通常先是这三件事
如果把影响平面布局的因素收一收,比较核心的通常就是三类:
引线位置、模块位置、信号走线。
整体布局很多时候就是在这三者之间不断平衡。
这三件事听起来很简单,但真正画起来会发现,它们并不是彼此独立的。
引线会影响模块怎么摆;
模块摆法会反过来影响线怎么走;
而关键的信号路径有时候又会反过来逼着前两者一起调整。
也正因为这样,整体布局通常不是一拍脑袋就定下来的,而是一个来回推敲的过程。
三、先看引线驱动布局:PAD 怎么进来,内部怎么接
整体布局里,第一类很容易直接影响结构的因素,就是引线位置。
这里说的引线驱动布局,本质上可以理解成:
内部电路和 PAD 之间的关系。
这一点在高频输入单元上会特别明显。
假如 PAD 放得不合适,需要先拉一段很长的线,再接到内部关键 MOS 上,那这段导线本身就已经把寄生带进来了。很多时候不是电路有问题,而是输入路径从一开始就太长了。
所以整体布局里经常会遇到一种情况:
明明只是改了一下 PAD 位置,但内部模块之间的关系、走线交叉情况,甚至版图外形都会跟着变。
因为 PAD 一旦移动,输入输出的主路径长度、交叉数量、寄生大小都可能变。
也正因为这样,版图形状本身并不是一个固定模板,它很多时候是跟着 PAD 和内部模块关系一起被推出来的。
例:
设此电路为高频输入单元,需要将PAD连接到内部最上方的MOS管,所需要的导线很长,引入的寄生参数会很大。
更改PAD位置,缩短引线,避免交叉,减少了高频电路的输入寄生参数。

这一类问题在带 ESD 保护的供电测量里也很典型。不同类型的输入输出端口,最后依赖的 ESD 保护结构并不一样,所以引线的分组和归属也会跟着变。
例:(ESD)
引线1、5、7、9通过VCC1和GND1得到保护,引线6、8、10、14通过VCC2和GND2得到保护。
引线2、3、4、11、12、13、15、16通过VCC3和GND3得到保护。
换句话说,PAD 不是摆完就结束,它后面接的是哪一组 VCC、哪一组 GND,本身就会反过来影响整体布局。
四、再看模块驱动布局:模块之间的连线尽量短
第二类更直接的因素,就是模块位置。
整体布局里有一个很朴素但很实用的思路:
模块间的主连接尽量短。
很多时候一个布局看起来顺不顺,最直观的判断不是它整不整齐,而是那些强相关模块是不是被放在了更合理的位置上。
一般来说,关联紧的模块会希望尽量靠近一些。
因为模块之间的主连接越短,后面的走线通常越自然,寄生也更容易控制。
不过模块位置也不是单独能决定的。
实际做的时候,经常会遇到一种拉扯:
如果更在意内部模块之间的连接长度,那模块之间的关系会先决定 PAD 怎么摆
但如果更在意 PAD 之间的相互关系和引线走向,那又会反过来由引线位置决定模块怎么摆
也就是说,引线组合和模块摆放不一定天然一致,这两者本来就是互相制约的。
所以整体布局里,模块驱动布局更像是在找一个平衡点。
不是单纯追求“模块全靠在一起”,也不是单纯追求“PAD 看起来整齐”,而是要看哪一种关系对当前电路更关键。
五、最后看信号驱动布局:关键路径有时比面积更重要
第三类很关键的因素,是信号走线本身。
这里说的信号驱动布局,更多是指高频、射频,或者那些对路径长度和环境一致性比较敏感的信号。对于这类路径来说,整体布局有时候不能只按“最省面积”的方式去做。
一个很典型的例子是:
一个放大器同时驱动两个模块,如果这个电路成立的前提就是放大器出来的信号尽可能同时到达两个模块,那么这两条路径的长度、周围环境、寄生条件都应该尽量一致。
这个时候,哪怕为了保持这条关系,需要让某个模块的位置看起来没那么“紧凑”,甚至牺牲一点面积,也往往是值得的。
因为这里真正优先保证的,不是面积,
而是信号关系本身。
这也是整体布局里很容易被忽略的一点:
有时候真正决定模块能不能挪、能不能压、能不能旋转的,不是模块本身,而是它前后那条关键路径。
六、整体布局舒服,不只是几何上整齐
有一句经验我觉得挺形象:
如果一个布局看上去很舒服,它大概率能比较好地工作;如果它看上去就很不顺眼,那大概率不是一个好的布局。
这里说的“舒服”当然不只是视觉上的整齐,更多还是一种电气关系上的自然。
比如:
输入从 PAD 进来是不是顺
关键模块之间是不是绕得太远
供电路径是不是已经明显别扭
噪声源和敏感块是不是离得太近
差分或者高频路径是不是一眼就能看出长短不一致
这些东西如果在整体布局阶段就已经暴露出问题,后面通常只会越改越累。
所以整体布局这一步,我更愿意把它理解成:
先把大关系摆顺。
等引线、模块、信号这三层关系先顺下来,后面的模块内部布局、布线、匹配,才会更有基础。
结语
整体布局这一步,看起来像是在摆模块,实际上更像是在做取舍。
先看引线位置,再看模块位置,最后把关键的信号路径也一起考虑进去,很多版图的大方向基本就出来了。
对模拟版图来说,整体布局通常不会有一种放之四海而皆准的固定模板。到底是更优先照顾 PAD,还是更优先照顾内部模块连接,还是要把关键高频路径放在第一位,最后还是要回到电路本身去判断