Anaroute - 理论学习(一)-三、Routing frame work

在这里插入图片描述

3.1、Preprocessing

3.1.1. Symmetry constraint allocation

  • 考虑给定的Symmetry constraint
  • 识别layout中对称的Pin
  • 对称约束的考虑: 几何约束与电气约束。
  1. mirror-symmetry
  2. cross-symmetry
  3. self-symmetry
  4. partial-symmetry
    在这里插入图片描述
  • 算法:
    在这里插入图片描述

  • 符号表
    在这里插入图片描述

  • 自对称度计算

  1. n e t i net_i neti关于坐标 x x x的对称度: f i ( x ) = ∑ k a i , k ( x ) ∣ P i ∣ f_{i}(x) = \frac{\sum\limits_{k}a_{i,k}(x)}{|P_i|} fi(x)=Pikai,k(x)
  2. n e t i net_i neti自对称度最大的对称轴: λ i = a r g m a x 1 < = k , k ′ < = ∣ P i ∣ f i ( x i , k + x i , k ′ 2 ) \lambda_{i}=\mathop{argmax}\limits_{1<=k, k^{'}<=|P_i|}f_{i}(\frac{x_{i,k}+x_{i,k^{'}}}{2}) λi=1<=k,k<=Piargmaxfi(2xi,k+xi,k)
  3. n e t i net_i neti关于 λ i \lambda_{i} λi的自对称度: ψ i = f i ( λ i ) \psi_{i}=f_i(\lambda_{i}) ψi=fi(λi)
  • 相互对称度计算
  1. n e t i net_i neti n e t j net_j netj关于对称轴 λ i , j \lambda_{i,j} λi,j的对称度: ψ i , j = f i , j ( λ i , j ) \psi_{i,j} = f_{i,j}(\lambda_{i,j}) ψi,j=fi,j(λi,j)
  2. n e t i net_i neti n e t j net_j netj间对称度最大的对称轴: λ i , j = a r g m a x 1 < = k < = ∣ P i ∣ , 1 < = k ′ < = ∣ P j ∣ f i , j ( x i , k + x j , k ′ 2 ) \lambda_{i,j} = \mathop{argmax}\limits_{1<=k<=|P_{i}|,1<=k^{'}<=|P_j|} f_{i,j}(\frac{x_{i,k}+x_{j,k^{'}}}{2}) λi,j=1<=k<=Pi,1<=k<=Pjargmaxfi,j(2xi,k+xj,k)
  3. 计算当前坐标x的对称度: f i , j ( x ) = m a x ( ∑ k b i , k j ( x ) , ∑ k ′ b j , k ′ i ( x ) ) m a x ( ∣ P i ∣ , ∣ P j ∣ ) f_{i,j}(x) = \frac{max(\sum\limits_{k}b^j_{i,k}(x), \sum\limits_{k^{'}}b^i_{j,k^{'}}(x))}{max(|P_i|,|P_j|)} fi,j(x)=max(Pi,Pj)max(kbi,kj(x),kbj,ki(x))
  • 案例:
    在这里插入图片描述

图a为实际版图,图b为net构建的匹配网络图,每个net作为一个顶点

  1. n i n_i ni自对称度的计算
    n 1 n_1 n1内部在对称轴 λ i \lambda_{i} λi出相互对称的pin为 [ ( p 1 , 1 , p 1 , 4 ) , ( p 1 , 2 , p 1 , 3 ) ] [(p_{1,1}, p_{1,4}),(p_{1,2},p_{1,3})] [(p1,1,p1,4),(p1,2,p1,3)],所以 ∑ k a 1 , k ( x ) \sum\limits_{k}a_{1,k}(x) ka1,k(x)=4, 而pin的总数 ∣ P 1 ∣ |P_1| P1=5,计算得 ψ 1 = 4 5 \psi_{1}=\frac{4}{5} ψ1=54。构建匹配图边( e : v 1 − v 1 ′ , w = 4 5 ) e: v_1-v_1^{'}, w=\frac{4}{5}) e:v1v1,w=54)

  2. n i , n j n_i,n_j ni,nj间对称的计算
    n 2 , n 3 n_2, n_3 n2,n3, 能关于对称轴 λ i , j \lambda_{i,j} λi,j最多大相互对称得pin为 [ ( p 2 , 2 , p 3 , 2 ) , ( p 2 , 3 , p 3 , 3 ) ] [(p_{2,2}, p_{3,2}),(p_{2,3},p_{3,3})] [(p2,2,p3,2),(p2,3,p3,3)],所以 m a x ( ∑ k b 2 , k 3 ( x ) , ∑ k ′ b 3 , k ′ 2 ( x ) ) = 4 max(\sum\limits_{k}b^3_{2,k}(x), \sum\limits_{k^{'}}b^2_{3,k^{'}}(x))=4 max(kb2,k3(x),kb3,k2(x))=4 , m a x ( ∣ P 2 ∣ , ∣ P 3 ∣ ) = 3 max(|P_2|,|P_3|)=3 max(P2,P3)=3, 所以 ψ 2 , 3 = 4 3 \psi_{2,3}=\frac{4}{3} ψ2,3=34。构建匹配图的边:( e : v 2 − v 3 , w = 4 3 e:v_2-v_3, w=\frac{4}{3} e:v2v3,w=34)

  3. 寻找symmetry的网络:Edmond’s blossom 算法,在构建的带权无向图中寻找最大权重匹配。然后将匹配结果转换为指定网络的对称约束。

  • 时间复杂度分析:
  1. 边权计算: O ( ∣ P ∣ 2 ) O(|P|^2) O(P2)
  2. 最大权重匹配: O ( ∣ V ∣ 2 ∣ E ∣ , ∣ V ∣ = 2 ∣ N ∣ , ∣ E ∣ < = ( ∣ N ∣ 2 + ∣ N ∣ ) / 2 O(|V|^2|E|, |V|=2|N|, |E|<=(|N|^2+|N|)/2 O(V2E,V=2∣N,E<=(N2+N)/2,
    实际应用中,图 ???? ???? G是稀疏的,因为 ???? ???? N中的许多子集是互斥的,并且大量的 n e t net net是自解关联的。电路层次结构将整个网络列表进一步划分为多个分区。因此,该算法的执行效率很高
  • 相关定义:
  1. net互斥: n i n_i ni n j n_{j} nj间的对称度为0
  2. net自解关联: n i n_i ni自对称度为0

2. Pin Access assignment

分析Pin的形状, 根据首选Access方向的确定Pin Access point。方便后续布线过程中的Pin的连接。
在这里插入图片描述
在这里插入图片描述

3.2、Core procedures

1. Routing

  • 算法:obstacle-aware path-finding algorithm。
  • 在对称轴两侧同时执行Obstacel-aware path-finding, 实现对称布线。
  • 查找过程中考虑设计规则(parallel run spacing,end-of-line spacing,Min-area,Min-step)
  • 无法找到路径时,进入rip-up & reroute优化迭代,直到找到可行方案。
    在这里插入图片描述

2. Rip-up

  • Viaolated net removal
    在这里插入图片描述

3.3、Post-refinement

在布线结果中寻找违反Design rule。通过向metal shapes中增加补丁,解决Min-step违例。

参考文献:Toward Silicon-Proven Detailed Routing for Analog and Mixed-Signal Circuits

上一篇:DS线性表之队列的讲解和实现(5)


下一篇:递归查找子物体+生命周期函数