最近两周我一直在折腾一件事:把一块带电源的STM32最小系统板,完全交给GPT-6 Astra去画硬件原理图和PCB,最后真的拿去打了样,回来上电还能跑。这个项目本身不复杂,一块MP1584降压电源加上STM32F103C8T6核心,外围一堆电阻电容,但正因为不复杂,刚好能看出GPT-6 Astra在真实硬件设计链路里到底能扛多少活、会在哪里翻车、哪些环节省时间、哪些环节反而添乱。
先说结论:原理图阶段AI能给出很完整的连接关系和器件选型思路,生成网表的速度极快,但直接拿来用会踩不少坑;PCB阶段它没法像人类一样在EDA里拖线画铜,但能给出相当靠谱的叠层、线宽、布局和规则建议,相当于一个随时在线的硬件顾问。这篇文章我把整个实测过程、对话思路、数据导入方式、以及打样回来的板子问题一次性说清楚,想尝鲜AI辅助硬件设计的工程师,或者刚开始学原理图和PCB、想找一条新路子的小白,都可以参考。
1. 实测前准备与整体设计思路
1.1 画硬件原理图这件事,AI到底能在哪一环起作用
在真正动手之前,我先梳理了一下硬件设计流程,想清楚AI可以切入哪些环节。一个完整的硬件设计大致经过:需求拆解、器件选型、原理图绘制、网表生成、PCB叠层规划、布局、布线、DRC检查、Gerber导出、打样。这里面有一类工作是图形化的,比如在画布上摆器件、画连线、拖铜皮,这类AI很难直接操作,除非通过脚本接口驱动EDA;另一类是逻辑化的,比如理清引脚连接、计算电源树、查datasheet参数、写规则约束,这正是大语言模型的强项。
GPT-6 Astra相比之前的模型,在长上下文和代码生成上更强,能把一份几十页的芯片手册要点提取出来,也能一次性生成几百行Python脚本去构建原理图数据。所以我的测试策略是"逻辑交给AI,图形交给EDA,人负责检查和兜底"。这样既避开了它的短板,又能把它的效率发挥出来。
1.2 核心信号链项目选型与工具链
为了测试有代表性又不至于失控,我选了一个很小的项目:USB 5V输入,MP1584降压输出5V,再经AMS1117-3.3输出3.3V,给一片STM32F103C8T6供电,同时引出SWD下载口和一个USART串口。这个板子的特点是电源树上有多级电压,有开关电源和线性电源的混合,还有MCU最小系统,属于非常经典的入门级硬件工程对象。
工具链上我用的是KiCad 8.0加Python脚本,因为KiCad的PCB编辑器和原理图编辑器都支持脚本化操作,文件格式开放,方便验证AI输出的数据结构。如果你用的是Altium Designer或者Cadence Allegro,思路一样,只是导入网表的方式不同。我后面会专门讲不同EDA工具下如何把AI生成的东西接进去。
1.3 哪些环节AI能接管,哪些必须人工兜底
我把整个流程拆成了一张分工表,方便后续复盘时对照。原理图阶段的器件选型、电源树计算、连接网络表生成这三件事,AI能做出七成以上;ERC检查之后的错误修正,大概能给出方向,但具体图形操作还得人工。PCB阶段的叠层设计、阻抗计算、布线规则建议,AI输出质量相当高;但实际布线的路径选择、散热过孔摆放、丝印调整这些细节,仍然以人工为主。
| 设计环节 | AI参与程度 | 人工介入重点 |
|---|---|---|
| 器件选型与BOM | 高,能快速比对型号与参数 | 核对库存、价格、供货 |
| 电源树设计 | 高,计算和推演能力强 | 确认纹波、效率指标 |
| 原理图符号与连线 | 中,能生成脚本和网表 | 图形化整理与排版 |
| PCB叠层与规则 | 高,建议专业 | 按板厂工艺调整 |
| 布局与布线 | 低,无法真实拖线 | 主要耗时的部分 |
| DRC与Gerber | 中,能预判规则冲突 | 生产前最终确认 |
这样分工下来,整个测试路径就很清晰了:先用对话方式让GPT-6 Astra理清系统框图,再让它输出原理图所需的网表数据和Python脚本,接着把脚本跑起来生成原理图,人工修正后转成PCB网表,然后让AI给出PCB布局布线的约束,人工按其建议完成最终设计,导出Gerber后打样验证。
2. 原理图绘制实操:让AI生成连接关系与元器件网络
2.1 用对话方式梳理硬件框图,比预想中顺畅
第一步我没有直接让它画原理图,而是先跟它确认整个系统的功能和模块划分。我给的原始需求只有一句话:"做一个USB供电的STM32F103C8T6最小系统板,带MP1584降压和AMS1117稳压,预留SWD和USART。"GPT-6 Astra很快给出了模块拆分:电源输入级、降压级、线性稳压级、MCU核心、调试接口、复位电路、启动配置,然后自动列出了每个模块的关键器件和预估参数。
这个环节它表现很好,因为我没给它任何额外的参考文档,它凭借对常见器件和典型应用的记忆,给出了一个相当标准的架构。特别值得一提的是它对MP1584的反馈网络计算很准确,分压电阻选了49.9k和16.2k,对应输出5V,这个我后来核对了数据手册,计算是对的。
2.2 生成原理图数据的三种路径,我实测了两条
AI没法直接打开KiCad画图,但它可以通过三种方式把原理图信息"翻译"成EDA能用的数据。第一种是输出标准的EDA网表文件,比如KiCad的Netlist格式或者Altium的ASCII网表;第二种是输出Python脚本,调用KiCad的脚本接口直接构建原理图;第三种是输出结构化的连接表,比如CSV或者JSON,再由人转成网表。
我实测下来,最顺的是第二种加第三种结合:让GPT-6 Astra生成一份连接网络表JSON,同时让它生成一段Python脚本,把这份JSON解析并调用KiCad的eeschema脚本接口生成原理图文件。第一次跑的时候脚本报错不少,大部分是API版本不匹配,因为GPT-6 Astra的知识库里可能混着不同版本的KiCad接口写法。我反馈报错信息给它,它会自己调整代码,来回改了三轮才跑通过。
2.3 我给GPT-6 Astra的核心Prompt示例
这里分享一个比较关键的Prompt,适合让AI输出结构化原理图数据时使用。我在测试中反复调整后,下面的写法效果最稳定:
请为以下系统生成一份可用于KiCad导入的原理图连接数据: 系统:USB 5V输入,MP1584降压到5V,AMS1117-3.3稳压到3.3V,STM32F103C8T6最小系统,带SWD调试接口和USART1串口。 要求: 1. 列出所有元器件,包含位号、型号、封装、关键参数; 2. 按网络名称列出所有引脚连接关系,格式为:[网络名, 位号.引脚号, 位号.引脚号]; 3. 单独给出一个"电源树"网络列表,标注每路电压和最大电流; 4. 输出为JSON格式,网络名使用可读的英文命名; 5. 最后检查一遍是否有漏连(特别是MCU的VDD、VDDA、VSS、BOOT0引脚)。这个Prompt的特点是把需求拆得非常明确:先要器件清单,再要连接关系,再要电源树,同时要求AI自我检查。实际生成的数据里,器件清单有32个元件,网络连接表有89条连接,最让我惊喜的是它自动把MCU的VDDA和VREF+都连到了3.3V,并且加上了0.1uF滤波电容,这些都是新手特别容易漏的地方。
2.4 生成结果检查:器件选型、电源树、去耦电容
AI输出不等于可以闭眼用,我按顺序做了三轮检查。第一轮查器件选型,发现它给AMS1117选的封装是SOT-89,而我手头库存和常用的是SOT-223,封装不一致会导致后面PCB封装出错,这个必须人工改。第二轮查电源树,MP1584输入输出电容容值给的是22uF和47uF,我核对了手册推荐的典型值,基本一致;但输入端TVS管型号给的有点奇怪,我换成了更通用的SMBJ5.0A。
第三轮查去耦电容,这是AI比较擅长的部分。它给每个MCU电源引脚都配了一颗0.1uF陶瓷电容,并且在电源入口处预留了一颗10uF的钽电容,整体思路很标准。唯一的问题是它把所有电容的耐压都写了25V,在3.3V电源轨上完全没必要,反而占空间、增加成本,我统一改成了10V或16V。这一步本质是"学会审阅AI的作业",后面所有环节我都保持了同样的态度。
3. PCB设计实操:从网表到布局布线
3.1 原理图转网表,再导入PCB的两种路径
原理图数据确认之后,下一步就是把连接关系送进PCB编辑器。KiCad里正常流程是:原理图生成网表,然后在PCB编辑器中加载网表,把元件分散到板框内。由于我的原理图是脚本生成的,网表也需要通过脚本生成。我让GPT-6 Astra写了一段Python脚本,把JSON连接表转换成KiCad的.net网表文件,然后在KiCad里执行"载入网表",全部元件一次性进入PCB编辑器,这一步非常解压。
如果你是Altium Designer用户,路径也差不多。GPT-6 Astra可以输出现成的Altium ASCII网表文件,或者直接生成一个CSV格式的BOM和连接表,你在AD里通过"Import Changes"来接收。Cadence Allegro则可以用第三方工具把CSV转成网表再导入。无论哪种工具,核心都是让AI输出结构化、无歧义的文本数据,EDA工具的分工就是把这些文本变成图形。
3.2 我让AI给出的PCB叠层设计与阻抗建议
这个项目只用到双面板,叠层方面没有太多悬念,但GPT-6 Astra给的建议依然值得参考。它推荐的叠层结构是:顶层铺信号和电源,底层做完整地平面,板厚1.6mm,铜厚1oz,表面处理选沉金。它还特别强调了开关电源部分的地平面完整性,建议把MP1584的输入地和输出地在底层通过一个小点连接,避免开关电流直接穿过MCU的地平面区域。
走线宽度方面,AI给出的建议是:电源主线按2A余量设计,线宽0.5mm以上;信号线按0.25mm;底层铺铜作为GND。它还给出了一个简化计算:1oz铜厚、10℃温升下,1A电流大约需要0.3mm线宽。这个和经验值完全吻合,说明它的知识库这块很扎实。
3.3 布局思路与布线规则,AI给的方案能落地
布局阶段,AI给的建议是:输入USB座放板子左侧,MP1584和电感放板子左中区域,AMS1117放右上角,STM32放中间偏右,SWD和串口接口放板边。这个布局方案和我自己会做的设计高度一致,核心思路是电源部分与数字部分分开,走线时开关电流路径尽量短粗,MCU远离电感,避免磁场干扰。
我把AI给的规则逐一落进了KiCad的设计规则里:最小线宽0.25mm,最小间距0.2mm,过孔外径0.6mm、孔径0.3mm,电源网络线宽加粗到0.5mm。实际布线时我按照"先电源、再GND、后信号"的顺序,底层大面积铺铜做地,顶层尽量走信号和电源。整块板子最后尺寸控制在52mmx38mm,和电路板厂家的小批量打样尺寸完全匹配。
3.4 生成Gerber前的DRC检查要点
布线完成后进入DRC检查,这一环节AI同样能提供专业视角。我让GPT-6 Astra帮我列出这个板子最容易出现的DRC错误类型,它给出的清单很精准:开关电源部分的最小电气间距、过孔到焊盘的间距、丝印压焊盘、以及电感下方是否有与其竞争的走线。我按这些点逐一排查,确实发现两处丝印和焊盘重叠,调整后DRC干净通过。
导出Gerber之前,我又根据板厂的要求做了一遍工艺确认。板厚1.6mm,铜厚1oz,最小线宽线距大于板厂能力的6mil/6mil,所有过孔有绿油覆盖,沉金表面处理,板子外形无开槽。我导出的Gerber文件用KiCad自带的查看器做了一遍预览,确认每层内容完整,然后压缩打包发给板厂。三天后收到打样,这是整个测试里最让人紧张的时刻——毕竟这是AI参与设计的产物。
4. 实测效果与性能表现记录
4.1 成品板子长什么样,上电表现如何
打样回来的板子第一眼看上去像模像样,丝印清晰,焊盘平整,底层大面积铺铜也没出什么花屏问题。我先用万用表测了电源入口的阻抗,确认没有短路后上电,USB接入5V,板子上的电源指示灯亮起。用示波器量MP1584输出5V,纹波大约在30mV左右,在可接受范围内;AMS1117输出3.3V非常稳定,电压误差小于1%。
接着测试程序,ST-Link连接SWD接口,烧录了一个LED闪烁程序,MCU正常工作,串口打印输出也完全正常。整个最小系统没有任何飞线、无虚焊、没有异常发热。这块板子从数据生成到打样回来,是一条完整走通的链路,对我来说这个结果已经超出预期了。
4.2 和纯人工设计相比,差在哪、好在哪
我把这次AI辅助设计和以往纯人工画板做了个对比,差异非常明显。时间上,以前这种板子从画原理图到导出Gerber,我大概需要一天多;这次AI辅助下,原理图环节只花了半天,布局布线花了半天多,总时长缩短了将近一半。但这个对比要打个折,因为我省掉的是"查资料、翻手册、算参数"的时间,而不是拖线的时间——布线手速并没有因为AI变快。
质量上,AI给出的器件选型和参数计算相当可靠,尤其是电源树和去耦电容部分,几乎没有返工。真正拖后腿的是它偶尔"一本正经地胡说八道",比如给了一个不存在的封装后缀,或者某个引脚编号和实际芯片不符,这种错误如果在图形化操作时不仔细核对,就会一路带进PCB,到最后打样才发现。
4.3 我顺手统计了这次项目的AI幻觉频率
为了给想入坑的人一个参考,我统计了整个过程中GPT-6 Astra的错误情况。原理图阶段大约给出32个元器件、89条连接,其中有问题的型号2个、封装不匹配置2处、连接表遗漏1条,整体错误率在5%左右。PCB阶段它给出的是建议性内容,没有直接生成图形数据,错误主要集中在过孔参数偏保守、部分规则过于苛刻,比如它建议全部电源过孔都加阵列,这在低功率板子里完全没必要。
这些错误有一个共同特点:它们不是"逻辑错误",而更像"记忆偏差"。网络名、核心电路连接、电源树计算这些逻辑推理类内容几乎没有错,说明GPT-6 Astra的推理能力用在工程逻辑上确实可靠;但具体元器件的封装代号、引脚号这类需要"记忆"的信息,它偶尔会串。我的应对方法是在Prompt里要求它对每个器件标注"型号+封装+手册来源说明",哪怕只是说"典型封装",也能让我多一层判断。
5. 常见问题与排查技巧实录
5.1 器件引脚定义和封装不一致,怎么快速定位
第一轮原理图生成时,AI把MP1584的引脚号搞错了,它把EN引脚和SS引脚编号对调了。这个错误在原理图符号上看不出来,因为MP1584在软件里画的是一个矩形框,引脚有名字,但如果不核对封装和实际芯片,PCB做出来就是废的。解决方案是让AI在输出器件清单时,同时给出每个器件的引脚功能表,最好是"引脚号、引脚名、功能说明"这种格式,然后挑几个关键器件去跟手册核对一遍。
5.2 电源回路的接地位置有讲究
第一次PCB设计里,我把MP1584的输入电容、输出电容和MCU的GND都直接连到了同一个底层地平面,结果测试时发现MCU区域的3.3V纹波明显偏大。GPT-6 Astra在事后的复盘里给了一个精准的建议:开关电源的地平面应该划分出"功率地"和"信号地",在某个单点汇合。后来我在底层地用一块0欧电阻桥接的方式把功率地和信号地分开,纹波立刻从50mV降到了30mV左右。
| 问题现象 | 可能原因 | 排查与解决 |
|---|---|---|
| 3.3V纹波偏大 | 功率地回流干扰信号地 | 区分功率地与信号地,单点汇合 |
| 丝印模糊 | 位号压到焊盘或线宽过小 | 丝印远离焊盘,位号字高不小于0.8mm |
| DRC反复报错 | 导入的线宽规则不合理 | 按板厂工艺重新设置最小线宽线距 |
| 元件封装不匹配 | AI记忆偏差或手动选错库 | 核对引脚功能表与datasheet |
| 电感下方有走线 | 布局阶段忽略了电磁干扰 | 将走线绕开电感正下方区域 |
5.3 DRC报错检查不出来,但上电就出问题
还有一类问题DRC完全检查不出来,比如"某个引脚实际连到了错误的网络"但逻辑上这两个网络都是GND,ERC不会报错。我在第二次改版时遇到过类似问题:一颗去耦电容的GND引脚被AI生成的网络表连到了功率地,而芯片的GND引脚连的是信号地,从原理图看都是"地"字结尾,不仔细看网络名发现不了。排查方法是让AI在生成网络表时把每种地单独命名,比如GND_PWR和GND_AGND,命名越精确越不容易出错。
5.4 AI建议的工艺参数,别全信,要和板厂确认
GPT-6 Astra建议的PCB工艺参数整体专业,但个别地方偏理论化。比如它建议最小线宽设为0.15mm,虽然现在的主流板厂都能做,但0.15mm的线宽对良率和成本都有影响,对于这种小信号板子毫无必要。我最后是按立创EDA的常规工艺来设置的:最小线宽6mil(约0.15mm),最小间距6mil,最小孔径0.3mm,板厚1.6mm。这些参数符合主流板厂的能力范围,生产时不会额外加钱,良率也高。
6. 这次实测暴露的边界与后续扩展方向
6.1 GPT-6 Astra现阶段做不了什么
经过一轮完整测试,我对GPT-6 Astra在硬件设计领域的能力边界有了很清晰的认知。它做不了真正意义上的"自动布局布线",因为它没有图像生成能力去直接操作PCB编辑器,也不能感知一个图形界面里的实时状态。即便未来模型能力增强,要让它像人一样拖线、调整铜皮、盯着DRC列表一项项去改,也需要EDA厂商在数据接口和AI代理层面做大量配合。
另一个短板是它缺乏"板厂视角"。它能告诉你IPC标准里线宽电流怎么算,但不知道具体哪家板厂最爱卡的工艺参数是什么。这种经验性知识它只能给主流建议,真正的项目实战里,工艺参数必须询问你的板厂或者参考历史订单,不能完全听AI的。
6.2 这个方向后续还可以怎么扩展
尽管有边界,这次实测让我看到了一个很实用的方向:把GPT-6 Astra当作"硬件设计的前端分析引擎"。它的长上下文能力非常适合做手册解析、参数比对、方案对比,我可以把五六颗芯片的datasheet全文扔给它,让它提取关键电气参数并输出对比表,这在选型阶段能省出大量时间。
我也在尝试让它在PCB布局布线时输出一段"规则约束脚本",直接转换成KiCad的DRC规则文件。这次实测里它已经能给出合理的数值建议,如果真的能把规则文件自动化生成,那AI辅助硬件设计的最后一公里就打通了一大半。下一步我打算拿一块带DDR的六层板做压力测试,看看它在更复杂的叠层和阻抗控制面前表现如何,到时候再来分享结果。
回到这次的板子本身,它现在已经变成我桌面上一个调试工具板,每次接上USB看到串口打出正常数据的时候,我还是会觉得这个过程很有意思:一个没有图形界面、不能直接画线的AI,靠着一层一层的数据转换和规则输出,最后真的帮我把一块能用的电路板从想法变成了实物。如果你想尝试这个路线,我唯一能给你的建议就是:把AI当成一个懂行但偶尔记性不好的老工程师,它的每一句输出你都要保留核对的权利,尤其在封装、引脚、工艺参数这些"记性活"上,人工把关不能省。