Dump verilog array en gtkwave

3

¿Hay alguna forma de volcar la memoria en verilog usando vcd dump? Desde ahora he escrito esto:

module sampler(clk, pixel);

    input clk;
    input[7:0] pixel;

    wire[7:0] pixel;
    reg [7:0] macro_block [0:63];
    reg [5:0] address;

    always @ (posedge clk or negedge clk) begin
        macro_block[address]=pixel;
        address<=address+1;
    end
endmodule

module tb();

    reg clk;
    reg[7:0] pixel;

    sampler s(clk,pixel);

    initial begin
        $dumpfile("test.vcd");
        $dumpvars(0,tb);
        clk=0;
        pixel=1;
        $monitor("%g %b",$time, clk);
        #5 $finish;
    end

    always begin
        #1 clk <= ~clk;
    end

endmodule

pero la matriz macro_block no se muestra en gtkwave, ¿es posible mostrarla?

    
pregunta Luca

1 respuesta

4

Depende de tu simulador. Para Icarus, creo que necesita una declaración explícita de dumpvars para cada fila de matriz que desea volcar. No recuerdo si necesitas el subíndice [msb: lsb]. Para CVC, puede usar el + dump_arrays plusarg. Utilizo CVC todo el tiempo y veo arreglos en gtkwave.

    
respondido por el Tony Bybell

Lea otras preguntas en las etiquetas