3.1、Preprocessing
3.1.1. Symmetry constraint allocation
- 考虑给定的Symmetry constraint
- 识别layout中对称的Pin
- 对称约束的考虑: 几何约束与电气约束。
- mirror-symmetry
- cross-symmetry
- self-symmetry
- partial-symmetry
-
算法:
-
符号表
-
自对称度计算
- 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)=∣Pi∣k∑ai,k(x)
- 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′<=∣Pi∣argmaxfi(2xi,k+xi,k′)
- n e t i net_i neti关于 λ i \lambda_{i} λi的自对称度: ψ i = f i ( λ i ) \psi_{i}=f_i(\lambda_{i}) ψi=fi(λi)
- 相互对称度计算
- 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)
- 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′<=∣Pj∣argmaxfi,j(2xi,k+xj,k′)
- 计算当前坐标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(k∑bi,kj(x),k′∑bj,k′i(x))
-
案例:
图a为实际版图,图b为net构建的匹配网络图,每个net作为一个顶点
-
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) k∑a1,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:v1−v1′,w=54) -
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(k∑b2,k3(x),k′∑b3,k′2(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:v2−v3,w=34) -
寻找symmetry的网络:Edmond’s blossom 算法,在构建的带权无向图中寻找最大权重匹配。然后将匹配结果转换为指定网络的对称约束。
- 时间复杂度分析:
- 边权计算: O ( ∣ P ∣ 2 ) O(|P|^2) O(∣P∣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(∣V∣2∣E∣,∣V∣=2∣N∣,∣E∣<=(∣N∣2+∣N∣)/2,
实际应用中,图 ???? ???? G是稀疏的,因为 ???? ???? N中的许多子集是互斥的,并且大量的 n e t net net是自解关联的。电路层次结构将整个网络列表进一步划分为多个分区。因此,该算法的执行效率很高
- 相关定义:
- net互斥: n i n_i ni 和 n j n_{j} nj间的对称度为0
- 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