首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >当Codex接管Vivado

当Codex接管Vivado

作者头像
南泉青年
发布2026-06-08 14:27:42
发布2026-06-08 14:27:42
50
举报

之前聊过,任何EDA软件只要支持tcl或类似的脚本,就完全可以被AI Agent操控,就可以蹭上AI时代的快车秒去老登味。允许工程师先扔掉鼠标

于是,我谋划了一件事:让Codex完全接管我装有 Vivado的电脑,纯自动化运行,不干预,看看它最终能把 FPGA 的开发任务完成到什么程度。

怎么做

我把Codex授予最高管理员权限,同时把FPGA开发板的Jtag调试线接到电脑上。然后在Codex工作区里放了一份开发板原理图 。

随后我就要求 Codex 基于这块板子,做一个面向初学者的 FPGA 开发教程(以word 形式给出)。每章教程必须对应一个实际 Vivado 工程,并且每个工程都要在板子上验证过。

点击开始后,我就放任不管了。3个多小时后,Codex交出了答案。

Image
Image

结果比我预期的好很多,它孜孜不倦,把工程文件,仿真文件,在线调试,写文档全部完成了。如下表格里罗列了 Codex 输出的最终成果。

成果

说明

Word

基于 Arty C.1 的初学者 FPGA 应用设计教程

Vivado 工程

GPIO、计数闪灯、RGB PWM、消抖 FSM、UART、Pmod GPIO

6 个 bitstream

全部由 Vivado 2019.1 成功生成,并通过 JTAG 下载

硬件验证记录

识别 xc7a35t_0,6 个 PROGRAM OK

UART 实测

COM4 发送 35 41 5A,回显 35 41 5A

附件包

源码、仿真、约束、工程、bitstream、报告和 Word 教程

我把这些内容都打开看了下,文档的排版、逻辑、内容甚至好过部分开发板厂商。且每一个vivado工程都是经过功能验证的、还提供了编译好的bit文件。

日志上看,Codex 的行为流程完全就和人一样:先写代码,再调试,最后写报告。便于展示,我把他的行为脉络总结如下。

Image
Image

具体:

第一步:理解任务

Codex 首先从 PDF 原理图里提取了文本,确认这块板是 Digilent Arty C.1,FPGA 是 XC7A35T-L1CSG324I。随后它把教程要用到的板载资源整理出来。

我觉得这里最有意思的一点是,它并没有一上来就把 DDR3、以太网、MicroBlaze 之类的大系统塞进教程。它判断初学者第一阶段更应该从小而完整的应用开始:就先把 GPIO、计数、PWM、状态机、UART 这些基本功跑通,再进入复杂 IP。这个判断很像一个有经验工程师会做的取舍。

第二步:建 Vivado 工程

确定板卡资源后,Codex 开始生成工程文件。它写了通用 XDC 约束,把 RTL 端口和 Arty C.1 的真实引脚对应起来;又给每个 demo 建了 src/top.v、sim/tb_top.v、README 和 Vivado 工程生成脚本。个人感觉,这清晰的层级感超越了绝大多数的FPGA工程师。

Demo

主题

初学者能学到什么

01_gpio_led_switch

GPIO

开关、按键、LED、组合逻辑和引脚约束

02_counter_blink

计数闪灯

100 MHz 时钟、寄存器、计数器、复位和暂停

03_rgb_pwm

RGB PWM

占空比、亮度控制、RGB 混色和呼吸效果

04_debounce_fsm

按键消抖 + FSM

同步、消抖、边沿检测和状态机

05_uart_echo

UART 回显

115200 8N1 串口接收、发送和缓冲

06_pmod_gpio

Pmod GPIO

外部扩展口、跑马灯和开关/按键镜像

这一步的成果就是一套可以打开、可以验证的Vivado工程包。每个 demo 都有 Vivado .xpr,生成好的 bitstream,还有 timing 和 utilization 报告。可谓面面俱到。

Image
Image

第三步:调试

让人觉得它“有点东西”的地方,应该是它会自己找办法解决遇到的问题

最开始它用 project flow 批量跑综合实现,可Vivado 在 run launcher 处报了一个 Windows 下的 Access denied错误。但Codex 没有卡住,也没有让我自己去查,而是切换到更稳的 in-memory direct flow:直接 read_verilog、synth_design、opt_design、place_design、route_design、write_bitstream。

这个问题即便让我去解决也不一定能搞定,因为这方案我就没接触过。反而Codex调整很工程化。它保留了 .xpr 让人能在 GUI 里打开,又用 direct flow 负责稳定地产出 bitstream。

第四步:硬件调试

生成 bitstream 后,Codex 调用 Vivado hardware manager开始调试板子了。它启动 hw_server,把 6 个 bitstream 逐个下载到 FPGA。直到脚本检测到每个 demo 最后都返回了 PROGRAM OK。

我觉得这一步非常关键,因为这属于AI把整个硬件链路调试跑通了,大部分的AI Coding其实只是停留在代码层面压根没有和硬件进行交互。

毕竟对 FPGA 来说,能综合只是第一层,能生成 bitstream 是第二层,能通过 JTAG 下载到真实芯片才是真正接近工程闭环。

Image
Image

第五步:迭代

我觉得最精彩的小插曲发生在调试 UART demo。

Codex第一次上电验证并不成功。它用 COM4 做了串口测试,连续发送 35 41 5A。结果回显只收到 35 5A,中间的 41 丢了。

但Codex 根据这个现象判断:顶层在 TX busy 时直接丢掉了新收到的字节。于是它给 UART 顶层补了一个 1 字节 pending buffer,更新 testbench,重新仿真连续 3 字节,重新生成 bitstream,重新下载,再次用 COM4 测试。第二次结果是 TX=35 41 5A,RX=35 41 5A。成功了。

Image
Image

这事挺牛逼的。大家知道,Verilog的时序问题AI经常会搞不定,而且Deepseek chatgpt这类聊天式AI 还难以将嵌入式代码应用到硬件上去进行功能验证。所以谁解决了 “代码设计-->硬件验证-->迭代”的这个回环流程,谁就是解决了AI难以给嵌入式开发提效的问题。显然以Codex为代表的Agent方案目前是最佳答案。

第六步:成果

工程跑通之后,Codex 把整个成果整理成一份面向初学者的 Word 教程。教程没有泛泛讲 FPGA,而是围绕这块开发板真实可操作的 6 个例子展开:每个例子讲学习目标、关键概念、实验步骤、文件入口和拓展练习。

最后,它还把附件包整理出来做了说明:Word 教程、6 个 Vivado 工程、通用 XDC、脚本、bitstream、报告和硬件下载记录。

Image
Image

我把完整的成功都打包上传到了云盘,感兴趣的后台私信“Codex"获取围观。

感想

这次的尝试倒是让我想起一位前同事。因为身体原因,他有段时间居家办公。我们把他在公司的电脑开着机,连好硬件板卡,再给他开通远程权限。于是,他隔着一根网线写代码、调试硬件,仿佛人就在工位上。

只不过这一次,网线另一头好像不再是人,而是 Codex。传统的开发模式已经变了。

当然,嵌入式开发由于距离前端开发比较远,对AI coding的能力边界还不敏感。我在粉丝群了解了下,大部分人用AI还停留在“帮我写一段 Verilog”或者“帮我解释一段约束”的程度。

但Codex 接管 Vivado的案例可以看到,人类给个FPGA需求,AI 已经可以全自动输出可落地的工程文件了。包括:设计代码、创建 vivado 工程、仿真、和实际电路板进行调试、生成可执行的文件、输出文档。涉及到流程和规范方面,AI 甚至做得比大部分人还好。

当然AI 还存在的一些瑕疵,但能力边界已经展示,剩下的就交给时间和 token 吧。

彩蛋

实际上,这篇文章差点也是Codex帮我完成的。Codex在完成了FPGA教程的编写后,我直接让它把这件事记录下来总结成了一篇文章。

它写的其实真的挺不错,吩咐的内容和情绪都表达出来了。但我想在AI味的时代洪流里留点人味,产出点不一样的。于是重写了大部分文字。

Image
Image
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 坏雷达研究所 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 之前聊过,任何EDA软件只要支持tcl或类似的脚本,就完全可以被AI Agent操控,就可以蹭上AI时代的快车秒去老登味。允许工程师先扔掉鼠标
  • 怎么做
  • 第一步:理解任务
  • 第二步:建 Vivado 工程
  • 第三步:调试
  • 第四步:硬件调试
  • 第五步:迭代
  • 第六步:成果
  • 感想
  • 彩蛋
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档