用于声明连接的Verilog语法

用于声明连接的Verilog语法,verilog,system-verilog,Verilog,System Verilog,这是Verilog的合法声明吗 wire \n_628_B[-1111111109] ; 这似乎很奇怪,但这是法律语法。参考IEEE标准1800-2012第5.6.1节。以下代码是合法的: module tb; wire \n_628_B[-1111111109] ; reg foo; assign \n_628_B[-1111111109] = foo; initial begin $monitor(\n_628_B[-1111111109] ); foo = 1;

这是Verilog的合法声明吗

wire \n_628_B[-1111111109] ;

这似乎很奇怪,但这是法律语法。参考IEEE标准1800-2012第5.6.1节。以下代码是合法的:

module tb;

wire \n_628_B[-1111111109] ;
reg foo;

assign \n_628_B[-1111111109] = foo;

initial begin
    $monitor(\n_628_B[-1111111109] );
    foo = 1;
    #5 foo = 0;
end

endmodule
输出:

1
0

因为它太奇怪了,如果你有选择的话,我强烈建议你不要使用它。

尽管看起来很奇怪,但这是法律语法。参考IEEE标准1800-2012第5.6.1节。以下代码是合法的:

module tb;

wire \n_628_B[-1111111109] ;
reg foo;

assign \n_628_B[-1111111109] = foo;

initial begin
    $monitor(\n_628_B[-1111111109] );
    foo = 1;
    #5 foo = 0;
end

endmodule
输出:

1
0

因为它太奇怪了,如果你有选择的话,我强烈建议你不要使用它。

是的。在Verilog中,在反斜杠之后和下一个空格之前的所有内容都是一个标识符。因此,方括号中的部分不是数组大小或任何东西,而是信号名称的一部分。自动生成的Verilog代码(例如Verilog NetList)始终包含此类转义标识符。但我个人不会在手写代码中使用它。

是的。在Verilog中,在反斜杠之后和下一个空格之前的所有内容都是一个标识符。因此,方括号中的部分不是数组大小或任何东西,而是信号名称的一部分。自动生成的Verilog代码(例如Verilog NetList)始终包含此类转义标识符。但我个人不会在手写代码中使用它