旨在推动EDA物理设计领域范式转变,构建一个能理解半导体版图深层次"设计语言"的统一基础模型。
统一的"版图理解引擎"
我们致力于从目前分散的、任务特定的工具,演进为一个集中的、可复用的"版图理解引擎"。通过利用新颖的 图神经网络(GNN)+ Transformer 混合架构,并在海量未标记的 GDSII 数据上进行预训练,该模型经过微调后,能够出色地完成各种关键的后端分析任务,从而加速设计周期,并突破 PPA(功耗、性能、面积)的极限。
一个用于物理设计分析的统一、自监督基础模型。
推动EDA物理设计领域范式转变
旨在推动EDA物理设计领域范式转变,构建一个能理解半导体版图深层次"设计语言"的统一基础模型。
我们致力于从目前分散的、任务特定的工具,演进为一个集中的、可复用的"版图理解引擎"。通过利用新颖的 图神经网络(GNN)+ Transformer 混合架构,并在海量未标记的 GDSII 数据上进行预训练,该模型经过微调后,能够出色地完成各种关键的后端分析任务,从而加速设计周期,并突破 PPA(功耗、性能、面积)的极限。
传统方法的瓶颈与新技术路径
传统的版图分析方法正面临瓶颈。理解这些困境是探索新技术路径的起点。
监督学习方法需要大量精确标注的数据(如DRC热点),其获取过程不仅耗时,还需昂贵的商业EDA工具和专家经验,成为AI应用的最大障碍。
版图是矢量数据,具有严格的几何约束,并需对旋转、镜像等变换保持不变性。标准CNNs为处理像素图像而生,难以有效捕捉这种结构化信息。
无论是基于规则还是基于像素块的分析,都局限于局部视野,无法理解跨越多个区域的长程依赖关系,导致对设计意图的理解出现偏差。
随着工艺节点演进,设计规则变得愈发复杂,硬编码的规则集变得臃肿且难以维护。同时,全芯片分析对计算资源的需求呈指数级增长。
| 技术范式 | 核心思想 | 主要缺点 |
|---|---|---|
| 基于规则/启发式 | 由专家定义一套详尽的几何规则(如宽度、间距),使用算法进行模式匹配和验证。 | 规则集复杂、维护困难;无法发现未知模式;在新工艺节点上开发周期长;误报率高。 |
| 经典机器学习 | 手动设计特征(如密度、平行线长度),然后使用SVM、决策树等模型进行分类或回归。 | 特征工程是瓶颈,依赖专家知识;特征表达能力有限,难以捕捉复杂的空间关系。 |
| 早期深度学习 (CNN) | 将版图栅格化为图像,使用卷积神经网络(CNN)提取特征,进行热点检测等任务。 | 忽略了版图的矢量特性;对旋转/镜像敏感;需要大量标注数据;上下文感知能力有限。 |
| Geo-Layout Transformer (本项目) | 将版图建模为几何图,用GNN学习局部结构,用Transformer学习全局上下文。通过自监督学习理解版图"语法"。 | 数据表征更自然;分层学习局部与全局信息;极大减少对标注数据的依赖;构建可扩展的统一基础模型。 |
Geo-Layout Transformer的核心思想是采用一种更符合版图数据本质的表征方式,并利用自监督学习来克服数据瓶颈,从而构建一个真正"理解"物理设计的基础模型。
基于成熟研究的技术路线
本项目的技术路线并非凭空创造,而是将学术界已验证的先进模型应用于版图分析领域,具有坚实的理论和实践基础。
将版图的矢量几何信息转换为图结构,是应用图神经网络(GNN)的前提。这一思路借鉴了GNN在社交网络、分子结构等领域处理非欧几里得数据的成功经验。
"GNN编码器 + Transformer"的混合架构,是近年来处理复杂结构化数据(如代码、知识图谱)的SOTA(State-of-the-Art)方案。我们将其引入版图分析领域,以同时捕捉局部和全局信息。
结论:本项目的可行性建立在对成熟研究成果的创新性应用之上。我们并非在发明全新的深度学习算法,而是搭建了一座桥梁,将GNN和Transformer等强大工具的能力引入到集成电路物理设计这一高度专业化的领域,以解决传统方法难以应对的挑战。
借鉴 Vision Transformer 的分块处理思想
该架构借鉴了Vision Transformer (ViT) 的思想,将版图数据分块处理,并通过Transformer捕捉全局依赖关系。
为每个 Patch 图生成嵌入向量
学习 Patch 间的全局依赖关系
热点检测: [热点, 非热点]
连通性验证: [开路, 正常]
版图匹配: [相似度得分]
从基础环境到模型优化的五个阶段
项目分为五个主要阶段,从基础环境搭建到模型的迭代优化。
选择合适的工具能事半功倍。核心技术栈包括 Python, KLayout, PyTorch, 和 PyTorch Geometric (PyG)。
整个项目中最关键、工作量最大的部分。将GDS版图数据划分为"Patch",并为每个Patch构建几何图表示,定义节点(几何图形)和边(空间关系)。
模型分为两部分:使用GNN作为"Patch编码器"将图编码为向量,然后将向量序列输入"全局Transformer"以学习全局依赖关系。
使用二元交叉熵或Focal Loss等损失函数,通过Adam/AdamW优化器进行训练。通过精确率、召回率、F1-Score等指标评估模型性能。
在基础模型跑通后,探索多尺度Patch、层级化表征、自监督学习和模型可解释性等高级主题。
欢迎参与项目建设
这是一个宏伟的项目,我们欢迎任何形式的贡献。欢迎随时提出 Issue 或提交 Pull Request。