インテル® Quartus® Primeプロ・エディション ユーザーガイド: デザインのコンパイル

ID 683236
日付 12/16/2019
Public

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

ドキュメント目次

1.9.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 
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 
end 

endmodule

RTL内のゲートクロックを手動変換せずに、Auto Gated Clock Conversion設定を指定して、デザイン内のゲート・ベース・クロックをクロックイネーブルに自動変換します。この設定は、デザイン内のすべてのゲート・ベース・クロック、または1つ以上の特定のクロック信号にグローバルに適用できます。

表 18.  ゲートクロック変換の設定

設定のスコープ

説明

グローバル Assignments > Settings > Compiler Settings > Advanced Settings (Synthesis)Auto Gated Clock Conversionオプションをイネーブルします。または、プロジェクト .qsf に対してグローバル割り当てを次のようにして追加します。
set_global_assignment –name SYNTH_GATED_CLOCK_CONVERSION on
インスタンス固有 1つ以上のインスタンスに対してAuto Gated Clock Conversionの指定を Assignment Editor (Assignments > Assignment Editor) で行います。または、インスタンス割り当てをプロジェクト .qsf に対して次のようにして追加します。
set_instance_assignment –name SYNTH_GATED_CLOCK_CONVERSION on –to clk_in
デザイン合成後、ゲートクロック変換の結果が、Gated Clock Conversion Detailsレポートに表示されます。このレポートには、すべての変換済みおよび未変換のゲートクロックとそのベースクロックが一覧表示されます。未変換のゲートクロックの場合、レポートでは、クロックが変換されない理由が特定されます。
注: 自動ゲートクロック変換では、明示的なRAM (WYSIWYG RAMやインテルFPGAメモリーIPなど) をサポートしますが、推論されたRAMはサポートしません。
図 48. Gated Clock Conversion Detailsレポート