2016年5月24日 星期二

用 vim quickfix 檢視 nLint 的錯誤訊息

vim quickfix 可以用在快速跳到編譯出錯的位置
當我們在 vim 下 :make 命令之後可以透過 :copen 檢視編譯的錯誤
並且在其中移動
就像大部分 IDE 一樣


nLint 是檢查 verilog 語法、coding style 錯誤最常用的工具
可以告訴你在那邊出現了不能合成的 verilog
這邊就不贅述了

一般來說可以 nLint 用 GUI 打開他達成跳躍功能
然而 EDA tool 的介面一般很醜,功能也很陽春
所以可以用 command line 模式
輸出到檔案(-out error.txt)或是螢幕(-out screen)
但是就不能用跳躍功能了
因此一個簡單的作法就是跟 vim quickfix 結合

要達成這個目的
重點只有看 quickfix 能吃什麼樣的格式
如下:

FILE|LINE|BlahBlah

就是檔案、直槓或冒號夾住的行數、錯誤訊息
簡單檢視一下 nLint 的輸出
有用的行大概長這樣 FILE(LINE) BlahBlah
應該很容易用 grep, sed + regular expression 達成
LINT = nLint -sv
GCMD = grep ' \(Error\|Warning\)'
SCMD = sed 's/(\([0-9]\+\)):/|\1|/'

lint_module1: FORCE
   @$(LINT) m1.sv | $(GCMD) | $(SCMD)

lint_module2: FORCE
   @$(LINT) m2.sv | $(GCMD) | $(SCMD)

FORCE:
這邊沒有用到什麼 makefile 的高級功能

接著只要在 vim 命令列打 :make lint_module1
就可以用 quickfix 檢查輸出了

1 則留言:

  1. 太強啦,用了quickfix 用這麼久還是不懂要怎麼customize QAQ

    回覆刪除