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# 54907

2012.4 Vivado 合成 - 最適化の一部として優先マルチプレクサを含む HDL コードがパラレル マルチプレクサに変換されるとき、間違ったロジックが生成される

説明

2012.4 Vivado 合成の最適化の一部として優先マルチプレクサを含む HDL コードがパラレル マルチプレクサに変換されるとき、間違ったロジックが生成されます。

合成後シミュレーションおよび Onespin のフォーマル等価性チェックの結果を確認すると、合計レジスタに間違った値が表示されています。XST および Synplify で同じデザインを使用した場合はこの問題は発生しませんでした。

ソリューション

次のタイプの優先マルチプレクサの最適化を実行した Vivado 合成コードで、問題がありました。

if(a == b)
  out <= bdata;
else if(a == c)
  out <= cdata;
else
  out <= ddata;

この最適化の目的は、ロジック レベルを最小限に抑えるため、優先マルチプレクサをパラレル マルチプレクサに変換することでした。 

しかし、バージョン 2012.4 でのこの問題が原因で、間違ったロジックが生成されてしまいます。

2012.4 でこの問題を回避するには、合成を実行する前にマルチプレクサの最適化をオフにするため、次の Tcl コマンドを使用する必要があります。

set_param synth.elaboration.rodinMoreOptions "rt::set_parameter inferMuxOpt 0"

この問題は 2013.1 Vivado ツールで修正されています。

AR# 54907
作成日 03/13/2013
最終更新日 09/02/2014
ステータス アクティブ
タイプ 既知の問題
ツール
  • Vivado Design Suite - 2012.4