开源verilog仿真工具iverilog+GTKWave使用教程

您所在的位置:网站首页 仿真工具Dve波形设置的字体 开源verilog仿真工具iverilog+GTKWave使用教程

开源verilog仿真工具iverilog+GTKWave使用教程

2024-07-16 01:49| 来源: 网络整理| 查看: 265

文章目录 前言关于 Icarus Verilogiverilog的安装 Windows下的安装Linux下的安装MacOS下的安装查看是否安装成功 基本参数介绍 参数-o参数-y参数-I参数-tvhdl Verilog的编译仿真实际应用 1.编译2.生成波形文件3.打开波形文件 Verilog转换为VHDLVHDL文件的编译和仿真批处理文件一键执行总结参考资料推荐阅读

前言

如果你只是想检查Verilog文件的语法是否有错误,然后进行一些基本的时序仿真,那么Icarus Verilog 就是一个不错的选择。相比于各大FPGA厂商的IDE几个G的大小,Icarus Verilog 显得极其小巧,最新版安装包大小仅有17MB,支持全平台:Windows+Linux+MacOS,并且源代码开源。本文将介绍如何使用Icarus Verilog来进行verilog文件的编译和仿真。

关于 Icarus Verilog

Icarus Verilog是一个轻量、免费、开源的Verilog编译器,基于C++实现,开发者是 Stephen Williams ,遵循 GNU GPL license 许可证,安装文件中已经包含 GTKWave支持Verilog/VHDL文件的编译和仿真,命令行操作方式,类似gcc编译器,通过testbench文件可以生成对应的仿真波形数据文件,通过自带的GTKWave可以查看仿真波形图,支持将Verilog转换为VHDL文件。

iverilog的安装

iverilog安装时,默认会把GTKWave一起安装,用于查看生成的波形图。

iverilog支持Windows、Linux和MacOS三大主流平台,截止2019年12月1日,最新版本v11-20190809下载:

http://bleyer.org/icarus/iverilog-v11-20190809-x64_setup.exe

Windows下的安装

Windows下直接双击上面下载的安装文件即可,安装完成后安装目录如下:

Linux下的安装

Linux下的安装,以Ubuntu 16.04为例,可以通过apt-get直接安装。

安装iverilog:sudo apt-get install iverilog安装GTKWave:sudo apt-get install gtkwave

不能成功安装的,尝试更换镜像地址,我使用的是网易的开源镜像地址。

MacOS下的安装

Mac下的安装可以通过 macports 或者 homebrew 来安装,

通过 Macports 安装:

安装iverilog:sudo ports -d -v install iverilog安装GTKWave:sudo ports -d -v install gtkwave

通过 homebrew 安装:

安装iverilog:brew install icarus-verilog安装GTKWave:brew install caskroom/cask/gtkwave 查看是否安装成功

安装成功后,可以通过命令窗口来查看命令所在的路径。

Windows环境可以通过where命令查看安装路径

where iverilog where vvp where gtkwave 12345

Linux环境可以通过which命令查看安装路径

which iverilog which vvp which gtkwave 12345 基本参数介绍

Icarus Verilog编译器主要包含3个工具:

iverilog:用于编译verilog和vhdl文件,进行语法检查,生成可执行文件vvp:根据可执行文件,生成仿真波形文件gtkwave:用于打开仿真波形文件,图形化显示波形

在终端输入iverilog回车,可以看到常用参数使用方法的简单介绍:

$ iverilog D:\iverilog\bin\iverilog.exe: no source files.

Usage: iverilog [-EiSuvV] [-B base] [-c cmdfile|-f cmdfile] [-g1995|-g2001|-g2005|-g2005-sv|-g2009|-g2012] [-g] [-D macro[=defn]] [-I includedir] [-M [mode=]depfile] [-m module] [-N file] [-o filename] [-p flag=value] [-s topmodule] [-t target] [-T min|typ|max] [-W class] [-y dir] [-Y suf] [-l file] source_file(s)

See the man page for details.

1234567891011121314

下面来详细介绍几个常用参数的使用方法。

参数-o

这是比较常用的一个参数了,和GCC中-o的使用几乎一样,用于指定生成文件的名称。如果不指定,默认生成文件名为a.out。如:iverilog -o test test.v

参数-y

用于指定包含文件夹,如果top.v中调用了其他的的.v模块,top.v直接编译会提示

led_demo_tb.v:38: error: Unknown module type: led_demo 2 error(s) during elaboration. *** These modules were missing: led_demo referenced 1 times. *** 1234567

找不到调用的模块,那么就需要指定调用模块所在文件夹的路径,支持相对路径和绝对路径。

如:iverilog -y D:/test/demo led_demo_tb.v

如果是同一目录下:iverilog -y ./ led_demo_tb.v,另外,iverilog还支持Xilinx、Altera、Lattice等FPGA厂商的仿真库,需要在编译时通过-y参数指定库文件的路径,详细的使用方法可以查看官方用户指南:

https://iverilog.fandom.com/wiki/User_Guide

参数-I

如果程序使用`include语句包含了头文件路径,可以通过-i参数指定文件路径,使用方法和-y参数一样。

如:iverilog -I D:/test/demo led_demo_tb.v

参数-tvhdl

iverilog还支持把verilog文件转换为VHDL文件,如iverilog -tvhdl -o out_file.vhd in_file.v

Verilog的编译仿真实际应用

新建led_demo.v源文件,内容如下:

module led_demo( input clk, input rst_n, output reg led

);

reg [7:0] cnt;

always @ (posedge clk) begin if(!rst_n) cnt = 10) cnt



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3