使用開源RTL仿真器iverilog

前言

linux下的硬件仿真工具VCS, NC, Questasim都是商業軟件,若是想本身在本身機器上跑點小例子,那麼一般人就須要去破解這些商業軟件。這些年版權的意識愈來愈強,破解真不是一個好方法。不如使用一些開源的仿真器,來跑本身的小例子。本文要講的iverilog是目前開源仿真器的不二選擇。linux

安裝

首先安裝好git, 若是沒有就是官方網站直接下載壓縮包後,再解壓縮。git

git clone https://github.com/steveicarus/iverilog.git

cd iverilog
sh autoconf.sh
./configure && make && make install

但通常不會這麼順利的。
有心人會發如今iverilog目前下沒有configure文件,因此不知道怎麼辦,其實只要去官方網站上看一下就明白它是用autoconf.sh來生成configure文件的。
但我一開始執行會報錯,緣由是少了gperf
能夠從下面連接下載源碼
而後解壓縮, 執行./configure && make && make install就能夠了github

固然若是還有錯要去裝一下autoconf。bash

使用

整體來說,iverilog和其實simulator沒大區別,就是先編譯,而後運行。
選項大約有工具

選項 說明
-D macro[=def ] 定義宏
-I incdir 等同於-incdir
-o filename 指定輸出的可執行文件名
-s topmodule 等同於-top
-y libdir 等同於-y

好比:學習

iverilog -s top -o cnt top.v cnt.v
vpp cnt

波形

可使用下面代碼網站

initial
begin
  $dumpfile("test.vcd");
  $dumpvars(0,top);
end

來dump波形, 而後用gtkwave來查看
gtkwave是開源的查看波形的軟件,須要單獨安裝調試

後言

iverilog主要是一個仿真器,它的不足在於沒有調試器,通常商業調試器如NC集成的simvision, VCS集成的DVE, 或者單獨的軟件verdi。不過只進行學習, iverilog也足夠了。複雜的場景仍是在公司裏跑的吧。code

相關文章
相關標籤/搜索