インテルのみ表示可能 — GUID: oji1570030938918
Ixiasoft
1.1. コンパイルの概要
1.2. Compilation Dashboardの使用
1.3. デザイン・ネットリストのインフラストラクチャー (ベータ版)
1.4. デザインの合成
1.5. デザインの配置配線
1.6. インクリメンタル最適化フロー
1.7. Fast Forwardコンパイルフロー
1.8. フルコンパイル・フロー
1.9. コンパイル結果のエクスポート
1.10. 他のEDAツールの統合
1.11. 合成言語のサポート
1.12. コンパイラーの最適化手法
1.13. 合成設定のリファレンス
1.14. フィッター設定のリファレンス
1.15. デザインのコンパイルの改訂履歴
インテルのみ表示可能 — GUID: oji1570030938918
Ixiasoft
1.12.3. ゲート使用クロックの自動変換
クロックゲートにより、ASICデザインにおける電力消費を抑えます。その場合、回路にロジックを追加してクロックツリーを切り取ります。クロックツリーを切り取ることで回路の一部が無効になり、フリップフロップによる状態切り替えの必要がなくなります。 インテル® Quartus® Prime FPGAを使用してASICデザインのプロトタイプを作成している場合は、デザインでクロックゲートをクロックイネーブルに変換する必要があります。
ASICゲート使用クロック例 | FPGAクロックイネーブル例 |
---|---|
module infer_enable (clk, reset, d, en, q); input d, en, clk, reset; output q; wire gated_clk; reg q; assign gated_clk = clk & en; always@(posedge gated_clk or reset) begin if (!reset) q <= 1’b0; else q <= d ; end endmodule |
module infer_enable (clk, reset, d, en, q); input d, en, clk, reset; output q; reg q; always@(posedge clk or reset) begin if (!reset) q <= 1’b0; else if (en) q <= d; else q <= q ; end endmodule |
RTLでゲート使用クロックを手動変換するのではなく、Auto Gated Clock Conversion 設定を指定して、デザイン内のゲート使用クロックをクロックイネーブルに自動変換することができます。この設定は、デザイン内のすべてのゲート使用クロックにグローバルに適用したり、1つもしくは複数の特定のクロック信号に適用したりすることができます。
設定の範囲 |
詳細 |
---|---|
グローバル | Assignments > Settings > Compiler Settings > Advanced Settings (Synthesis) で Auto Gated Clock Conversion オプションを有効にします。または、次のようにグローバル割り当てをプロジェクトの .qsf に追加します。set_global_assignment –name SYNTH_GATED_CLOCK_CONVERSION on |
インスタンス固有 | Assignment Editor (Assignments > Assignment Editor) で1つ以上のインスタンスに対して Auto Gated Clock Conversion を指定します。または、次のようにインスタンス割り当てをプロジェクトの .qsf に追加します。set_instance_assignment –name SYNTH_GATED_CLOCK_CONVERSION on –to clk_in |
デザインの合成後、ゲート使用クロック変換の結果をGated Clock Conversion Detailsレポートで確認します。このレポートには、すべての変換済みおよび未変換のゲートクロックとそのベースクロックが一覧表示されます。未変換のゲートクロックの場合、レポートには、クロックが変換されない理由が示されます。
注: ゲート使用クロックの自動変換では、明示的なRAM (WYSIWYG RAMやインテルFPGAメモリーIPなど) をサポートしますが、推論RAMはサポートしません。
図 105. Gated Clock Conversion Detailsレポート