Friday, March 6, 2020

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

No comments:

Post a Comment

精選文章

使用Ardunio Atmega2560 連接 nRF24L01+

使用Ardunio Atmega2560 連接 nRF24L01+ 關於library 目前主流有 https://github.com/maniacbug/RF24 與 https://github.com/TMRh20/RF24 這兩個。 其中TMRh20大大做...