verilog - 如何访问模块内的内部 reg?

标签 verilog system-verilog

我在 Verilog 中有这个架构/拓扑:

picture

如何访问内部注册 IntReg ,这不是 IntModule 中的输入/输出,在 SystemVerilog 中?

always @(posedge clk) begin
    $display ("[Time %0t ps] IntReg value = %x", $time, DUT.IntModule.IntReg);
end

我可以使用绑定(bind)吗?如何?

最佳答案

您不需要使用 bind :

module DUT;
bit clk;
initial begin
    repeat (5) begin
        #5 clk = 0; 
        #5 clk = 1;
    end
end

always @(posedge clk) begin
    $display ("[Time %0t ps] IntReg value = %x", $time, DUT.IntModule.IntReg);
end

IntModule IntModule ();
endmodule

module IntModule;
    reg IntReg = 1;
endmodule

输出:
[Time 10 ps] IntReg value = 1
[Time 20 ps] IntReg value = 1
[Time 30 ps] IntReg value = 1
[Time 40 ps] IntReg value = 1
[Time 50 ps] IntReg value = 1

关于verilog - 如何访问模块内的内部 reg?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18473754/

相关文章:

verilog - 部分选择导致非法左值

verilog - 如何检查Verilog中的未知逻辑?

system-verilog - SV 随机化给出意想不到的值

vhdl - 为什么延迟不能在verilog中合成?

verilog - 我们可以有一系列自定义模块吗?

Verilog 中的断言语句

arrays - $size, $bits, verilog

verilog - always_comb 构造的 Systemverilog 问题

verilog - 如何在verilog中将来自wire的输入存储到reg中?

if-statement - always_comb 'if' 错误中的 SystemVerilog 'not purely combinational logic' 语句