请帮助理解verilog端口定义的以下语法。
module same_port (.a(i), .b(i));
// Name ’i’ is declared inside themodule as a inout port.
// Names ’a’ and ’b’ are
// defined for port connections.
此连接合法吗?
答案 0 :(得分:3)
是的,这是合法的。看起来您直接从standard(非ANSI样式端口声明)的第23.2.2.1节中获取此示例。正如它所说,你有两个端口a
和b
,它们都连接到内部网i
。实例化此模块时,您可以使用命名端口连接将两个不同的东西连接到i
:
same_port inst(.a(connection1), .b(connection2));
在上述实例中,connection1
和connection2
都将连接到inst.i
。
即使这是合法的,我建议不要使用它,除非你有充分的理由。这不是非常常用的语法,可能会导致其他人查看您的代码时出现混淆。我见过的唯一一个地方就是从原理图中自动生成的verilog网表。