UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

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
ステータス アクティブ
種類 一般
このページをブックマークに追加