Verilog Diagram generator

Verilog Diagram generator

最近剛好看到chisel/FIRRTL專案下有一個子專案叫做diagrammer,可以把FIRRTL進行dependency分析後,產生graphiz的dot檔案,包括其中的submodule都可以一併產生,想說看一下verilog開源的專案有沒有類似的工具。後來找到yosys這個synthesis tool可以達到類似的功能。yosys主要針對verilog-2005,systemverilog之類的沒有支援有點可惜。

用法先去clone該專案,進行安裝。

$ git clone https://github.com/YosysHQ/yosys  

安裝相依工具:

$ sudo apt-get install build-essential clang bison flex \  
 libreadline-dev gawk tcl-dev libffi-dev git \  
 graphviz xdot pkg-config python3 libboost-system-dev \  
 libboost-python-dev libboost-filesystem-dev zlib1g-dev  

進去yosys資料夾後,選擇compiler:

$ make config-clang  
$ make config-gcc  

然後make && make install

$ make  
$ sudo make install  

這些步驟都跟readme寫的一樣。

這工具的command和vcs蠻相似的,執行yosys會進到command shell,透過read_verilog載入verilog module,或是read -sv載入verilog module同時elaborate。之後指定top module。她會產生檔案的AST。

yosys> read -sv folder/*.v  
yosys> hierarchy -top top_module  

接下來可以用show指令顯示diagram。

yosys> show  

如果多個module,需要指定顯示程式。(gv是一個程式,可以透過apt-get安裝,ps是postscript的縮寫)

yosys> show -format ps -viewer gv  

多個檔案會顯示多組diagram。不過看起來不會寫入合併成一個diagram。他也會在家目錄產生.yosys_show.dotdot檔。可以透過dot程式轉成png或是svg。

其他像xilinx的tool可以產生RTL schematic也可以產生類似功能。而一些商用工具也有這些功能如Synopsys Synplify Pro看起來很完整。

ref

comments powered by Disqus