FPGA开发时序图绘制
开始的时候画时序图都是拿 visio 硬连,但是那个线宽太难统一了,丑不拉几的,遂学习 waveform 语法使用代码来画时序图。
开始
Vscode 中安装 waveform render 或者在 GitHub 搜索 wavedrom 安装即可。由于 vscode 是我常用的编辑器,所以选择在 vscode 安装插件的方式来学习使用 waveform。
 在 vscode 中创建一个 json 文件,内容
{
    "signal":[
        {"name":"clk","wave":"p....."},
        {"name":"data","wave":"010101"}
    ]
}
在命令面板中选择如下命令后即可查看渲染结果:
 
语法
时钟信号
- p表示上升沿开始的方波
- n表示下降沿开始的方波
- l表示低电平
- h表示高电平
- 大写会在方波边沿绘制箭头
  
 代码渲染出的时序图为:
  
数据信号
-  0和1
-  x表示未知状态
-  =表示有效数据,也可写成 2~9,会用不同的颜色显示,并且可用data变量加上文本标签
  
-  可以用 |表示省略一段信号
  
 period和phase变量用于调整时序
-  period的值应该是一个数字 n ,表示横向等比例放大或缩小
-  phase的值应该是一个数字 n ,表示横向的位置调整,单位是一个时钟周期:- 如果是正数,表示向左移动 n 个时钟周期
- 如果是负数,表示向右移动 n 个时钟周期
  
 多个信号可以用['group name', {...}, {...}, ...]语法编成一组,而且支持嵌套
 时序绘制完毕后,还可以对图片进行修饰。"config": { "hscale": n }表示将图片横向等比例放大 n 倍。"head":{ }和"foot":{ }分别表示在时序图的上方和下方添加一些内容:
 
-  text变量应该设置一个字符串,表示添加一行文本
-  tick变量应该设置一个整数,表示在时钟周期的起点显示序号,从 n 开始
-  tock变量应该设置一个整数,表示在时钟周期的中点显示序号,从 n 开始
