Icarus Verilog和GTKwave使用简析

本文详述了Icarus Verilog和GTKwave的安装与使用,包括iverilog的基本操作、常用选项,以及如何在Xilinx和Lattice FPGA设计中应用。文中还提供了仿真实例和注意事项,适合初学者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本简要介绍Icarus Verilog和GTKwave的使用,使用iverilog(Icarus Verilog)编译仿真verilog而使用GTKWave查看仿真数据波形

最近看一本书中有提到GTKwave这个软件,所以就去了解下,发现都是讲iverilog+GTKWave的使用,索性就再解了一下iverilog。这两个软件都是开源软件,而且两个软件安装包总共不足10MB,而且基本的verilog仿真都支持,普通FPGA设计的仿真完全够用。
由于其他文章都只是很简单的介绍了hello world的一个简单的例子,没有对使用各FPGA公司库的使用做介绍,所以才有本文的产生。本文从安装开始介绍;然后基本使用,最终给出包含Xilinx或Lattice IP的verilog设计的仿真方法;最后给出一些注意事项和使用技巧

本文测试文件在windows10和windows7上测试通过,其它平台请参考官方文档

下载安装

由于Icarus Verilog中已经包含了GTKWave所以直接从http://bleyer.org/icarus/下载安装,这里提供的为Windows版,我下载的为当前时间最新版:iverilog-10.1.1-x64_setup.exe,整个安装包才9.77MB,安装后也只有不到50MB。经测试,其实安装后只要把安装所在目录打包复制到其它电脑也可以用,即下载的这个安装类似一个自解压文件,但会增加两个路径到PATH。所以将安装目录打包复制到其它电脑后只要将以下两个目录(iverilog和gtkwave可执行文件所在目录)加入系统PATH环境变量中即可(这里假设放入其它电脑的目录为E:\iverilog):

E:\iverilog\bin
E:\iverilog\gtkwave\bin

或者在运行批处理文件前加入如下代码即可(即使用前将这两个路径临时加入PATH):

set iverilog_path=d:\iverilog\bin;
set gtkwave_path=d:\iverilog\gtkwave\bin;
set path=%iverilog_path%%gtkwave_path%%path%

下面给出可能会用到的网址:

基本使用

这里给出一个简单的hello world例程,先对使用方法有一个大概的了解

iverilog使用

仿真当然首先要提供verilog源代码,这里简单的实现了一个打印”hello world!”的例子,由于涉及到GTKWave的使用所以加入了clk和rst_n两个信号,以便介绍GTKWave的使用

/*****
**  文件名称:hello_world_tb.v
**  创 建 人:hsp
**  创建日期:2017-03-05
**  功能描述:一个iverilog和GTKWave使用方式介绍的hello world例子
*****/

// synopsys translate_off
`timescale 1 ns / 1 ps
// synopsys translate_on

module hello_world_tb;
    parameter PERI = 10;

    reg clk;
    reg rst_n;

    always #(PERI/2) clk = ~clk;

    initial
    begin
        $dumpfile("hello_world_tb.vcd");
        $dumpvars(0,hello_world_tb);
        $display("hello world!");
        clk = 0;
        rst_n = 0;
        repeat(10) @(posedge clk);
        rst_n = 1;
        repeat(100) @(posedge clk);
        $finish;
    end

endmodule

以上verilog:

  • 首先定义了一个参数<
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值