1

我对verilog和active-hdl很陌生。我遇到了一个问题,如果有人能就此提出建议,我将不胜感激。

我在波形查看器上看不到第二层模块的波形。更准确地说,子模块中的信号显示 Z 或 X。

请注意,我已通过工具/首选项/模拟/访问设计对象启用读/写访问。

例如,我在 tb 模块中生成一个 clk 并将其连接到 clk_mod,试图查看 clk_mod 中的 clk,但是对于 clk 它只显示“Z”而对于“i”只显示“X”。

`timescale 1ns/100ps

module tb;
reg clk;
clk_mod dut(.clk(clk));    

initial
    begin
        clk = 0;
        forever
            #5 clk = ~clk;
    end
endmodule


module clk_mod (input clk);

reg i;
always @(posedge clk) 
    begin
        i=10;   
    end 

endmodule
4

1 回答 1

0

我认为您的 tb 缺少模拟退出。您应该将以下语句添加到tb模块中(作为单独的语句):

 initial #20 $finish;

如果您使用正确的工具,这将在第 20 步完成仿真,并且应该为您创建波形。

此外,您声明i为一位 reg,因此,您不能将 '10' 放入其中。因此,您的波形应该显示切换时钟和从“x”到“0”的“i”的单个事务。

我想你应该这样声明'i':

reg [3:0] i;
于 2017-11-25T04:28:43.300 回答