[Env] Vim 安裝 Verilog-mode

我玩 FPGA 所撰寫的程式,都以 Linux 環境為主,畢竟我是 Linux 的支持者。在撰寫 Verilog 來玩的時候,最重要的是先建立一個很強的寫 Code 環境。這篇文章介紹如何使用網路上免費的自動接線工具,Verilog-mode。

寫 Verilog 時,自動接好 Port Name 會省很多力氣。
網路上有人已撰寫一個實用的工具,叫做 Verilog-mode。
請參考這個連結

這個工具原本設計給 emacs 使用,但這裡介紹如何將它導入 Vim。
首先去 Verilog-mode 網站下載 verilog-mode.el.gz,解壓縮:
gzip -d verilog-mode.el.gz
然後撰寫 python 程式 vmode.py,來呼叫這個 lisp:
#!/usr/bin/env python2
import sys
import os
from subprocess import call

def main():
  if len(sys.argv) < 2:
      print " [Err] vmode: no filename."
  else:
      fileName = sys.argv[1]
      task = ["emacs", "-load", "Path_To/verilog-mode.el", "--batch", fileName, "-f", "verilog-batch-auto"]
      call(task)

if(__name__ == "__main__"):
    main()


所以現在可以用 vmode.py 來對任意檔案做自動接線的動作:
chmod +x ./vmode.py
vmode.py <verilog 檔名>

現在我們要將 vmode.py 加到 vim 的快捷鍵內:
在 ~/.bashrc 內加入:
if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi
然後在 ~/.bash_aliases 加入:
shopt -s expand_aliases
alias vmode='Path_To/vmode.py'
這行的目的,就是讓 bash alias 的指令可以被 vim 讀到。
然後在 .vimrc 內將 bash 的 alias 指令引入 vimrc,並將 vmode 指令 mapping 成 F2 按鍵:
let $BASH_ENV = "~/.bash_aliases"
nmap <F2> :!vmode %<CR>

如此在用 vim 編輯文字時,存檔後就可以按 F2 讓 Verilog-mode 對當前檔案進行接線操作。


留言

這個網誌中的熱門文章

[Env] Icarus Verilog(iverilog) + gtkwave 安裝與環境建立

[Tools] Verilog-mode 用法整理 (usage collections)