インテル® Quartus® Primeプロ・エディションのユーザーガイド: デザイン上の推奨事項

ID 683082
日付 4/13/2020
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

1.6.8. カウンターHDLのガイドライン

インテル® Quartus® Prime合成エンジンは、レジスターに続く加算器としてHDLコードのカウンターを実装し、イネーブル( ena )、同期クリア( sclr )、同期ロード( sload )などのレジスター制御信号を使用可能にします。最適なエリア使用率を得るには、アップコントロールまたはダウンコントロールを、2つの個別の加算演算子ではなく、1つの加算演算子で表現するようにしてください。
次のコーディング・スタイルを使用する場合、合成エンジンは追加のために2つの別個のキャリーチェインを実装する場合があります。
out <= count_up? out + 1:out-1;

シンプルなデザインの場合、合成エンジンはこのコーディング・スタイルを識別し、ロジックを最適化します。ただし、複雑なデザイン、またはプラグマを保持するデザインでは、コンパイラはすべてのロジックを最適化できないため、より注意深いコーディングが必要になります。

次のコーディング・スタイルでは、他のロジックとともに1つの加算器のみが必要です。
out <= out +(count_up?1:-1);

このスタイルは、キャリーチェイン加算器を1つだけ使用し、加算器の前にLUTに-1定数ロジックが実装されているため、リソースと領域をより効率的に使用します。