Anaroute - 理论学习(一)

一、贡献

框架能够在考虑特定约束的同时,高效地完成复杂AMS设计的布线,并实现签署质量的性能。

  • 提出了一种对称性约束的分配算法,根据引脚位置分配合适的网络匹配要求
  • 新的引脚聚类策略,以实现规律性的布线模式,这可以显著提高整体布线的美观度。
  • 健壮的分层拆除和重新布线方案,它能够处理工业设计规则和模拟特定的约束,并缓解布线拥塞。

二、设计规则

  • 物理约束
    规则

  • Parallel run spacing

根据两根平行布线的长度,规定了它们之间所需的最小间距,这个最小间距是基于这两根线的最大宽度来确定的。简单来说,就是两条平行电线越长,考虑到电磁干扰等因素,根据它们的最大宽度,就需要保持一定的最小距离。图2(a)展示了平行布线间距约束。
  • End-of-line spacing
End-of-line(EOL) spacing 指定了在任何小于eolWithin距离的地方,除了线尾(即宽度小于eolWidth的金属端)之外,所需的最小间距eolSpace。如果任何其他平行于EOL的边缘出现在通过将EOL侧向扩展parSpace、向前扩展eolWithin、向后扩展parWithin构建的平行边缘窗口中,则应用EOL间距约束。图2(b)显示了EOL间距规则的一个例子
  • Min-area
最小面积规则规定,金属多边形的面积应该大于或等于一个指定的阈值。如图2(c)
  • Min-step
为了确保在制造阶段掩模创建过程中光学图案校正(OPC)的正确性,规定了最小步长规则。最小步长规则指出,金属多边形上不允许有超过最大边数(maxEdge)连续的、长度小于最小步长(minStep)的边缘。图2(d)展示了一个最小步长违规的例子
  • 电气约束
    IR-induced voltage drop会导致模拟电路性能显著下降。可以通过电路仿真推测出最小布线宽度。
  1. 关键线网:分配更大的metal width以及更多的via
  2. 布局前仿真,提取最大可容忍的寄生电阻,进一步定义出了最小线宽和过孔cut的数量。
  • 对称约束
  1. mirror-symmetry
  2. cross-symmetry
  3. self-symmetry
  4. partial-symmetry

三、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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/881684.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flink学习地址

--基础概念 概览 | Apache Flink --应用系列 如何学习Flink&#xff1a;糙快猛的大数据之路&#xff08;图文并茂&#xff09;_flink 学习-CSDN博客 --Python系列 pyflink实时接收kafka数据至hive_pyflink下kafka数据经过处理后插入hive-CSDN博客 Pyflink教程(一)&#…

UniApp适合哪些场景

UniApp作为一款跨平台的移动应用开发框架&#xff0c;因其高效、灵活和强大的特性&#xff0c;适用于多种应用场景。以下是一些UniApp适用的主要场景&#xff1a; 多平台应用开发&#xff1a; 对于需要同时在iOS、Android、Web以及各种小程序平台发布的应用&#xff0c;UniApp可…

C# 字符串(string)三个不同的处理方法:IsNullOrEmpty、IsInterned 、IsNullOrWhiteSpace

在C#中&#xff0c;string.IsNullOrEmpty、string.IsInterned 和 string.IsNullOrWhiteSpace 是三个不同的字符串处理方法&#xff0c;它们各自有不同的用途&#xff1a; 1.string.IsNullOrEmpty&#xff1a; 这个方法用来检查字符串是否为null或者空字符串&#xff08;"…

微知-Bluefield DPU使用flint烧录固件报错MFE_NO_FLASH_DETECTED是什么?MFE是什么?

文章目录 背景一些报错场景MFE是什么&#xff1f;有哪些MFE 背景 在DPU的fw操作flint的时候&#xff0c;很多命令都会报这个错误&#xff1a;MFE_NO_FLASH_DETECTED&#xff0c;早期很疑惑并且猜测MFE是Mellanox Firmware Engine。实际并不是&#xff0c;具体还得走到mellanox…

2014年国赛高教杯数学建模B题创意平板折叠桌解题全过程文档及程序

2014年国赛高教杯数学建模 B题 创意平板折叠桌 某公司生产一种可折叠的桌子&#xff0c;桌面呈圆形&#xff0c;桌腿随着铰链的活动可以平摊成一张平板&#xff08;如图1-2所示&#xff09;。桌腿由若干根木条组成&#xff0c;分成两组&#xff0c;每组各用一根钢筋将木条连接…

2024 第一次周赛

A: 题目大意 骑士每连续 i 天每天会得到 i 个金币&#xff0c;&#xff08;i 1&#xff0c; 2&#xff0c; 3 &#xff0c; …&#xff09;,那么展开看每一天可以得到的金币数&#xff1a;1 2 2 3 3 3 4 4 4 5 5 5 5 5 … 可以发现就是1个1 &#xff0c;2个2, 3个3…,那么我…

hadoop_core-site.xml配置实例

hadoop3.2.3的高可用集群core-site.xml配置实例 <?xml version"1.0" encoding"UTF-8"?> <?xml-stylesheet type"text/xsl" href"configuration.xsl"?><configuration><property><!--Hadoop文件系统的默…

php 生成随机数

记录:随机数抽奖 要求:每次生成3个 1 - 10 之间可重复(或不可重复)的随机数,10次为一轮,每轮要求数字5出现6次、数字4出现3次、…。 提炼需求: 1,可设置最小数、最大数、每次抽奖生成随机数的个数、是否允许重复 2,可设置每轮指定数字的出现次数 3,可设置每轮的抽奖…

一维数组的引用

#define SIZE 5 int main(void) { int i 0; int arr[SIZE] { 86,85,85,896,45 };//同理五个数据只是偶然&#xff0c;可能会更多 //输入 for (i 0;i < SIZE;i) { printf("请输入你的第%d个值&#xff1a;",i1); scanf_s(&…

Spark常用RDD算子:transformation转换算子以及action触发算子

文章目录 1. 算子&#xff08;方法&#xff09;介绍2. 常用transformation算子2.1 map 2.2 flatMap2.3 filter2.4 distinct2.6 groupBy2.7 sortBy()2.8 k-v数据[(k,v),(k1,v1)] 3. 常用action算子 1. 算子&#xff08;方法&#xff09;介绍 rdd中封装了各种算子方便进行计算&a…

【Linux网络编程】网络基础 | Socket 编程基础

&#x1f308;个人主页&#xff1a; 南桥几晴秋 &#x1f308;C专栏&#xff1a; 南桥谈C &#x1f308;C语言专栏&#xff1a; C语言学习系列 &#x1f308;Linux学习专栏&#xff1a; 南桥谈Linux &#x1f308;数据结构学习专栏&#xff1a; 数据结构杂谈 &#x1f308;数据…

【动手学深度学习】6.3 填充与步幅(个人向笔记)

卷积的输出形状取决于输入形状和卷积核的形状在应用连续的卷积后&#xff0c;我们最终得到的输出大小远小于输入大小&#xff0c;这是由于卷积核的宽度和高度通常大于1导致的比如&#xff0c;一个 240 240 240240 240240像素的图像&#xff0c;经过10层 5 5 55 55的卷积后&am…

自然语言处理问答系统:技术进展、应用与挑战

自然语言处理&#xff08;NLP&#xff09;问答系统是人工智能领域的一个重要分支&#xff0c;它通过理解和分析用户的提问&#xff0c;从大量的文本数据中提取相关信息&#xff0c;并以自然语言的形式回答用户的问题。随着深度学习技术的发展&#xff0c;尤其是预训练语言模型&…

Linux与RTOS的区别

一、Linux与RTOS的区别 1.设计目标&#xff1a;Linux关注性能和多任务处理&#xff0c;RTOS追求实时响应和确定性。 2.调度方式&#xff1a;Linux对普通任务使用公平调度&#xff1b;对实时任务使用优先级调度或时间片轮转调度。而RTOS只采用优先级调度。 3.内存管理&#xff1…

MATLAB智能优化算法-学习笔记(4)——灰狼优化算法求解旅行商问题【过程+代码】

灰狼优化算法(Grey Wolf Optimizer, GWO)是一种基于灰狼社会行为的元启发式算法,主要模拟灰狼群体的捕猎行为(包括围攻、追捕、搜寻猎物等过程)。多旅行商问题(Multi-Traveling Salesman Problem, mTSP)是旅行商问题(TSP)的扩展,它涉及多个旅行商(车辆)从一个起点城…

深度学习:循环神经网络—RNN的原理

传统神经网络存在的问题&#xff1f; 无法训练出具有顺序的数据。模型搭建时没有考虑数据上下之间的关系。 RNN神经网络 RNN&#xff08;Recurrent Neural Network&#xff0c;循环神经网络&#xff09;是一种专门用于处理序列数据的神经网络。在处理序列输入时具有记忆性…

动态规划的优化与高级应用

姊妹篇&#xff1a; 动态规划基础与经典问题-CSDN博客 贪心算法&#xff1a;原理、应用与优化_最优解-CSDN博客​​​​​​贪心算法&#xff1a;原理、应用与优化_最优解-CSDN博客 一、动态规划的优化策 动态规划在提高时间效率的同时&#xff0c;往往会占用较多的空间。因…

AI学习指南深度学习篇-Python实践

AI学习指南深度学习篇 - Python实践 引言 在现代深度学习中&#xff0c;学习率是一个至关重要的超参数&#xff0c;它直接影响模型的收敛速度和最终效果。适当的学习率能够加速训练&#xff0c;但过大会导致模型不收敛&#xff0c;过小则可能导致训练过程过慢。因此&#xff…

Python异步网络编程详解:多种实现方法与案例分析

目录 Python异步网络编程详解&#xff1a;多种实现方法与案例分析一、异步网络编程的基本概念1.1 同步与异步1.2 并发与并行1.3 Python中的异步编程模型 二、使用 asyncio 实现异步网络编程2.1 基本概念2.2 面向对象的异步HTTP请求实现代码实现详细解释&#xff1a; 三、使用 a…

【汇编语言】寄存器(CPU工作原理)(七)—— 查看CPU和内存,用机器指令和汇编指令编程

文章目录 前言1. 预备知识&#xff1a;Debug的使用1.1 什么是Debug&#xff1f;1.2 我们用到的Debug功能1.3 进入Debug1.3.1 对于16位或者32位机器的进入方式1.3.2 对于64位机器的进入方式 1.4 R命令1.5 D命令1.6 E命令1.7 U命令1.8 T命令1.9 A命令 2. 总结3. 实操练习结语 前言…