windows XP下 iverilog+GTKWave使用(三)

windows XP下 iverilog+GTKWave使用(二)当中只有一些显示信息在终端里面,这里讲讲如何生成lxt2文件以便可以被GTKWave调用。在counter_tb.v文件里添加以下语句:

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

最终文件如下:

`timescale 1ns/1ns
module test;

    /*Make a reset that pulses once.*/
	reg reset = 0;
	
	initial
		begin
			#17 reset = 1;
			#11 reset = 0;
			#29 reset = 1;
			#11 reset = 0;
			#100 $stop;
		end
	
	/*Make a regular pulsing closk*/
	
	reg clk = 0;
	always #5 clk = !clk;
	
	wire [7:0] value;
	counter c1 (value, clk, reset);
	
	initial
		$monitor("At time %t, value = %h (%0d)",$time, value, value);
	initial
		begin			
			$dumpfile("test.vcd");
			$dumpvars(0,test);
		end
endmodule

另存为counter_tb_gtk.v,然后进行下面的命令:
G:\Verilog HDL\iverilog\Demo\counter>iverilog -o test counter.v counter_tb_gtk.v

G:\Verilog HDL\iverilog\Demo\counter>ls
counter.v     counter_tb_gtk.v  my_design  test
counter_tb.v  file_list.f       mydesign

G:\Verilog HDL\iverilog\Demo\counter>vvp -n test -lxt2
LXT2 info: dumpfile test.vcd opened for output.
At time                    0, value = xx (x)
At time                   17, value = 00 (0)
At time                   35, value = 01 (1)
At time                   45, value = 02 (2)
At time                   55, value = 03 (3)
At time                   57, value = 00 (0)
At time                   75, value = 01 (1)
At time                   85, value = 02 (2)
At time                   95, value = 03 (3)
At time                  105, value = 04 (4)
At time                  115, value = 05 (5)
At time                  125, value = 06 (6)
At time                  135, value = 07 (7)
At time                  145, value = 08 (8)
At time                  155, value = 09 (9)
At time                  165, value = 0a (10)

G:\Verilog HDL\iverilog\Demo\counter>cp test.vcd test.lxt

G:\Verilog HDL\iverilog\Demo\counter>gtkwave test.lxt

未完待续。。。(见(四))


在 Linux 系统上安装 Icarus Verilog(`iverilog`)和 GTKWave 工具,可以按照以下步骤进行操作,以便进行 Verilog 代码的仿真和波形查看。 ### 安装 Icarus Verilog Icarus Verilog 是一个开源的 Verilog 硬件描述语言仿真器,支持大多数 Linux 发行版。可以通过包管理器安装,也可以从源码编译安装。 #### 使用包管理器安装(推荐) 在基于 Debian 的系统(如 Ubuntu)上,使用 `apt` 命令安装: ```bash sudo apt update sudo apt install iverilog ``` 安装完成后,可以通过以下命令验证是否安装成功: ```bash iverilog -v ``` 该命令将显示 Icarus Verilog 的版本信息,表明安装成功 [^3]。 ### 安装 GTKWave GTKWave 是一个用于查看 Verilog 仿真生成的 `.vcd`(Value Change Dump)文件的开源波形查看器,通常与 Icarus Verilog 配合使用。 #### 使用包管理器安装 在基于 Debian 的系统上,同样可以使用 `apt` 安装 GTKWave: ```bash sudo apt install gtkwave ``` 安装完成后,可以通过以下命令启动 GTKWave: ```bash gtkwave ``` 该命令将打开 GTKWave 的图形界面,可以用于打开 `.vcd` 文件进行波形查看 [^3]。 ### 配置与使用 安装完成后,可以使用 Icarus Verilog 编译并运行 Verilog 代码,并生成 `.vcd` 文件用于 GTKWave 查看波形。 #### 示例:Verilog 代码仿真与波形查看 1. **编写 Verilog 代码** 创建一个名为 `counter.v` 的文件,内容如下: ```verilog module counter ( input clk, input reset, output reg [3:0] count ); always @(posedge clk or posedge reset) begin if (reset) count <= 4'b0; else count <= count + 1; end endmodule ``` 2. **编写测试平台(Testbench)** 创建一个名为 `tb_counter.v` 的测试平台文件: ```verilog module tb_counter; reg clk; reg reset; wire [3:0] count; counter uut ( .clk(clk), .reset(reset), .count(count) ); initial begin $dumpfile("counter.vcd"); $dumpvars(0, tb_counter); clk = 0; reset = 1; #10 reset = 0; #100 $finish; end always #5 clk = ~clk; endmodule ``` 3. **编译并运行仿真** ```bash iverilog -o counter_sim counter.v tb_counter.v ./counter_sim ``` 上述命令将生成一个名为 `counter.vcd` 的波形文件 [^3]。 4. **使用 GTKWave 查看波形** ```bash gtkwave counter.vcd ``` 此时 GTKWave 将打开并显示仿真过程中信号的变化情况 [^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值