type
Post
status
Published
date
Feb 1, 2025
slug
fpgawaveform
summary
tags
FPGA
category
FPGA
icon
password
上次编辑时间
Feb 2, 2025 12:20 PM
AI summary
开始的时候画时序图都是拿 visio 硬连,但是那个线宽太难统一了,丑不拉几的,遂学习 waveform 语法使用代码来画时序图。

开始

Vscode 中安装 waveform render 或者在 GitHub 搜索 wavedrom 安装即可。由于 vscode 是我常用的编辑器,所以选择在 vscode 安装插件的方式来学习使用 waveform。 在 vscode 中创建一个 json 文件,内容
在命令面板中选择如下命令后即可查看渲染结果:
notion image

语法

时钟信号

  • p 表示上升沿开始的方波
  • n 表示下降沿开始的方波
  • l 表示低电平
  • h 表示高电平
  • 大写会在方波边沿绘制箭头
代码渲染出的时序图为:
notion image
notion image

数据信号

  • 01
  • x 表示未知状态
  • =表示有效数据,也可写成 2~9,会用不同的颜色显示,并且可用 data 变量加上文本标签
notion image
  • 可以用 | 表示省略一段信号
period 和 phase 变量用于调整时序
notion image
  • period 的值应该是一个数字 n ,表示横向等比例放大或缩小
  • phase 的值应该是一个数字 n ,表示横向的位置调整,单位是一个时钟周期:
    • 如果是正数,表示向左移动 n 个时钟周期
    • 如果是负数,表示向右移动 n 个时钟周期
多个信号可以用 ['group name', {...}, {...}, ...] 语法编成一组,而且支持嵌套 时序绘制完毕后,还可以对图片进行修饰。 "config": { "hscale": n } 表示将图片横向等比例放大 n 倍。"head":{ } 和 "foot":{ } 分别表示在时序图的上方和下方添加一些内容:
notion image
  • text 变量应该设置一个字符串,表示添加一行文本
  • tick 变量应该设置一个整数,表示在时钟周期的起点显示序号,从 n 开始
  • tock 变量应该设置一个整数,表示在时钟周期的中点显示序号,从 n 开始