moerjielovecookie

Sawen_Blog

一个普通工科牲的博客网站
x
github
follow
email

FPGA開發時序圖繪製

開始的時候畫時序圖都是拿 visio 硬連,但是那個線寬太難統一了,醜不拉幾的,遂學習 waveform 語法使用代碼來畫時序圖。

開始#

Vscode 中安裝 waveform render 或者在 GitHub 搜索 wavedrom 安裝即可。由於 vscode 是我常用的編輯器,所以選擇在 vscode 安裝插件的方式來學習使用 waveform。
在 vscode 中創建一個 json 文件,內容

{

    "signal":[

        {"name":"clk","wave":"p....."},

        {"name":"data","wave":"010101"}

    ]

}

在命令面板中選擇如下命令後即可查看渲染結果:
|460

語法#

時鐘信號#

  • p 表示上升沿開始的方波
  • n 表示下降沿開始的方波
  • l 表示低電平
  • h 表示高電平
  • 大寫會在方波邊沿繪製箭頭
    |300
    代碼渲染出的時序圖為:
    |365

數據信號#

  • 01

  • x 表示未知狀態

  • = 表示有效數據,也可寫成 2~9,會用不同的顏色顯示,並且可用 data 變量加上文本標籤
    500

  • 可以用 | 表示省略一段信號
    500
    periodphase 變量用於調整時序

  • period 的值應該是一個數字 n ,表示橫向等比例放大或縮小

  • phase 的值應該是一個數字 n ,表示橫向的位置調整,單位是一個時鐘周期:

    • 如果是正數,表示向左移動 n 個時鐘周期
    • 如果是負數,表示向右移動 n 個時鐘周期
      500
      多個信號可以用 ['group name', {...}, {...}, ...] 語法編成一組,而且支持嵌套
      時序繪製完畢後,還可以對圖片進行修飾。 "config": { "hscale": n } 表示將圖片橫向等比例放大 n 倍。"head":{ }"foot":{ } 分別表示在時序圖的上方和下方添加一些內容:
  • text 變量應該設置一個字符串,表示添加一行文本

  • tick 變量應該設置一個整數,表示在時鐘周期的起點顯示序號,從 n 開始

  • tock 變量應該設置一個整數,表示在時鐘周期的中點顯示序號,從 n 開始

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。