~ cd 12. icarus verilog с gtkwave
GTKWave — это программа для просмотра форм сигналов VCD, основанная на библиотеке GTK. Этот просмотрщик поддерживает форматы VCD и LXT для дампов сигналов. GTKWave доступен на github здесь. Большинство дистрибутивов Linux уже содержат gtkwave в готовом виде.
12.1. Генерация файлов VCD/FST для GTKWave
...
// Do this in your test bench
initial
begin
$dumpfile("test.vcd");
$dumpvars(0,test);
end
...
% vvp foo.vvp -fst <other-plusargs>
...
% gtkwave dump.fst
12.2 Рабочий пример
...
module counter(out, clk, reset);
parameter WIDTH = 8;
output [WIDTH-1 : 0] out;
input clk, reset;
reg [WIDTH-1 : 0] out;
wire clk, reset;
always @(posedge clk)
out <= out + 1;
always @reset
if (reset)
assign out = 0;
else
deassign out;
endmodule // counter
...
module test;
/* Make a reset that pulses once. */
reg reset = 0;
initial begin
$dumpfile("test.vcd");
$dumpvars(0,test);
# 17 reset = 1;
# 11 reset = 0;
# 29 reset = 1;
# 5 reset =0;
# 513 $finish;
end
/* Make a regular pulsing clock. */
reg clk = 0;
always #1 clk = !clk;
wire [7:0] value;
counter c1 (value, clk, reset);
initial
$monitor("At time %t, value = %h (%0d)",
$time, value, value);
endmodule // test
...
% iverilog -o dsn counter_tb.v counter.v
% vvp dsn
% gtkwave test.vcd
Нажмите на «test», затем на «c1» в верхнем левом поле на GTKWave, затем перетащите сигналы в поле Signals. Вы сможете добавлять сигналы для отображения, сканируя по диапазону.