当前位置: 首页 > news >正文

训练数据不够?直接让AI学电路,绕过RTL这一层

芯片AI领域有一个绕不开的困境:公开的Verilog代码太少了。

软件领域的AI能做到今天这个水平,很大程度上靠的是GitHub上海量的开源代码。但芯片不一样——大量优质的RTL设计藏在公司内网里,根本不会公开。开源的那些,质量参差不齐,覆盖的场景也有限。

数据瓶颈卡在这里,直接影响了AI在RTL生成上能走多远。

所以有人开始想:既然RTL数据不够,能不能换个角度,直接从电路层面训练?


反向的思路是怎么来的

正向路径大家都熟悉:功能描述 → RTL代码 → 网表 → 版图。

有人提出,既然综合工具已经在做"RTL到网表"的映射,这个映射过程本身就包含大量结构化的知识。那能不能把这一段知识直接让AI学走,跳过RTL,建立功能意图到电路结构的直接映射

# 传统路径: spec → [工程师写RTL] → verilog → [综合工具] → netlist # 反向电路训练的设想: 大量已有netlist → [学习电路结构模式] → 模型 spec → [模型直接生成] → 电路结构

网表本身就是一张图,节点是逻辑门,边是连线。图神经网络处理这种结构天然有优势,学术界已经有一些工作在往这个方向走了。


往下想,问题开始变多

表达空间的问题先不说,光是"同一个功能有几十种门级实现"这一条,就够让人头疼很久。

更绕的是验证。生成RTL之后,仿真、形式验证这条链还算完整。但直接生成电路结构,怎么快速判断它的功能对不对?验证链路得重新搭,这个成本放在工程实践里不小。

还有时序。电路不只是逻辑正确就够了,还得在目标工艺下时序收敛。这个约束在RTL层是隐含处理的,到了电路层就得显式面对,模型怎么感知这件事,目前还没有特别清晰的答案。

这三个问题叠在一起,方向的可行性就开始变得模糊了。


但问题本身很有意思

如果不急着找答案,只是顺着这个思路往下想——

电路逆向这件事,学术界已经做了不少。给定一个网表,推断它实现的是什么功能。这和"给定功能生成电路"其实是同一个问题的两面。研究逆向的方法论,能不能反过来用?

再往外扩一点,EDA工具里的技术映射、工艺映射,这些环节本来就有很强的模式性——标准单元库就那么多,常用的电路结构就那么几类,规律是存在的。AI在这里能学到什么,还是个开放的问题。

甚至可以想得更野一点:如果AI能直接在流片验证过的数据上训练,跳过所有中间表示,直接从"功能"到"可流片的东西",这条路在物理上有没有可能?

没人知道答案,但这个问题本身值得放在那里。


数据从哪里来,也是个开放的问题

反向电路训练的前提是有足够多的电路数据。

网表数据比RTL更难获取,这是现实。但也有另一种可能:用综合工具批量生成

从已有的RTL出发,跑综合,得到大量网表,再用这些网表做训练数据。这个路径在技术上是通的,问题是生成出来的数据质量够不够、多样性够不够、能不能覆盖真实设计里的复杂场景。

还有人在想另一个方向:直接从芯片的物理版图反推。版图信息在某些渠道是可以获取的,从版图到电路结构,这条逆向路径本来是芯片安全领域研究的课题,但用来做训练数据,思路上没有硬伤。

这些想法都还在"有没有可能"的阶段,没有一个已经形成完整的工程方案。


这件事打开了一些更大的问题

如果AI能在电路层面工作,EDA工具本身会变成什么?

综合、布局布线、时序优化,这些流程现在还是规则驱动为主,AI能渗透进去多深?是辅助调参,还是有一天能重写整个优化逻辑?

工艺迭代这么快,每换一个节点,EDA工具都要重新适配大量规则。如果AI能从数据里学到工艺的特性,这个适配过程能不能变得更自动化?

这些问题现在都没有答案,甚至还没到能严肃讨论的阶段。但它们确实是从"反向电路训练"这个思路自然延伸出来的,值得放在脑子里留着。

技术的走向,有时候就是从一个看起来不靠谱的问题开始的。

http://www.jsqmd.com/news/552311/

相关文章:

  • Go WebSocket 实现实时通信
  • BilibiliDown终极使用指南:如何轻松下载B站视频和批量收藏
  • 深入解析HRPWM中的MEP技术:实现微秒级PWM精度控制
  • 突破语言壁垒:XUnity.AutoTranslator让Unity游戏翻译不再复杂
  • 泛微 weaver E9 前端开发实战:从建模到 ecode 组件的全流程解析
  • C++的std--expected错误处理提案与现有异常机制的对比
  • 企业网管必看:华为交换机双协议登录避坑指南(含Telnet与SSH共存配置)
  • ContextMenuManager:高效管理Windows右键菜单的全方案
  • C++ 内存管理的黄金法则
  • 别再让ESP32的Core 0累趴下!手把手教你用xTaskCreatePinnedToCore平衡双核负载
  • C++ STL 容器内存分配优化
  • YOLOv8知识蒸馏实战:用BCKD和LD在自制数据集上分别提点1.63%和1.69%的保姆级教程
  • OpenClaw性能调优:GLM-4.7-Flash响应速度提升30%实战
  • 开源工具Umi-OCR:PDF处理与文字提取的高效解决方案
  • 5分钟掌握QRemeshify:Blender四边形网格重构的终极解决方案
  • 别再手动写ZPL了!用C#和斑马官方SDK搞定ZT410 RFID打印机(附中文乱码解决方案)
  • 技术民主化:OpCore Simplify让黑苹果EFI配置实现零门槛
  • vLLM PD分离架构在昇腾910B上的性能实测:对比单卡部署,吞吐量到底提升了多少?
  • 成本控制实战:OpenClaw+GLM-4.7-Flash任务级Token监控
  • 大模型入门指南:收藏这份小白学习资源,轻松掌握AI新趋势!
  • 革命性KVM管理工具Kimchi:HTML5界面快速部署虚拟机完整指南
  • C语言实战编程题:从入门到精通的经典案例解析
  • 别只当开关用!挖掘ESP32 Touch Pin的潜力:做个简易电容式液位传感器
  • 差分隐私配置紧急升级通知:OpenMined新补丁已修复Opacus v1.2.3中未公开的δ-松弛绕过漏洞(仅限前500名开发者获取配置迁移清单)
  • python 现代化包管理工具uv安装和使用
  • 3分钟搞定专业录屏:QuickRecorder让你的macOS录制效率翻倍
  • YOLO12目标检测模型在自动驾驶中的实时应用
  • Windows/Linux双系统用户必备:5分钟掌握netstat和ss命令查端口技巧
  • 单细胞测序数据读取实战指南:从CellRanger到Seurat对象
  • 3个革命性方法:Draw-io-ECE如何让电子工程师的电路设计效率彻底解决