高度なクロック ゲーティングによる 電力削減の解 …...† the multiplexer...

Post on 31-Mar-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

XAPP790 (v1.0) 2012 年 8 月 13 日 japan.xilinx.com 1

© Copyright 2012 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Zynq, and other designated brands included herein are trademarks of Xilinx in the United States and other countries. All other trademarks are the property of their respective owners.

概要 このアプ リ ケーシ ョ ン ノートでは、 ザイ リ ンクスのデザイン ツールがサポートするクロ ッ ク ゲーティ

ングを解説しながら高度なクロ ッ ク ゲーティングを紹介し、これがデザインに与える影響をロジッ ク デザインと消費電力の観点から詳細に解析します。 さ らに、 ザイ リ ンクスのデザイン ツール フローでク

ロ ッ ク ゲーティング サポート を利用する方法やその結果を解析する方法についても説明します。

はじめに 高度なクロ ッ ク ゲーティングは、デザインでの不要なスイ ッチング動作を検出し、抑制する一連のアル

ゴ リズムです。 この完全に自動化された手法は、 ロジッ クをわずかに追加するだけでデザインにおける

不要なスイ ッチング動作を 小限に抑え、 デザインの消費電力を削減します。

消費電力の定義

消費電力は、 ダイナミ ッ ク消費電力とスタティ ッ ク消費電力の 2 つの要素からな り ます。

式 1

説明

• α : サイ クルあたりの回路のスイ ッチング動作 (%)

• fCLK : ク ロ ッ ク周波数

• V : 電源電圧

• C : キャパシタンス

デバイスのスタティ ッ ク消費電力とは、プログラマブル デバイスに電力が供給され、 コンフ ィギュ

レーシ ョ ンされていない状態の、 ト ランジスタのリーク電力を示します。

高度なクロック ゲーティング

高度なク ロ ッ ク ゲーティ ングは、 デザイン出力と関連のないデザイン部分のアクテ ィ ビテ ィ をある ク

ロ ッ ク サイ クル間 小にする手法です。 クロ ッ ク ゲーティングは、 あるクロ ッ ク サイ クルで使用され

ないロジッ クをそのサイクル間はト グルしないよ うにするこ とで、ダイナミ ッ ク消費電力を削減します。

さ らに、 フ リ ップフロ ップへ供給されるクロ ッ クによって新しいデータまたはフ リ ップフロ ップ出力が

出力されない場合、そのクロ ッ ク サイクルでは後続のロジッ クがそれら クロ ッ クを使用しないよ うにし

ます。 このよ うなゲーティング手法によって式 1 の α 値が低減されるため、デザインのダイナミ ッ ク消

費電力および総消費電力が削減されます。

図 1 に示す高度なクロ ッ ク ゲーティング手法は、スライスでローカルのクロ ッ ク イネーブル (CE) 信号

を用いて余分なスイ ッチング動作を抑制します。 CE はロジッ クの基本ク ラスター (スライス) に接続さ

れるため、 消費電力の 適化に適しています。 スライス レベルのクロ ッ ク ゲーティング アルゴ リズム

は、論理式を解析し、 ソース となるレジスタが各クロ ッ ク サイクルの結果に関連しないこ とを確認した

上で、 これらレジスタのスイ ッチング動作をクロ ッ ク イネーブルを用いて該当するク ロ ッ ク サイ クル

間無効にします。 このよ うな変更で既存のロジッ クまたはクロ ッ ク配置が影響を受けるこ とはなく、 新

しいクロ ッ クが生成されるこ と もあ り ません。 また、 ク ロ ッ ク ゲーティング適用後でもデザインは元の

デザインと論理的に等価であるため、 デザインの動作が変わるこ とはあ り ません。

アプリケーシ ョ ン ノート : 7 シリーズ FPGA

XAPP790 (v1.0) 2012 年 8 月 13 日

高度なクロック ゲーティングによる電力削減の解析著者 : Smitha Sundaresan、 Frederic Rivoallon

ダイナミック消費電力 α fCLK× C× V2×=

ザイリンクス FPGA におけるクロック ゲーティング

XAPP790 (v1.0) 2012 年 8 月 13 日 japan.xilinx.com 2

ザイリンクス FPGA におけるクロック ゲーティング

ザイ リ ンクスのデザイン スイートは、 プ リデザインから配線後までク ロ ッ ク ゲーティングをサポート

します。 Xilinx Power Estimator (XPE) スプレッ ドシート ツール (http://japan.xilinx.com/power からダ

ウンロード ) を使用する と、 ザイ リ ンクス ツールで消費電力 適化が有効になっている場合にデザイン

で削減可能な消費電力を大まかに把握できます。 7 シ リーズ FPGA には基本的に、 共通のク ロ ッ ク イネーブルを共有するフ リ ップフロ ップが各スライスに 8 つ存在します。図 2 に示すとおり、ク ロ ッ ク イネーブルはローカルでクロ ッ クをゲート制御し、また、フ リ ップフロ ップが ト グルしないよ うにします。

ISE® デザイン ツールは、 フ リ ップフロ ップ出力が後続のターゲッ トで使用されない状況を検出して自

動的に不要なスイ ッチング動作を抑えます。 これは、 合成後のロジッ ク検証で実行されます。 次にツー

ルはローカルのクロ ッ ク イネーブルを生成します。 スラ イスでのクロ ッ ク ゲーティングは元のデザイ

ンを再合成せず、 追加で LUT を作成するか既存のものを使用します。 ただし、 既存のロジッ クは変更

されないため、 これらの変更は段階的に行われます。

クロック ゲーティングの例

この 8 : 1 マルチプレクサー (8 ビッ ト バス) VHDL のサンプル デザインは、 ク ロ ッ ク ゲーティングの

概念を示します。 次の RTL コードは、 消費電力 適化のオプシ ョ ンあ り となしの場合でインプ リ メ ン

ト される基本的な 8 : 1 マルチプレクサーを作成するものです。

X-Ref Target - Figure 1

図 1 : 従来のグローバル クロック ゲーティングと高度なクロック ゲーティ ング

EN0EN1

CLK

EN0EN1

CLK

CE

Same activity as above Reduced ActivityNew controllogic addedby ISE tools

• Amounts to clock cleaning• Enables low-skew clocks (For FPGAs)• Does not reduce signal transitions

• Uses local CE to cancel transitions• Maintains logic equivalence• Abundant Gaters (one per slice)• Reduces logic and interconnect activity

Classic Global Clock Gating Intelligent Clock Gating

CE

X790_01_061112

X-Ref Target - Figure 2

図 2 : クロック イネーブルを使用したクロック ゲーティング

Out

EN

SIG

CE

Out

EN

SIG

Before: After:

Canceled Transitions

SIG

EN

SIG

EN

• SIG does not influence output whenever it toggles (= consumes unnecessary power)

• SIG only transitions when used• CE is generated to control SIG actively

X790_02_071312

EquivalentOutput

ザイリンクス FPGA におけるクロック ゲーティング

XAPP790 (v1.0) 2012 年 8 月 13 日 japan.xilinx.com 3

library IEEE;use IEEE.std_logic_1164.all;

entity multiplexer isport (CLK : in std_logic;

SEL_IN : in std_logic_vector (2 downto 0);A_IN, B_IN, C_IN, D_IN : in std_logic_vector (7 downto 0);E_IN, F_IN, G_IN, H_IN : in std_logic_vector (7 downto 0);SIG : out std_logic_vector (7 downto 0));

end multiplexer; architecture RTL of multiplexer issignal SEL_INR, SEL : std_logic_vector(2 downto 0);signal A, B, C, D, E, F, G, H : std_logic_vector(7 downto 0);

begin -- purpose: register inputs-- type : sequential-- inputs :CLK-- inputs :A_IN, B_IN, C_IN, D_IN, E_IN, F_IN, G_IN, SEL_IN-- outputs:SIG

process (CLK)begin -- processif rising_edge(CLK) thenSEL_INR <= SEL_IN;SEL <= SEL_INR;A <= A_IN;B <= B_IN;C <= C_IN;D <= D_IN;E <= E_IN;F <= F_IN;G <= G_IN;H <= H_IN;A <= A_IN;

end if;end process;-- purpose: multiplexer 8-to-1-- type : sequential -- inputs :CLK, A, B, C, D, E, F, G, SEL-- outputs:SIG process (CLK) begin -- process if rising_edge(CLK) then case SEL is when "000" => SIG <= A; when "001" => SIG <= B; when "010" => SIG <= C; when "011" => SIG <= D; when "100" => SIG <= E; when "101" => SIG <= F; when "110" => SIG <= G; when "111" => SIG <= H; when others => SIG <= A;

end case; end if;

end process;end RTL;

XPE ツールを使用した消費電力の概算

XAPP790 (v1.0) 2012 年 8 月 13 日 japan.xilinx.com 4

クロック ゲーティング前のデザインのロジック解析

図 3 に示すよ うに、 「ク ロ ッ ク ゲーティングの例」 には 8 つの 8 ビッ ト レジスタ (A、B ~ H) があ り ま

す。 これらレジスタの出力はマルチプレクサーに入り、マルチプレクサーはセレク ト ラインのコンテン

ツに従っていずれかのレジスタを選択します。マルチプレクサーは 1 つのレジスタしか選択しないため、

ほかのレジスタをシャ ッ ト ダウンして消費電力を削減できます。

クロック ゲーティングに伴うロジックの追加

図 3 は、 クロ ッ ク ゲーティングによる 「ク ロ ッ ク ゲーティングの例」 への影響も示しています。 LUTがレジスタの CE 信号に追加されています。 これらの LUT への入力は、 マルチプレクサーのセレク ト

ラ インにも入り ます。 結果、 LUT への入力がレジスタの 1 つを有効にし、 MUX が次のクロ ッ ク サイ

クルで選択するレジスタをセレク ト ラインに示します。 したがって、 8 つのレジスタのうち 7 つはその

ク ロ ッ ク サイ クル間選択されません。 わずかなロジッ ク エレ メン ト を追加するだけで、 消費電力が大

き く節約されます。

図 3 に示す 8 ビッ ト レジスタ (A、 B ~ H) の出力がマルチプレクサーへの入力とな り、 SELECT 信号

に基づいてその 1 つが選択されます。

XPE ツールを使用した消費電力の概算

XPE はスプレッ ドシート を使用した消費電力概算ツールであ り、通常は、設計やインプリ メンテーシ ョ

ン前の段階で使用されます。 これは、 アプリ ケーシ ョ ンに合わせたアーキテクチャ評価やデバイス選択

に有効で、 適切な電源および熱設計部品の選択にも役立ちます。 さ らに、 このツールには消費電力 適

化モードで消費電力を見積もるための設定もあ り ます。 これらの設定を使用すれば、 デザインのインプ

リ メンテーシ ョ ン時に消費電力 適化モードを適用した場合の消費電力の予測削減量がわかり ます。

X-Ref Target - Figure 3

図 3 : クロック ゲーティングを使用したサンプル デザイン

CELUT

8H

3

CELUT

8B

CELUT

8A

8

3

Out

SEL

After:

• The multiplexer described In RTL • Intelligent Clock Gating controls the CEs to reduce switching power

8H

3

8B

8A

8

3

Out

SEL

Before:

X790_03_061112

XPE ツールを使用した消費電力の概算

XAPP790 (v1.0) 2012 年 8 月 13 日 japan.xilinx.com 5

X-Ref Target - Figure 4

図 4 : XPE ツールによる消費電力最適化の設定

X790_04_061112

XPE ツールを使用した消費電力の概算

XAPP790 (v1.0) 2012 年 8 月 13 日 japan.xilinx.com 6

ISE デザイン ツールを使用したクロック ゲーティング

ISE デザイン ツールでは、マップ段階で -power high または -power XE オプシ ョ ンを使用するこ と

でクロ ッ ク ゲーティング機能が有効になり ます。

クロック ゲーティングの解析

ク ロ ッ ク ゲーティング アルゴ リ ズムが、 消費電力の改善を目的と して、 デザインのロジッ クを変更せ

ずにゲーティング ロジッ クを追加したこ とを確認する方法はいくつかあ り ます。 まず、 ク ロ ッ ク ゲー

ティングが有効な構造がゲーティング アルゴ リズムによって検出されたこ とを確認します。

ク ロ ッ ク ゲーティ ング前後のマップ レポート の解析はすべてのデザイン変更を示します。 マップ レポートのデザイン サマ リ セクシ ョ ンには、 デザインで使用されるさまざまな リ ソースが リ ス ト されま

す。 消費電力 適化前のデザインのマップ レポートのデザイン サマリは、 次のよ うになり ます。

Design Summary--------------Number of errors: 0Number of warnings: 78Slice Logic Utilization:Number of Slice Registers: 75 out of 407,600 1%Number used as flip-flops: 75Number used as Latches: 0Number used as Latch-thrus: 0Number used as AND/OR logics: 0

Number of Slice LUTs: 211 out of 203,800 1%Number used as logic: 208 out of 203,800 1%Number using O6 output only: 208Number using O5 output only: 0Number using O5 and O6: 0Number used as ROM: 0

Number used as Memory: 3 out of 64,000 1%Number used as Dual Port RAM: 0Number used as Single Port RAM: 0Number used as Shift Register: 3Number using O6 output only: 3Number using O5 output only: 0

X-Ref Target - Figure 5

図 5 : ISE デザイン ツールの [Map Properties]

X790_05_061112

XPE ツールを使用した消費電力の概算

XAPP790 (v1.0) 2012 年 8 月 13 日 japan.xilinx.com 7

Number using O5 and O6: 0Number used exclusively as route-thrus: 0

Slice Logic Distribution:Number of occupied Slices: 80 out of 50,950 1%Number of LUT flip-flop pairs used: 211Number with an unused flip-flop: 136 out of 211 64%Number with an unused LUT: 0 out of 211 0%Number of fully used LUT-FF pairs: 75 out of 211 35%Number of unique control sets: 2Number of slice register sites lostto control set restrictions: 10 out of 407,600 1%

A LUT flip-flop pair for this architecture represents one LUT paired with one flip-flop within a slice.A control set is a unique combination of clock, reset, set, and enable signals for a registered element.The Slice Logic Distribution report is not meaningful if the design is over-mapped for a non-slice resource or if placement fails.OVERMAPPING of block RAM resources should be ignored if the design is over-mapped for a non-block RAM resource or if placement fails.

IO Utilization:--------------

Average Fanout of Non-Clock Nets: 1.11

Peak Memory Usage: 1654 MBTotal REAL time to MAP completion: 55 secsTotal CPU time to MAP completion: 54 secs

同じデザインで消費電力 適化を適用した後のマップ レポートのデザイン サマ リは、 次のよ うにな り

ます。

Design Summary--------------Number of errors: 0Number of warnings:157Slice Logic Utilization:Number of Slice Registers: 75 out of 407,600 1%Number used as Flip Flops: 75Number used as Latches: 0Number used as Latch-thrus: 0Number used as AND/OR logics: 0

Number of Slice LUTs: 219 out of 203,800 1%Number used as logic: 216 out of 203,800 1%Number using O6 output only: 216Number using O5 output only: 0Number using O5 and O6: 0

Number used as ROM: 0Number used as Memory: 3 out of 64,000 1%Number used as Dual Port RAM: 0Number used as Single Port RAM: 0Number used as Shift Register: 3Number using O6 output only: 3Number using O5 output only: 0Number using O5 and O6: 0

Number used exclusively as route-thrus: 0

Slice Logic Distribution:Number of occupied Slices: 99 out of 50,950 1%Number of LUT Flip Flop pairs used: 219

XPE ツールを使用した消費電力の概算

XAPP790 (v1.0) 2012 年 8 月 13 日 japan.xilinx.com 8

Number with an unused Flip Flop: 144 out of 219 65%Number with an unused LUT: 0 out of 219 0%Number of fully used LUT-FF pairs: 75 out of 219 34%Number of unique control sets: 10Number of slice register sites lostto control set restrictions: 10 out of 407,600 1%

A LUT flip-flop pair for this architecture represents one LUT paired with one flip-flop within a slice.A control set is a unique combination of clock, reset, set, and enable signals for a registered element.The Slice Logic Distribution report is not meaningful if the design is over-mapped for a non-slice resource or if Placement fails.OVERMAPPING of block RAM resources should be ignored if the design is over-mapped for a non-block RAM resource or if placement fails.

IO Utilization:--------------

Average Fanout of Non-Clock Nets: 1.33

Peak Memory Usage:1665 MBTotal REAL time to MAP completion:1 mins 6 secs Total CPU time to MAP completion:1 mins 5 secs

消費電力 適化前後でデザイン サマリ を比較する と、 スライス LUT の数が増えているこ とがわかり ま

す (ク ロ ッ ク ゲーティング前のレポート では 211、 ク ロ ッ ク ゲーティ ング後のレポート では 219)。 ク

ロ ッ ク ゲーティング レポートの解析には、 クロ ッ ク ゲーティング アルゴ リ ズムによるデザイン変更の

詳細が含まれます。

クロック ゲーティング レポートの解析

ISE デザイン ツールで消費電力 適化を使用する と、 レポート (PSR) ファ イルが生成されます。 この

ファイルを確認する と、 ツールによってデザインに適用された 適化を把握できます。 このセクシ ョ ン

のレポートは、 サンプル デザインの PSR ファ イルです。 こ こには、 ゲート制御されたスライス レジス

タ とブロ ッ ク RAM の数、 処理されたクロ ッ ク イネーブル ネッ トの数、 イネーブルを生成するために

追加されたフ リ ップフロ ップの数などがリ ス ト されています。 サンプル デザインでは 64 のレジスタが

ゲート制御され、 8 つのクロ ッ ク イネーブル ネッ トが処理されました。 これら 64 のレジスタが個別に

リ ス ト され、 このゲート制御を有効にするために追加された CE 信号も示されています。

TABLE OF CONTENTS1) Physical Synthesis Options Summary2) Optimizations statistics and details

=========================================================================* Physical Synthesis Options Summary *=========================================================================---- OptionsGlobal Optimization :OFF

Retiming :OFFEquivalent Register Removal :OFF

Timing-Driven Packing and Placement :ONLogic Optimization :OFFRegister Duplication :OFF

---- Intelligent clock gating :ON

---- Target ParametersTarget Device :7k325tffg900-2

=========================================================================

XPE ツールを使用した消費電力の概算

XAPP790 (v1.0) 2012 年 8 月 13 日 japan.xilinx.com 9

=========================================================================* Optimizations *=========================================================================---- Statistics

Number of Slice registers gated :64Number of block RAM ports gated :0Number of clock enable net processed :8Number of flip-flops added for Enable Generation:0

---- Details

Component Name | Type | CE Name | Objective ---------------|----- |-------------------------------- |-----------A_0 | FF | A_0_CE_cooolgate_en_sig_4 | Power A_1 | FF | A_0_CE_cooolgate_en_sig_4 | Power A_2 | FF | A_0_CE_cooolgate_en_sig_4 | Power A_3 | FF | A_0_CE_cooolgate_en_sig_4 | Power A_4 | FF | A_0_CE_cooolgate_en_sig_4 | Power A_5 | FF | A_0_CE_cooolgate_en_sig_4 | Power A_6 | FF | A_0_CE_cooolgate_en_sig_4 | Power A_7 | FF | A_0_CE_cooolgate_en_sig_4 | Power B_0 | FF | B_0_CE_cooolgate_en_sig_7 | Power B_1 | FF | B_0_CE_cooolgate_en_sig_7 | Power B_2 | FF | B_0_CE_cooolgate_en_sig_7 | Power B_3 | FF | B_0_CE_cooolgate_en_sig_7 | Power B_4 | FF | B_0_CE_cooolgate_en_sig_7 | Power B_5 | FF | B_0_CE_cooolgate_en_sig_7 | Power B_6 | FF | B_0_CE_cooolgate_en_sig_7 | Power B_7 | FF | B_0_CE_cooolgate_en_sig_7 | Power C_0 | FF | C_0_CE_cooolgate_en_sig_10 | Power C_1 | FF | C_0_CE_cooolgate_en_sig_10 | Power C_2 | FF | C_0_CE_cooolgate_en_sig_10 | Power C_3 | FF | C_0_CE_cooolgate_en_sig_10 | Power C_4 | FF | C_0_CE_cooolgate_en_sig_10 | Power C_5 | FF | C_0_CE_cooolgate_en_sig_10 | Power C_6 | FF | C_0_CE_cooolgate_en_sig_10 | Power C_7 | FF | C_0_CE_cooolgate_en_sig_10 | Power D_0 | FF | D_0_CE_cooolgate_en_sig_13 | Power D_1 | FF | D_0_CE_cooolgate_en_sig_13 | Power D_2 | FF | D_0_CE_cooolgate_en_sig_13 | Power D_3 | FF | D_0_CE_cooolgate_en_sig_13 | Power D_4 | FF | D_0_CE_cooolgate_en_sig_13 | Power ------------------------------

Flops added for Enable Generation -------------------------

XPE ツールを使用した消費電力の概算

XAPP790 (v1.0) 2012 年 8 月 13 日 japan.xilinx.com 10

クロック ゲーティング前後のデザインのシミ ュレーシ ョ ン

消費電力 適化前後のデザインをシ ミ ュレーシ ョ ンする場合、 同じテス トベンチを用いてレジスタをプ

ローブできます。 両方の場合で論理的なシ ミ ュレーシ ョ ンはまったく同じで、 機能的に等価であるこ と

を示します。 このセクシ ョ ンの図で、 消費電力 適化後のレジスタのゲート制御およびレジスタ出力で

の低減されたアクティビティ レート を確認できます。

テス トベンチはリ ファレンス デザインの ZIP ファ イルから入手可能です。 「 リ ファレンス デザイン」 を参照して ください。

ISE デザイン ツールでシ ミ ュレーシ ョ ンを実行する場合は、 GUI を [Simulation] ビューに切り替えて

[Post_Route Simulation] を選択し、 [Processes] ウ ィンド ウで [Simulate Post-Place & Route Model] を実行します。

図 6 および図 7 は、消費電力 適化前後のデザインのシ ミ ュレーシ ョ ン波形を示すスナップシ ョ ッ トで

す。消費電力 適化前 (図 6) ではデザインのレジスタ出力が各クロ ッ ク サイクルで ト グルしますが、消

費電力 適化後 (図 7) では同じレジスタの ト グル回数が少なくなっています。

X-Ref Target - Figure 6

図 6 : 電力の最適化前

CLK

A

SEL

OUT

A.Q

A toggles even

when it is not being

used downstream.

X790_06_071012

XPE ツールを使用した消費電力の概算

XAPP790 (v1.0) 2012 年 8 月 13 日 japan.xilinx.com 11

クロック ゲーティング前後の SAIF ファイルの解析

配線後のシ ミ ュレーシ ョ ンを実行する場合、SAIF ファ イルをシ ミ ュレータからの出力と して指定し、さ

らに詳細な解析に使用して、 消費電力の正確な予測値を求めます。 SAIF フ ァ イルを指定するには、

[Simulate Post-Place & Route Model] で右ク リ ッ ク し て [Process Properties] を選択し ます。 [ISimProperties] の下にある [Generate SAIF file for Power Optimization/Estimation] をオンにします。 デザ

インのシ ミ ュレーシ ョ ン実行時にツールではシ ミ ュレーシ ョ ン実行用の SAIF ファ イルが生成されま

す。

クロック ゲーティング前の SAIF ファイルの解析

ク ロ ッ ク ゲーティング前の個別レジスタのアクティビティ レート を次に示します。

(INSTANCE A_1(NET

(o (T0 530000) (T1 470000) (TX 0) (TZ 0) (TB 0) (TC 42))(ce (T0 0) (T1 1000000) (TX 0) (TZ 0) (TB 0) (TC 0))(clk (T0 500678) (T1 495000) (TX 4322) (TZ 0) (TB 0) (TC 199))(i (T0 527196) (T1 470000) (TX 2804) (TZ 0) (TB 0) (TC 43))(rst (T0 1000000) (T1 0) (TX 0) (TZ 0) (TB 0) (TC 0))(set (T0 1000000) (T1 0) (TX 0) (TZ 0) (TB 0) (TC 0))

) )

レジスタ A_1 の出力 o のアクティビティ レートは 42 です。

X-Ref Target - Figure 7

図 7 : 電力の最適化後

CLK

A

SEL

OUT

A.Q

CE

A toggles only

when it needs to.

X790_07_071012

XPE ツールを使用した消費電力の概算

XAPP790 (v1.0) 2012 年 8 月 13 日 japan.xilinx.com 12

クロック ゲーティング後の SAIF ファイルの解析

ク ロ ッ ク ゲーティング後の個別レジスタのアクティビティ レート を次に示します。

(INSTANCE A_1(NET

(o (T0 570000) (T1 430000) (TX 0) (TZ 0) (TB 0) (TC 12))(ce (T0 678913) (T1 320345) (TX 742) (TZ 0) (TB 0) (TC 42))(clk (T0 500696) (T1 495064) (TX 4240) (TZ 0) (TB 0) (TC 200))(i (T0 526558) (T1 470000) (TX 3442) (TZ 0) (TB 0) (TC 43))(rst (T0 1000000) (T1 0) (TX 0) (TZ 0) (TB 0) (TC 0))(set (T0 1000000) (T1 0) (TX 0) (TZ 0) (TB 0) (TC 0))

) )

レジスタ A_1 の出力 o のアクティビティ レートは 12 です。このデザインで消費電力 適化を実行する

前のアクティビティ レートは 42 でした。

消費電力最適化前後の消費電力の概算

サンプル デザインは小さなものであるため、消費電力 適化の前後における電力概算値の差を示すこ と

は困難です。 しかし、 XPower Analyzer の GUI に表示される、 レジスタ出力におけるアクティ ビティ

レートは 適化の前後で大き く変化しています。 ISE ツールの GUI で、 [Tools] メニューから [XPowerAnalyzer] をク リ ッ ク します。 [XPower Analyzer] プロセスによってデザインの消費電力が概算されま

す。 ロジッ クの部分 (図 8 および図 9) に着目する と、 ク ロ ッ ク ゲーティングによってレジスタ A_0 ~A_7 の信号レートが 55% ~ 42% の範囲から 12% ~ 5% の範囲まで減少しているこ とがわかり ます。

X-Ref Target - Figure 8

図 8 : 消費電力最適化前のレジスタ アクティ ビテ ィ

XAPP790_08_061212

その他の最適化

XAPP790 (v1.0) 2012 年 8 月 13 日 japan.xilinx.com 13

その他の最適化 高度なクロ ッ ク ゲーティングによる 適化機能は、 専用ブロッ ク RAM (シンプルまたはデュアル ポー

ト ) の消費電力も削減します。 これらのブロ ッ クには、 アレイ イネーブル、 ライ ト イネーブル、 および

出力レジスタのク ロ ッ ク イネーブルなどのイネーブル信号があ り ます。 電力削減の大半は、 アレイ イネーブルを使用するこ とによって実現されます (図 10)。

たとえば、 2:1 マルチプレクサーが接続されているブロ ッ ク RAM の場合、 適化によって書き込みイ

ネーブル (WER) とセレク ト (PRESELECTR) を使用する OR ファンクシ ョ ンが LUT にインプ リ メ ン

ト され、それらがブロ ッ ク RAM の ENARDEN へと接続されます。 この OR ファンクシ ョ ンによって、

ブロ ッ クでデータ書き込みが実行されていない場合やブロ ッ クの出力が使用されない場合 (マルチプレ

クサーで選択されていないと きなど) に、 ブロ ッ ク RAM の消費電力が抑えられます。 ブロ ッ ク RAMの書き込みイネーブルのト グル レートが 50% である と仮定した場合、 適化によって削減されるダイ

ナミ ッ ク消費電力は 25% です。 次に Verilog コードの例を示します。

X-Ref Target - Figure 9

図 9 : 消費電力最適化後のレジスタ アクティ ビテ ィ

XAPP790_9_061212

X-Ref Target - Figure 10

図 10 : アレイ イネーブルのインプリ メンテーシ ョ ン

After:Before:

Address

Data In

Data Out

Address

Data In Data Out

CE

X790_10_061112

その他の最適化

XAPP790 (v1.0) 2012 年 8 月 13 日 japan.xilinx.com 14

`timescale 1ns/1ps

module ram_mux #( parameter RAM_WIDTH = 8, RAM_ADDR_WIDTH = 12) ( input SELECT, CLK, WE, input [RAM_WIDTH-1:0] BYPASS, input [RAM_ADDR_WIDTH-1:0] ADDR, input [RAM_WIDTH-1:0] DATA_IN, output reg [RAM_WIDTH-1:0] RESULT_OUT = {RAM_WIDTH{1'b0}});

reg preselectR = 1'b0, selectR = 1'b0, weR = 1'b0; reg [RAM_ADDR_WIDTH-1:0] addr_reg = {RAM_ADDR_WIDTH{1'b0}}; reg [RAM_WIDTH-1:0] mem [2**RAM_ADDR_WIDTH:0]; reg [RAM_WIDTH-1:0] data_in_reg = {RAM_WIDTH{1'b0}}; reg [RAM_WIDTH-1:0] data_out = {RAM_WIDTH{1'b0}};

always @(posedge CLK) begin // RAM block (inferred) if (weR) mem[addr_reg] = data_in_reg; data_out <= mem[addr_reg]; // Registering inputs data_in_reg <= DATA_IN; addr_reg <= ADDR; weR <= WE; preselectR <= SELECT; selectR <= preselectR; // Mux:RAM output and input data RESULT_OUT <= selectR ? data_out :BYPASS; end

endmodule // ram_mux

デザイン ツールの同じバージ ョ ンでは、 ロジッ ク と してインプ リ メ ン ト されたク ロ ッ ク イネーブル信

号を検出し、 専用の CE に置き換えるこ とで図 11 のよ うに 適化できます。

X-Ref Target - Figure 11

図 11 : クロック イネーブルのインプリ メンテーシ ョ ン

After:Before:

EN

EN CE

X790_11_061112

その他の最適化

XAPP790 (v1.0) 2012 年 8 月 13 日 japan.xilinx.com 15

クロック ゲーティング前のデザインのシミ ュレーシ ョ ン

消費電力 適化前後のデザインをシ ミ ュレーシ ョ ンするこ とで、 ブロ ッ ク RAM イネーブルのゲート制

御や、消費電力 適化後のブロ ッ ク RAM 出力における低減されたアクティビティ レート を確認できま

す。

テス トベンチはリ ファレンス デザインの ZIP ファ イルから入手可能です。 「 リ ファレンス デザイン」 を

参照して ください。

ISE デザイン ツールでシ ミ ュレーシ ョ ンを実行する場合は、 GUI を [Simulation] ビューに切り替えて

[Post_Route Simulation] を選択し、 [Processes] ウ ィンド ウで [Simulate Post-Place & Route Model] を実行します。

クロック ゲーティング前後の SAIF ファイルの生成

配線後のシ ミ ュレーシ ョ ンを実行する場合、 シ ミ ュレータは SAIF ファ イルを出力できます。 このファ

イルをさ らに詳細な解析に使用し、 消費電力の正確な予測値を求めるこ とができます。

• [Simulate Post-Place & Route Model] で右ク リ ッ ク して [Process Properties] を選択します。

• [ISim Properties] の下にある [Generate SAIF file for Power Optimization/Estimation] をオンにし

ます。

• デザインのシ ミ ュレーシ ョ ン実行時にツールでシ ミ ュレーシ ョ ン実行用の SAIF ファ イルが生成さ

れます。

消費電力最適化前後の消費電力の概算

XPower Analyzer の GUI では消費電力 適化前後のデザインを開く こ とができます。 ブロ ッ ク RAMのイネーブル レートは 適化の前後で大き く変化しています。XPower Analyzer の起動前にシ ミ ュレー

シ ョ ンが実行されるため、SAIF ファイルは自動的にロード されます。 ISE ツールの GUI で、 [Tools] メニューから [XPower Analyzer] をク リ ッ ク します。 [XPower Analyzer] プロセスによってデザインの消

費電力が概算されます。 ブロ ッ ク RAM の部分 (図 12 および 図 13) に着目する と、 ブロ ッ ク RAM のイネーブル レートがおおよそ 100% から 75% に削減し、ブロ ッ ク RAM の全消費電力が 0.00500W から 0.00374W に削減しているこ とがわかり ます。

X-Ref Target - Figure 12

図 12 : 消費電力最適化前のブロック RAM のイネーブル レート

X790_12_061112

消費電力最適化の効率的な設計手法

XAPP790 (v1.0) 2012 年 8 月 13 日 japan.xilinx.com 16

消費電力最適化の効率的な設計手法

このセクシ ョ ンでは、 消費電力 適化手法で消費電力を削減する際に推奨する効率的な設計手法を説明

します。

クロックまたはデータ パスのゲート制御

これは、 パスの結果が使用されない場合にそのパスを停止させる という一般的な手法です。 クロ ッ クを

ゲート制御する と、 駆動されているすべての同期ロードが停止します。 データ パスをゲート制御する

と、信号のスイ ッチングやグ リ ッチが次の同期エレ メン トへ継続して伝搬されなくな り ます。ソフ ト ウェ

ア ツールでは条件を検出する記述やネッ ト リ ス ト が解析されます。 ただし、 望まし く ないアプ リ ケー

シ ョ ン、データ フロー、依存性など、ツールでは把握できない情報は設計者が設定する必要があ り ます。

ゲーティングに関する一般的なガイド ライン

• ゲート信号が影響を与えるエレ メン トの数を 大にします。たとえば、 ク ロ ッ ク イネーブル信号を

1 つ使用する各ロードをゲート制御するよ り も、駆動元のクロ ッ ク ド メ インをゲート制御する方が

消費電力を削減できます。

• ク ロ ッ クをゲート制御またはマルチプレクサーで選択してスイ ッチング動作やクロ ッ ク ツ リーの

使用を 小限にする場合、 専用ク ロ ッ ク バッファーのク ロ ッ ク イネーブル ポート を使用します。

ク ロ ッ ク信号をゲートオフするために LUT の挿入やその他の方法を適用するこ とは、 消費電力お

よびタイ ミ ングを考慮する と効率的な方法ではあ り ません。

• 制御セッ トの数を 少にします。データまたはクロ ッ ク パスを停止するためにゲート信号を加える

と ロジッ クや配線を追加する必要が出てく る可能性があるため、 付加する構造の数を 少にして本

来の目的から外れないよ うにするこ とが重要です。追加リ ソースを配置配線するこ とで、既存ロジッ

クのインプリ メンテーシ ョ ンが複雑になる可能性があ り ます。 結果、 配置の拡大、 複製の追加、 よ

り一層の配線の密集が生じ、 ダイナミ ッ ク消費電力の増加につながり ます。

• プライオ リティ エンコーダーが不要な場合は、 次の例で示すよ うに if-then-else ブロ ッ クではなく

case ブロ ッ クを使用します。

if-then-else ブロ ッ クを使用した場合

assign val = reg1 ? reg1_in1 : ((reg2) ? reg1_in2 : ((reg3 ? reg1_in3 : reg1_in4))) ;

case ブロ ッ クを使用した場合

case (1'b1) reg1 : val = reg1_in1 ;

reg2: val = reg1_in2 ;reg3: val = reg1_in3 ;

X-Ref Target - Figure 13

図 13 : 消費電力最適化後のブロック RAM のイネーブル レート

X790_13_061112

リファレンス デザイン

XAPP790 (v1.0) 2012 年 8 月 13 日 japan.xilinx.com 17

default: val = reg1_in4 ;endcase

• ザイ リ ンクスは、 データ パス フ リ ップフロ ップ、 パイプライン フ リ ップフロ ップ、 およびブロ ッ

ク RAM に非同期リセッ ト を使用するこ とを推奨していません。

• スライス ゲーティングはバイ ト単位で機能します。7 シ リーズ デバイスをターゲッ ト と したデザイ

ンの場合、 8 ビッ ト よ り も小さいバスはゲート制御されません。 消費電力 適化コードは、 名前だ

けでなく、 コネクティビティに基づいてバスを検出します。

• 不完全な RTL リセッ ト テンプレートによって CE ピンが無駄になり ます。図 14 に、 if ブロ ッ クで

はなく else ブロ ッ クにのみ割り当てられた RTL コード bar を例と して示します。 合成は、 リセッ

トがアクティブの場合それを保持する必要がある とみなし、 終的にはリセッ ト を CE に接続する

ため、 レジスタでの消費電力 適化がブロ ッ ク されます。

ブロック RAM• ブロ ッ ク RAM が消費する電力量は、 ブロ ッ ク RAM が有効となっている時間に直接比例します。

消費電力を抑えるために、 デザインでブロ ッ ク RAM が使用されていないクロ ッ ク サイ クルでは、

ブロ ッ ク RAM イネーブル信号を Low にできます。 ブロ ッ ク RAM のイネーブル レート と ク ロ ッ

ク レートの両方が、 電力を 適化する際に も重要なパラ メーターです。

• 書き込み実行中に出力ラ ッチが変更しない場合、 TDP モードで NO_CHANGE モードを使用する

必要があ り ます。 このモードが も消費電力を削減できます。 また、 SDP モードのブロ ッ ク RAMでは WRITE_FIRST モードの動作と同じになるため使用できません。

リファレンス デザイン

このアプ リ ケーシ ョ ン ノートの リ ファレンス デザイン ファ イルは、 次のサイ トからダウンロードでき

ます。

https://secure.xilinx.com/webreg/clickthrough.do?cid=190051

表 1 に、 このアプリ ケーシ ョ ン ノートの リ ファレンス デザインの詳細を示します。

X-Ref Target - Figure 14

図 14 : RTL の例

X790_14_071012

Reg1

R

Reg2

CE

Forgot to say whathappens to Reg2 whenreset

Consequence: RSTsteals Reg2’s CEblocking poweroptimization

always @ (posedge clk) if (rst) reg1 <= 1’b0; else begin reg1 <= a; reg2 <= b; end

RST

表 1 : リファレンス デザインの詳細

全般

開発者 Smitha Sundaresan

ターゲッ ト デバイス 7 シ リーズ FPGA

ソース コードの提供 あ り

ソース コードの形式 Verilog

まとめ

XAPP790 (v1.0) 2012 年 8 月 13 日 japan.xilinx.com 18

まとめ このアプ リ ケーシ ョ ン ノー トおよび 『高度なク ロ ッ ク ゲーティ ングによるスイ ッチング電力の削減』

(WP370) で説明する とおり、 FPGA デザインは高度なクロ ッ ク ゲーティングから多くの利点を得るこ

とができます。 ザイ リ ンクスのデザイン ツールは、 これらの手法を容易にサポート し、 ク ロ ッ ク ゲー

ティ ングがデザインに与える影響をロジッ ク デザイン と消費電力の観点から詳細に解析した情報を提

供します。

改訂履歴 次の表に、 この文書の改訂履歴を示します。

Notice of Disclaimer

The information disclosed to you hereunder (the “Materials”) is provided solely for the selection and useof Xilinx products.To the maximum extent permitted by applicable law:(1) Materials are made available"AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL WARRANTIES AND CONDITIONS,EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OFMERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE;and (2) Xilinx shall not be liable (whether in contract or tort, including negligence, or under any othertheory of liability) for any loss or damage of any kind or nature related to, arising under, or in connectionwith, the Materials (including your use of the Materials), including for any direct, indirect, special,incidental, or consequential loss or damage (including loss of data, profits, goodwill, or any type of lossor damage suffered as a result of any action brought by a third party) even if such damage or loss wasreasonably foreseeable or Xilinx had been advised of the possibility of the same.Xilinx assumes noobligation to correct any errors contained in the Materials or to notify you of updates to the Materials or

既存のザイ リ ンクス アプリ ケーシ ョ ン ノート / リ ファレンス デザイン、 CORE Generator™ ソフ ト ウェア、 またはサードパーティからのコード / IP デザインに使用

なし

シミ ュレーシ ョ ン

機能シ ミ ュレーシ ョ ンの実施 なし

タイ ミ ング シ ミ ュレーシ ョ ンの実施 あ り

機能およびタイ ミ ング シ ミ ュレーシ ョ ンでのテス トベンチの利用

あ り

テス トベンチの形式 Verilog

使用したシ ミ ュレータ ツール バージ ョ ン ISIM 13.4

SPICE/IBIS シ ミ ュレーシ ョ ン Y/N

インプリ メンテーシ ョ ン

使用した合成ソフ ト ウェア ツール XST

使用したインプリ メンテーシ ョ ン ソフ ト ウェア ツール /バージ ョ ン

ISE / 13.4

スタティ ッ ク タイ ミ ング解析の実施 なし

ハードウェア検証

ハードウェア検証の実施 なし

検証に使用したハード ウェア プラ ッ ト フォーム N/A

表 1 : リファレンス デザインの詳細 (続き)

日付 バージョ ン 内容

2012 年 8 月 13 日 1.0 初版リ リース

Automotive Applications Disclaimer

XAPP790 (v1.0) 2012 年 8 月 13 日 japan.xilinx.com 19

to product specifications.You may not reproduce, modify, distribute, or publicly display the Materialswithout prior written consent.Certain products are subject to the terms and conditions of the LimitedWarranties which can be viewed at http://www.xilinx.com/warranty.htm; IP cores may be subject towarranty and support terms contained in a license issued to you by Xilinx.Xilinx products are notdesigned or intended to be fail-safe or for use in any application requiring fail-safe performance; youassume sole risk and liability for use of Xilinx products in CriticalApplications:http://www.xilinx.com/warranty.htm#critapps.

Automotive Applications Disclaimer

XILINX PRODUCTS ARE NOT DESIGNED OR INTENDED TO BE FAIL-SAFE, OR FOR USE INANY APPLICATION REQUIRING FAIL-SAFE PERFORMANCE, SUCH AS APPLICATIONSRELATED TO:(I) THE DEPLOYMENT OF AIRBAGS, (II) CONTROL OF A VEHICLE, UNLESSTHERE IS A FAIL-SAFE OR REDUNDANCY FEATURE (WHICH DOES NOT INCLUDE USE OFSOFTWARE IN THE XILINX DEVICE TO IMPLEMENT THE REDUNDANCY) AND A WARNINGSIGNAL UPON FAILURE TO THE OPERATOR, OR (III) USES THAT COULD LEAD TO DEATHOR PERSONAL INJURY.CUSTOMER ASSUMES THE SOLE RISK AND LIABILITY OF ANY USEOF XILINX PRODUCTS IN SUCH APPLICATIONS.

本資料は英語版 (v1.0) を翻訳したもので、 内容に相違が生じる場合には原文を優先します。

資料によっては英語版の更新に対応していないものがあ り ます。

日本語版は参考用と してご使用の上、 新情報につきましては、 必ず 新英語版をご参照ください。

こ の 資 料 に 関 す る フ ィ ー ド バ ッ ク お よ び リ ン ク な ど の 問 題 に つ き ま し て は、

jpn_trans_feedback@xilinx.com までお知らせください。 いただきましたご意見を参考に早急に対応さ

せていただきます。 なお、 このメール アドレスへのお問い合わせは受け付けており ません。 あらかじめ

ご了承ください。

top related