本文用于记录wavedrom的使用方法。
要使用它,有多种方法,这里只说简单的两种,一种是有网址可以在线使用wavedrom;另一种就是使用VSCode安装Waveform Render插件,然后使用组合快捷键crtl+k crtl+l就可以开关实时预览功能,会自动弹出弹窗。
编写采用WaveJSON格式,可以绘制波形图和原理图。
1.波形图
首先,需要以signal
起头,表明当前描述的是时序图。
{ signal: [{ name: "Alfa", wave: "01.zx=ud.23.456789" }] }
其中
name
和wave
均为必填字段,顾名思义,一个描写波名字,一个描写波数据。
对于wave
:
h
为一个周期的高电平;l
为一个周期的低电平。
n
为一个周期内,低到高的时钟信号;p
为一个周期内,从高到低的时钟信号。
N
为一个周期内,带箭头的低到高的时钟信号;P
为一个周期内,带箭头的从高到低的时钟信号。同理,H
为带箭头的一个周期的高电平;L
为带箭头的一个周期的低电平。
x
为未知信号;.
为上一个信号保持一个周期;|
为间隙符号,也就是代表断开留空这一段;0
为一个周期内,从高电平跳变到低电平;1
为一个周期内从低电平跳变到高电平。
2
为一个周期的高低电平,常用来表示数据信号,可以为高电平也可以为低电平;3
到9
为带不同颜色的高低电平。
绘制波形当然不能只绘制波形,还要在上面写状态名和隔开部分波形。隔开波形直接留空即可,写状态名需要使用data
,可以在2
到9
上写上文字,例如:
{ signal: [ { name: "clk", wave: "xxx010101" }, { name: "Data", wave: "x.345x|=.x", data: ["head", "body", "tail", "data"] }, { name: "Request", wave: "0.1..0|1.0" }, {}, { name: "Acknowledge", wave: "1.....|01." } ]}
2.原理图
暂不使用,不做记录。