JP2009053989A - 半導体回路設計方法 - Google Patents
半導体回路設計方法 Download PDFInfo
- Publication number
- JP2009053989A JP2009053989A JP2007220864A JP2007220864A JP2009053989A JP 2009053989 A JP2009053989 A JP 2009053989A JP 2007220864 A JP2007220864 A JP 2007220864A JP 2007220864 A JP2007220864 A JP 2007220864A JP 2009053989 A JP2009053989 A JP 2009053989A
- Authority
- JP
- Japan
- Prior art keywords
- flip
- flop
- clock
- power consumption
- delay time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/396—Clock trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2117/00—Details relating to the type or aim of the circuit design
- G06F2117/04—Clock gating
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
【課題】ゲーテッドクロック技術および低電力フリップフロップを用いながら、消費電力またはクロック遅延時間を低減した回路設計方法を提供する。
【解決手段】半導体回路設計方法は、半導体集積回路の回路情報に基づいてフリップフロップを設定し、フリップフロップを制御する制御信号を求め、フリップフロップにクロックゲーティングを適用したときの消費電力の低さおよびクロック遅延時間のばらつきの小ささに基づく第1の評価値h1を算出し、第1の評価値が第1の閾値よりも大きい場合に、フリップフロップに対してゲーテッドクロック構造を設定し、フリップフロップに該フリップフロップよりも消費電力の低い低電力フリップフロップを適用したときの消費電力の低さおよび設置面積に基づく第2の評価値h2を算出し、第2の評価値が第2の閾値よりも大きい場合に、フリップフロップを低電力フリップフロップに置換することを具備する。
【選択図】図1
【解決手段】半導体回路設計方法は、半導体集積回路の回路情報に基づいてフリップフロップを設定し、フリップフロップを制御する制御信号を求め、フリップフロップにクロックゲーティングを適用したときの消費電力の低さおよびクロック遅延時間のばらつきの小ささに基づく第1の評価値h1を算出し、第1の評価値が第1の閾値よりも大きい場合に、フリップフロップに対してゲーテッドクロック構造を設定し、フリップフロップに該フリップフロップよりも消費電力の低い低電力フリップフロップを適用したときの消費電力の低さおよび設置面積に基づく第2の評価値h2を算出し、第2の評価値が第2の閾値よりも大きい場合に、フリップフロップを低電力フリップフロップに置換することを具備する。
【選択図】図1
Description
本発明は、半導体回路設計方法に関する。
フリップフロップやクロックツリーの消費電力を削減するために、従来からゲーテッドクロック技術が用いられている。また、フリップフロップ自体の消費電力を低減するために、コンディショナル・クロッキング・フリップフロップ(CCK−F/F(Conditional Clocking Flip-Flop))およびコンディショナル・データ・マッピング・フリップフロップ(CDM−F/F(Conditional Data Mapping Flip-Flop))が開発されている。CCK−F/FおよびCDM−F/Fは、通常のフリップフロップよりも消費電力が低いので低電力フリップフロップと呼ぶ。
ゲーテッドクロック技術と低電力フリップフロップとを単に組み合わせた場合、クロック信号がゲーティングされるため、クロックパルスの供給頻度が小さくなる。従って、低電力フリップフロップを用いたとしても、消費電力を削減する効果が小さい。また、低電力フリップフロップは、通常のフリップフロップには無い排他的ORゲートや排他的NORゲートを有するため、通常のフリップフロップよりも設置面積が大きくなる。よって、通常のフリップフロップを低電力フリップフロップで置換した場合、設置面積が増大する。即ち、ゲーテッドクロック技術と低電力フリップフロップとを単に組み合わせた場合、設置面積が大きくなる割に、消費電力の削減効果が期待通りに得られない。
さらに、ゲーテッドクロック技術において、イネーブル信号とクロック信号を受けるゲートをフリップフロップから離れた位置に配置する場合、クロック遅延時間が大きくなり、また、クロック配線を充放電する消費電力が増大する。このような場合、クロックゲーティングを用いるよりむしろ、クロック信号をそのままフリップフロップへ伝達することが消費電力およびクロック遅延時間の観点から好ましい。
しかし、従来の半導体回路設計方法では、ゲーテッドクロック技術および低電力フリップフロップを用いながら、消費電力およびクロック遅延時間を低減した半導体回路を設定することが困難であった。
Mototsugu Hamada et al., "A Conditional Clocking Flip-Flop for Low Power H.264/MPEG4 Audio/Visual Codec LSI", Custom Integrated Circuit Conference 2005. Chen Kong Teh et al., "Conditional Data Mapping Flip-Flops for Low-Power and High-Performance Systems", IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol.14, November, 2006.
Mototsugu Hamada et al., "A Conditional Clocking Flip-Flop for Low Power H.264/MPEG4 Audio/Visual Codec LSI", Custom Integrated Circuit Conference 2005. Chen Kong Teh et al., "Conditional Data Mapping Flip-Flops for Low-Power and High-Performance Systems", IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol.14, November, 2006.
ゲーテッドクロック技術および低電力フリップフロップを用いながら、消費電力またはクロック遅延時間を低減した半導体回路の設計方法を提供する。
本発明に係る実施形態に従った半導体回路設計方法は、半導体回路のフリップフロップにクロックを供給するクロック配線構造を設計するための半導体回路設計方法であって、
半導体集積回路の回路情報に基づいて前記フリップフロップを設定し、前記フリップフロップを制御する制御信号を求め、前記フリップフロップにクロックゲーティングを適用したときの消費電力およびクロック遅延時間のばらつきの大きさを示す第1の評価値を算出し、前記第1の評価値が第1の閾値よりも大きい場合に、前記フリップフロップに対してクロックゲーティングを行うゲーテッドクロック構造を設定し、前記フリップフロップに該フリップフロップよりも消費電力の低い低電力フリップフロップを適用したときの消費電力および設置面積の大きさを示す第2の評価値を算出し、前記第2の評価値が第2の閾値よりも大きい場合に、前記フリップフロップを前記低電力フリップフロップに置換することを具備する。
半導体集積回路の回路情報に基づいて前記フリップフロップを設定し、前記フリップフロップを制御する制御信号を求め、前記フリップフロップにクロックゲーティングを適用したときの消費電力およびクロック遅延時間のばらつきの大きさを示す第1の評価値を算出し、前記第1の評価値が第1の閾値よりも大きい場合に、前記フリップフロップに対してクロックゲーティングを行うゲーテッドクロック構造を設定し、前記フリップフロップに該フリップフロップよりも消費電力の低い低電力フリップフロップを適用したときの消費電力および設置面積の大きさを示す第2の評価値を算出し、前記第2の評価値が第2の閾値よりも大きい場合に、前記フリップフロップを前記低電力フリップフロップに置換することを具備する。
本発明に係る実施形態に従った半導体回路設計方法は、半導体回路のフリップフロップにクロックを供給するクロック配線構造を設計するための半導体回路設計方法であって、
半導体集積回路の回路情報に基づいて前記フリップフロップを設定し、前記フリップフロップを制御する制御信号を求め、前記フリップフロップにクロックゲーティングを適用したときの消費電力およびクロック遅延時間のばらつきの大きさを示す第1の評価値を算出し、前記第1の評価値が第1の閾値よりも大きい場合に、前記フリップフロップに対してクロックゲーティングを行うゲーテッドクロック構造を設定し、前記フリップフロップに格納される値の単位時間におけるスイッチング率に基づいて、前記フリップフロップの種類を置換候補として選択し、前記フリップフロップを前記置換候補のフリップフロップに置換したときの設置面積およびクロック遅延時間を計算し、前記設置面積および前記クロック遅延時間が許容範囲内の場合に、前記フリップフロップを前記置換候補のフリップフロップに置換することを具備する。
半導体集積回路の回路情報に基づいて前記フリップフロップを設定し、前記フリップフロップを制御する制御信号を求め、前記フリップフロップにクロックゲーティングを適用したときの消費電力およびクロック遅延時間のばらつきの大きさを示す第1の評価値を算出し、前記第1の評価値が第1の閾値よりも大きい場合に、前記フリップフロップに対してクロックゲーティングを行うゲーテッドクロック構造を設定し、前記フリップフロップに格納される値の単位時間におけるスイッチング率に基づいて、前記フリップフロップの種類を置換候補として選択し、前記フリップフロップを前記置換候補のフリップフロップに置換したときの設置面積およびクロック遅延時間を計算し、前記設置面積および前記クロック遅延時間が許容範囲内の場合に、前記フリップフロップを前記置換候補のフリップフロップに置換することを具備する。
本発明による半導体回路設計方法は、ゲーテッドクロック技術および低電力フリップフロップを用いながら、消費電力およびクロック遅延時間を低減することができる。
以下、図面を参照して本発明に係る実施形態を説明する。本実施形態は、本発明を限定するものではない。
(第1の実施形態)
図1は、本発明に係る第1の実施形態に従った半導体回路設計装置の構成を示すブロック図である。半導体回路設計装置は、半導体回路のフリップフロップにクロックを供給するクロック配線構造を設計する。本実施形態による半導体回路設計装置は、回路情報格納部10と、論理合成/配置処理部20と、終了条件判定部30と、ゲーテッドクロック構造生成部40と、フリップフロップ置換部50と、ユーザインタフェース60とを備えている。回路情報格納部10は、半導体回路の回路情報、ゲーテッドクロック構造の回路情報、低電力フリップフロップの回路情報等を記憶する。論理合成/配置処理部20は、半導体回路の構成要素を論理合成し、各構成要素の配置処理を実行する。終了条件判定部30は、設計された半導体回路のクロック遅延時間等の特性が規格に適合する場合に設計終了を決定する。ゲーテッドクロック構造生成部40は、フリップフロップにゲーテッドクロック構造を適用する場合にゲーテッドクロック構造を生成する。フリップフロップ置換部50は、フリップフロップを低電力フリップフロップに置換する場合に低電力フリップフロップを生成する。ユーザインタフェース60は、外部からの情報を受け取るために設けられている。
図1は、本発明に係る第1の実施形態に従った半導体回路設計装置の構成を示すブロック図である。半導体回路設計装置は、半導体回路のフリップフロップにクロックを供給するクロック配線構造を設計する。本実施形態による半導体回路設計装置は、回路情報格納部10と、論理合成/配置処理部20と、終了条件判定部30と、ゲーテッドクロック構造生成部40と、フリップフロップ置換部50と、ユーザインタフェース60とを備えている。回路情報格納部10は、半導体回路の回路情報、ゲーテッドクロック構造の回路情報、低電力フリップフロップの回路情報等を記憶する。論理合成/配置処理部20は、半導体回路の構成要素を論理合成し、各構成要素の配置処理を実行する。終了条件判定部30は、設計された半導体回路のクロック遅延時間等の特性が規格に適合する場合に設計終了を決定する。ゲーテッドクロック構造生成部40は、フリップフロップにゲーテッドクロック構造を適用する場合にゲーテッドクロック構造を生成する。フリップフロップ置換部50は、フリップフロップを低電力フリップフロップに置換する場合に低電力フリップフロップを生成する。ユーザインタフェース60は、外部からの情報を受け取るために設けられている。
図2は、本発明に係る第1の実施形態に従った半導体回路設計方法を示すフロー図である。まず、論理構成/配置処理部20が、回路情報格納部10から半導体回路の回路情報を得て、その回路情報に基づいてフリップフロップをロジカルに合成配置する(S10)。フリップフロップは、LSIにおける様々なデータ間の同期をとるための順序回路であり、その動作タイミング等を考慮して配置される。
次に、回路情報に基づいて、CTS(Clock Tree Synthesis)処理を行う(S101)。ここでは、バッファLCB(Local Clock Buffer)が回路に追加、配置される。これにより、フリップフロップF/FおよびバッファLCBの配置およびフリップフロップF/FとバッファLCBとの間を接続する配線(クロックツリー配線)が設定される。クロックツリー配線は、半導体集積回路の回路情報に基づいてフリップフロップF/Fへクロックを供給する。クロックツリー配線はフリップフロップF/FおよびバッファLCB以外の回路要素を考慮してチップ内に設定される。
次に、タイミング解析部25がタイミング解析を行う(S102)。タイミング解析は、例えば、CTS処理において構成されたクロックツリー配線のクロック遅延時間、データパスの遅延時間、半導体回路の動作速度等を計測することによって行われる。このときに、半導体回路の消費電力、半導体回路の面積といったパラメータも計測する。
次に、終了条件判定部30が、タイミング解析部25によって得られたパラメータが終了条件を満たしているか否かを判定する(S103)。より詳細には、終了条件判定部30は、ユーザインタフェース60を介してパラメータの規格値を獲得し、この規格値とタイミング解析によって得られたパラメータ値とを比較する。パラメータ値が規格値より小さい場合に、終了条件判定部30は、終了条件を満たすと判定し、処理は終了する。
例えば、クロック遅延時間、半導体回路の消費電力、半導体回路の面積、半導体回路の動作速度がそれぞれ規格値以下であった場合に、終了条件判定部30は、処理を終了させる。あるいは、クロック遅延時間、半導体回路の消費電力、半導体回路の面積および半導体回路の動作速度を演算することによって得られた評価関数値が所定の指標値を下回った場合に、終了条件判定部30は、処理を終了してもよい。さらに、ステップS101〜S105が予め設定された回数だけ繰り返し実行された場合に、終了条件判定部30は、処理を終了してもよい。終了条件を満たしていない場合には、ステップS104〜S105を実行する。
ステップS104では、ゲーテッドクロック構造生成部40が各フリップフロップに対してクロックゲーティングを適用するか否かを決定し、クロックゲーティングを適用する場合には、フリップフロップF/Fに対してゲーテッドクロック構造を生成する。ステップS104は、図3に示すフロー図に従って実行される。
まず、回路情報格納部10内の回路情報に含まれるフリップフロップに未選択のフリップフロップがある場合(S201のYESの場合)、未選択フリップフロップの1つを選択する(S202)。当初、いずれのフリップフロップも未選択であるので、いずれか1つのフリップフロップを選択してステップS203へ進む。
次に、ゲーテッドクロック構造生成部40は、ステップS202で選択されたフリップフロップ(以下、第1の選択フリップフロップという)がクロックゲーティングされているか否かを判定する(S203)。クロックゲーティングの判定は、第1の選択フリップフロップのクロック入力を辿り、クロックゲーティングセルが存在するか否かで行うことができる。クロックゲーティングセルは、例えば、クロック信号およびイネーブル信号を入力として受けるANDゲートまたはORゲートで構成されている。従って、より詳細には、クロックゲーティングの判定は、クロック信号およびイネーブル信号を入力として受けるANDゲートまたはORゲートが、第1の選択フリップフロップのクロック入力側に存在するか否かで行うことができる。ゲーテッドクロック構造は、イネーブル信号が活性(例えば、論理ハイ)である場合に、クロック信号をフリップフロップへ通過させ、イネーブル信号が不活性(例えば、論理ロウ)である場合に、クロック信号を遮断する構造である。即ち、ゲーテッドクロック構造は、フリップフロップへデータ転送が必要な場合にイネーブル信号の制御を受けてクロック信号を通過させ、あるいは、フリップフロップへのデータ転送が不要な場合にクロック信号を遮断するようにイネーブル信号でクロック信号を制御する構造である。尚、ゲーテッドクロックされていないフリップフロップは、例えば、図5に示す構造を有する。ゲーテッドクロックされているフリップフロップは、例えば、図6に示す構造を有する。
第1の選択フリップフロップがクロックゲーティングされている場合(S203のYESの場合)、第1の選択フリップフロップに入力されるイネーブル信号を制御信号とする(S204)。例えば、制御信号は、図6に示すCTRLFjである。
第1の選択フリップフロップがクロックゲーティングされていない場合(S203のNOの場合)、第1の選択フリップフロップへのデータ入力信号に基づいて制御信号を求める(S205)。この場合、例えば、次のような方法により制御信号を求めることができる。一般に、フリップフロップFjのデータ入力信号は、ブール式fFj(Q,x1,x2,・・・xn)で表わすことができる。但し、ここでQは、フリップフロップFjの出力値を表記したものである。x1,x2,・・・xnは、外部入力信号及び他のフリップフロップの出力値を変数表記したものである。ブール式fFj(Q,x1,x2,・・・xn)が次の式1で表わされた場合に、CTRLFjが制御信号となる。
fFj(Q,x1,x2,・・・xn) = CTRLFj(x1,x2,・・・xn)・Q+CTRLFj(x1,x2,・・・xn)’・gFj(Q,x1,x2,・・・xn) (式1)
ここで、CTRLFj(x1,x2,・・・xn)’は、CTRLFjの否定を表わす。gFj(Q,x1,x2,・・・xn)は、図5または図6に示すデータ入力信号dataを示す。CTRLFjは、fFj(Q,x1,x2,・・・xn)に対して、代数的除数(algebraic divisor)をQとして、代数的除算(algebraic division)を行うことにより求めることが可能である。
fFj(Q,x1,x2,・・・xn) = CTRLFj(x1,x2,・・・xn)・Q+CTRLFj(x1,x2,・・・xn)’・gFj(Q,x1,x2,・・・xn) (式1)
ここで、CTRLFj(x1,x2,・・・xn)’は、CTRLFjの否定を表わす。gFj(Q,x1,x2,・・・xn)は、図5または図6に示すデータ入力信号dataを示す。CTRLFjは、fFj(Q,x1,x2,・・・xn)に対して、代数的除数(algebraic divisor)をQとして、代数的除算(algebraic division)を行うことにより求めることが可能である。
このように、クロックゲーティングされていないフリップフロップの制御信号CTRLFjも求めることができる。
ゲーテッドクロック構造生成部40は、フリップフロップを1つずつ選択し、ステップS201〜S205を各フリップフロップに対して実行する。全フリップフロップの選択が終了し、それぞれの制御信号CTRLFjが求まると(ステップS201のNOの場合)、ゲーテッドクロック構造生成部40は、ステップS206〜S211を実行する。ステップS206〜S211において、ゲーテッドクロック構造生成部40は、各フリップフロップの制御信号CTRLFjを用いて、各フリップフロップにゲーテッドクロック構造を適用するか否かを決定する。
ゲーテッドクロック構造生成部40は、全フリップフロップを未選択状態に戻し、再度、フリップフロップを1つずつ選択する(S207)。当初、いずれのフリップフロップも未選択であるので、いずれか1つのフリップフロップを選択してステップS208へ進む。
ゲーテッドクロック構造生成部40は、ステップS207で選択されたフリップフロップ(第2の選択フリップフロップという)に対して第1の評価値としての評価関数を計算する(S208)。評価関数は、例えば、h1(y1,y2,y3)と定義する。評価関数h1は、y1、y2およびy3の演算式で表される関数である。
例えば、y1は、制御信号CTRLFjが単位時間当たりに不活性状態にある確率(CTRLFj=1の確率)である。CTRLFjが1である場合、CTRLFj’が0となる。このとき、式1のデータ入力信号fFjは、フリップフロップの出力信号Qに等しくなる。つまり、制御信号CTRLFjが不活性状態である場合には、フリップフロップへのクロック入力信号は停止される。従って、y1が大きいことは、クロック信号を阻止する単位時間当たりの割合が大きいことを意味する。クロック信号を阻止する割合が大きいことは、ゲーテッドクロック構造の利用頻度(ゲーティングの頻度)が高く、ゲーテッドクロック構造によって効率よくゲーティングできることを意味する。即ち、y1が大きいほど、ゲーテッドクロック構造をフリップフロップに適用することによって得られるメリットが大きい。
y2は、同じ制御信号CTRLFjで制御されるフリップフロップの個数である。同じ制御信号CTRLFjで制御されるフリップフロップの個数が多ければ、1つのクロックゲーティングセルは、より多くのフリップフロップをゲーティングすることができる。よって、y2が大きいほど、クロックゲーティングセルは、低消費電力で多くのフリップフロップをゲーティングすることができ、y2が大きいほど、フリップフロップにゲーテッドクロック構造を適用することによって得られるメリットが大きい。
例えば、y3は、同じ制御信号CTRLFjで制御されるフリップフロップがどの程度分離して配置されているかを示す指標である。より詳細には、y3は、同じ制御信号CTRLFjで制御されるフリップフロップ間の距離でよい。y3は、共通の配線ノードから同じ制御信号CTRLFjで制御される各フリップフロップまでの距離でもよい。y3は、同じ制御信号CTRLFjで制御されるフリップフロップ間のクロック遅延時間の差(クロックスキュー)であってもよい。
同じ制御信号CTRLFjで制御されるフリップフロップが互いに接近していると、ゲーテッドクロック構造は、クロックスキューを増大させることなく、フリップフロップをゲーティングすることができる。従って、y3が小さいほど、フリップフロップにゲーテッドクロック構造を適用することが好ましい。
以上のようなy1〜y3を用いて、評価関数h1を式3のように予め定義することができる。
h1(y1,y2,y3)=k1・y1+k2・y2−k3・y3 (式3)
ここで、k1、k2およびk3は重み付け係数であり、y1〜y3の重要度が高いほどk1、k2およびk3は大きくなる。h1は、フリップフロップにゲーテッドクロック構造を適用したときの消費電力の低さの度合いおよびクロック遅延時間のばらつき(クロックスキュー)の小ささの度合いを示す。従って、評価関数h1が大きいほど、クロック配線構造の消費電力が低く、かつ、クロック配線構造のクロックスキューが小さくなる。
h1(y1,y2,y3)=k1・y1+k2・y2−k3・y3 (式3)
ここで、k1、k2およびk3は重み付け係数であり、y1〜y3の重要度が高いほどk1、k2およびk3は大きくなる。h1は、フリップフロップにゲーテッドクロック構造を適用したときの消費電力の低さの度合いおよびクロック遅延時間のばらつき(クロックスキュー)の小ささの度合いを示す。従って、評価関数h1が大きいほど、クロック配線構造の消費電力が低く、かつ、クロック配線構造のクロックスキューが小さくなる。
評価関数h1は、式4のような関数であってもよい。
h1(y1,y2,y3)=k1・y1・k2・y2/k3・y3 (式4)
式4に示すh1もまた、フリップフロップにゲーテッドクロック構造を適用したときの消費電力の低さの度合いおよびクロック遅延時間のばらつき(クロックスキュー)の小ささの度合いを示す。
h1(y1,y2,y3)=k1・y1・k2・y2/k3・y3 (式4)
式4に示すh1もまた、フリップフロップにゲーテッドクロック構造を適用したときの消費電力の低さの度合いおよびクロック遅延時間のばらつき(クロックスキュー)の小ささの度合いを示す。
ゲーテッドクロック構造生成部40は、ステップS208で得られた評価関数h1の値(第1の評価値)とユーザインタフェース60を介して得た第1の閾値(指標値)とを比較する(S209)。その結果、第1の評価値が第1の閾値よりも大きい場合には、ゲーテッドクロック構造生成部40は、フリップフロップに対してゲーテッドクロック構造を設定する(S210)。第1の評価値が第1の閾値よりも小さい場合には、ゲーテッドクロック構造生成部40は、フリップフロップに対してゲーテッドクロック構造を設定しない(S211)。
ゲーテッドクロック構造生成部40は、フリップフロップを1つずつ選択し、ステップS206〜S211を各フリップフロップに対して実行する。全フリップフロップの選択が終了し、それぞれのフリップフロップに対してゲーテッドクロック構造の設定の要否が決定されると(ステップS206のNOの場合)、ステップS105へ進む。
フリップフロップ置換部50は、各フリップフロップを低電力フリップフロップに置換するか否かを決定し、必要な場合には、フリップフロップを低電力フリップフロップに置換する(S105)。ステップS105は、図4に示すフロー図に従って実行される。まず、回路情報格納部10内の回路情報に含まれるフリップフロップに未選択のフリップフロップがある場合(S301のYESの場合)、未選択フリップフロップの1つを選択する(S302)。当初、いずれのフリップフロップも未選択であるので、いずれか1つのフリップフロップを選択してステップS303へ進む。
次に、フリップフロップ置換部50は、ステップS302で選択されたフリップフロップ(以下、第3の選択フリップフロップという)の第2の評価値としての評価関数を計算する(S303)。評価関数は、例えば、h2(z1,z2,z3,z4,z5)と定義する。評価関数h2は、z1,z2,z3,z4およびz5の演算式で表される関数である。
z1は、制御信号CTRLFjが単位時間当たりに活性状態にある確率(CTRLFj=0の確率)である。CTRLFjが0である場合、式1のデータ入力信号fFjは、データgFに等しくなる。つまり、制御信号CTRLFjが活性状態である場合には、クロック信号はフリップフロップへ入力される。従って、z1が大きいことは、単位時間当たりにクロック信号を通過させる割合が大きいことを意味する。クロック信号を通過させる割合が大きいことは、フリップフロップの利用頻度が高いことを意味する。このような場合、フリップフロップを低電力フリップフロップに置換すれば、消費電力の低減効果が大きい。即ち、z1が大きいほど、フリップフロップを低電力フリップフロップに置換するメリットが大きい。
z2は、第3の選択フリップフロップにゲーテッドクロック構造が適用されているか否かを示すフラグである。例えば、z2は、ゲーテッドクロック構造が第3の選択フリップフロップに適用されていない場合には1以上の数値とし、ゲーテッドクロック構造が第3の選択フリップフロップに適用されている場合には0とする。これにより、ゲーテッドクロック構造が適用されているフリップフロップに対しては、低電力フリップフロップを適用しない、あるいは、低電力フリップフロップの適用の可能性を低くすることが可能となる。
z3は、第3の選択フリップフロップが保持する値のスイッチング率である。図7に示すような低電力フリップフロップが保持する値のスイッチング率が高いと、低電力フリップフロップ内部のANDゲートやORゲートのスイッチング率が高くなる。これは、低電力フリップフロップを第3の選択フリップフロップに適用した場合に、消費電力が大きくなることを意味する。従って、スイッチング率が高い場合には、通常のフリップフロップを第3の選択フリップフロップに適用した方が好ましい。
z4は、通常のフリップフロップと低電力フリップフロップとの面積差分である。低電力フリップフロップは、例えば、CCK−F/FまたはCDM−F/Fであり、通常のフリップフロップよりも設置面積が大きい。従って、z4は小さいほど好ましい。
z5は、第3の選択フリップフロップのタイミング余裕度である。低電力フリップフロップは、排他的ORゲートや排他的NORゲートを有するので、その分、通常のフリップフロップよりもクロック遅延時間が大きい。従って、タイミング余裕度が大きい場合に、低電力フリップフロップを第3の選択フリップフロップに適用することが好ましい。
以上のようなz1〜z5を用いて、第2の評価値としての評価関数h2を式5のように予め定義する。
h2(z1,z2,z3,z4,z5)=c1・z1+c2・z2−c3・z3−c4・z4+c5・z5 (式5)
ここで、c1〜c5は重み付け係数であり、z1〜z5の重要度が高いほどc1〜c5は大きくなる。評価関数h2は、第3の選択フリップフロップにゲーテッドクロック構造が適用されているか否か、タイミング余裕度、第3の選択フリップフロップに低電力フリップフロップを適用したときの消費電力の低さおよび設置面積などに基づいて算出される。評価関数h2が大きいほど、第3の選択フリップフロップに低電力フリップフロップを適用することが好ましいと言える。
h2(z1,z2,z3,z4,z5)=c1・z1+c2・z2−c3・z3−c4・z4+c5・z5 (式5)
ここで、c1〜c5は重み付け係数であり、z1〜z5の重要度が高いほどc1〜c5は大きくなる。評価関数h2は、第3の選択フリップフロップにゲーテッドクロック構造が適用されているか否か、タイミング余裕度、第3の選択フリップフロップに低電力フリップフロップを適用したときの消費電力の低さおよび設置面積などに基づいて算出される。評価関数h2が大きいほど、第3の選択フリップフロップに低電力フリップフロップを適用することが好ましいと言える。
評価関数h2は、式6のような関数であってもよい。
h2(z1,z2,z3,z4,z5)=c1・z1・c2・z2・c5・z5/(c3・z3・c4・z4) (式6)
h2は、ゲーテッドクロック構造が第3の選択フリップフロップに適用されている場合(z2=0の場合)に0となる。よって、式6のh2を用いることによって、ゲーテッドクロック構造が第3の選択フリップフロップに適用されている場合には、フリップフロップ置換部50は、第3の選択フリップフロップに低電力フリップフロップを適用しない。
h2(z1,z2,z3,z4,z5)=c1・z1・c2・z2・c5・z5/(c3・z3・c4・z4) (式6)
h2は、ゲーテッドクロック構造が第3の選択フリップフロップに適用されている場合(z2=0の場合)に0となる。よって、式6のh2を用いることによって、ゲーテッドクロック構造が第3の選択フリップフロップに適用されている場合には、フリップフロップ置換部50は、第3の選択フリップフロップに低電力フリップフロップを適用しない。
フリップフロップ置換部50は、ステップS303で得られた評価関数h2の値(第2の評価値)とユーザインタフェース60を介して得た第2の閾値(指標値)とを比較する(S304)。その結果、第2の評価値が第2の閾値よりも大きい場合には、フリップフロップ置換部50は、第3の選択フリップフロップを低電力フリップフロップに置換する(S305)。第2の評価値が第2の閾値よりも小さい場合には、フリップフロップ置換部50は、第3の選択フリップフロップを通常のフリップフロップのままとする(S306)。
フリップフロップ置換部50は、フリップフロップを1つずつ選択し、ステップS303〜S306を各フリップフロップに対して実行する。全フリップフロップの選択が終了し、それぞれのフリップフロップに対して低電力フリップフロップへの置換の要否が決定されると(ステップS301のNOの場合)、ステップS101へ進む。
なお、低電力フリップフロップが既に回路情報において設定されている場合、フリップフロップ置換部50は、低電力フリップフロップを第3の選択フリップフロップとしてステップS303〜S306を実行すればよい。例えば、第2の評価値が第2の閾値よりも大きい場合、フリップフロップ置換部50は、第3の選択フリップフロップとしての低電力フリップフロップを通常フリップフロップに置換し、第2の評価値が第2の閾値よりも小さい場合、フリップフロップ置換部50は、低電力フリップフロップをそのままとする。
その後、図2に示すステップS101において再度CTS処理が実行され、ステップS102においてタイミング解析が実行される。タイミング解析で得られたパラメータが終了条件を満たしていない場合(S103)には、ステップS104、S105、S101およびS102が繰返し実行される。このとき、第1あるいは第2の評価関数を変更しながらステップS104、S105、S101およびS102を繰り返してよい。タイミング解析で得られたパラメータが終了条件を満たしている場合(S103)には、半導体回路の設計は終了する。
図5は、通常のフリップフロップの一例を示すブロック図である。マルチプレクサMPXは、制御信号cndに応じて、データdataまたはフリップフロップF/Fの出力Qを選択的に出力する。フリップフロップF/Fは、クロック信号clkに基づいて、マルチプレクサMPXの出力fFjを受け取り、これを出力する。
図6は、ゲーテッドクロック構造の一例を示すブロック図である。ラッチ回路は、クロック信号clkの逆相クロック信号に基づいて制御信号cndをラッチする。ラッチされた制御信号cndがハイレベルの場合には、ANDゲートG1はクロックclkをフリップフロップF/Fへ通過させる。ラッチされた制御信号cndがロウレベルの場合には、ANDゲートG1はクロックclkを遮断する。
低電力フリップフロップは、CCK−F/FまたはCDM−F/Fのいずれか一方でよい。例えば、図7にCCK−F/Fの一例を示す。
本実施形態によれば、消費電力、クロック遅延時間、設置面積等のパラメータを考慮して、ゲーテッドクロック構造をフリップフロップに適用し、あるいは、フリップフロップを低電力フリップフロップに置換することができる。従って、消費電力のより低い、クロックスキューのより小さい、あるいは、設置面積がより小さい半導体回路を設計することができる。消費電力、クロック遅延時間、設置面積等のパラメータは、重み付け係数によって、その重要度を変更することができる。よって、規格の厳しいパラメータの重み付け係数を大きくすることによって、そのパラメータに適合した半導体回路を設計することができる。さらに、ゲーテッドクロック構造および/または低電力フリップフロップの適用とタイミング解析とを繰返し実行することによって、仕様に適合した半導体回路を容易に設計することができる。
尚、本実施形態において、1回目の処理では、ステップS101、S102およびS103を実行することなくスキップし、合成配置処理(S10)によって得られた設計回路データに基づいてステップS104以降のステップを実行してもよい。
評価関数h1およびh2を構成するパラメータy1〜y3およびz1〜z5は、これらに限定されず、さらに他のパラメータを付加してもよい。パラメータy1〜y3のうち2つを組み合わせて評価関数h1を構成してもよい。パラメータz1〜z5のうち2〜4つのパラメータを組み合わせて評価関数h2を構成してもよい。
(第2の実施形態)
図8は、本発明に係る第2の実施形態に従った低電力フリップフロップの置換ステップを示すフロー図である。第2の実施形態では、フリップフロップ置換部50は、複数の低電力フリップフロップから消費電力の最も低いフリップフロップを選択して、このフリップフロップを適用する。第2の実施形態のその他のステップS10〜S104は、第1の実施形態と同様でよい。
図8は、本発明に係る第2の実施形態に従った低電力フリップフロップの置換ステップを示すフロー図である。第2の実施形態では、フリップフロップ置換部50は、複数の低電力フリップフロップから消費電力の最も低いフリップフロップを選択して、このフリップフロップを適用する。第2の実施形態のその他のステップS10〜S104は、第1の実施形態と同様でよい。
CCK−F/F、CDM−F/F、通常のフリップフロップは、図9に示すようにスイッチング率に応じて、消費電力の大小関係が変化する。スイッチング率は、フリップフロップ内の値が単位時間において変化する確率である。例えば、フリップフロップFF1としてのCCK−F/Fは、スイッチング率pが0〜p0の範囲において他の2つのフリップフロップよりも消費電力が低い。フリップフロップFF2としてのCDM−F/Fは、スイッチング率pがp0〜p1の範囲において他の2つのフリップフロップよりも消費電力が低い。さらに、通常のフリップフロップFF3は、スイッチング率pがp1以上において他の2つのフリップフロップよりも消費電力が最も低い。フリップフロップ置換部50は、図9に示すスイッチング率と消費電力との関係を利用して、消費電力の小さいフリップフロップを適用する。スイッチング率と消費電力との関係は、ユーザインタフェース60を介して外部から獲得すればよい。
図8に示すように、まず、回路情報格納部10内の回路情報に含まれるフリップフロップに未選択のフリップフロップがある場合(S401のYESの場合)、未選択フリップフロップの1つを選択する(S402)。当初、いずれのフリップフロップも未選択であるので、いずれか1つのフリップフロップを選択してステップS403へ進む。
次に、フリップフロップのスイッチング率pを参照する(S403)。スイッチング率pがp0より小さい場合、低電力フリップフロップFF1(CCK−F/F)を置換候補とする(S405)。スイッチング率pがp0以上かつp1未満の場合、低電力フリップフロップFF2(CDM−F/F)を置換候補とする(S406)。スイッチング率pがp1以上の場合、通常のフリップフロップFF3を置換候補とする(S407)。
次に、フリップフロップ置換部50は、第3のフリップフロップを置換候補のフリップフロップで置換した場合の評価関数h2を計算する(S408)。例えば、評価関数h2は、式5または式6で示したものを使えるほか、設置面積の増加分ΔSおよびクロック遅延時間の増加分ΔTDをパラメータとして、h2=c6・ΔS+c7・ΔTDのように定義してもよく、h2=c6・ΔS・c7・ΔTDのように定義してもよい。尚、c6およびc7は、それぞれΔSおよびΔTDに対する重み付け係数である。
評価関数h2の値が、指標値よりも小さく、設置面積およびクロック遅延時間が許容範囲内である場合(S409のYESの場合)、フリップフロップ置換部50は、第3の選択フリップフロップを、置換候補のフリップフロップに置換する(S410)。評価関数h2の値が、指標値よりも大きく、設置面積およびクロック遅延時間が許容範囲外である場合(S409のNOの場合)、フリップフロップ置換部50は、第3の選択フリップフロップを置換しない(S411)。つまり、第3の選択フリップフロップは、当初設定されたフリップフロップのままとする。
フリップフロップ置換部50は、フリップフロップを1つずつ選択し、ステップS403〜S411を各フリップフロップに対して実行する。全フリップフロップの選択が終了し、それぞれのフリップフロップに対して低電力フリップフロップへの置換の要否が決定されると(ステップS401のNOの場合)、ステップS101へ進む。
第2の実施形態によれば、フリップフロップ置換部50は、スイッチング率に基づいて複数の低電力フリップフロップおよび/または通常のフリップフロップから選択したフリップフロップで置換することができる。よって、第2の実施形態は、さらに消費電力の低い半導体回路を設計することができる。
尚、フリップフロップのクロック信号がゲーティングされている場合には、クロックゲーティングセルがクロック信号を通過させているとき(イネーブル信号が1のとき)のスイッチング率を対象にすればよい。
また、ステップ405〜407置換候補のフリップフロップを1つに限定せずに、評価関数h2のパラメータにz6を追加して、置換候補のフリップフロップをパラメータ化しても良い。このときには、ステップS409でフリップフロップを置換すると判定した時に、置換すべき低電力フリップフロップも決定する。
10…回路情報格納部
20…論理合成/配置処理部
25…タイミング解析部
30…終了条件判定部
40…ゲーテッドクロック構造生成部
50…フリップフロップ置換部
60…ユーザインタフェース
CTRLFj…制御信号
h1、h2…評価関数
20…論理合成/配置処理部
25…タイミング解析部
30…終了条件判定部
40…ゲーテッドクロック構造生成部
50…フリップフロップ置換部
60…ユーザインタフェース
CTRLFj…制御信号
h1、h2…評価関数
Claims (5)
- 半導体回路のフリップフロップにクロックを供給するクロック配線構造を設計するための半導体回路設計方法であって、
半導体集積回路の回路情報に基づいて前記フリップフロップを設定し、
前記フリップフロップを制御する制御信号を求め、
前記フリップフロップにクロックゲーティングを適用したときの消費電力およびクロック遅延時間のばらつきの大きさを示す第1の評価値を算出し、
前記第1の評価値が第1の閾値よりも大きい場合に、前記フリップフロップに対してクロックゲーティングを行うゲーテッドクロック構造を設定し、
前記フリップフロップに該フリップフロップよりも消費電力の低い低電力フリップフロップを適用したときの消費電力および設置面積の大きさを示す第2の評価値を算出し、
前記第2の評価値が第2の閾値よりも大きい場合に、前記フリップフロップを前記低電力フリップフロップに置換することを具備した半導体回路設計方法。 - 前記第1の評価値は、前記制御信号が前記フリップフロップへのクロックを阻止する確率と、前記制御信号によって制御されるフリップフロップ数と、前記制御信号によって制御される前記フリップフロップ間の距離または前記制御信号によって制御される前記フリップフロップ間のクロック遅延時間のばらつきとの関数によって算出されることを特徴とする請求項1に記載の半導体回路設計方法。
- 前記第2の評価値は、前記制御信号がクロックを前記フリップフロップへ通過させる確率と、前記フリップフロップがクロックゲーティングされているか否かを示す論理値と、前記フリップフロップに格納される値の単位時間におけるスイッチング率と、前記フリップフロップと前記低電力フリップフロップとの面積差分と、クロック遅延時間の余裕度との関数によって算出されることを特徴とする請求項1または請求項2に記載の半導体回路設計方法。
- 半導体回路のフリップフロップにクロックを供給するクロック配線構造を設計するための半導体回路設計方法であって、
半導体集積回路の回路情報に基づいて前記フリップフロップを設定し、
前記フリップフロップを制御する制御信号を求め、
前記フリップフロップにクロックゲーティングを適用したときの消費電力およびクロック遅延時間のばらつきの大きさを示す第1の評価値を算出し、
前記第1の評価値が第1の閾値よりも大きい場合に、前記フリップフロップに対してクロックゲーティングを行うゲーテッドクロック構造を設定し、
前記フリップフロップに格納される値の単位時間におけるスイッチング率に基づいて、前記フリップフロップの種類を置換候補として選択し、
前記フリップフロップを前記置換候補のフリップフロップに置換したときの設置面積およびクロック遅延時間を計算し、
前記設置面積および前記クロック遅延時間が許容範囲内の場合に、前記フリップフロップを前記置換候補のフリップフロップに置換することを具備する半導体回路設計方法。 - 前記フリップフロップの置換後、前記クロック配線構造の消費電力、回路面積およびクロック遅延時間を計算し、
前記消費電力、前記回路面積および前記クロック遅延時間が、所定の規格に適合している場合に回路設計を終了することをさらに具備したことを特徴とする請求項1または請求項4に記載の半導体回路設計方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007220864A JP2009053989A (ja) | 2007-08-28 | 2007-08-28 | 半導体回路設計方法 |
US12/195,574 US7962883B2 (en) | 2007-08-28 | 2008-08-21 | Developing semiconductor circuit design with conditional flipflops to save power consumption |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007220864A JP2009053989A (ja) | 2007-08-28 | 2007-08-28 | 半導体回路設計方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009053989A true JP2009053989A (ja) | 2009-03-12 |
Family
ID=40409502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007220864A Pending JP2009053989A (ja) | 2007-08-28 | 2007-08-28 | 半導体回路設計方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7962883B2 (ja) |
JP (1) | JP2009053989A (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011065320A (ja) * | 2009-09-16 | 2011-03-31 | Renesas Electronics Corp | レイアウト方法、レイアウト装置及びレイアウトプログラム |
US8656326B1 (en) | 2013-02-13 | 2014-02-18 | Atrenta, Inc. | Sequential clock gating using net activity and XOR technique on semiconductor designs including already gated pipeline design |
US8635578B1 (en) * | 2013-03-14 | 2014-01-21 | Atrenta, Inc. | System and method for strengthening of a circuit element to reduce an integrated circuit's power consumption |
KR102057503B1 (ko) | 2013-08-14 | 2019-12-19 | 삼성전자 주식회사 | 반도체 회로 |
KR102204597B1 (ko) | 2014-11-19 | 2021-01-19 | 삼성전자주식회사 | 반도체 장치 |
US9576101B2 (en) * | 2015-03-02 | 2017-02-21 | Freescale Semiconductor, Inc. | Configurable cell design using capacitive coupling for enhanced timing closure |
US10296686B1 (en) * | 2015-12-14 | 2019-05-21 | Apple Inc. | Switching-activity-based selection of low-power sequential circuitry |
US10726189B2 (en) * | 2018-07-23 | 2020-07-28 | Sandisk Technologies Llc | Less-pessimistic static timing analysis for synchronous circuits |
JP7502205B2 (ja) * | 2021-01-14 | 2024-06-18 | 株式会社東芝 | 設計支援装置、設計支援システム、電気装置、設計支援方法、プログラム、及び記憶媒体 |
US20230258714A1 (en) * | 2022-02-15 | 2023-08-17 | Mediatek Singapore Pte. Ltd. | Icg test coverage with no timing overhead |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3357813B2 (ja) | 1997-04-01 | 2002-12-16 | 株式会社東芝 | ゲーテッドクロック設計支援方法、ゲーテッドクロック設計支援装置及びゲーテッドクロック設計支援プログラムを格納したコンピュータ読み取り可能な記録媒体 |
JP2001084287A (ja) | 1999-09-14 | 2001-03-30 | Toshiba Corp | ゲーテッドクロック回路、ゲーテッドクロック回路設計支援装置及び方法 |
US6586966B1 (en) * | 2001-09-13 | 2003-07-01 | Altera Corporation | Data latch with low-power bypass mode |
JP4095367B2 (ja) | 2002-07-23 | 2008-06-04 | 株式会社東芝 | 半導体集積回路装置 |
US7631209B2 (en) * | 2004-12-13 | 2009-12-08 | Lsi Corporation | Turning off clock to flip flops |
JP2007006463A (ja) | 2005-05-25 | 2007-01-11 | Toshiba Corp | 半導体集積回路装置 |
JP5224657B2 (ja) | 2005-06-29 | 2013-07-03 | 株式会社東芝 | 半導体集積回路装置 |
JP2008028930A (ja) * | 2006-07-25 | 2008-02-07 | Toshiba Corp | 半導体集積回路及びその設計方法 |
-
2007
- 2007-08-28 JP JP2007220864A patent/JP2009053989A/ja active Pending
-
2008
- 2008-08-21 US US12/195,574 patent/US7962883B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20090064070A1 (en) | 2009-03-05 |
US7962883B2 (en) | 2011-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009053989A (ja) | 半導体回路設計方法 | |
US8924758B2 (en) | Method for SOC performance and power optimization | |
Kahng et al. | Orion 2.0: A power-area simulator for interconnection networks | |
US9571074B2 (en) | Efficient skew scheduling methodology for performance and low power of a clock-mesh implementation | |
Bezati et al. | Clock-gating of streaming applications for energy efficient implementations on FPGAs | |
KR20130084029A (ko) | 탭리스 스탠다드 셀을 포함하는 시스템-온-칩의 설계 방법, 설계 시스템 및 시스템-온-칩 | |
US9052359B2 (en) | Method and system for varying sampling frequency to avoid software harmonics when sampling digital power indicators | |
Zhang et al. | Automatic Register Transfer level CAD tool design for advanced clock gating and low power schemes | |
JP2004054756A (ja) | 消費電力見積り装置及び方法 | |
US7958476B1 (en) | Method for multi-cycle path and false path clock gating | |
Mirhosseini et al. | BARAN: Bimodal adaptive reconfigurable-allocator network-on-chip | |
KR102440129B1 (ko) | 저전력 모드 지원 컴퓨터 시스템 및 그것의 방법 | |
Wang et al. | Top-level activity-driven clock tree synthesis with clock skew variation considered | |
KR20160014505A (ko) | 집적 회로를 설계하기 위한 방법 및 프로그램 | |
JP2015095786A (ja) | 論理回路及び論理回路設計支援装置及び論理回路設計支援方法及びプログラム | |
US7188325B1 (en) | Method for selecting transistor threshold voltages in an integrated circuit | |
Joo et al. | A fine-grained clock buffer polarity assignment for high-speed and low-power digital systems | |
KR102651866B1 (ko) | 전력 소비를 줄이는 장치 및 그것의 방법 | |
Rahman et al. | Library-based cell-size selection using extended logical effort | |
Ratkovic et al. | Physical vs. physically-aware estimation flow: case study of design space exploration of adders | |
TWI536260B (zh) | 採石墨烯型電晶體的異質多核心處理器 | |
Sadrosadati et al. | An efficient DVS scheme for on-chip networks | |
JP6735951B2 (ja) | 高位合成装置、高位合成方法および高位合成プログラム | |
US10366001B1 (en) | Partitioning memory blocks for reducing dynamic power consumption | |
Kamal et al. | Design of NBTI-resilient extensible processors |