这是 Verilog 中的法律声明吗?
wire \n_628_B[-1111111109] ;
尽管看起来很奇怪,但这是合法的语法。请参阅 IEEE Std 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 网表)始终包含此类转义标识符。不过,我个人不会在手写代码中使用它。