Verilog:访问子模块实例中的连线

时间:2016-01-15 17:46:34

标签: verilog system-verilog

我想知道Verilog中是否存在访问子模块中的线路而不使该线路成为输出的语法。

例如,如果有以下模块:

    For Each cc As Control In Me.Controls
        If TypeOf cc Is CheckBox Then
            DirectCast(cc, CheckBox).Checked = False
        End If
    Next
    For Each cc As Control In Form1.Controls
        If TypeOf cc Is CheckBox Then
            DirectCast(cc, CheckBox).Checked = False
        End If
    Next

现在,我想访问电线' c'在实例中' sm'来自Module_Top的范围。 有办法吗? 也许是这样的:

module Module_Sub(a,b);
   input a,b; 
   wire c; 
   ...
endmodule


module Module_Top(d, e);
   input d,e; 
   wire f; 

   Module_Sub sm(d,e); 
   ...
endmodule

(这种语法对我来说显然不起作用)。

P.S: 我知道这不是最好的做法,但就我而言,它会让事情变得更容易。

谢谢!

编辑:我希望它能用于合成代码。

1 个答案:

答案 0 :(得分:0)

你非常接近。使用点,而不是斜线:

module Module_Sub(a,b);
   input a,b; 
   wire c; 
endmodule

module Module_Top(d, e);
   input d,e; 
   wire f = sm.c; 

   Module_Sub sm(d,e); 
endmodule

请参阅IEEE Std 1800-2012,第23.7节和第34条;成员选择和分层名称"。