インテルのみ表示可能 — GUID: mwh1409959634768
Ixiasoft
1.4.1.1. 同期メモリーブロックの使用
1.4.1.2. サポートされないリセットおよびコントロール条件の回避
1.4.1.3. Read-During-Write動作の確認
1.4.1.4. RAMの推論と実装の制御
1.4.1.5. シングルクロック同期RAM (古いデータでのRead-During-Write動作)
1.4.1.6. シングルクロック同期RAM (新しいデータでのRead-During-Write動作)
1.4.1.7. シンプル・デュアルポート、デュアルクロック同期RAM
1.4.1.8. トゥルー・デュアルポート同期RAM
1.4.1.9. 混合幅デュアルポートRAM
1.4.1.10. バイト・イネーブル信号を備えるRAM
1.4.1.11. 電源投入時の初期のメモリーコンテンツの指定
インテルのみ表示可能 — GUID: mwh1409959634768
Ixiasoft
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定数ロジックが実装されます。