【FPGA学习】- WaveDrom使用
WaveDrom作为一款波形图绘制软件,学会使用将对接下来的时序分析有所帮助,所以通过本篇教程来学习并记录使用方式。
波形图绘制
绘制波形图时,使用关键字 signal 进行声明。具体格式为:[ signal: { [ name: " 该波形的名字 ", wave: ' 波形具体变换过程' ] , [ name: " 该波形的名字 ", wave: ' 波形具体变换过程' ], ...} ]。
时钟信号的绘制。绘制时钟信号时,在书写“ wave ”中,p/P 表示在一个时钟周期中,先 1 后 0,n/N 表示在一个时钟周期中,先 0 后 1。在波形图绘制过程中区分大小写,其中,大写以箭头方式显示波形变化,小写则不显示波形变化。
0或 l 表示在该信号一个周期内,处于低电位;1或 h 表示该信号一个周期内,处于高电位;" . " 表示将原来的信号状态继续保持一个时钟周期;x表示该信号处于不确定状态;z表示该信号处于高阻态。通过下图我们发现,要想绘制的波形图没有跳变,就在状态保持中使用" . ",并且高阻态尽量使用小写 z 来表示。此外1/0和h/l都表示高/低电位,但是波形图上有所差别,应当注意区分。
在实际电路中,由于输出存在多比特的情况,导致波形图显示为上下闭合的单元。在WaveDrom中使用“ = ”来 表示这种情况,或者使用除了0/1之外的正整数来表示,相较于“ = ”表示,这种显示有不同的颜色,更加直观。在之后紧跟data:["data1", "data2", ...]来填写上下闭合的单元。
波形图有时存在分组的需要。此时WaveDrom使用类似嵌套的格式进行分组的波形图的绘制。具体格式为[" group name",{ ... }, { ... }]。
使用period: n(n为正整数),可以将波形进行扩大倍;使用phase: m,可以将波形相位左移m。
在WaveDrom中,为了使得绘制的时序图观察效果更好,提供了一些其它基本命令。
config: {hscale: n }:将整个波形图拉长变为原来的n倍。
head:{...}/foot:{...}:定义时序图的上标和下标。其中主要有四个关键字:tick:添加与虚线对齐的时间轴,tock:添加位于虚线中间的时间轴, text:文本内容, evey:几个周期才显示一次tick和tock。
在WaveDrom中,可以在波形图上绘制箭头以更好的显示波形变化的过程。WaveDrom中提供两种箭头,曲线箭头(Splines)和直线箭头(Sharp lines)。在Splines中提供了7种箭头连接方式,‘~’,‘-~’ ,’<~>‘ ,’<-~>‘,’~>‘,’-~>‘,’~->‘。其中'>'表示方向,'~'表示曲线是波浪型,’-~‘表示曲线是圆弧型。Sharp lines中提供了11种连接方式,'-','-|','-|-','<->','<-|>','<-|->','->','-|>','-|->','|->','+'。其中其中'>'表示方向,'-'表示直线连接,'-|'表示弯曲一次连接,'-|-'表示弯曲两次连接。
门电路图绘制
绘制门电路图时,使用关键字 assign 进行声明。具体格式为:
与或门电路绘制。WaveDrom提供了两种绘制门电路的方式。(两种描述,同一个电路)
参考资料
WaveDrom下载链接:Releases · wavedrom/wavedrom.github.io