2016-01-15 82 views
-1

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

例如,如果具有如下模块:

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 

现在,我要访问的线“C”在从Module_Top的范围实例“SM”。 有没有办法做到这一点? 也许是这样的:

assign f = sm/c; 

(这句法显然没有为我工作)。

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

谢谢!

编辑:我想要一个合成代码。

+0

你可以通过一个问题编辑添加一个测试平台或可合成的代码吗? – Morgan

回答

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节 “成员选择和分层名称”。

+0

这似乎不起作用。可悲的是,我没有访问您的参考文档,但我尝试了,并且出现错误:“无法解析分层名称”。有什么想法吗? – Bamba

+0

@Bamba:我没有得到那个错误。该文件是免费的(只是谷歌它)。 – toolic

+0

O.K我找到了它,还发现了一些包含示例的主题。但它不适用于我。它可以合成吗? – Bamba