Nibedita Karmokar, Arvind K. Sharma, Jitesh Poojary, Meghna Madhusudan, Ramesh Harjani, Sachin S. Sapatnekar, “Constructive Common-Centroid Placement and Routing for Binary-Weighted Capacitor Arrays”, 2022 Design, Automation & Test in Europe Conference & Exhibition (DATE), pp.166-171, 2022.
CCF B ? 本文更新地关注关注与以往不同【MIM MOM】,本文的研究方向的研究方向和具体方法。商业12nm工艺
摘要
— 由于二进制加权电容器之间的电容比精度是电荷缩放数模转换器精度/性能的关键,因此产生高度匹配的共质心布局以最小化布线引起的寄生效应非常重要 . 然而,过去的大多数工作只关注随机和系统不匹配的公共质心优化。 本文介绍了。 实验结果表明,与手动布局相比,提出的方法生成的布局面积更小,电路精度/性能更好。
在公共质心布局优化过程中,路由引起的寄生效应进一步降低。 ,进一步提高电路精度/性能。 实验结果表明,与手动布局相比,我们的成的布局可以在更短的时间内实现更小的布局面积和更好的电路精度/性能。
【新的在哪里? 如图 1(a) 二进制加权电荷缩放数模转换器 (DAC) [6] 是现代片上的系统 (SoC) 应用最广泛的数据转换器之一 . 由于 DAC 二进制加权电容器之间的电容比精度是电路精度/性能的关键,因此生成高度匹配的寄生电容器是非常重要的。 然而,如图 1(b) 没有考虑二进制加权电容器自动公共质心电容器布局生成工具。 地图生成过程仍然是一项手动、耗时、容易出错的任务,尤其是当图 1 中 DAC 的位数大于 6 位时。
调研
文献中共同的质心放置方法 [2],[9]-[11],[13]-[15] 广泛研究。 为出氧化物梯度模型[20]和空间相关模型[2]模型[20]和空间相关模型[2]和[13],分别量化系统和随机失配。 以前的大部分工作都提出了他们的算法来最小化系统失配,而**最近的工作 [10] **(即以前的工作)引入了一种更有效的放置方法,可以同时最小化随机性和系统失配。 图 2(a) 图显示了只考虑系统失配的共同质放置,图 2(b) 显示了更多
【这张图好看… 这么闲了吗?】
数据集
9-bit DAC 8-bit DAC 我们评估了四种技术: [1] 中的位置; 放置棋盘[7]; 螺旋放置(S)和块棋盘(BC”)[第 IV-A 节]。 考虑了几种 BC 结构,如图 4 报告最佳 BC 结果。 所有偶数/奇数位 DAC 都用同样的 BC 结构,内核采用完整的棋盘。
我们的路由方法适用于 S 和 BC 方法。 由于 [7] 只提出没有布线的布局,所以我们在布局上使用我们的布线器(第一 IV-B 节)。 对于系统变化,线间距 t0 基于 64nm 的线间距。 商业单位模型采用电阻、对地电容和耦合电容 12nm 工艺。 设置为系统变化参数 γ =10ppm,ρu =0.9,Lc =1mm [1],[8] A 2 f = 0.85 A_2^f =0.85% × 1fF A2f=0.85 [13]。 使用所有情况 5fF 单位电容值。 。
实验指标
RC寄生参数、电路参数
实际性能指标。 手工版图和自动版图。
我们用 C 编程语言实现了我们的流程和算法,并在 Linux 在操作系统下 2.26GHz Intel Xeon 执行在机器上。 我们程序的图形用户界面 (GUI) 也是使用 Qt 库 [18] 构建的。 我们将编辑程序和商业地图 Virtuoso [1] 对设计规则进行外部链接检查 (DRC)、布局和原理图 (LVS) 提取验证和寄生参数 (PEX)。 我们将提取寄生参数和原始参数 DAC 网表结合使用 HSPICE [22] 模拟后执行布局。 基于模拟结果,我们使用它 MATLAB [16] 计算了 。 图 6 展示了整个实验过程。
在每种情况下得到的如表 I 所示 . 对于)[6],[19]。 对于 ,在每种情况下,我们的结果都非常接近。 只需 10 秒即可完成 9 位 DAC 电容布局。
表 I 显示和路由 RC 各种寄生相关参数。 电容 Σ C T S \Sigma C^{TS} ΣC
表 II 显示了电路级指标: 路由 CC 阵列的面积; |DNL| / |输入法| 最大绝对 DNL(i) (Eq. 7) / INL(i) (Eq. 8); f3dB,3dB 频率(方程(16))。 像 [1]、[7] 一样,我们在电容器非理想情况下评估 DNL/INL,假设一个理想的运算放大器。 由于布线开销低,螺旋方法的面积最低,并且与其他方法相当(除了 [7] 的 7 位和 9 位解决方案,它们使单位电容器加倍)。 该表显示了 INL/DNL 与 f3dB 的权衡(特别是对于 >8 位): S 具有最好的 f3dB 但最差的 INL/DNL; [7] 则相反; BC 是一个很好的折衷方案。 所有 INL/DNL 值均低于 0.5LSB 并且可以接受。
图 5(a) 和 (b) 分别显示了使用 [7] 中的方法和我们的螺旋布局方法在商业 12nm 工艺中为 8 位 DAC 的布局和布线的 Python 生成视图。 虽然前者在垂直通道中需要五个垂直轨道,但螺旋方法,即使是平行布线,也需要两个布线轨道,从而导致较低的 CBB,如表 I 中的总 CBB 数量所示。总布线长度明显更高 [7] 的放置,导致更高的 Cwire 寄生,如同表所示。 这两个因素都会降低 [7] 的 3dB 频率。 随着 DAC 中位数的增加,这种影响会变得更糟。
在 FinFET 节点中,由于过孔电阻高,NV 会对性能产生不利影响。 螺旋法在所有方法中使用的过孔最少,棋盘法[7]使用最多。 图 6(a) 显示了使用减少互连电阻的平行布线对螺旋布局的 3dB 频率的影响。 我们展示了频率改进因子,即使用 k 线与使用一根线的 3dB 频率之比。 由平行线引起的寄生电容的增加是最小的,并且主要由阵列中的电容决定,但线电阻的降低是显着的。 随着 k 的增加,我们看到收益递减。 块棋盘方案也出现了类似的趋势。 当使用两条平行线时,频率改进因子超过 2:对于这种以电阻为主的情况,从干线到分支线的连接会创建一个 2×2 的网格,并带有四个过孔。 增益介于 2 倍(以导线为主的情况)和 4 倍(以通路为主的情况)之间。 随着更多的电线,电线电容变得很明显,从而导致较低的改进。 图 6(b) 显示了平行线对所有方法的影响,归一化为 S 的 3dB 频率。BC 和 [1] 都有改善,但基线频率比 S 低得多; chessboard [7] 受到高通孔数的限制。 螺旋方法和每个块棋盘的 CPU 时间相似,并在表 III 中报告。 因为该方法是建设性的,它比随机优化快得多,同时提供了出色的结果质量。 线创建一个具有四个通孔的 2×2 网格。 增益介于 2 倍(以导线为主的情况)和 4 倍(以通路为主的情况)之间。 随着更多的电线,电线电容变得很明显,从而导致较低的改进。 图 6(b) 显示了平行线对所有方法的影响,归一化为 S 的 3dB 频率。BC 和 [1] 都有改善,但基线频率比 S 低得多; chessboard [7] 受到高通孔数的限制。 螺旋方法和每个块棋盘的 CPU 时间相似,并在表 III 中报告。 因为该方法是建设性的,它比随机优化快得多,同时提供了出色的结果质量。
我们提出了一种对布线友好的建设性 CC 布局和布线方法,以优化失配并最大限度地提高性能。 介绍了螺旋和块棋盘放置,并表明用色散折衷导线寄生可在 3dB 频率和 INL/DNL 之间取得平衡。
具体方法
(1)布局和全局布线,(2)详细布线和寄生修剪/优化。
布局和全局布线
图 4 显示了电荷缩放 DAC 中第 4 位单元电容器的三种不同放置方式。 尽管与图 4(a)中的放置方式相比,图 4(a)中的放置方式导致更好的随机和系统失配。 如图 4(b) 和 © 所示,它会引起更多的寄生效应。 与图 4(b) 相比,图 4© 中的放置方式导致更好的随机和系统失配,同时引起类似的寄生效应。 我们设计成本函数来生成图 4(c)中的放置样式。
代价函数 共质心放置的成本函数 Φ 在等式 (1) 中定义,其中 M 和 ρ 分别是氧化物梯度引起的失配 [20] 和总体相关系数 [13],R 是路由成本, 和 α 和 β 是用户指定的参数,介于 0 和 1 之间。
详细布线和寄生修剪/优化
在获得优化的公共质心布局和全局布线后,我们进行详细布线,将每个单元电容的顶部(底部)极板连接到其相邻的单元电容属于 DAC 中的同一位,或连接到相应的布线轨道。 由全局路由确定的相邻信道。 图 5(a) 显示了一个示例详细的布线结果和相应的布线引起的寄生电容,其中 Cρtb 表示单元电容器的顶板和底板之间的寄生电容,Cρbb 表示不同单元电容器的底板之间的寄生电容 , Cσt (Cσb) 表示单位电容器的顶(底)板与基板之间的寄生电容,如图 1(b) 所示。
在获得优化的公共质心布局和全局布线后,我们进行详细布线,将每个单元电容的顶部(底部)极板连接到其相邻的单元电容属于 DAC 中的同一位,或连接到相应的布线轨道。 由全局路由确定的相邻信道。 图 5(a) 显示了一个示例详细的布线结果和相应的布线引起的寄生电容,其中 表示单元电容器的顶板和底板之间的寄生电容, 表示不同单元电容器的底板之间的寄生电容 , 表示单位电容器的顶(底)板与基板之间的寄生电容,如图 1(b) 所示。
我们基于遗传算法 (GA) [4] 对连接相邻单元电容器的导线段应用导线尺寸和重定位,以调整 Cρtb 并最小化 Cσt。 对于每次迭代,我们在单元电容器阵列中随机选择一组公共质心线段对,调整/重新定位所选线段,并根据更新的寄生电容执行 DNL/INL 分析。 图 5(b) 显示了寄生微调和优化后的改进布线。
** 导线越宽寄生越小、通孔的电阻挺大的减少一个通孔也许也很好(为什么加宽就可以不通孔了?)**
新的地方
**以前的努力并没有解决 FinFET 技术的特定需求,即具有高导线电阻和更高的通孔电阻。**由于 FinFET 技术使用保留方向布线,特别是在用于 MOM 电容器的较低金属层中,导线中的每个弯曲都会因层变化而产生通孔电阻成本。 减少通孔数量对于降低互连电阻和提高 3dB 频率至关重要。 高分散棋盘放置 [7] 的扩展与电容布线寄生参数匹配,但忽略了电阻:结果显示通孔数很高。 我们考虑了一系列新的建设性布局解决方案——螺旋布局和块棋盘 (BC) 方法——以平衡互连寄生效应和色散
该解决方案最大限度地减少了连接中的弯曲数量,如图 2(a) 中的 6 位 DAC 所示。 由于 C0 和 C1 中的单元电容器数量为 1,一个奇数,因此不可能实现公共质心放置。 相反,我们将它们放置在尽可能靠近公共质心的位置,以限制过程变化的影响。 在这里,我们将 C0 和 C1 放置在靠近中心的对角线上。 接下来,我们将 C2 的所有电容器,然后是 C3,依此类推,从中心开始按螺旋顺序排列。 除了 C2 之外,这种技术自然地将电容器的多个单元单元排列在同一行或列中,该方法减少了连接它们所需的过孔(对应于导线“弯曲”)的数量。 这种方法在保持足够分散的同时还减少了布线连接所需的匝数(对应于过孔)。 该方法虽然简单,但与以前的方法不同:,但它没有达到很好的分散效果。
【比较大的电容器和导线RC是什么意思呢? 可以正好和较小电容器电阻小 平衡一下吗?】 其他的 BC 结构可以用 C0 --Ck 的内部全棋盘核心和 Ck+1 --CN 的外部块结构来构建。 MSB 电容器不会对 DAC 精度产生很大影响,因为它们的变化是通过比 LSB 电容器更多的单位电容器来平均的。 MSB 电容在 BC 中使用的过孔比棋盘中的要少,从而产生更高的 3dB 频率。 要创建块棋盘布局,从 i = k+1 开始,在每一步中,我们为 Ci 选择块大小并将块以棋盘方式放置。 我们增加 i 并重复直到 i = N; 如果 N 是奇数,我们还以块棋盘方式添加假人。
CC 阵列内的布线模式:CC 阵列中的电容器 C i C_i Ci 存在以下布线寄生效应: (1) 顶板电容 C i T S C_i^{TS} CiTS 到地(图 1)参与了 V o u t V_{out} Vout 的评估。 寄生 C i T S C_i^{TS} CiTS 导致增益误差,影响 INL/DNL。 由于所有顶板均已连接,因此这些寄生效应在运算放大器输入端并行出现。
连接单元电容器组
为了连接每个 Ci 的单元电容器的所有底板,我们首先创建每个 Ci 的相邻单元电容器的连接电容器组。 我们在图 G 中用节点表示单位电容器,这些相邻单位电容器的节点之间有边。 我们在 G 上应用广度优先搜索 (BFS) 算法来查找其连接的组件(连接的电容器组)。
- 通道选择尝试将电容器组分配给通道,以便它们最大化轨道共享。 如果两个连接的电容器组共享一个公共的垂直通道跨度,它们可以共享一个沿轨道的连接。 i 上的外循环遍历所有电容器 Ci。 j 上的下一个循环为 Ci 考虑每个未访问的电容器组 p,并寻找其他电容器组 q(在 k 上的循环中)与之共享通道。 第 14 行检查 p 和 q 是否共享水平跨度:如果不是(例如,对于图 3(a)中 C4 的电容器组),则它们不能共享通道; 如果他们这样做(例如,对于图中的 C5 组),可以共享的通道位于 p 和 q 跨越的列的左/右(对于 C5,第三个到接下来,我们选择最接近的单元 up ∈ p 和 uq ∈ q(第 16 行),它们将连接到轨道中的主干线:这个选择最小化了连接 p 和 q 的主干线长度段。 在连接的情况下,我们选择最靠近布局底部的电线,以尽量减少与底部驱动器的连接长度。 在图 3(a) 中,我们选择第 2 列中上部 C5 组的最低单元格和第 3 列中下部 C5 组最左侧单元格; 并不是说它在第 6 列和第 7 列中的对称相反被 tie-breaker 消除了,因为它会导致到底部的布线长度更长。每次迭代都保证从 p 到驱动器的连接,因此,每个电容器组都保证完成布线。 对于 |C| 电容器,这一步的成本,支配算法复杂性,是 O ( ∣ C ∣ 2 l o g ( ∣ C ∣ ) ) O(|C|^2 log(|C|)) O(∣C∣2log(∣C∣))。 这不是 |C| 的典型值的主要瓶颈。【需要重点理解】
- 在步骤2(第37行)中,我们首先使用上述信息计算所需的磁道数。对于每个通道,这仅仅是选择使用该通道的Cis的数量。我们现在将连接分配给第39-52行中每个Ci的磁道,将Ci的连接顺序分配给最近的可用磁道。在实践中,通道宽度非常小(即使使用并行路由),并且DAC性能对通道内的跟踪分配不敏感。最后,一旦分配了干线,步骤3(线路54)创建实际路线并将它们连接到单元电容器组。图3(b)示出了两组C4的短干线如何到达布局的底部并通过桥接线连接。【需要重点理解】
并行布线: 为了降低离散线宽下 FinFET 节点的电阻并提高 3dB 频率,我们对关键位使用多条并行布线。 这也允许多个平行过孔随着导线方向的变化而改变。 对于 p 条平行线,导线和通孔电阻分别减少 p× 和 p 2 × p^2× p2×,但线电容增加 p×:我们的结果中考虑了所有 RC 寄生变化。 电容器组形成时,在相邻的两个单元电容器之间增加平行线,在主干/桥接线上采用平行走线 。 关键位 C6 的平行线如图 3(a) 所示(C6 不使用桥接线和带有 p2 通孔的短干线)。顶板布线: 顶板布线的目标是最小化 C T S C_{TS} CTS。 我们创建一个图 G,使得每个顶点 v ∈ G 是任何 C i C_i Ci 的单位电容器(因为所有 C i C_i Ci 顶板必须连接)。 每个单元电容器都连接到其北、南、东和西邻居(如果存在),边缘权重对应于水平或垂直间距(如果适用)。 在我们的例子中,由于单元电容器之间的垂直间距小于通道的水平间距 ,因此可以通过简单地使用分支线连接每列中的所有单元电容器,然后将单元电容器连接到通道中来构建最小生成树 (MST) 使用分支线的相邻列 。 如图 3(a) 所示,使用这种 MST 可以最大限度地减少寄生电容 CTS
路由
值得跟进的论文
- Sprial [4]用矩形和圆形混合放置, [17]用交错的行, 没有达到很好的分散效果。
- Chess [7]在棋盘图案中散布单位电容器来优化分散,这里的布线阻力成本很大。
- Block Chess
- nonoverlapped routing[8] 非重叠布线[8]来最小化 C i T B C_i^{TB} CiTB 将布线顶板和底板的电线分开,保留层的概念?
- [ ]