在verilog打印中,有符号整数值存储在reg类型的变量中

Nul*_*oet 6 verilog xilinx

如何打印存储在声明为的8位寄存器中的有符号整数值

reg [7:0] acc;

运用

$ display("acc:%d",acc)

它打印无符号值.

什么是$ display函数的正确语法?

小智 7

也遇到了这个问题并查看了 SystemVerilog 2012 标准,但在关于格式说明符的部分中没有看到任何关于签名的提及。这是一个同样有效的替代(基本等效)解决方案:

$display("acc : %d", $signed(acc))
Run Code Online (Sandbox Code Playgroud)

"$signed" 函数将输入值转换为具有相同位宽的有符号类型。


too*_*lic 6

如果您声明regsigned,$display将显示减号:

module tb;

reg signed [7:0] acc;

initial begin
    acc = 8'hf0;
    $display("acc : %d", acc);
end

endmodule

/*

Prints out:

acc :         -16

*/
Run Code Online (Sandbox Code Playgroud)