1. 为什么Verilog开发者需要WaveDrom?
如果你写过Verilog,肯定有过这样的经历:费了老大劲写完一段状态机或者总线协议,想跟同事或者导师解释清楚时序关系,结果发现“只可意会,不可言传”。用文字描述?“在第三个时钟上升沿后,当ready信号拉高且valid信号为1时,数据被锁存”。画图?打开Visio或者Draw.io,一个个矩形去拖拽、对齐、画箭头,一个简单的时序图可能就得折腾半小时,一旦需要修改,更是牵一发而动全身,简直让人抓狂。
我刚开始做FPGA项目时,就深受其苦。直到我发现了WaveDrom,感觉像是打开了一扇新世界的大门。它不是什么复杂的图形软件,而是一个基于JSON的文本描述语言。你只需要用简单的代码描述出时钟、信号的高低变化,它就能自动生成清晰、专业的交互式时序图。对于Verilog开发者来说,这简直是量身定做的神器。你想啊,我们整天和代码、信号打交道,用写代码的方式画图,再自然不过了。修改起来也极其方便,改几行“波形代码”,图片就自动更新了,这和我们写RTL代码、看仿真波形的逻辑是完全一致的。
更重要的是,WaveDrom生成的图可以直接嵌入网页,是交互式的。你可以用鼠标悬停查看数据值,缩放观察细节,这对于设计文档、技术博客或者项目汇报来说,体验提升不是一星半点。它能把枯燥的时序说明,变成一目了然的动态图表。接下来,我就带你从最基础的语法开始,一步步玩转WaveDrom,画出那些能让你的设计文档闪闪发光的专业时序图。
2. 5分钟上手:你的第一个WaveDrom时序图
别被“JSON”、“配置”这些词吓到,WaveDrom的核心语法简单到超乎想象。我们从一个最基础的例子开始,你甚至不需要安装任何软件。
2.1 在线编辑器的魔力
最快捷的方式是直接访问WaveDrom的官方在线编辑器。打开浏览器,输入WaveDrom Editor的网址,你就能看到一个左右分屏的界面。左边是代码编辑区,右边是实时渲染的波形图。这种“所见即所得”的方式,对于学习语法来说再友好不过了。我强烈建议你边读边动手,把下面的例子敲进去,立刻就能看到效果。
2.2 理解核心结构:信号(Signal)与波形(Wave)
所有WaveDrom图都围绕一个核心的JSON对象构建。最基本的结构长这样:
{ signal: [
{ name: ‘clk‘, wave: ‘P...‘ },
{ name: ‘data‘, wave: ‘01.0‘ }
]}
我来拆解一下:
signal:这是一个数组,里面包含了你要画的所有信号线。name:信号的名字,比如clk,rst_n,data_valid,会显示在波形图的左侧。wave:这是灵魂所在!它是一个字符串,里面的每一个字符都代表信号在一个时间单元(你可以暂时理解为一个基础时钟周期)的状态。
那么,字符代表什么意思呢?记住这几个最常用的就够应付80%的场景了:
0:

220

被折叠的 条评论
为什么被折叠?



