【问题标题】:how to view memory waveform?如何查看内存波形?
【发布时间】:2011-11-25 02:39:03
【问题描述】:

我无法使用 gtkwave 查看memory

    module internal_memory(
        output [31:0] hrdata,
        input mem_enable,
        input [31:0] haddr,
        input [31:0] hwdata,
        input hwrite,
        input hreset,
        input hclk
    );
        reg [31:0] memory [0:1023]; // <-------------- can't find its waveform
        reg [31:0] internal_hrdata;

        always @(posedge hclk, hreset) begin
            if (!hreset) begin
                internal_hrdata <= 32'h0000_0000;
            end
            else begin
                if (mem_enable) begin
                    if (hwrite) begin
                        memory[haddr] <= hwdata;
                    end
                    else begin
                        internal_hrdata <= memory[haddr];
                    end
                end
            end
        end

        assign hrdata = internal_hrdata;

    endmodule

你有什么建议查看memory的波形?

或者如何在 gtkwave 或任何 .vcd/波形查看器中显示二维数组?

【问题讨论】:

    标签: verilog waveform hdl


    【解决方案1】:

    我知道这是一个老问题,但我最近不得不在课程期末项目中查看 Icarus/GTKWave 的模拟记忆,并想为阅读此问题的任何人回答这个问题。我能够在 Icarus Verilog 可移植性说明中找到答案(请参阅源代码)。

    使用 Icarus,您需要转储要明确查看的每个数组字(内存位置):

    module top;
       reg [7:0] array [2:0];
       initial begin
         $dumpvars(0, array[0], array[1]);
         ...
       end
    endmodule
    

    您可以使用 for 循环自动转储数组中的所有单元格:

    module top;
       integer idx; // need integer for loop
       reg [7:0] array [2:0];
       initial begin
         for (idx = 0; idx < 2; idx = idx + 1) $dumpvars(0, array[idx]);
         ...
       end
    endmodule
    

    来源:http://iverilog.wikia.com/wiki/Verilog_Portability_Notes(转储数组字)

    【讨论】:

      【解决方案2】:

      您需要先将内存转储到 VCD 文件中。我熟悉的 2 个模拟器需要额外的模拟选项来将内存转储到 VCD;也许你的也是。

      【讨论】:

      • 在您的模拟器文档中查找“VCD”,然后转储您正在模拟的顶级节点。
      • 我正在使用 icarus verilog。好吧,我想我必须弄清楚这一点。无论如何感谢您的回答。
      • 我浏览了 Icarus Verilog 的文档。可悲的是,它没有帮助。
      • 是否可以实现一个PLI程序来转储内存?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-27
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多