9

次のように宣言された8ビットレジスタに格納されている符号付き整数値を出力するにはどうすればよいですか。

reg [7:0] acc;

使用:

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

符号なしの値を出力します。

$display関数の正しい構文は何ですか?

4

2 に答える 2

10

regとして宣言するとsigned$displayマイナス記号が表示されます。

module tb;

reg signed [7:0] acc;

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

endmodule

プリントアウト:

acc :         -16
于 2012-02-17T13:53:45.417 に答える
8

この問題にも遭遇し、SystemVerilog 2012標準を調べましたが、フォーマット指定子に関するセクションで署名についての言及はありませんでした。これも機能する代替(基本的に同等の)ソリューションです。

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

「$signed」関数は、入力値を同じビット幅の符号付き型に変換します。

于 2016-02-15T20:16:56.430 に答える