AR# 19139

|

XST - Verilog で符号付きデータ タイプを使用すると不正なロジックが作成される

説明

キーワード : Verilog, 2001, 2k, sign, signed, unsigned, data, type, incorrect, wrong, logic, 符号付き, 符号なし, データ タイプ, 不正, ロジック

データ タイプが符号付きと符号なしの両方の演算子を共に使用すると、XST で符号付き信号が不正に符号拡張されてしまいます。

output [5:0] O;
input [5:0] in1;
input signed [3:0] in2;

assign O = in1 + in2;

上記の例では、 in1 が不正に符号拡張されます。

ソリューション

Verilog 2001 規格では、オペレーションに符号付き演算子と符号なし演算子を共に使用した場合、オペレーションが符号なしになり、符号付きデータ タイプが符号なしに変わってしまいます。オペレーションでは、符号付きと符号なしのタイプを共に使用しないでください。符号付きと符号なしのタイプを共に使用する必要がある場合は、中間信号を使用してください。

:
:
wire signed [3:0] a;
wire [3:0] b;
wire [7:0] c;
wire [7:0] d;

assign c = a * b;
:
:

これを次のように変更してください。

:
:
wire signed [3:0] a;
wire [3:0] a_temp;
wire [3:0] b;
wire [7:0] c;
wire [7:0] d;

assign a_temp = a;
assign c = a_temp * b;
:
:
AR# 19139
日付 12/15/2012
ステータス アクティブ
種類 一般
People Also Viewed