開始的時候畫時序圖都是拿 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 開始