本文始于2026年9月,主要记录使用 AI 写脚本的一些调试过程和一些感受。文末有对应脚本分享。
最近经常看到很多关于 AI 和 Cadence Virtuoso 交互的文章,也趁这段空余时间,尝试用 AI 在 Virtuoso 里写了一个测量版图 Metal 长度和电阻的脚本。
脚本目标:选中一段 Metal,算出长度,再根据选择的任意两点距离估算出电阻。
(1)需求和调试过程
构思了下脚本的初步功能和对应的GUI,便让 AI 根据我的初步想法写了一段提示词:
初步想法:
AI 完成的提示词。
在此提示词基础上增加一些:代码完成后,请以 mylib 库里 test 里的 layout view,进行验证。保证没问题 再给出。然后就直接丢给 Codex 了。
大约过了 20 分钟,Codex 就把脚本写了出来,并自行完成了初步验证。
手动验证:在对应的layout中画了几条线,使用脚本,发现该脚本只能实现有 net 的metal的测量,并且即使相同 net 没有物理相连,测量也一并算入;另外,没有 net 的 metal 也无法测量。
很明显,这两点需要修复。第一轮修改:给出修改提示词,顺便增加如有被测的metal 有net 那么在后面显示对应的net 名称。
第一轮验证:似乎看起来都没问题了。
于是,重新画两段 metal 带via ,进行验证,发现不管选择 current mode 还是 whole mode ,测量得到的长度都是当前选择 metal 的长度,完全忽视 via 连接的metal。
第二轮修改…
第二轮验证…
第三轮修改…
第三轮验证…
。
。
。
中间不断冒出新的问题,比如不同 Metal 层怎么处理?遇到 Via 怎么算?图形之间有重叠怎么办?实例里的图形要不要继续往下找?层级展开到什么程度?不同 PDK 的 layer name、purpose、规则不一样,又该怎么兼容?等等…
就这样前前后后改了十几个版本(中间也有提一些新需求)。
具体繁琐的调试过程就不一一列出了;
(2)说说使用的一些感受
这次实际用下来,我觉得它更像是一个速度很快、懂得很多,但又需要你不断跟它沟通和验证的伙伴。
它确实可以很快写出第一版,也能帮你补代码、找思路、改问题。但它并不知道你脑子里那些没有说出来的一些前提,也不知道你的实际工作环境到底是什么样。
有一些问题,甚至不是“代码怎么写”的问题,而是做到最后一步以后,才发现一开始根本没有把需求想清楚,说清楚。
尤其像 Virtuoso、PDK 这类比较依赖具体环境的东西,很多问题只有真正跑起来以后才会暴露出来。
最终会导致整个过程就是写一版再测试下,然后又发现问题,再修改再验证。反反复复很多次。
而且当一个脚本越改越长、判断越来越多,会发现,可能不是继续“打补丁”修复的问题了,或许应该换一换思路了。
最后,AI 把原本慢慢查资料、试错、验证的过程加快了很多,但“这个结果到底对不对”、“需求到底应该怎么定义”、“哪些特殊情况必须考虑”等等,这些事情最终还是需要人来判断。
换句话说,想要 AI 写出好的脚本并非易事,只有等真正做起来以后,才会发现完全不是这么回事。
恰恰相反。
你自己的经验、对问题的理解,以及有没有反复验证,很大程度上决定了 AI 最后能帮你把事情做到什么程度。
一些总结:
- AI 能很快写出第一版,但第一版往往只是开始;
- 对应 AI 来说,真正难的,很多时候不是写代码,而是把需求想清楚、说准确;
- 如果一个脚本越改越复杂、补丁越来越多,也许应该停下来重新想想整体思路;
- 实际环境里的验证非常重要,尤其是 Virtuoso、PDK 这种高度依赖具体环境的工具;
- AI 可以提高试错的速度,但最后的判断和验证,还是在人。
以上,或许就是这次借助 AI 编写脚本、反反复复折腾了十几个版本之后,最大的收获。
当然,也强烈推荐小伙伴们积极拥抱 AI,跟上时代的步伐。后续博主也会继续探索、尝试和分享(赶快关注博主吧🥳🥳🥳),让 AI 真正成为工作中得力的助手。
毕竟,未来已来,大幕将启!!!
(3)脚本分享
测试软件版本:Virtuoso Version IC6.1.8
测试 PDK : T180/65/40 和 S130/180
相关 GUI 界面图片:
注意:由于脚本验证环境有限,无法保证其兼容所有版本的 Cadence Virtuoso 及不同的 PDK。如在使用过程中遇到问题,欢迎反馈与交流,共同完善和优化脚本。
(4)参考
【1】github 开源的 virtuoso-skillbridge-lite 项目,以下是对应的地址:https://github.com/Arcadia-1/virtuoso-bridge-lite
获取相关脚本和说明
关注公众号,并在公众号里发送对应的下载关键字【nlm_skill】获取脚本下载链接和脚本说明。
