In verilog printing signed integer value stored in a variable of type reg

老子叫甜甜 提交于 2019-12-01 04:42:21

If you declare the reg as signed, $display will show the minus sign:

module tb;

reg signed [7:0] acc;

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

endmodule

/*

Prints out:

acc :         -16

*/

Ran into this problem as well and looked through the SystemVerilog 2012 standard, but didn't see any mention of signedness in the section about format specifiers. Here's an alternative (basically equivalent) solution that also works:

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

The "$signed" function converts the input value into a signed type with the same bitwidth.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!