我对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
答案 0 :(得分:0)
我认为你的tb缺乏模拟退出。您应该将以下语句添加到tb
模块(作为单独的语句):
initial #20 $finish;
这将在步骤20完成模拟,如果您使用正确的工具,应该为您创建波形。
另外,您将i
声明为单位注册,因此,您无法适应“' 10'进去。因此,您的波形应该显示切换时钟和单个事务的“i'来自' x'到' 0'。
我猜你应该宣布'我'这样:
reg [3:0] i;