Verilog:访问子模块实例中的wire
我想知道Verilog中是否有一种语法,可以访问子模块中的某条导线,而不将该导线作为输出 例如,如果具有以下模块:Verilog:访问子模块实例中的wire,verilog,system-verilog,Verilog,System 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 现在,我想从Module_Top的范围访问实例“sm”
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
现在,我想从Module_Top的范围访问实例“sm”中的连线“c”。
有办法吗?
可能是这样的:
assign f = sm/c;
(这种语法显然不适合我)
附言:
我知道这不是最好的做法,但对我来说,这会让事情变得容易得多
谢谢
编辑:我想要一个可合成的代码 你们非常接近。使用点,而不是斜杠:
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
请参阅第23.7节“成员选择和层次结构名称”。您是否可以通过问题编辑添加此选项,以用于测试台或可合成代码。这似乎不起作用。遗憾的是,我没有访问您的参考文档的权限,但我尝试了一下,却得到了一个错误:“无法解析层次名称”。有什么想法吗?好的,我已经找到了,而且还找到了一些关于这个主题的例子。然而,这对我不起作用。它可以合成吗?@Bamba也许你想让导线c作为模块_sub的输出。否则,toolic的解决方案将起作用(可能无法合成)。这里有一个类似的问题,您可以参考,以访问模块层次结构之外的资源: