當號碼大小是可變的,因此必須由參數設置時,如何設置最大號碼?在下面,結果必須是「FFFF」,但模擬器只返回「F」。誰能解決這個問題嗎?如何設置一個完整的變量常量?
`define SIZE 10
module tb1;
reg [15:0] a;
initial begin
a = `SIZE'hF;
$display("a=%h",a);
end
endmodule
當號碼大小是可變的,因此必須由參數設置時,如何設置最大號碼?在下面,結果必須是「FFFF」,但模擬器只返回「F」。誰能解決這個問題嗎?如何設置一個完整的變量常量?
`define SIZE 10
module tb1;
reg [15:0] a;
initial begin
a = `SIZE'hF;
$display("a=%h",a);
end
endmodule
`SIZE'hF
,所述SIZE
部分只意味着它僅僅是一個n位寬度數。在你的情況下,10'hF
表示它是一個10位數字0xF
,所以它在模擬中是正確的。
如果您正在使用SystemVerilog的,你可以使用a = '1;
,它將所有位設置爲1
這裏是SystemVerilog的LRM說,可以指定
的未分級的單比特值通過在撇號(')之前加上單位值,但沒有基本說明符。未分配值的所有位應設置爲指定位的值。在一個自定義的上下文中,未分級的單比特值應該具有1比特的寬度,並且該值應該被視爲無符號。
要獲得'FFFF',你需要設置'定義大小16'。 – toolic