在FPGA开发中,时钟对齐是非常关键的。有效的时钟对齐确保了信号在时钟边缘正确采样和处理,从而防止了数据错误和系统不稳定。不论是相同和不同的时钟域,都必须保证信号在传输和处理过程中的一致性。此外,未对齐的信号可能导致竞争和冒险情况,影响系统的可靠性。因此,在设计FPGA 逻辑时,必须要保证信号对齐在正确的时钟周期。
然而,FPGA开发过程中,单独面对代码或者在纸上画时序图来分析时序,很容易会遗漏部分需要分析的关键点,或者产生错误。而通过仿真过程来看时序图,需要首先进行一次仿真才能看到波形,消耗的时间比较长,且错误的逻辑不会得到正确仿真结果。因此,我们需要一个工具,能够方便地画出格式标准的时序图。Wavedrom Editor就是这样一款开源的时序图绘制工具。
Wavedrom Editor在官网上,既可以找到它的客户端,也可以直接在网页端使用。wavedrom editor本身轻量化,即开即用,而且可以方便地保存和打开波形文件。其官网可以通过搜索引擎很容易得到。
打开官网,可以看到在线使用的地方,以及客户端按钮。点击editor可以在网页中使用,点击download editor可以使用客户端。
打开时序图编辑器之后,我们可以看到整个编辑器划分为信号编辑部分和时序图展示部分,如下图1所示。
图1 wavedrom界面
在信号编辑部分,我们可以以json的格式添加信号。每一个信号的结构包括名称name和wave波形两个部分,也可以对波形的指定位置进行命名。波形中每一个符号代表一个时钟周期,具体的符号所表示的含义如下表所示。
. |
上一个时钟周期波形继续延续 |
p,n |
在此周期时钟上升沿或下降沿 |
0,1 |
单bit信号低或高 |
2~9 |
多位宽信号采取不同color,以作区分 |
x,z |
信号未知态或高阻态 |
| |
表示略过一段时序图 |
通过不同的信号名和符号的组合,我们可以方便地对自己的逻辑的时序进行查看,从而分析编写逻辑的时序对齐状态,纠正可能存在的错误。例如,我们可以对avalon stream总线进行时序模拟和分析。在这里,我们手动编写json文件,可以看到对一次avst发包的分析波形。
图2 一次avalon stream发包的过程时序图编写
分析完成之后,我们还可以将图片保存为svg或png格式。客户端点击右下角的选项按钮即可导出,也有一些其他的选项,例如导入、刷新、push git等。