我想連接十進制和字符串。像:Verilog串聯的十進制和字符串文字
parameter AWIDTH = 15;
...
...
wire [AWIDTH-1:0] addra_bus;
assign addra_bus = cg_one ? {addra} : {AWIDTH, "'bz"};
在基本 'cg_one' 的,它會選擇要麼{ADDRA}或{AWIDTH 「」BZ「}。在三元運算符的錯誤條件下,我將AWIDTH與'bz連接起來。如果cg_one是1'b0,我應該在addra_bus中獲得15'bz的值。合理?
合成此代碼時出現問題。我收到以下警告:
WARNING: expression size 56 truncated to fit in target size 15 (VERI-1209)
這是爲什麼?從哪裏來的大小56?
乍一看,我認爲這是神奇的東西。 :)但不幸的是,它沒有奏效。這次出現了一個錯誤信息:'ERROR:near error'(VERI-1137)' –
這是合法的SystemVerilog(請參閱第17.7.1節「1800-2012 LRM的整數文字常量」),但也許您的綜合工具不支持它。你也可以嘗試'{AWIDTH {1'bz}}',這正是我想你首先想要做的。 –
哦。我想我應該在這裏具體提到Verilog。是的,可能有我的工具不支持它的可能性。無論如何,你的第二個建議{AWIDTH {1'bz}}'起作用了。我希望它能讓我回到'15bz'。感謝您的寫作。 –