インテルのみ表示可能 — GUID: mwh1409959633651
Ixiasoft
インテルのみ表示可能 — GUID: mwh1409959633651
Ixiasoft
1.6.7. コンパレーターに関するHDLガイドライン
合成ツールは、== コンパレーターを一般的な論理セルに実装し、< コンパレーターをキャリーチェーンまたは一般的なロジックセルに実装します。6入力ALUTを備えるデバイスでは、キャリーチェーンでセルごとに最大3ビットを比較することができます。キャリーチェーンの実装は、スタンドアロンのベンチマーク・テスト・ケースでは一般的なロジックよりも高速になる傾向がありますが、大規模なデザインではフィッターの制限が増えるため、パフォーマンスが低下する可能性があります。面積の要件は、ほとんどの入力パターンで同様です。合成ツールは、入力パターンに基づき適切な実装を選択します。
特定のコーディング・スタイルを選択することにより、 インテル® Quartus® Primeの合成エンジンをガイドすることができます。キャリーチェーンの実装を明示的に選択するには、加算の観点から比較を書き直します。
例えば、次のコーディング・スタイルにより、合成ツールで実装を選択できるようになります。この場合、新しいデバイスファミリーでは一般的なロジックセルを使用する可能性が高くなります。
wire [6:0] a,b; wire alb = a<b;
wire [6:0] a,b; wire [7:0] tmp = a - b; wire alb = tmp[7]
この2番目のコーディング・スタイルでは、tmp 信号の最上位ビットを使用します。a が b より小さい場合、減算 a-b は負の数になるため、これは2の補数ロジックで1になります。
入力の範囲に関する情報がある場合は、「Don't Care」値を使用してデザインを最適化することができます。この情報は合成ツールでは利用できないため、ロジックを手動で具体的に実装することにより、コンパレーターの実装に必要なデバイス面積を小さくすることができます。
次のロジック構造はアドレスデコーダーでよく見られるものです。これにより、バスの値が一定の範囲内にあるかを少量のロジック面積で確認することができます。