Verilog 輕量化開發環境
背景
筆者常用的開發環境
- VIAVDO, 體積巨大,自帶編輯器除了linting 能用,編輯器幾乎不能用,模擬介面很友好,但是速度比較慢。
- Sublime Text, 非常好用的編輯器,各種外掛使用verilog 非常方便,可以自動補全、生成呼叫、linting等;
- VSCODE,Sublime Text 有的外掛,VSCODE也都有,雖然不一定有sublime text好用,但是VSCODE有AI外掛的加持,顯得更有吸引力,更能提高工作效率。而且完全免費,VSCODE 註定一統江湖。
因此這裡主要說明如何搭建VSCODE輕量化環境。
環境搭建
首先你得有VSCODE,安裝包bing.com 搜尋一下(不要問為什麼不用百度) 自行安裝即可。
安裝外掛
圖 2‑1 VSCODE Verilog 外掛
安裝Iverilog
Icarus Verilog for Windows (bleyer.org) 下載安裝輕量級開發、編譯工具Iverilog,這樣就可以完全不用VIVADO就完成模組級的程式碼開發。
安裝完成之後設定環境變數:
圖 2‑2 設定iverilog 和 gtkwave 環境變數
設定完成重啟 電腦, WIN11似乎不用重啟 立即生效,只需要重啟VSCODE
設定外掛
圖 2‑3 設定linter 為iverilog 執行在檔案所在目錄
編譯 檢視波形
Iverilog 對.sv檔案支援不好,需要編譯的頂層檔案最好是.v 字尾。涉及到模組呼叫,最好在程式碼中用`include 宣告一下。
圖 2‑4 模擬頂層
圖 2‑5 執行編譯 模擬
注意程式碼中必須包含自動$finish; 還要dump波形檔案。
initial begin
$display("start a clock pulse"); // 列印開始標記
$dumpfile("wave.vcd"); // 指定記錄模擬波形的檔案
$dumpvars(0, pulse_gen_test); // 指定記錄的模組層級
end
也可以用命令列執行編譯和模擬,基本命令如下:
@echo off
iverilog.exe -o target.vvp pulse_gen_test.sv
vvp.exe target.vvp
其中-o是目標檔案,pulse_gen_test.sv是待編譯的模擬檔案,vvp.exe執行對應的模擬。
然後生成目標wave.vcd檔案,透過gtkwave 可以檢視(在終端中執行gtkwave .\wave.vcd)。
圖 2‑6 gtkwave 檢視波形
需要說明,VSCODE中的自動例項化模組有點問題,希望後面外掛可以解決。
AI 外掛
VSCODE最強的是他的AI外掛,這個是sublime text 沒有的。
圖 3‑1 阿里TONGYI Lingma 外掛
應用市場搜尋安裝即可,國內大模型和外掛,阿里的最靠譜,實際使用體驗不錯,詳細很快能夠追上國外。