$$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Self-defined math definitions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Math symbol commands \newcommand{\intd}{\,{\rm d}} % Symbol 'd' used in integration, such as 'dx' \newcommand{\diff}{{\rm d}} % Symbol 'd' used in differentiation ... $$

【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

官方教程:Hitchhiker's Guide to the WaveDrom

官方教程2:Hitchhiker's Guide to the WaveDrom (Part 2)

posted @ 2023-03-18 17:20  素衣叹风尘  阅读(1581)  评论(0编辑  收藏  举报