在 output 和 reg 中声明的输出是否都必须有位数?

Do outputs declared in output and reg both have to have number of bits?

verilog中这两行代码是一样的吗?

  1. 输出[1:0] r;

    reg[1:0] r;

  2. 输出[1:0] r;

    reg;

位数是否必须声明两次?

没有。没有号

Verilog 提供了几种声明端口的方式。推荐的方式称为 ANSI 样式,您只需提及一次端口名称。

module m(output reg [1:0] r, input clk);

很遗憾,这种风格并没有在LRM中率先出现。 而且,是的,在您的问题中使用样式需要位宽匹配。