AR# 13605

|

CPLD - ピンを固定するとデザインがデバイスにフィットしない

説明

キーワード : CPLD, pin lock, fit, ピン固定, フィット

ピン/ノードが固定されているとデザインはフィットしませんが、ISE GUI で [Use Design Constraints] をオフにしてデザイン制約を指定していない場合にはフィットします。

ソリューション

このソリューションは、上記の記述にあてはまるデザインのみに適用されます。

フィットしないデザインのフィッタ レポート (.rpt) を表示します。 レポートの始めの方に、「FB Summary」というセクションがあります。 これには、リソースがほぼ最大限に使用されているファンクション ブロックが記述されています。

例 :
XC9500 - ファンクション ブロック入力が 33 以上あるファンクション ブロック
XC9500XL/XV - ファンクション ブロック入力が 49 以上あるファンクション ブロック
CoolRunner XPLA3 または CoolRunner-II - ファンクション ブロック入力が 38 以上あるファンクション ブロック

次の方法のいずれかにより、ファンクション ブロック内の密集を解消できます。
1. ファンクション ブロック内の出力のピン固定を解除します。 これにより、密集度が低いファンクション ブロック内に出力信号が配置されます。
2. 密集したファンクション ブロックでロジックがバッファを介するようにします。

例 :
15 積項の論理式 -> 出力バッファ
バッファ後 :
10 積項の論理式 -> 6 積項の論理式* -> 出力バッファ

* 最初のレベルの 10 積項の論理式の出力に 1 積項を必要とするため、5 ではなく、6 積項にします。

この方法ではロジックが 2 つに分かれます。 最初のレベルのロジックはどのファンクション ブロックに配置してもかまいません。2 つめのレベルのロジックはその信号の出力ピンと同じファンクション ブロックに配置されます。 これにより 15 積項のファンクションブロックは 5 積項ですむようになります。もう 1 つのファンクションブロックは 10 積項となります。

注意すべき点は、合成ツールを使用すると最適化が実行され、バッファ ノードが 1 つのレベルのロジックにコラプスされることです。 これを防ぐ方法は、ベンダーによって異なりますので、詳細はツールのベンダーに問い合わせてください。

XST では、次の構文を使用してコラプスを防ぎます。
VHDL:
attribute KEEP : string ;
attribute KEEP of netname : signal is "TRUE";

Verilog:
//synthesis attribute KEEP of netname

XST 以外の合成ツールを使用した場合に、ノードはコラプスされないがフィッタによって削除されるといった場合には、UCF で KEEP 制約を使用してください。

net netname KEEP;

[Use Design Constraints] がイネーブルであることを確認してデザインをフィットし直します。
AR# 13605
日付 12/15/2012
ステータス アクティブ
種類 一般
People Also Viewed