2013-10-09 60 views

回答

4

看起來很奇怪,這是合法的語法。請參閱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

是的。在反斜槓之後和下一個空白符之前的所有內容都是Verilog中的標識符。所以方括號內的部分不是數組大小或任何東西,只是信號名稱的一部分。自動生成的Verilog代碼(例如verilog netlists)始終包含這樣的轉義標識符。儘管如此,我個人不會在手寫代碼中使用它。