当前位置:首页 » 《随便一记》 » 正文

ALIGN:自动化模拟布局的系统

19 人参与  2022年07月21日 12:20  分类 : 《随便一记》  评论

点击全文阅读


摘要

ALIGN(“Analog Layout, Intelligently Generated from Netlists”)是一种用于模拟电路的开源自动版图生成流程。 ALIGN 将输入 SPICE 网表转换为输出 GDSII 布局,特定于给定技术,由一组设计规则指定。 该流程首先自动检测电路网表中的层次结构,并将布局综合转换为分层块组装问题。 在最低级别,参数化单元是使用设计规则的抽象生成的; 然后在几何和电气约束下组装这些块以构建电路布局。 ALIGN 已被应用于为各种模拟电路系列生成布局:低频模拟块、有线电路、无线电路和供电电路。

背景

ALIGN (Analog Layout, Intelligently Generated from Netlists) 是一款用于模拟电路的开源版图生成器,目前正在开发中。 软件流程的第 1 版已于 2020 年 8 月发布。ALIGN 项目聘请了一个联合学术/行业团队将 SPICE 级网表转换为物理布局,24 小时周转且无人参与。 ALIGN 流程输入已选择拓扑和晶体管尺寸的网表、规格和工艺设计套件 (PDK),并输出 GDSII。
ALIGN 的理念是通过首先识别网表中的布局层次结构,然后在最低层次结构生成正确的构造布局,最后在布局和布线过程中在每个层次结构层次组装块来组合综合布局。 因此,ALIGN 的一个关键步骤是识别这些层次结构以识别设计的构建块。 在此过程中,ALIGN 模仿了人类设计师,他们识别已知块,将它们布置出来,然后分层构建整体布局。 在这个层次结构的最低层是一个单独的晶体管。 然后将这些晶体管组合成更大的基本原语 [例如,差分对、电流镜],然后是模块 [例如,运算跨导放大器 (OTA)],通过几个层次结构到系统级别 [例如,射频 ( RF) 收发器]。 ALIGN 使用算法技术、模板驱动设计和机器学习 (ML) 的组合来创建专业设计师级别的布局。

晶体管 -> 基本原语 -> 模块

与由少量构建块组成的数字设计不同,模拟电路倾向于使用多种结构。 其中每一个都有自己的限制和要求,传统上只有专业设计人员才能构建能够提供高性能的电路。 ALIGN 针对各种模拟设计,包括bulk和 FinFET 技术,涵盖四大类功能:

• 低频组件,包括模数转换器 (ADC)、放大器和滤波器。
• 包括时钟/数据恢复、均衡器和相位内插器的有线组件。
• 实现发射器、接收器等的射频/无线组件。
• 电力传输组件包括基于电容器和电感器的DC-DC 转换器。

每个类别的特点是相似的构建块可能具有相似的性能参数集,尽管应该提到的是,即使在每个类别中也存在相当大的差异。 图 1 总结了每个类别中重要的因素。
在这里插入图片描述

调研

在自动化模拟布局合成方面已经有一些先前的努力 [1]-[7],但这些方法并不广泛部署在工具中。 一些方法解决了有限类别的设计; 其他人无法调整以处理同一设计类的足够广泛的变体集。 此外,人们普遍认为,现有的模拟布局自动化方法无法与专业设计人员相匹敌,无论是在理解和实施专业布局技巧的能力方面,还是在具有特定电路约束的拓扑的数量和种类方面模拟布局综合的最终目标是达到手工设计的质量。

近年来,形势发生了多种变化,使得自动化布局解决方案具有吸引力。 首先,在纳米级技术中,具有固定间距和单向布线的受限设计规则限制了旧技术中可用的布局自由度,从而减少了布局期间要探索的设计空间,降低了人类专家的优势。 其次,如今集成系统需要比以前更多的模拟模块,其中一些模块需要正确的功能和适度的性能。 增加模拟内容与放宽规范相结合,为模拟自动化创造了一个甜蜜点。 即使对于高性能模块,自动版图生成器也可以显着减少电路优化和版图之间的迭代,其中版图生成是主要瓶颈。 第三,ML 的出现为以以前不可能的方式解决模拟布局问题提供了希望,并为非人工在环设计奠定了基础。

本文概述了 ALIGN 的技术细节,并展示了如何使用 ALIGN 将模拟电路网表转换为布局。 核心 ALIGN 引擎可以在没有人参与的情况下运行,由执行通常由人执行的功能的 ML 算法启用,例如,在自动注释期间识别电路中的层次结构,或为布局生成对称约束。 ML 算法还有助于创建快速的电气约束检查器,以验证候选布局/布线解决方案是否满足性能约束,并使用它来引导布局布线引擎达到满足所有规范的最佳状态。 更深入的细节,读者可以参考[8]-[11]中的详细描述,并关注我们小组正在进行的工作的新出版物。

核心技术

ALIGN 流程由五个模块组成,如图 2 所示: (1) 网表自动注释创建输入网表的多级层次表示,并识别网表中的结构对称性。 这是用于分层构建电路布局的关键步骤。 (2) 设计规则捕获将专有的 PDK 抽象为一个简化的网格,根据需要附加布尔约束,在布局期间的所有步骤都必须遵守。 (3) 约束生成识别要满足的性能约束,并将其转换为布局约束,例如最大允许净长度,或基于自动注释期间识别的结构信息的匹配/公共质心等约束。 (4) 参数化图元单元生成自动为图元构建布局,图元是 ALIGN 层次结构中的最低级别块。 基元通常包含少量晶体管结构(每个都可以使用多个鳍和/或指来实现)。 在此步骤中,网表中原语的参数化实例会自动转换为 GDSII 布局。 (5) 分层块组件在满足几何和电气约束的同时,对分层电路结构进行布局和布线。 该流程在开源代码和专有数据之间建立了分离。 专有 PDK 模型必须转换为布局生成器使用的抽象。 部分流程由 ML 模型驱动:流程为在专有数据上训练这些模型提供了基础设施。
在这里插入图片描述
整个 ALIGN 流程旨在支持无人参与的设计。 然而,流程是模块化的并且支持多个入口点:例如,自动注释模块可以被设计者注释替换,并且可以使用该注释来执行流程的其余部分。 流程对用户输入很灵活:例如,用户可以指定新的图元,它们将被注释模块以及流程中的布局生成器使用。

网表自动注释

此步骤将输入网表中的晶体管和无源器件分组为一组分层的构建块,并确定每个块布局的约束。 ALIGN 的输入是转换为图形表示的 SPICE 网表。 接下来,识别图形的特征​​,并创建电路层次结构。 如果将输入网表划分为子电路,则在识别过程中会使用此类信息,但 ALIGN 不计入网表层次结构。 相反,层次结构会被自动识别和注释。 需要注意的是,最好的布局层次有时可能不同于逻辑网表层次。 因此,ALIGN 可以扁平化网表层次结构以构建高质量的布局。 模拟设计人员通常从大量变体中选择每个设计模块,例如,在教科书和研究论文之间,有超过 100 种广泛使用的各种类型的 OTA 拓扑(例如,伸缩式、折叠级联、米勒补偿)。 先前的方法是基于库的(即,它们将电路与预先指定的模板匹配)[4] 或基于知识的(即,它们使用一组编码规则确定块功能)[1],或两者兼而有之 [12]。 基于库的方法需要一个大型库,而基于规则的方法必须得到详尽的知识库的支持,这两者都难以构建和维护。 ALIGN 使用两种方法来注释电路块,均基于使用图形表示来表示电路连通性 基于ML 基于图遍历

设计规则提取

ALIGN 布局工具由确保设计规则正确性的过程特定设计规则指导。 设计规则的复杂性在最近几代工艺中显着增加。 先前已经提出了为流程规则构建通用抽象的努力(例如,[13])。 ALIGN 使用更有效的设计规则抽象机制,在 FEOL 和 BEOL 层中创建固定网格结构,如图 4 所示。主要网格(粗线)表示路线的中心线,而次要网格(虚线)对应于停靠点 对于功能。 网格结构和基本流程信息被抽象为 JSON 文件。 对于 BEOL 层,这包括:
我们的抽象允许不同的网格结构,可以在层与层之间变化,并使用表示线间距、线悬垂的主要/次要网格线,以及通过布尔约束通过规则合并的能力。 我们的方法将嵌入在设计规则手册中的数千条规则中的复杂条件集简化为一个大大简化且小得多的集合,通过选择网格来实施一些限制。 通过与手工设计的比较发现,这导致版图质量的降级最小或为零。 先进的商业工艺节点(22nm、10nm、7nm 等)已被抽象为这种简化形式。 该抽象使布局工具能够理解 PDK 功能,例如规则和不规则宽度和间距网格(针对每一层)、最小端到端间距设计规则(同一轨道中的金属之间)、最小长度设计规则和强制停止点网格 . 为方便起见,JSON 文件还对金属层和通孔的每单位寄生参数进行编码
为了促进进一步的布局研究,我们发布了 1 条基于公共域信息的 Mock PDK 设计规则,以抽象 14nm FinFET 节点 [14] 和 65nm 体节点 [15] 的布局规则。 虽然它们不代表真正的技术,但它们是现实的。 设计验证这些 PDK 上的工具可以自由共享,有助于软件开发过程。

约束生成 (识别约束 对称 匹配 共质心 )

在这里插入图片描述

生成两种类型的约束来指导布局:
(1) 几何约束:当自动注释步骤识别已知块或数组结构时,它将几何要求与这些块相关联,例如对称、匹配和共质心 约束。 例如,图 3 显示了 OTA 结构中的对称线,在布局期间必须遵守这些对称线。 这些约束是作为自动注释的一部分自然提取的。 与基于模拟密集型灵敏度分析 [16] 或基于图遍历与模板的精确匹配 [4] 的现有方法相比,ALIGN 方法 [9] 中的方法将图遍历方法与基于机器学习的方法相结合,并且计算效率高 ,即使在近似匹配下也能够找到分层嵌套的对称约束。
(2) 电气约束:ALIGN 基于固定网表生成版图,性能变化由从网表级估计到版图后值的寄生参数变化驱动。 因此,ALIGN 将电气约束转换为限制电路任何节点处的最大寄生参数。 例如,电气约束可以转化为连接两个节点的导线电阻的最大限制,这反过来又对应于对最大长度、平行金属轨道的数量和路径上的通孔数量的约束 连接这些节点。 此功能目前正在 ALIGN [10]、[11] 中实现,并且正在进行中。 基本思想是开发一个快速的 ML 推理引擎,该引擎在迭代布局器的内部循环中运行,并且对于每个布局器配置,确定其电气约束是否得到满足。 这些约束被传递到布局生成引擎,以指导所有层次结构级别的布局。

参数化基元布局生成 (重点)

ALIGN 为用户提供了一个预定义的可参数化基元库,如图 5 所示。每个基元由少量晶体管或无源单元组成; 然而,每个这样的单元可以由多个复制结构组成,例如多鳍/多指晶体管,或电阻/电容阵列。
原始单元布局遵循设计规则定义的网格化抽象,单元生成可以根据单元单元和单元单元的数量进行参数化,如图 6 所示。对于晶体管,单元单元可以参数化 FinFET 技术中的鳍片数量; 对于电容器,参数化可能对应于单位电容器的大小。 此外,原始布局可以通过其纵横比、布局样式(共质心与叉指晶体管)、栅极长度、单元中关键线的有效宽度等参数化。
识别基元和创建参数化布局的实用程序在于使 ALIGN 能够创建包含适当几何约束(例如对称或公共质心)的布局。 原则上,可以使用“晶体管海”构建布局,其中基元对应于单个晶体管,但这种方法在晶体管基元之外强制执行对称要求将具有挑战性。 用于原始布局生成的先前方法 [17]-[20] 通常不像 ALIGN 方法那样模块化或可扩展。

分层块组装

给定所有基元的布局和电路的分层块级结构,在自动注释期间提取,布局和布线步骤执行服从前面描述的几何和电气约束的分层块组装。 层次结构中的每个布局块可以有多个布局选项,每个模块生成不同的形状。 例如,可以通过纵横比对图元进行参数化,并且可以为其他块生成多个纵横比。 灵活的形状驱动类似于布局规划的布局算法,在约束生成步骤传递给它们的电气和几何约束下提供紧凑的布局。 路由集成到每个层级中,考虑到网络长度/寄生约束、屏蔽和对称性要求,并符合嵌入到 PDK 抽象中的设计规则。 放置器基于使用序列对方法 [6] 的先前工作,并且可以处理一般几何约束,例如对称、匹配和对齐。 布线期间支持对称、屏蔽和电阻约束布线。

ALIGN 流程可以使用两个详细路由器之一: (a) 使用整数线性规划公式和 A* 算法的构造路由器; 这对于更稀疏的设计特别有效。 (b) 英特尔发布的基于 SAT 的详细路由器 1,非常适合拥塞设计。

目标

应用低频模拟块、有线电路、无线电路、供电电路晶体管 -> 基本原语(差分对 电流镜) -> 模块用于原始布局生成的先前方法 [17]-[20] 通常不像 ALIGN 方法那样模块化或可扩展放置器基于使用序列对方法 [6]可以处理一般几何约束,例如对称、匹配和对齐布线期间支持对称、屏蔽和电阻约束布线。

点击全文阅读


本文链接:http://zhangshiyu.com/post/43616.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1