3、共质心布局:二维共质心(4×4矩阵)原理与实现,消除高阶梯度
各位好,欢迎来到第三章。上一章我们聊了一维共质心,说白了就是在一根轴上把器件对称摆好。但实际芯片里,温度梯度、应力梯度从来不会只沿着一个方向走。你想想看,芯片工作时,热源可能在左上角,应力可能从右下角压过来——这时候一维共质心就有点力不从心了。
二维共质心,就是来解决这个问题的。它把器件排成一个矩阵,让每个器件的“质心”在X方向和Y方向上都重合。这样一来,不管是横向的梯度还是纵向的梯度,甚至是对角线方向的高阶梯度,都能被有效抵消。
为什么需要二维共质心?
我刚开始做版图那会儿,遇到一个精密运放的项目。一维共质心摆得漂漂亮亮,仿真结果也完美。结果流片回来,实测失调电压比仿真大了三倍。查了半天,发现是芯片角落的一个大功率模块产生的温度梯度,沿着对角线穿过了我的匹配对。一维共质心只抵消了X方向的梯度,Y方向和对角线方向完全没照顾到。
这就是二维共质心的价值所在。它把匹配器件分散在一个二维平面上,让每个器件经历的梯度“平均化”。
核心思想:二维共质心布局通过将器件排列成对称矩阵,使得每个子器件的质心在X和Y两个维度上都重合于同一点。这样,任意方向的线性梯度、甚至二次梯度都能被有效平均掉。
4×4矩阵的数学原理
我们先看一个4×4矩阵的例子。假设我们需要匹配4个器件(A、B、C、D),每个器件需要拆成4个子单元。总共16个子单元,排成4行4列。
关键是怎么排?不能简单按顺序排。我见过新手直接按ABCD、ABCD这样排,那跟没排一样。正确的做法是让每个器件的子单元在矩阵中均匀分布,并且位置对称。
一个经典的4×4共质心排列如下:
| 行\列 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| 1 | A | B | C | D |
| 2 | D | C | B | A |
| 3 | B | A | D | C |
| 4 | C | D | A | B |
我们来验证一下。器件A的四个子单元位置分别是:(1,1)、(2,4)、(3,2)、(4,3)。计算X方向质心:(1+4+2+3)/4 = 2.5。Y方向质心:(1+2+3+4)/4 = 2.5。正好是矩阵的中心点(2.5, 2.5)。
同样的方法算一下B、C、D,你会发现它们的质心都在(2.5, 2.5)。这就是二维共质心——所有器件的质心完全重合。
我的经验:实际项目中,我习惯先用Excel或者Python脚本算一遍质心坐标,确认无误后再开始画版图。别嫌麻烦,这一步能省掉后面大量的调试时间。
消除高阶梯度的原理
为什么会这样?我们简单分析一下。假设芯片表面存在一个二维温度梯度,可以用泰勒展开表示:
T(x,y) = T₀ + α·x + β·y + γ·x² + δ·y² + ε·xy + ...
其中α、β是线性梯度系数,γ、δ、ε是高阶(二次)梯度系数。
一维共质心只能抵消α·x这一项。而二维共质心,因为器件在X和Y方向上都对称分布,所以α·x和β·y都能被抵消。更妙的是,由于矩阵的对称性,x²和y²项也能被平均掉。至于交叉项ε·xy,4×4矩阵的排列方式恰好能让它也被抵消。
说白了,二维共质心对一阶和二阶梯度都有很好的抑制效果。这也是为什么在高精度运放、ADC/DAC的版图中,二维共质心几乎是标配。
注意:二维共质心并不能消除所有高阶梯度。三阶及以上的梯度,需要更复杂的布局方式(比如中心对称、旋转对称等)。但对于大多数模拟电路来说,二阶以内的梯度已经覆盖了90%以上的非理想因素。
4×4矩阵的版图实现
理论说完了,我们看看实际怎么画。以下是一个4×4共质心矩阵的版图实现步骤:
- 确定单元尺寸:每个子单元(比如一个MOS管或一个电阻)的尺寸要完全一致。我建议用参数化单元(Pcell),这样修改方便。
- 建立网格:在版图上画一个4×4的网格,每个格子放一个子单元。格子之间的间距要均匀,我一般用最小间距的1.5~2倍。
- 按矩阵填充:按照上面表格的排列,把A、B、C、D四个器件的子单元填入对应的格子。
- 添加dummy单元:在矩阵的四周添加一圈dummy单元。这些dummy不参与电路工作,但能保证边缘单元的环境与内部一致。
- 连线:把同一个器件的四个子单元用金属线连在一起。注意连线要对称,避免引入额外的失配。
下面是一个4×4共质心矩阵的结构示意图:
连线策略与寄生匹配
矩阵画好了,接下来就是连线。这一步很多人会忽略,觉得只要把同一个器件的子单元连起来就行。其实不然,连线的方式直接影响寄生参数的一致性。
我个人习惯采用“H型”或“梳齿型”连线结构。以器件A为例,它的四个子单元分别在(1,1)、(2,4)、(3,2)、(4,3)。我会先画一条水平总线在矩阵中间,然后从每个子单元垂直引线到总线上。这样每条支路的寄生电阻和电容基本一致。
这里有个坑——我曾经在一个项目中,为了省面积,把连线走得弯弯曲曲,结果四个子单元的寄生电阻差了20%以上。后来老老实实重新走线,匹配精度才上来。
避坑指南:连线时注意以下几点:
- 所有子单元到公共节点的连线长度尽量相等
- 避免在连线路径上放置其他模块的走线
- 如果必须跨线,用高层金属跳线,保持底层连线对称
- 电源和地线从矩阵两侧对称接入
dummy单元的布置
dummy单元的作用是让矩阵边缘的器件和内部的器件看到相同的环境。没有dummy,边缘的器件会经历不同的刻蚀速率和应力,导致失配。
对于4×4矩阵,我建议在四周各加一圈dummy。也就是说,实际画出来的版图是6×6的网格,中间4×4是有效器件,外面一圈是dummy。
dummy的偏置也很重要。如果是MOS管,dummy的栅、源、漏要接固定电位(通常是电源或地),不能浮空。浮空的dummy会积累电荷,反而引入新的失配。
不同矩阵规模的对比
4×4矩阵不是唯一的选择。实际项目中,根据匹配精度要求和面积预算,可以选择不同的矩阵规模。
| 矩阵规模 | 子单元数/器件 | 梯度抑制阶数 | 面积开销 | 适用场景 |
|---|---|---|---|---|
| 2×2 | 2 | 一阶 | 小 | 低精度、面积敏感 |
| 3×3 | 3 | 一阶+部分二阶 | 中 | 中等精度 |
| 4×4 | 4 | 二阶 | 较大 | 高精度运放、ADC |
| 5×5及以上 | 5+ | 二阶+部分三阶 | 大 | 超高精度、仪器仪表 |
从表中可以看出,4×4是一个很好的平衡点。它提供了二阶梯度抑制,面积开销也在可接受范围内。我个人在大多数精密运放项目中都采用4×4矩阵,只有在要求特别高的场合才会用到5×5或更大。
一个实际案例
最后分享一个我去年做的项目。一个16位SAR ADC的参考电压缓冲器,需要匹配一组电流镜。我用了4×4共质心矩阵,每个电流镜拆成4个子单元。
流片回来后测试,失调电压只有仿真值的1.2倍,完全在预期范围内。对比之前用一维共质心的版本,失调改善了约3倍。嗯,这就是二维共质心的威力。
当然,代价是面积大了不少。但在这个项目中,精度是第一位的,面积可以妥协。如果你们遇到面积和精度都要兼顾的情况,可以考虑用3×3矩阵,或者用一维共质心配合后期修调。