AR# 24999

|

9.1i EDK - MicroBlaze v5/v6.0a の整数除算で間違った結果が生成される

説明

キーワード : MB, uBlaze, FPU, FP, idiv

MicroBlaze ハードウェアの整数除算で、0x633b6b00 / 0xde713373 など、オペランドによっては間違った結果が生成されます。 この問題は、MicroBlaze v5 および v6.00.a で発生します。

ソリューション

このエラーは、MicroBlaze の IDIV 命令により発生します。

MicroBlaze v.5.00x では、FDIV 命令を使用するとこの問題を回避できます。 整数除算を実行するには、コードを次のように記述します。

i3 = (unsigned int) ((float) i1 / (float) i2) ;
i4 = (unsigned int) ((float) i2 / (float) i1) ;

MicroBlaze v6.00a でも、同じ回避策を使用できます。 また、MicroBlaze インスタンシエーションのパラメータ C_AREA_OPTIMIZED を 1 に設定しても、この問題を回避できます。

この問題は、最新版の EDK 9.1i サービス パックに含まれる MicroBlaze v6.00 で修正されています。サービス パックは次のサイトから入手できます。
http://japan.xilinx.com/xlnx/xil_sw_updates_home.jsp
この修正は、EDK 9.1i サービス パック 1 以降に含まれます。

AR# 24999
日付 12/15/2012
ステータス アクティブ
種類 一般
People Also Viewed