分享自:

迈向开源数字流程:来自OpenROAD项目的初步经验

期刊:ACMDOI:10.1145/3316781.3326334

OpenRoad项目:迈向开源数字设计流程的首次探索

作者与发表信息 本文的作者团队由来自多所大学的研究人员组成,包括Tutu Ajayi(密歇根大学)、Vidya A. Chhabria(明尼苏达大学)、Mateus Fogaça(PGMicro/巴西联邦南大河大学)、Soheil Hashemi(布朗大学)、Abdelrahman Hosny(布朗大学)、Andrew B. Kahng(加州大学圣地亚哥分校)、Minsoo Kim(加州大学圣地亚哥分校)、Jeongsup Lee(密歇根大学)、Uday Mallappa(加州大学圣地亚哥分校)、Marina Neseem(布朗大学)、Geraldo Pradipta(明尼苏达大学)、Sherief Reda(布朗大学)、Mehdi Saligane(密歇大学)、Sachin S. Sapatnekar(明尼苏达大学)、Carl Sechen(德克萨斯大学达拉斯分校)、Mohamed Shalan(开罗美国大学)、William Swartz(德克萨斯大学达拉斯分校)、Lutong Wang(加州大学圣地亚哥分校)、Zhehong Wang(密歇根大学)、Mingyu Woo(加州大学圣地亚哥分校)和Bangqi Xu(加州大学圣地亚哥分校)。该论文以“Invited: Toward an Open-Source Digital Flow: First Learnings from the OpenRoad Project”为题,发表于2019年6月2日至6日在美国拉斯维加斯举行的第56届设计自动化大会(DAC ‘19)的会议录中。

论文主题与背景 本文并非一篇报告单一原创研究的论文,而是一篇项目进展报告与经验总结。它详细介绍了由美国国防高级研究计划局(DARPA)IDEA项目资助的OpenRoad项目的目标、架构、初步成果以及早期经验教训。其核心主题是探讨如何构建一个开源的、端到端的、“无人干预”的自动化芯片设计工具链,以应对当前硬件设计领域面临的高成本、高门槛、高风险和长周期等挑战,最终实现“硬件设计民主化”的愿景。

主要观点阐述

观点一:硬件设计领域面临严峻挑战,亟需范式变革。 论文开篇即指出,尽管硬件设计工具和方法论在过去几十年中有所进步,但半导体行业未能控制产品设计成本。当前,成本、专业知识和不可预测性(风险)这三大壁垒严重阻碍了设计者利用先进工艺技术实现硬件创新。具体表现为: * 工具复杂昂贵:商业电子设计自动化(EDA)工具集成了数百亿美元的研发投入,价格高昂。 * 专家人才短缺:能够熟练使用先进工艺设计工具的专业人员匮乏。 * 设计与风险成本巨大:典型的硬件设计周期长达12-36个月,且失败风险高。 这种现状将硬件系统创新困在了一个局部最优解中,使得许多开发团队,尤其是缺乏庞大资源的团队,难以涉足先进硬件设计。DARPA的IDEA项目正是在此背景下启动,旨在开发完全自动化的、“无需人工干预”的电路版图生成器,让没有电子设计专业知识的用户也能完成硬件的物理设计。OpenRoad项目作为IDEA项目的一部分,其首要目标就是打破这些壁垒。

观点二:OpenRoad项目旨在构建一个开源、自主、完整的硅编译器工具链,其核心是RTL-to-GDSII流程。 OpenRoad的宏伟目标是开发一个完全自主的、开源的、涵盖芯片(Die)、封装(Package)和电路板(Board)的硅编译工具链,其初期重点聚焦在系统级芯片(SoC)设计的RTL-to-GDSII阶段。这意味着该工具链将接受用硬件描述语言(如Verilog)编写的寄存器传输级(RTL)设计,经过一系列自动化步骤,最终生成可直接交付给芯片制造厂(Foundry)进行流片(Tapeout)的GDSII版图文件。 * 开源与许可:项目致力于以源代码形式、采用宽松许可证发布具备流片能力的工具,旨在培育未来“EDA领域的Linux”生态。 * 工具链构成:如图1所示,OpenRoad的Alpha版本流程包含了一系列相互兼容的开源工具,覆盖了从逻辑综合到详细布线的完整物理设计阶段,并集成了静态时序分析、寄生参数提取、电源完整性分析等关键分析支持工具,以及云部署基础设施。 * “无人驾驶”愿景:项目的终极目标是实现“无人干预”的自驱动设计流程,并达成“24小时设计周期”的快速迭代能力。

观点三:OpenRoad Alpha流程集成了多个关键的开源工具模块,每个模块针对传统开源工具的不足进行了针对性增强。 论文详细介绍了构成其RTL-to-GDSII流程的各个主要工具及其创新点: * 逻辑综合(Logic Synthesis):基于开源工具Yosys/ABC,进行了三项重要改进。(1)引入强化学习技术,让智能体自动探索设计空间,生成满足时序约束且面积最优的定制化综合脚本。(2)改进ABC的基本缓冲算法,并通过集成布局工具RePlAce实现物理感知的缓冲插入和门尺寸调整,利用布局阶段的线网电容估计来优化时序。(3)增加了对常用SDC(Synopsys设计约束)命令子集的支持,提升了与工业流程的兼容性。 * 布局规划与电源传输网络(Floorplan & PDN):工具TritonFPlan负责此阶段。它首先利用RePlAce进行包含宏模块和标准单元的混合尺寸全局布局,并基于模拟退火和B*-树表示进行宏模块摆放,优化标准单元可用面积和线长。随后,采用“构造即正确”的方法,根据用户配置文件中的规则,为每个布局规划方案生成符合设计规则检查(DRC)的电源传输网络。 * 布局与PDN优化(Placement & PDN Refinement)RePlAce是一个基于静电学类比的BSD许可证开源布局器,在流程中用于物理综合、混合尺寸布局、标准单元布局以及时钟树综合中的缓冲器合法化。它集成了一系列分析引擎(如Steiner线长估算、RC寄生估算、OpenSTA静态时序分析)并支持时序驱动优化。布局完成后,PDN工具会基于更精确的电流分布空间估计,使用卷积神经网络(CNN) 为芯片区域选择安全的、经过稀疏化处理的PDN布线模板,实现单次、正确的PDN细化。 * 时钟树综合(Clock Tree Synthesis)TritonCTS基于广义H树(GH-Tree)范式,采用动态规划算法寻找满足延迟和偏移目标且功耗最小的时钟树拓扑结构,并利用改进的带容量限制K-means算法进行时钟汇点聚类。它与布局器接口,对插入的时钟缓冲器进行合法化。 * 全局布线(Global Routing):使用UTD-BoxRouter(基于BoxRouter 2.0修改版)。该工具在定义全局布线单元(Gcell)后,通过预处理、整数线性规划和基于协商的A*搜索解决二维布线问题,再通过一个考虑通孔和障碍物的整数线性规划算法进行层分配,完成二维到三维的映射,生成用于详细布线的布线引导(Route Guide)。 * 详细布线(Detailed Routing)TritonRoute接收全局布线结果,首先进行预处理以减少环路并生成引脚访问模式,然后依次进行快速贪心启发式的轨道分配、基于片段(Clip)的多端点多线网开关盒布线,以及多轮搜索修复迭代以减少线长和通孔数量,并促进DRC收敛。

观点四:项目开发了配套的分析与支持工具,并构建了云基础设施和集成测试框架。 为了支撑整个设计流程,OpenRoad整合或开发了关键的支持性工具: * 静态时序分析(STA):使用OpenSTA,这是一个基于商业工具Parallax计时引擎开发的开源版本,支持先进工艺节点和标准时序报告格式。 * 寄生参数提取(PEX):该工具通过处理工艺设计套件(PDK)建立线性回归模型,用于快速估算线网电阻、对地电容和耦合电容,为时序驱动布局和全局布线中的串扰估计提供低开销的寄生参数估计。 * 云基础设施:项目提供了云端部署,用户可以通过订阅Git仓库实现设计变更的自动编译、流程监控和结果下载,利用弹性计算资源提升用户体验。 * 集成与测试:建立了基于已流片设计的测试用例套件和持续集成测试套件,用于在开发过程中单独验证工具并跟踪回归指标。

观点五:OpenRoad规划了未来的重要扩展方向,包括全流程机器学习优化、早期SoC规划和跨领域协同设计。 项目着眼于更长远的开发: * Metrics 2.0:正在开发一个统一、全面的设计数据收集与存储基础设施(Metrics 2.0),采用标准化指标字典和基于JSON、MongoDB的架构。这将为大规模应用机器学习、实现自驱动设计流程奠定数据基础,机器学习算法的输出将用于调优流程中各工具的操作。 * 早期SoC规划:计划通过在设计初期嵌入物理实现信息(如利用IP-XACT描述)并结合特定工艺及工具链的参数与统计模型,生成可靠的初始布局规划,以最小化流程运行失败的可能性,缩短设计周期。 * SoC-封装-电路板协同设计:旨在开发能够跨SoC、封装(Package)和印刷电路板(PCB)领域协同优化的布局生成流程。计划开发一个统一的规划工具(UPT)来协调三个领域的数据并实现快速迭代,并开发开源封装布线和PCB布局布线工具。

观点六:项目初期获得的“经验教训”揭示了建立开源EDA生态所面临的文化、期望和结构性障碍。 在项目启动九个月后,团队总结了几点关键教训: 1. 需要正确的心态:EDA和IC设计生态系统需要拥抱开源作为一种早该发生的文化变革。项目参与者签署了“这不是寻常业务”的协议,明确衡量标准是“可流片、宽松许可的工作代码,而非论文”。 2. 项目期望必须一致:免费开源工具的用户期望往往受到功能强大的商业EDA工具(凝聚数百亿美元研发)经验的影响,常要求工具具备“穷人版Innovus”的功能或与商业工具进行性能-功耗-面积(PPA)对标。但这与OpenRoad旨在实现“无人干预”、“24小时周转”的自驱动工具目标存在矛盾,需要更强的“产品管理”来协调。 3. 必须认识并解决自由开源软件(FOSS)EDA生态的基本结构性障碍: * 工艺支持障碍:大学非晶圆厂认证实体,无法读取加密的工艺设计套件数据,只能通过一次性“校准”来规避,这需要依赖拥有商业工具和工艺许可的客户。 * 签核工具缺失:由于IDEA项目不开发“黄金”签核工具(物理验证、提取、STA等),OpenRoad工具必须采用保守的设计余量来保证“构造即正确”,这使得达到项目设定的PPA目标更具挑战性。 * 测试与协作障碍:大学作为非商业实体,在接收错误报告时往往缺乏可共享的测试用例(由于缺乏共同的保密协议)。正常的商业保密协议常因相互排斥条款、出口管制政策、大学和学生的“非受信”性质等因素而在大学受阻。同时,也缺乏既具有先进生产节点复杂度、又对商业和非商业实体都开放的公共工艺设计套件。

论文的意义与价值 本文系统性地介绍了OpenRoad这一雄心勃勃的开源EDA项目,具有多重重要意义: * 技术蓝图与进展展示:它清晰地勾勒了一个完整的开源数字设计流程的技术架构,详细说明了各个工具模块的功能、创新点及相互集成方式,为学术界和工业界了解开源EDA的发展现状和潜力提供了权威参考。 * 生态建设宣言:文章超越了单纯的技术描述,深刻探讨了建设开源EDA生态所必需的文化转变、期望管理和需要克服的实质性障碍(如工艺获取、签核标准、知识产权共享)。这些“经验教训”对于任何试图在EDA领域推动开源协作的后续努力都具有极高的警示和借鉴价值。 * 推动领域民主化:OpenRoad项目的最终目标是降低硬件设计的门槛。通过提供一套功能完整、自动化程度高、可自由获取和修改的工具链,该项目有望赋能更多的初创公司、研究人员和教育机构,激发硬件创新,从而可能改变半导体设计行业高度集中、门槛森严的现状。 * 促进学术与工业合作新模式:该项目本身就是一次大规模的学术-产业合作实践。它试图建立一种以交付可工作的、产业可用的代码为核心目标的新研发范式,挑战了传统学术界以论文为首要产出的文化,为未来EDA领域的协作研究提供了新的模型。

这篇论文不仅是一份项目进度报告,更是一份关于如何通过开源和自动化来重塑芯片设计未来的宣言书。它既展示了令人振奋的技术进展,也坦诚地揭示了前进道路上的重重困难,为相关领域的研究者、工程师和决策者提供了宝贵的 insights。

上述解读依据用户上传的学术文献,如有不准确或可能侵权之处请联系本站站长:admin@fmread.com