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共质心矩阵的版图实现步骤:

  1. 确定单元尺寸:每个子单元(比如一个MOS管或一个电阻)的尺寸要完全一致。我建议用参数化单元(Pcell),这样修改方便。
  2. 建立网格:在版图上画一个4×4的网格,每个格子放一个子单元。格子之间的间距要均匀,我一般用最小间距的1.5~2倍。
  3. 按矩阵填充:按照上面表格的排列,把A、B、C、D四个器件的子单元填入对应的格子。
  4. 添加dummy单元:在矩阵的四周添加一圈dummy单元。这些dummy不参与电路工作,但能保证边缘单元的环境与内部一致。
  5. 连线:把同一个器件的四个子单元用金属线连在一起。注意连线要对称,避免引入额外的失配。

下面是一个4×4共质心矩阵的结构示意图:

4×4 共质心矩阵结构图 A B C D D C B A B A D C C D A B ★ 公共质心 (2.5, 2.5) Y X 器件A 器件B 器件C 器件D 每个器件有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矩阵,或者用一维共质心配合后期修调。