AR# 2729

CPLD - ロジック最適化の制御方法について

説明

キーワード : optimization, Pterm collapsing, keep, collapse, collapsing P-term limit, 最適化, 積項, コラプス, 保持, 制限

重要度 : 標準

概要 :
CPLDFitter で、デザイン内のすべての組み合わせロジックが部分的または全体的にコラプスしてしまいます。

ただし、ロジック最適化の方法を制御することは可能です。

ソリューション

1

積項の制限をコラプスする場合 :

数段の AND-OR ロジックから構成される大型の組み合わせロジックが完全にコラプス (平坦化) するときに、このファンクションのインプリメントに必要な積項 (PT) の数が大幅に増えることがあります。 ロジック段のコラプスによりロジックで使用される積項が制限を越えた場合、コラプスがうまくいかず、追加の AND-OR ロジック段を使用してファンクションがインプリメントされます。

CPLDFitter のレポート (design_name.rpt) には、各ロジック ファンクションで使用された積項数が示されています。 デザインが完全に平坦化されるまで、積項の制限を増やすとこの数が増えます。 同時に、内部組み合わせノードが削除されます。

2

ロジック ノードをコラプスしない場合 :

平坦化を行った場合、デザインのインプリメントに必要となる PT リソースの数が増えます。 ターゲット デバイスにフィットするデザインは、平坦化し過ぎるとフィットされません。 ただし、デザインによっては平坦化してもフィットされるものもあります。 クリティカル パスを平坦化するのに十分なレベルまで PT 数を増やすことができないが、ターゲット デバイスにはフィットする場合、ロジック最適化を制御する KEEP 属性を特定ノードに適用できます。KEEP 属性は、ノードがファンアウトにコラスプされないように指定します。

回路図内の DATA シンボルを最適化で無視しない場合は、このシンボルに KEEP 属性を設定しておきます。

KEEP 属性は UCF ファイルを使用しても適用できます。 次の構文を使用してください。

INST DATA KEEP;

KEEP 属性は、I/O バッファなどマクロセル ロジックを含まないシンボルに影響を与えません。

KEEP 属性をシンボルに設定すると、シンボルのインプリメンテーションに使用されるすべてのマクロセルでロジック最適化ができないようにします。 たとえば、マクロ シンボル (ライブラリ エレメント D2_4E など) に KEEP を設定すると、このデコーダのすべての出力および内部ノードがコラスプされません。 このような動作は通常、望ましくありません。

マクロ シンボルの特定の出力信号のみでコラプスを行わない場合、KEEP 属性をそのネットに設定します。 KEEP 属性をネットに設定した場合、CPLDFitter によってそのネットを駆動するプリミティブ シンボルのみに属性が適用されます。

回路図内にある最適化で無視しない DATA シンボルをネット DOUT に接続している場合、このネットに KEEP 属性を設定します。

KEEP 属性は UCF ファイルを使用しても適用できます。 次の構文を使用してください。

NET DOUT KEEP;

3

ロジック ノードをコラプスする場合 :

COLLAPSE 属性をロジック シンボルまたはその出力ネットに設定して、ロジック シンボルをそのファンアウトにコラプスするように指定できます。

UCF ファイルの構文は次のとおりです。

NET NODE COLLAPSE;

COLLAPSE 属性は、シンボル内に含まれるすべてのロジック ファンクションに影響を与えます。 複数シンボル ロジック チェーンのコラプスする場合、COLLAPSE 属性を複数使用する必要があります。
AR# 2729
日付 12/15/2012
ステータス アクティブ
種類 一般