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

ID 683082
日付 4/13/2020
Public

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

ドキュメント目次

1.6.7. コンパレーターHDLガイドライン

このセクションでは、コンパレーター( <> 、または== )で使用可能なさまざまなタイプの実装に関する情報を提供し、特定の実装を促進するためにデザインをコーディングする方法について提案します。 インテル® Quartus® Primeプロ・エディション 合成を含む合成ツールは、デバイスおよびコンテキスト固有の実装ルールのを使用して、デザインに最適なルールを選択します。

合成ツールは、一般的な論理セルに==コンパレータを、キャリーチェインまたは一般的な論理セルに<比較を実装します。 6入力ALUTを備えたデバイスでは、キャリーチェインはセルごとに最大3ビットを比較できます。 キャリーチェインの実装は、スタンドアロン・ベンチマークのテストケースの一般的なロジックよりも高速になる傾向がありますが、Fitterの制限が大きくなるため、大規模なデザインでパフォーマンスが低下する可能性があります。面積要件は、ほとんどの入力パターンで類似しています。合成ツールは、入力パターンに基づいて適切な実装を選択します。

特定のコーディング・スタイルを選択することによる インテル® Quartus® Prime Synthesisエンジンを導くことができます。キャリーチェインの実装を明示的に選択するには、加算の観点から比較を言い換えます。

たとえば、次のコーディング・スタイルにより、合成ツールで実装を選択できます。これは、最新のデバイスファミリーで一般的なロジックセルを使用している可能性が最も高いものです。

wire [6:0] a,b;
wire alb = a<b;
次のコーディング・スタイルでは、合成ツールはキャリーチェインを使用します(チェインが非常に短い場合、または信号abが同じ信号に最小化される場合など、いくつかのケースを除く) 。
wire [6:0] a,b;
wire [7:0] tmp = a - b;
wire alb = tmp[7] 

この2番目のコーディング・スタイルでは、 tmp信号の最上位ビットを使用します。これは、 aがbより小さい場合 2の補数論理の1です。減算a-bは負の数になるためです。

入力範囲に関する情報がある場合、「Don't Care」値を使用してデザインを最適化できます。この情報は合成ツールでは使用できないため、特定のロジックを手動で実装すると、コンパレータの実装に必要なデバイス領域を削減できます。

アドレスデコーダーで頻繁に発生する次のロジック構造により、少量のロジック領域でバス値が一定範囲内にあるかどうかを確認できます。

図 5. コンパレータを使用してバスの値の範囲を確認するためのロジック構造の例