最近 Kimi K3 这个模型有很强的前端能力,我看别人晒出来的网页都极具美感。那我就在想,用高射炮打一下蚊子,用AI来直接帮我们画时序图是不是也可以?
于是我做了一些尝试,标准协议、自定义协议都试了。没想到效果出奇好。
首先测试的是标准 SPI 协议的时序图。操作很简单,没整什么花里胡哨的skill,我就是打开了网页版的kimi,选择K3模型,然后提示词很简单,就是:
画一个交互页面来展示标准 SPI 协议的时序。

然后kimi一顿操作之后,它给出了成果,大家可以感受一下。

从时序图本身来看,出图非常专业和严谨,完全不输于任何一款专业画时序图的软件。当然,你若颜色不喜欢,就喜欢那种体制内厅里厅气的感觉,就直接让AI继续帮你改即可。

这是论文风格的时序图:


虽然等待出图的时间稍微慢了点,但我们不需要像传统方式一样,去学习某个软件的使用方法,或者掌握一些画时序图的命令。整个过程就是通过自然语言交互,在很短时间内就可以完成一个非常专业的时序图。
而且,你看一下它的细节,很有惊喜。
虽然我的提示词其实非常简单,但是它把SPI 协议的每一个工作模式,它都对应生成了相应的工作时序。以及它的时钟部分,每一个时钟边沿,都会用红色箭头进行标注。不同信号之间,也使用不同颜色进行了区分。系统分析力很强。

最厉害的是什么?kimi还同步把这个时序做成了一个可交互的动画。
什么概念呢?
传统时序图,本质上就是一个静态的图片。但是你看AI生成的这个时序图页面,上面有一个播放按钮。

点击之后,整个时间轴会开始移动,模拟时钟周期递进。同时,在当前时间点,会显示每一个信号的状态,以及对应锁存器采样到的数据值。

这个就非常牛逼了。AI已经把传统静态时序图提升到了一个更高的维度,让它变得可运行、可变化。直接通过动画、动态的方式,把时序关系展示给用户。
我觉得,这才是最理想,最直观时序逻辑的表达方式啊。AI,我真的等你好久了!
我把最终的效果网页已经发布成公开的页面,感兴趣的可以点击体验:https://y6aeipnh6cyle.ok.kimi.link
当然,为了测试整个 Kimi K3 画时序图的稳定性,我又使用 UART 串口协议做了一次测试。我的提示词同样很简单:
使用同样的方法生成一个 UART 时序图。
大家来看一下最终结果。

虽然提示词一如既往简单,但是它也自动在生成时序图的时候考虑到了 UART 协议里面的一些关键内容。
例如:
这些内容它都会自动分析并设置。
同时,它不仅画出了标准的时序图。和刚才 SPI 一样,它也同步生成了一个可播放的动态交互页面。时钟每运行一个周期,它都会实时显示当前解析的数据值。

当然后续我还测试了其他标准接口,kimi k3画出的时序图,能力也完全达到了可以放到技术文档里的水平。

整体来说,以kimi k3为代表的前沿AI画出的时序图基本已是一个交付性非常强、完全可以用于教学演示的时序小系统了。
最后,为了验证它对于自定义用户接口时序图的生成能力,我直接把项目里面一个自定义 Flash 用户接口的核心代码发给了它。然后和kimi k3说:
画一个交互页面,展示附件代码所表达的逻辑。
然后 Kimi K3给我带来了更大的惊喜。
我本来只是想让它帮助我把用户端的读写逻辑表达出来。没想到它不仅把用户读操作和写操作的具体时序图画出来了。而且还把我没有提到的整个模块初始化时序也考虑进去,并且更绝的是,因为时序相对复杂,他直接生成了一个相对应的时序状态机辅助用户理解时序。


点击播放按钮之后:整个状态机里面的状态,会随着时间推进进行变化。时序图也会同步随着时钟周期运行展示。右侧则还有当前状态机的说明,包括:

卧槽,真的太牛逼了!直接把时序图,状态机,当前状态解释,全部联动在一起。这种输出结果,不仅方便我理解代码,更适合作为以后代码模块的交付成果还能方便后续同事迭代,或者系统升级。
我在想,如果把它生成的这种交互页面的逻辑进一步封装,做成一个skill。那么以后所有时序代码,都可以用一个页面,把时序图,状态机,状态说明都展示出来了啊。还可以用动画来辅助理解时序关系。那么,这个skill将会对于 FPGA 开发人员,或者任何需要理解代码时序逻辑的人来说,就非常实用。
此次实践后,我已经决定抛弃过去所有画时序图的方法。 Kimi K3 模型完全可以帮我们完成时序图的绘制,不需要学命令,不需要下载复杂软件,也不需要任何调试,画好时序图就是一句提示词而已。而且效果只有更强,没有缺点。
而传统那些画流程图、画状态机的软件,正在润物细无声地被 AI 改变。