(57)【要約】      （修正有）【課題】電源ノイズに起因して電圧が変動しても、ジッタ値が許容範囲内に収まる低消費電力回路の設計を支援できる回路設計支援装置を提供する。【解決手段】設計対象の対象パスと、信号の周期と許容ジッタ値をユーザ入力に基づいて設定する条件設定部１１と、対象パスに供給される電源電圧を周期毎に平均化した平均電源電圧と、平均電源電圧の最大値及び最小値とを算出する電圧算出部１２と、配置情報を、対象パスの駆動能力が減少していくように順番に設定するセル設定部１４と、最大値が供給されたときの対象パスの第１遅延と、最小値が供給されたときの対象パスの第２遅延との差が最小となるときの、配線情報を算出する配線長算出部１５と、駆動能力が高い配置情報の順に、平均電源電圧に基づいてジッタ値を算出するジッタ値算出部１６と、ジッタ値が許容ジッタ値を超えているか否かを判定する判定部１７とを具備する。【選択図】図４
2013131070.tif 000002
【特許請求の範囲】
【請求項１】
信号を伝搬させる設計対象である対象パスと、前記信号の周期と、前記信号の許容ジッタ値とをユーザ入力に基づいて設定する条件設定部と、
前記対象パスに供給される電源電圧を前記周期毎に平均化した平均電源電圧と、前記平均電源電圧の最大値及び最小値とを算出する電圧算出部と、
前記対象パスの要素として配置される駆動能力の異なる複数のセル種の各々の論理段数の組合せである配置情報を、前記対象パスの駆動能力が減少していくように順番に設定するセル設定部と、
駆動能力が高い前記配置情報の順に、前記配置情報で規定される前記対象パスに対して、前記最大値が供給されたときの前記対象パスの第１遅延と、前記最小値が供給されたときの前記対象パスの第２遅延との差が最小となるときの、前記複数のセル種の各々の後段の最適配線長の組合せである配線情報を算出する配線長算出部と、
駆動能力が高い前記配置情報の順に、前記配置情報と前記配線情報とで規定される前記対象パスに対して、前記平均電源電圧に基づいてジッタ値を算出するジッタ値算出部と、
駆動能力が高い前記配置情報の順に、前記ジッタ値が前記許容ジッタ値を超えているか否かを判定する判定部と
を具備し、
前記判定部は、第１配置情報と第１配線情報とで規定される前記対象パスの第１ジッタ値が前記許容ジッタ値を越えている場合、前記第１配置情報と前記第１配線情報よりも前に算出されている、第２配置情報と第２配線情報とを前記対象パスの要素として決定する
回路設計支援装置。
【請求項２】
請求項１に記載の回路設計支援装置であって、
前記判定部は、前記第１ジッタ値が前記許容ジッタ値以下の場合、前記セル設定部に前記複数のセル種の各々の論理段数の組合せを変更する変更指示を出力し、
前記セル設定部は、前記変更指示に基づいて、駆動能力が前記第１配置情報よりも低い第３配置情報に設定する
回路設計支援装置。
【請求項３】
請求項１又は２に記載の回路設計支援装置であって、
前記対象パスの要素として配置される駆動能力の異なる前記複数のセル種をリスト化したセルリストと、前記セルリストに含まれる前記複数のセル種の各々の最大論理段数と、前記複数のセル種の各々の後段に接続する最大配線長とをユーザ入力に基づいて設定するセル条件設定部
を更に具備し、
前記条件設定部は、前記対象パスの総配線長を算出し、
前記セル設定部は、前記セルリスト及び前記最大論理段数に基づいて、前記配置情報を前記対象パスの駆動能力が減少していくように順番に設定し、
前記配線長算出部は、前記配置情報で規定される前記対象パスに対して、前記複数のセル種の各々の後段の配線長として取り得る全ての組合せを、前記配置情報と、前記総配線長と、前記最大配線長とを条件とした線形計画法で算出し、前記全ての組合せのうちから、前記第１遅延と前記第２遅延との差が最小となるときの前記配線情報を算出する
回路設計支援装置。
【請求項４】
請求項３に記載の回路設計支援装置であって、
前記条件設定部は、前記信号のレイテンシ許容値をユーザ入力に基づいて設定し、
前記配線長算出部は、前記配置情報で規定される前記対象パスに対して、前記複数のセル種の各々の後段の配線長として取り得る全ての組合せを、前記配置情報と、前記総配線長と、前記最大配線長と、前記レイテンシ許容値を条件とした二次制約計画問題で算出する
回路設計支援装置。
【請求項５】
信号を伝搬させる設計対象である対象パスと、前記信号の周期と、前記信号の許容ジッタ値とをユーザ入力に基づいて設定する条件設定部と、
前記対象パスに供給される電源電圧を前記周期毎に平均化した平均電源電圧と、前記平均電源電圧の最大値及び最小値とを算出する電圧算出部と、
前記対象パスの要素として配置される駆動能力の異なる複数のセル種の各々の論理段数の組合せである配置情報を、前記対象パスの駆動能力が増加していくように順番に設定するセル設定部と、
駆動能力が低い前記配置情報の順に、前記配置情報で規定される前記対象パスに対して、前記最大値が供給されたときの前記対象パスの第１遅延と、前記最小値が供給されたときの前記対象パスの第２遅延との差が最小となるときの、前記複数のセル種の各々の後段の最適配線長の組合せである配線情報を算出する配線長算出部と、
駆動能力が低い前記配置情報の順に、前記配置情報と前記配線情報とで規定される前記対象パスに対して、前記平均電源電圧に基づいてジッタ値を算出するジッタ値算出部と、
駆動能力が低い前記配置情報の順に、前記ジッタ値が前記許容ジッタ値超えているか否かを判定する判定部と
を具備し、
前記判定部は、第１配置情報と第１配線情報とで規定される前記対象パスの第１ジッタ値が前記許容ジッタ値以下の場合、前記第１配置情報と前記第１配線情報とを前記対象パスの要素として決定する
回路設計支援装置。
【請求項６】
信号を伝搬させる設計対象である対象パスと、前記信号の周期と、前記信号の許容ジッタ値とをユーザ入力に基づいて設定するステップと、
前記対象パスに供給される電源電圧を前記周期毎に平均化した平均電源電圧と、前記平均電源電圧の最大値及び最小値とを算出するステップと、
前記対象パスの要素として配置される駆動能力の異なる複数のセル種の各々の論理段数の組合せである配置情報に基づいて、前記電源電圧が変動しても前記対象パスの遅延の変動が小さい前記対象パスの要素を決定するステップと
を具備し、
前記対象パスの要素を決定するステップは、
第１配置情報を設定するステップと、
前記第１配置情報で規定される前記対象パスに対して、前記最大値が供給されたときの前記対象パスの第１遅延と、前記最小値が供給されたときの前記対象パスの第２遅延との差が最小となるときの、前記第１配置情報に含まれる複数のセル種の各々の後段の最適配線長の組合せである第１配線情報を算出するステップと、
前記第１配置情報と前記第１配線情報とで規定される前記対象パスに対して、前記平均電源電圧に基づいて第１ジッタ値を算出するステップと、
前記第１ジッタ値が前記許容ジッタ値以下であることを判定するステップと、
前記第１配置情報よりも駆動能力の低い第２配置情報を設定するステップと、
前記第２配置情報で規定される前記対象パスに対して、前記最大値が供給されたときの前記対象パスの第３遅延と、前記最小値が供給されたときの前記対象パスの第４遅延との差が最小となるときの、前記第２配置情報に含まれる複数のセル種の各々の後段の最適配線長の組合せである第２配線情報を算出するステップと、
前記第２配置情報と前記第２配線情報とで規定される前記対象パスに対して、前記平均電源電圧に基づいて第２ジッタ値を算出するステップと、
前記第２ジッタ値が前記許容ジッタ値を超えたか否かを判定するステップと、
前記第２ジッタ値が前記許容ジッタ値を越えている場合、前記第１配置情報と前記第１配線情報とを前記対象パスの要素として決定するステップ
を備える
回路設計支援方法。
【請求項７】
請求項６に記載の回路設計支援方法であって、
前記対象パスの要素を決定するステップは、
前記第２ジッタ値が前記許容ジッタ値以下の場合、前記複数のセル種の各々の論理段数の組合せを変更する変更指示を出力するステップと、
前記変更指示に基づいて、駆動能力が前記第１配置情報よりも低い第３配置情報に設定するステップと
を更に備える
回路設計支援方法。
【請求項８】
請求項６又は７に記載の回路設計支援方法であって、
前記対象パスの総配線長を算出するステップと、
前記対象パスの要素として配置される駆動能力の異なる前記複数のセル種の各々をリスト化したセルリストと、前記セルリストに含まれる前記複数のセル種の各々の最大論理段数と、前記複数のセル種の各々の後段に接続する最大配線長とをユーザ入力に基づいて設定するステップと
を更に具備し、
前記第１配置情報を設定するステップは、
前記セルリスト及び前記最大論理段数に基づいて前記第１配置情報に設定するステップを含み、
前記第１配線情報を算出するステップは、
前記第１配置情報で規定される前記対象パスに対して、前記第１配置情報に含まれる複数のセル種の各々の後段の配線長として取り得る全ての組合せを、前記第１配置情報と、前記総配線長と、前記最大配線長とを条件とした線形計画法で算出し、前記全ての組合せのうちから、前記第１遅延と前記第２遅延との差が最小となるときの前記第１配線情報を算出するステップ
を含み、
前記第２配置情報を設定するステップは、
前記セルリスト及び前記最大論理段数に基づいて前記第２配置情報に設定するステップを含み、
前記第２配線情報を算出するステップは、
前記第２配置情報で規定される前記対象パスに対して、前記第２配置情報に含まれる複数のセル種の各々の後段の配線長として取り得る全ての組合せを、前記第２配置情報と、前記総配線長と、前記最大配線長とを条件とした線形計画法で算出し、前記全ての組合せのうちから、前記第３遅延と前記第４遅延との差が最小となるときの前記第２配線情報を算出するステップ
を含む
回路設計支援方法。
【請求項９】
請求項８に記載の回路設計支援方法であって、
前記信号のレイテンシ許容値をユーザ入力に基づいて設定するステップ
を更に具備し、
前記第１配線情報を算出するステップは、
前記第１配置情報で規定される前記対象パスに対して、前記第１配置情報に含まれる複数のセル種の各々の後段の配線長として取り得る全ての組合せを、前記配置情報と、前記総配線長と、前記最大配線長と、前記レイテンシ許容値を条件とした二次制約計画問題で算出するステップ
を含み、
前記第２配線情報を算出するステップは、
前記第２配置情報で規定される前記対象パスに対して、前記第２配置情報に含まれる複数のセル種の各々の後段の配線長として取り得る全ての組合せを、前記配置情報と、前記総配線長と、前記最大配線長と、前記レイテンシ許容値を条件とした線形計画法で算出するステップ
を含む
回路設計支援方法。
【請求項１０】
信号を伝搬させる設計対象である対象パスと、前記信号の周期と、前記信号の許容ジッタ値とをユーザ入力に基づいて設定するステップと、
前記対象パスに供給される電源電圧を前記周期毎に平均化した平均電源電圧と、前記平均電源電圧の最大値及び最小値とを算出するステップと、
前記対象パスの要素として配置される駆動能力の異なる複数のセル種の各々の論理段数の組合せである配置情報に基づいて、前記電源電圧が変動しても前記対象パスの遅延の変動が小さい前記対象パスの要素を決定するステップと
を具備し、
前記対象パスの要素を決定するステップは、
第１配置情報を設定するステップと、
前記第１配置情報で規定される前記対象パスに対して、前記最大値が供給されたときの前記対象パスの第１遅延と、前記最小値が供給されたときの前記対象パスの第２遅延との差が最小となるときの、前記第１配置情報に含まれる複数のセル種の各々の後段の最適配線長の組合せである第１配線情報を算出するステップと、
前記第１配置情報と前記第１配線情報とで規定される前記対象パスに対して、前記平均電源電圧に基づいて第１ジッタ値を算出するステップと、
前記第１ジッタ値が前記許容ジッタ値を超えていることを判定するステップと、
前記第１配置情報よりも駆動能力の高い第２配置情報を設定するステップと、
前記第２配置情報で規定される前記対象パスに対して、前記最大値が供給されたときの前記対象パスの第３遅延と、前記最小値が供給されたときの前記対象パスの第４遅延との差が最小となるときの、前記第２配置情報に含まれる複数のセル種の各々の後段の最適配線長の組合せである第２配線情報を算出するステップと、
前記第２配置情報と前記第２配線情報とで規定される前記対象パスに対して、前記平均電源電圧に基づいて第２ジッタ値を算出するステップと、
前記第２ジッタ値が前記許容ジッタ値を超えているか否かを判定するステップと、
前記第２ジッタ値が前記許容ジッタ値以下の場合、前記第２配置情報と前記第２配線情報とを前記対象パスの要素として決定するステップ
を備える
回路設計支援方法。
【請求項１１】
請求項６から１０の何れか一項に記載の回路設計支援方法をコンピュータに実行させる
回路設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は回路設計支援装置に関し、特にジッタ及び消費電力を考慮した回路設計に関する。
【背景技術】
【０００２】
電源ノイズなどに起因するジッタは、チップ間通信のエラーなどの実機不良を引き起こす原因となるため、様々なジッタの低減方法が考えられている。図１は、様々なジッタの低減方法を示した図である。図１に示すように、ジッタの低減方法は大別すると４つの方法が考えられる。ノイズ源を低減する方法（攻撃者側の対策）には、（１）電源配線を強化する方法、（２）消費電流を低減する方法がある。ノイズの影響を低減する方法（被害者側の対策）には、（３）ジッタを直接低減する方法、（４）電源ノイズの影響を低減することによりジッタを低減する方法がある。
【０００３】
本発明は、（４）電源ノイズの影響を低減することによりジッタを低減する方法に関し、特に、パス構成に基づいてジッタの低減を行うものである。パス構成に関連する技術としては以下のような文献が開示されている。非特許文献１には、パス遅延を最小化する技術が開示されている。図２は、非特許文献１において、パス遅延に関する図である。図２を参照すると、リピータの挿入数と、パス遅延との関係が示されている。非特許文献１では、パス遅延の最小化を目的として、等間隔でセル（リピータ）を何段挿入したら、パス遅延が最小になるかについて開示している。
【０００４】
特許文献１（特開２０１１−８４１０号公報）には、製造ばらつき、及び、環境変動等のパラメータの条件の変動に対して、耐性の強い信号パスの回路設計を行うことができる回路設計支援装置が開示されている。この回路設計支援装置は、信号パスでの前段回路と後段回路との間を接続する配線として取り得る配線長ごとに、複数のパラメータの所定の条件における信号パスの遅延時間から、複数のパラメータの個別の条件の変動が遅延時間に与える影響度合いを算出する算出手段と、算出された影響度合いに基づいて信号パスの配置情報を決定する決定手段とを備えることを特徴としている。
【０００５】
また、図１の（３）ジッタを直接低減する方法であって、ジッタ低減回路に関する技術としては以下のような文献が開示されている。特許文献２（特開２０１０−１９１６４４号公報）には、クロックジッタを低減できる半導体設計支援プログラムが開示されている。この半導体設計支援プログラムは、調整対象回路指定手段と、ノイズ周期特定手段と、遅延時間特定手段と、調整時間決定手段とを備える。調整対象回路指定手段は、調整対象となるクロック分配回路を指定する。ノイズ周期特定手段は、クロック分配回路に周期的なノイズの影響を与えるノイズ源のノイズ周期を特定する。遅延時間特定手段は、クロック分配回路の伝播遅延時間を特定する。調整時間決定手段は、伝播遅延時間に調整時間を加えた調整後伝播遅延時間が、ノイズ周期の自然数倍となるように調整時間を決定する。このような半導体設計支援プログラムによれば、クロック信号のジッタ量を低減した半導体装置を容易に設計できるとされている。
【０００６】
特許文献３（特開２０１０−３９６３１号公報）には、電源ノイズによる電源電圧変動を考慮して論理セルを配置するＬＳＩの設計方法が開示されている。このＬＳＩの設計方法は、電源線上の複数の点における電圧波形を取得し、電圧波形から最小電圧を求め、電源線の複数の点の中の２点間の距離に対する最小電圧の空間相関を表す第１の相関係数を求め、第１の相関係数に基づいて、複数の論理セルの配置を決定することを特徴としている。
【０００７】
特許文献４（特開２００８−２２７６２４号公報）には、電源ノイズの影響を軽減する方法が開示されている。この電源ノイズの影響低減方法は、電子回路の第１の信号線を伝播する第１の信号に乗っている電源ノイズが、第２の信号線を伝播する第２の信号に与える影響を軽減する方法であって、第２の信号に影響を与える電源ノイズ内の特定の周波数成分のノイズを測定し、測定された特定の周波数成分のノイズの発生頻度に応じて第１又は第２の信号の成分を制御することを特徴としている。これによって、第２の信号に生じる電源ノイズの影響を低減できるとされている。
【０００８】
特許文献５（特開２００７−１９３６５８号公報）には、クロック遅延値を調整する機能を備える半導体装置が開示されている。この半導体装置は、発振源から出力されるクロックを、半導体装置の内部回路へ分配するクロック分配手段と、クロックを外部回路に供給するクロック供給手段と、外部回路に供給されるクロックとクロック分配手段の終端におけるクロックとの位相差を検出する位相差検出手段と、位相差検出手段で検出された位相差のデータを元にクロック供給手段から出力されるクロックの遅延を調整するクロック遅延調整手段とを含むことを特徴としている。このような半導体装置は、内部ブロックの動作による電源変動によっても、外部に出力するクロックに影響を及ぼさないため、安定したクロック信号を供給することが可能であるとしている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１１−８４１０号公報
【特許文献２】特開２０１０−１９１６４４号公報
【特許文献３】特開２０１０−３９６３１号公報
【特許文献４】特開２００８−２２７６２４号公報
【特許文献５】特開２００７−１９３６５８号公報
【非特許文献】
【００１０】
【非特許文献１】Ｇ．Ｃｈｅｎ  ａｎｄ  Ｅ．Ｇ．Ｆｒｉｅｄｍａｎ，“Ｌｏｗ−Ｐｏｗｅｒ  Ｒｅｐｅａｔｅｒｓ  Ｄｒｉｖｉｎｇ  ＲＣ  ａｎｄ  ＲＬＣ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ  Ｗｉｔｈ  Ｄｅｌａｙ  ａｎｄ  Ｂａｎｄｗｉｄｔｈ  Ｃｏｎｓｔｒａｉｎｔｓ，”  ＩＥＥＥ  Ｔｒａｎｓ．  ＶＬＳＩ  ＳＹＳＴＥＭＳ，ＶＯＬ．１４，ＮＯ．２，ＦＥＢＲＵＡＲＹ  ２００６．
【発明の概要】
【発明が解決しようとする課題】
【００１１】
非特許文献１に記載されたような方法では、パス遅延（セル遅延＋配線遅延）を最小化するためにリピータを挿入しているため、パス遅延のうちでセル遅延の割合が大きくなる。配線遅延は電圧が変動しても変動しにくいが、セル遅延は電圧の変動に基づいて変動しやすい性質がある。従って、非特許文献１のようにリピータの挿入によってパス遅延を最小化したとしても、電圧の変動による影響を受けやすくなり、その結果、電源ノイズによるパス遅延の変動（ジッタ値）が大きくなる問題がある。
【課題を解決するための手段】
【００１２】
以下に、発明を実施するための形態で使用される符号を括弧付きで用いて、課題を解決するための手段を記載する。この符号は、特許請求の範囲の記載と発明を実施するための形態の記載との対応を明らかにするために付加されたものであり、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１３】
本発明の回路設計支援装置（１）は、信号を伝搬させる設計対象である対象パス（２３）と、信号の周期と、信号の許容ジッタ値とをユーザ入力に基づいて設定する条件設定部（１１）と、対象パス（２３）に供給される電源電圧（Ｖ）を周期（Ｔ）毎に平均化した平均電源電圧（ＶＡｋ）と、平均電源電圧（ＶＡｋ）の最大値（ＶＡｍａｘ）及び最小値（ＶＡｍｉｎ）とを算出する電圧算出部（１２）と、対象パス（２３）の要素として配置される駆動能力の異なる複数のセル種（ＣＥＬＬｉ）の各々の論理段数（ｎｉ）の組合せである配置情報を、対象パス（２３）の駆動能力が減少していくように順番に設定するセル設定部（１４）と、駆動能力が高い配置情報の順に、配置情報で規定される対象パス（２３）に対して、最大値（ＶＡｍａｘ）が供給されたときの対象パス（２３）の第１遅延と、最小値（ＶＡｍｉｎ）が供給されたときの対象パス（２３）の第２遅延との差が最小となるときの、複数のセル種（ＣＥＬＬｉ）の各々の後段の最適配線長（ｌｉ）の組合せである配線情報を算出する配線長算出部（１５）と、駆動能力が高い配置情報の順に、配置情報と配線情報とで規定される対象パス（２３）に対して、平均電源電圧（ＶＡ）に基づいてジッタ値（Ｊ）を算出するジッタ値算出部（１６）と、駆動能力が高い配置情報の順に、ジッタ値（Ｊ）が許容ジッタ値を超えているか否かを判定する判定部（１７）とを具備する。判定部（１７）は、第１配置情報と第１配線情報とで規定される対象パス（２３）の第１ジッタ値（Ｊ）が許容ジッタ値を越えている場合、第１配置情報と第１配線情報よりも前に算出されている、第２配置情報と第２配線情報とを対象パス（２３）の要素として決定する。
【００１４】
本発明の回路設計支援方法は、信号を伝搬させる設計対象である対象パス（２３）と、信号の周期（Ｔ）と、信号の許容ジッタ値とをユーザ入力に基づいて設定するステップと、対象パス（２３）に供給される電源電圧（Ｖ）を周期（Ｔ）毎に平均化した平均電源電圧（ＶＡｋ）と、平均電源電圧（ＶＡｋ）の最大値（ＶＡｍａｘ）及び最小値（ＶＡｍｉｎ）とを算出するステップと、対象パス（２３）の要素として配置される駆動能力の異なる複数のセル種（ＣＥＬＬｉ）の各々の論理段数（ｎｉ）の組合せである配置情報に基づいて、電源電圧（Ｖ）が変動しても対象パス（２３）の遅延の変動が小さい対象パス（２３）の要素を決定するステップとを具備する。
対象パス（２３）の要素を決定するステップは、第１配置情報を設定するステップと、第１配置情報で規定される対象パス（２３）に対して、最大値（ＶＡｍａｘ）が供給されたときの対象パス（２３）の第１遅延と、最小値（ＶＡｍｉｎ）が供給されたときの対象パス（２３）の第２遅延との差が最小となるときの、第１配置情報に含まれる複数のセル種（ＣＥＬＬｉ）の各々の後段の最適配線長（ｌｉ）の組合せである第１配線情報を算出するステップと、第１配置情報と第１配線情報とで規定される対象パス（２３）に対して、平均電源電圧（ＶＡｋ）に基づいて第１ジッタ値（Ｊ）を算出するステップと、第１ジッタ値（Ｊ）が許容ジッタ値以下であることを判定するステップと、第１配置情報よりも駆動能力の低い第２配置情報を設定するステップと、第２配置情報で規定される対象パス（２３）に対して、最大値（ＶＡｍａｘ）が供給されたときの対象パス（２３）の第３遅延と、最小値（ＶＡｍｉｎ）が供給されたときの対象パス（２３）の第４遅延との差が最小となるときの、第２配置情報に含まれる複数のセル種（ＣＥＬＬｉ）の各々の後段の最適配線長（ｌｉ）の組合せである第２配線情報を算出するステップと、第２配置情報と第２配線情報とで規定される対象パス（２３）に対して、平均電源電圧（ＶＡｋ）に基づいて第２ジッタ値（Ｊ）を算出するステップと、第２ジッタ値（Ｊ）が許容ジッタ値を超えたか否かを判定するステップと、第２ジッタ値（Ｊ）が許容ジッタ値を越えている場合、第１配置情報と第１配線情報とを対象パス（２３）の要素として決定するステップを備える。
【発明の効果】
【００１５】
本発明の回路設計支援装置は、電源ノイズに起因して電圧が変動しても、ジッタ値が許容範囲内に収まる低消費電力回路の設計を支援することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、様々なジッタの低減方法を示した図である。
【図２】図２は、非特許文献１において、パス遅延に関する図である。
【図３Ａ】図３Ａは、半導体装置の設計フローを示した図である。
【図３Ｂ】図３Ｂは、本発明の回路設計支援装置１の概要である。
【図４】図４は、本発明の回路設計支援装置１の構成例を示したブロック図である。
【図５】図５は、ライブラリ部１０が格納するライブラリの例である。
【図６】図６は、式（１）のステージ遅延の関数を図示したものである。
【図７】図７は、ステージ遅延とパス遅延との関係を示す図である。
【図８】図８は、条件設定部１１が設定するジッタ値を低減させる対象パス２３を示す図である。
【図９】図９は、クロック信号を示す図である。
【図１０】図１０は、クロック信号のジッタを示す図である。
【図１１】図１１は、電圧波形情報示す図である。
【図１２】図１２は、セル設定部１４が各セル種ＣＥＬＬｉの論理段数ｎｉの組合せを変更していく処理を示す図である。
【図１３】図１３は、図１２に対応した対象パス２３を示す図である。
【図１４】図１４は、線形計画法によって算出されたＣＥＬＬ１が取り得る配線長ｌ１と、ＣＥＬＬ２とが取り得る配線長ｌ２との全ての組み合わせを実行可能領域として示す図である。
【図１５】図１５は、最大値ＶＡｍａｘのときのパス遅延と、最小値ＶＡｍｉｎのときのパス遅延との差を最小化することを示した概念図である。
【図１６】図１６は、周期ジッタ値の算出対象となる対象パス２３を示す図である。
【図１７】図１７は、入力クロック信号と、出力クロック信号とに基づいて、ジッタ値Ｊを算出することを示す図である。
【図１８】図１８は、判定部１７の判定回数と、判定対象のジッタ値Ｊとの関係を示した図である。
【図１９】図１９は、回路設計支援装置１の実施の形態における、ハードウエア構成例を示すブロック図である。
【図２０】図２０は、本発明の回路設計支援装置１の第１の実施の形態による処理動作を示したフローチャートである。
【図２１】図２１は、本発明の第２の実施の形態による回路設計支援装置１ａの構成例を示したブロック図である。
【図２２Ａ】図２２Ａは、クロックレイテンシ許容値を含む全ての条件を満たす実行可能領域がないことを示した図である。
【図２２Ｂ】図２２Ｂは、実行可能領域がある場合を示した図である。
【図２２Ｃ】図２２Ｃは、実行可能領域がある場合を示した図である。
【図２３】図２３は、本発明の第２の実施の形態による回路設計支援装置１ａの処理動作を示したフローチャートである。
【発明を実施するための形態】
【００１７】
以下、添付図面を参照して本発明の実施の形態による回路設計支援装置を説明する。
【００１８】
（第１の実施の形態）
本発明の第１の実施の形態を説明する。まず、本発明の回路設計支援装置の適用箇所について図３Ａ、図３Ｂを用いて説明する。たとえば、所望するシステムを半導体集積回路として設計する際には、図３Ａに示すように、おおむねシステム設計が実施され、その出力としてＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）記述された回路情報（機能情報）が作られる（ステップＳ１０１）。このＲＴＬ記述された回路情報を基に機能・論理設計が実施され、ゲートレベルの論理回路、すなわちネットリストが生成される（ステップＳ１０２）。そして、このネットリストをもとに、マクロの配置や、その他の素子（機能ブロックなど）を配置、配線してレイアウト設計を実施する（ステップＳ１０３、Ｓ１０４、Ｓ１０５）。図３Ａでは示していないが、レイアウトが完了した回路の各検証を行い、問題なければ、サインオフにいたって、ＧＤＳ（Ｇｒａｐｈｉｃ  Ｄｅｓｉｇｎ  Ｓｔａｎｄａｒｄ）を出力する（ステップＳ１０６）。そしてＧＤＳをもとに半導体装置の製造用マスクを作成し、半導体装置の製造に利用する。
【００１９】
この一般的な半導体装置の設計フローにおいて、本発明の回路設計支援装置は、図３Ａに示す、マクロの配置が終わった段階でのレイアウト情報をもとに、回路設計支援を行う対象パスや回路に対して処理を実行する（ステップＳ１１０）。あるいは、本発明の回路設計支援装置は、上述の機能ブロックなどを配置、配線してほぼ終盤のレイアウト設計が終わった段階でのレイアウト情報をもとに、回路設計支援を行う対象パスや回路に対して処理を実行する（ステップＳ１１１）。ステップＳ１１１の場合、本発明の回路設計支援装置の出力結果に応じて、再度、回路ならびにレイアウトの修正を行うＥＣＯ（Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｈａｎｇｅ  Ｏｒｄｅｒｓ）が実行される（ステップＳ１０５）。
なお、本明細書では、この一般的な半導体装置の設計フローを実行するシステムを単に設計システムと称する。
【００２０】
次に図３Ｂに、本発明の回路設計支援装置１の概要を示す。本発明の回路設計支援装置１は、少なくとも、内部回路に供給される電源の電圧波形情報と、対象パス（あるいは対象回路）と、対象パス（あるいは対象回路）の総配線長と、セルリストと、対象パス（あるいは対象回路）の動作周波数とを含む入力情報が入力される。これらは、あらかじめ設計段階で既知の場合はすべて外部から入力し、図３Ａの設計フローの各段階での情報を反映した情報として設計システムから得る場合は、設計システムから入力する。
図３Ｂにあっては、回路設計支援装置１のサブシステムは、レイアウト情報（たとえばＤＥＦ）からマクロの配置情報を入手し、この情報から電源ノイズ解析を行って上述の電圧波形情報を算出し（ステップＳ１２０）、回路設計支援装置１のメインシステムに入力する。また、回路設計支援装置１のサブシステムは、対象パスとレイアウト情報とに基づいて、対象パスの総配線長を算出する（ステップＳ１２１）。
【００２１】
なお、電圧波形情報や対象パス（あるいは対象回路）の総配線長は、より詳細なレイアウトが実施された後に算出するほうがベターな場合は、図３ＡのステップＳ１１１のフェーズで回路設計支援装置１を利用するとよい。更に、必要に応じてステップＳ１１０とステップＳ１１１との２回とも実行することも可能である。
また、実施箇所はこれらにかぎられない。すなわち、設計者が所望の段階で設計システムに対して回路設計支援装置１の出力結果を反映するようにすればよい。
なお、図３Ｂでは、上述の回路設計支援装置１のサブシステムとメインシステムとをあわせたものが本発明の回路設計支援装置１としているが、メインシステムのみの構成でもよい。
【００２２】
本発明の回路設計支援装置１は、ジッタ低減設計を行って（ステップＳ１３０）、少なくとも対象パス（対象回路）の指定された論理段数ｎｉと配線長ｌｉとを出力し、前述の設計システムにフィードバックを行う。対象パスではなく、対象回路として指定した場合は、対象回路に含まれる１つまたは複数のパスに対して同様の処理を行う。すなわち設計システムは、本発明の回路設計支援装置１の出力した論理段数ｎｉと配線長ｌｉに従ってレイアウトを実行する。その処理のインターフェースについては、設計システムにあわせ適宜行えばよい。
【００２３】
本実施の形態では、以上記したように、本発明の回路設計支援装置１は、少なくとも、内部回路に供給される電源の電圧波形情報・対象パス（あるいは対象回路）・対象パス（あるいは対象回路）の総配線長・セルリスト・対象パス（あるいは対象回路）の動作周波数を含む入力情報を基に、ジッタを考慮した回路となるように、対象パス（対象回路）に対して、少なくとも対象パス（対象回路）の指定された論理段数ｎｉと配線長ｌｉとを設計システムに出力する。このような本発明の回路設計支援装置（メインシステム）１は、図４に示されるような構成をとる。
【００２４】
図４は、本発明の回路設計支援装置（メインシステム）１の構成例を示したブロック図である。図４を参照すると、回路設計支援装置１は、ライブラリ部１０と、条件設定部１１と、電圧算出部１２と、セル条件設定部１３と、セル設定部１４と、配線長算出部１５と、ジッタ値算出部１６と、判定部１７と、消費電力算出部１８と、出力部１９とを具備する。
【００２５】
ライブラリ部１０は、セル種と、当該セル種を駆動する電源電圧の範囲と、電源電圧の範囲に対応したステージ遅延の関数とを関連付けてライブラリとして格納する。ライブラリ部１０は、ライブラリを予め格納していてもよいし、ユーザ入力に基づいて生成してもよい。図５は、ライブラリ部１０が格納するライブラリの例である。図５を参照すると、セル種ＣＥＬＬｉと、セル種ＣＥＬＬｉを駆動する電源電圧の範囲と、電源電圧の範囲に対応したステージ遅延の関数とが関連づけられている。ステージ遅延の関数について説明すると、ステージ遅延は、所定の機能を実現する回路を表すセルに関するセル遅延と、当該セルと後段のセルとを接続する配線に関する配線遅延とに基づいた遅延であって、セル種ＣＥＬＬｉ（ｉ＝１〜ｍ）と、セル種ＣＥＬＬｉを駆動する電源電圧ｖｈと、セル種ＣＥＬＬｉの後段の配線長ｌｉとに基づいて決まる遅延である。従って、セル種ＣＥＬＬｉ及び電源電圧ｖｈを定めると、ステージ遅延は配線長ｌｉを変数とする関数として表せる。
【００２６】
ライブラリ部１０がライブラリを生成する場合について説明する。ライブラリ部１０は、ユーザ入力に基づいて、複数のセル種（ＣＥＬＬ１、ＣＥＬＬ２、・・・、ＣＥＬＬｍ）と、各セル種ＣＥＬＬｉを駆動する電源電圧の範囲（最小電圧値ｖｍｉｎから最大電圧値ｖｍａｘ）を取得する。尚、複数のセル種（ＣＥＬＬ１、ＣＥＬＬ２、・・・、ＣＥＬＬｍ）は、セルリスト（詳細は後述する）として取得してもよい。更に、最小電圧値ｖｍｉｎ及び最大電圧値ｖｍａｘは、電圧波形情報（詳細は後述する）に基づいてライブラリ部１０が設定してもよい。ライブラリ部１０は、ステージ遅延の関数を算出するにあたって、各セル種ＣＥＬＬｉを駆動する電源電圧として、最小電圧値ｖｍｉｎから最大電圧値ｖｍａｘの範囲に含まれる電圧ｖ１、ｖ２、・・・の離散値を用いる。ライブラリ部１０は、任意のセル種ＣＥＬＬｉが駆動する電源電圧を電圧ｖ１としたときのステージ遅延を、配線長ｌｉ毎にＳＰＩＣＥ（Ｓｉｍｕｌａｔｉｏｎ  Ｐｒｏｇｒａｍ  ｗｉｔｈ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｅｍｐｈａｓｉｓ）で算出する。そして、ライブラリ部１０は配線長ｌｉ毎に算出されたステージ遅延を、配線長ｌｉを変数とする２次関数でフィッティングする。ライブラリ部１０は、セル種ＣＥＬＬｉを駆動する電源電圧が電圧ｖ１であるステージ遅延の関数を式（１）のように算出する。
Ｄｓｔａｇｅ＝ａｉ（ｖ１）×ｌｉ２＋ｂｉ（ｖ１）×ｌｉ＋ｃｉ（ｖ１）・・・（１）
【００２７】
図６は、式（１）のステージ遅延の関数を図示したものである。前述したように、セル種ＣＥＬＬｉを駆動する電源電圧は電圧ｖ１である。ライブラリ部１０は、セル種ＣＥＬＬｉと、電源電圧Ｖの範囲（ｖｍｉｎ≦Ｖ≦（ｖ１＋ｖ２）／２）と、ステージ遅延の関数である式（１）とを関連付けて格納する。
【００２８】
ライブラリ部１０は、同様に電圧ｖ２のセル種ＣＥＬＬｉのステージ遅延の関数を式（２）のように算出する。
Ｄｓｔａｇｅ＝ａｉ（ｖ２）×ｌｉ２＋ｂｉ（ｖ２）×ｌｉ＋ｃｉ（ｖ２）・・・（２）
ライブラリ部１０は、セル種ＣＥＬＬｉと、電源電圧Ｖの範囲（（ｖ１＋ｖ２）／２＜Ｖ≦（ｖ２＋ｖ３）／２）と、ステージ遅延の関数である式（２）とを関連付けて格納する。更に、ライブラリ部１０は、任意の電圧ｖｈのセル種ＣＥＬＬｉのステージ遅延の関数を式（３）のように算出する。
Ｄｓｔａｇｅ＝ａｉ（ｖｈ）×ｌｉ２＋ｂｉ（ｖｈ）×ｌｉ＋ｃｉ（ｖｈ）・・・（３）
ライブラリ部１０は、セル種ＣＥＬＬｉと、電源電圧Ｖの範囲（（ｖｈ−１＋ｖｈ）／２＜Ｖ≦（ｖｈ＋ｖｈ＋１）／２）と、ステージ遅延の関数である式（３）とを関連付けて格納する。
【００２９】
ライブラリ部１０は、セル種ＣＥＬＬｉと、セル種ＣＥＬＬｉを駆動する電源電圧Ｖの範囲と、算出したステージ遅延の関数とを関連付けて図５に示すようなライブラリとして格納する。ライブラリ部１０は、他のセル種に対しても同様に関連付けを行い、全てのセル種を含むライブラリを生成する。尚、ライブラリ部１０は、ステージ遅延の関数を保存しているとしたが、ａｉ（ｖｈ）、ｂｉ（ｖｈ）、ｃｉ（ｖｈ）などの係数を保存するものであってもよい。
【００３０】
ここで、パス遅延について説明する。図７は、ステージ遅延とパス遅延との関係を示す図である。図６に示すように、ステージ遅延Ｄｓｔａｇｅは配線長ｌｉを変数とする関数で表すことができるため、配線長ｌｉを決定しステージ遅延の関数に代入すると所望のステージ遅延Ｄｓｔａｇｅを算出することができる。ステージ遅延Ｄｓｔａｇｅに対して、同じセル種ＣＥＬＬｉの論理段数ｎｉを乗じると、当該セル種ＣＥＬＬｉに関するパス遅延Ｄｐａｔｈが算出できる。図７に示すように、例えば、対象パスが同一のセル種ＣＥＬＬｉであって、論理段数がｎｉ段である場合、パス遅延Ｄｐａｔｈは、ステージ遅延Ｄｓｔａｇｅに論理段数ｎｉを乗じることで算出することができる。
【００３１】
図４に戻り、条件設定部１１は、ユーザ入力に基づいて、クロック信号を伝搬させる設計対象である対象パスと、クロック信号の周波数（動作周波数）と、クロック信号の周期と、クロック信号の許容ジッタ値とを取得し、パス情報として設定する。また、条件設定部１１は、対象パスの総配線長Ｌｔｏｔａｌを回路設計支援装置１のサブシステムから取得する。図８は、ジッタ値を低減させる対象パス２３を示す図である。条件設定部１１は、ＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）などのクロックソース２０から、アナログ回路などの回路２１にクロック信号を伝搬させる対象パス２３を設定する。図９は、クロック信号を示す図である。図９では、クロック信号の周期がＴで示されている。条件設定部１１は、ユーザ入力に基づいて、クロック周波数（ｆｃｌｋ＝１／Ｔ）、及び、クロック信号の周期Ｔを設定する。図１０は、クロック信号のジッタを示す図である。条件設定部１１は、ユーザ入力に基づいて、ジッタの許容値である許容ジッタ値を設定する。本発明で扱うジッタ値は、Ｃｙｃｌｅ‐ｔｏ‐Ｃｙｃｌｅジッタ値の最大と、周期ジッタ値との何れでもよい。Ｃｙｃｌｅ‐ｔｏ‐Ｃｙｃｌｅジッタ値は、ある時刻ｔ１で立ち上がるクロック信号の周期Ｔ１と、その次に立ち上がるクロック信号の周期Ｔ２との差分で表されるジッタ値であって、最大とは所定の期間内でのＣｙｃｌｅ‐ｔｏ‐Ｃｙｃｌｅジッタ値の最大値を表す。周期ジッタ値は、所定の期間内での全てのクロック信号の周期Ｔｋのうちで最大値と最小値の差で表されるジッタ値である。
【００３２】
電圧算出部１２は、電圧波形情報を回路設計支援装置１のサブシステムから取得する。図１１は、電圧波形情報示す図である。また、電圧算出部１２は、ユーザ入力に基づいて、クロック信号の周期Ｔを取得する。電圧算出部１２は、電圧波形情報を参照して、対象パス２３に供給されるノイズを含む所定の期間の電源電圧Ｖを、クロック信号の周期Ｔ毎に平均化した平均電源電圧ＶＡｋ（ｋ＝１、２、・・・、ｑ）を算出する。また、電圧算出部１２は、所定の期間の平均電源電圧ＶＡｋのうちで、最大値ＶＡｍａｘと最小値ＶＡｍｉｎとを算出する。図１１を参照すると、電圧算出部１２は、任意の周期Ｔｋ（ｋ＝１、２、・・・、ｑ）の立ち上がり時刻ｔｋから、周期Ｔｋ＋１の立ち上がり時刻ｔｋ＋１までの電源電圧Ｖを平均化した平均電源電圧ＶＡｋを算出する。
時刻ｔｋは、式（４）のように表せる。
ｔｋ＝Ｔ×ｋ・・・（４）
時刻ｔｋから、時刻ｔｋ＋１までの平均電源電圧ＶＡｋは、式（５）で表すことができる。
【数１】
2013131070.tif 000003
電圧算出部１２は、平均電源電圧ＶＡｋを算出した後、最大値ＶＡｍａｘと、最小値ＶＡｍｉｎとを算出する。
【００３３】
セル条件設定部１３は、ユーザ入力に基づいて、対象パス２３の要素として配置される駆動能力の異なる複数のセル種ＣＥＬＬｉ（ｉ＝１〜ｍ）をリスト化したセルリスト（ＣＥＬＬ＿ＬＩＳＴ＝｛ＣＥＬＬ１、ＣＥＬＬ２、ＣＥＬＬ３、・・・、ＣＥＬＬｍ｝）を取得する。また、セル条件設定部１３は、ユーザ入力に基づいて、セルリストに含まれる各セル種ＣＥＬＬｉの後段に接続する配線長の最大値（最大配線長Ｌｉ）と、各セル種ＣＥＬＬｉの最大の論理段数（最大論理段数Ｎｉ）とを設定する。
【００３４】
セル設定部１４は、対象パス２３の要素として配置される駆動能力の異なる各セル種ＣＥＬＬｉの論理段数ｎｉの組合せである配置情報を、対象パス２３の駆動能力が減少していくように順番に設定する。詳細には、セル設定部１４は、セル条件設定部１３からセルリスト、各セル種ＣＥＬＬｉの最大配線長Ｌｉ、各セル種ＣＥＬＬｉの最大論理段数Ｎｉを取得する。セル設定部１４は、セルリスト及び各セル種ＣＥＬＬｉの最大論理段数Ｎｉに基づいて配置情報を設定する。例えば、各セル種ＣＥＬＬｉの駆動能力の大小関係を、ＣＥＬＬ１＞ＣＥＬＬ２＞ＣＥＬＬ３＞・・・＞ＣＥＬＬｍとし、ＣＥＬＬ１〜ＣＥＬＬｍのそれぞれの最大論理段数Ｎ１〜Ｎｍが５段であるとした場合、セル設定部１４は各セル種ＣＥＬＬｉの論理段数ｎｉを、ｎ１＝５、ｎ２＝０、ｎ３＝０、・・・、ｎｍ＝０とした配置情報を設定する。初期の設定では、セル設定部１４は駆動能力が最も高くなる各セル種ＣＥＬＬｉの論理段数ｎｉに設定する。また、セル設定部１４は、後述する判定部１７から各セル種ＣＥＬＬｉの論理段数ｎｉの組合せ（配置情報）を変更する変更指示を受け取ると、駆動能力が前回の設定よりも低くなるように、各セル種ＣＥＬＬｉの論理段数ｎｉの組合せを変更する。特に、セル設定部１４は、前回の設定の駆動能力の次に大きい駆動能力となるように変更する。例えば、前述の続きでは、セル設定部１４は各セル種ＣＥＬＬｉの論理段数ｎｉを、ｎ１＝４、ｎ２＝１、ｎ３＝０、・・・、ｎｍ＝０と設定する。このようにセル設定部１４は、駆動能力の高いセルの論理段数を減少させ、駆動能力の低いセルの論理段数を増加するように変更する。図１２は、セル設定部１４が各セル種ＣＥＬＬｉの論理段数ｎｉの組合せを変更していく処理を示す図である。図１３は、図１２に対応した対象パス２３を示す図である。図１３を参照すると、セル設定部１４は、１回目（最初）の処理ではＣＥＬＬ１を５段に設定する。セル設定部１４は、判定部１７から変更指示を受け取ると、ＣＥＬＬ１を４段に減らし、ＣＥＬＬ２を１段に増加する。更に、セル設定部１４は、判定部１７から変更指示を受け取ると、ＣＥＬＬ１を３段に減らし、ＣＥＬＬ２を２段に増加する。このように、セル設定部１４は、高駆動能力のセルの段数を順番に減少するように動作する。
【００３５】
配線長算出部１５と、ジッタ値算出部１６と、判定部１７とは、各セル種ＣＥＬＬｉの論理段数ｎｉの組合せである配置情報に基づいて、電源電圧Ｖが変動しても対象パス２３の遅延の変動が小さい対象パス２３の要素を決定する。
【００３６】
配線長算出部１５は、対象パス２３に含まれる各セル種ＣＥＬＬｉに供給される電源電圧Ｖが変動しても、パス遅延の変動が小さい各セル種ＣＥＬＬｉの後段の最適配線長ｌｉを算出する。言い換えると、配線長算出部１５は、配置情報で規定される対象パス２３に対して、最大値ＶＡｍａｘが供給されたときの対象パス２３の遅延と、最小値ＶＡｍｉｎが供給されたときの対象パス２３の遅延との差が最小となるような、各セル種ＣＥＬＬｉの後段の最適配線長ｌｉの組合せである配線情報を算出する。尚、配線長算出部１５は、対象パス２３の要素を決定する一連の処理の中で、駆動能力が高い配置情報から低い配置情報の順に処理を行なう。
【００３７】
まず、配線長算出部１５は、配置情報で規定される対象パス２３に対して、各セル種ＣＥＬＬｉの後段の配線長ｌｉとして取り得る全ての組み合わせを算出する。詳細には、配線長算出部１５は、条件設定部１１から総配線長Ｌｔｏｔａｌを取得する。更に、配線長算出部１５は、セル設定部１４から配置情報と、各セル種ＣＥＬＬｉの最大配線長Ｌｉとを取得する。配線長算出部１５は、式（６）と、式（７）とで表される条件式に基づいて、各セル種ＣＥＬＬｉの後段の配線長ｌｉとして取り得る全ての組み合わせを線形計画法に基づいて算出する。
【数２】
2013131070.tif 000004
ｌｉ≦Ｌｉ  （ｉ＝１、２、・・・、ｍ）・・・（７）
式（６）は、対象パス２３の総配線長Ｌｔｏｔａｌが、各セル種ＣＥＬＬｉの論理段数ｎｉと、各セル種ＣＥＬＬｉの配線長ｌｉとの総和に等しいことを表している。式（７）は、対象パス２３に含まれる各セル種ＣＥＬＬｉの配線長ｌｉが、最大配線長Ｌｉ以下であることを示している。
【００３８】
具体例として、配線長算出部１５が、セル設定部１４からセルの種類としてＣＥＬＬ１、ＣＥＬＬ２と、ＣＥＬＬ１の論理段数ｎ１と、ＣＥＬＬ２の論理段数ｎ２と、ＣＥＬＬ１の最大配線長Ｌ１と、ＣＥＬＬ２の最大配線長Ｌ２とを取得する場合を説明する。図１４は、線形計画法によって算出されたＣＥＬＬ１が取り得る配線長ｌ１と、ＣＥＬＬ２とが取り得る配線長ｌ２との全ての組み合わせを実行可能領域として示す図である。配線長算出部１５は、実行可能領域に含まれるＣＥＬＬ１の配線長ｌ１及びＣＥＬＬ２の配線長ｌ２の全ての組合せを算出する。
【００３９】
次に、配線長算出部１５は、算出された各セル種ＣＥＬＬｉの後段の配線長ｌｉの全ての組合せのうちで、駆動電圧として供給され得る最大電圧が供給されたときのパス遅延と、供給され得る最小電圧が供給されたときのパス遅延との差が最小となるような、各セル種ＣＥＬＬｉの後段の最適配線長ｌｉの組合せである配線情報を算出する。詳細には、配線長算出部１５は、電圧算出部１２から平均電源電圧ＶＡｋの最大値ＶＡｍａｘと、最小値ＶＡｍｉｎとを取得する。配線長算出部１５は、ライブラリ部１０を参照して、各セル種ＣＥＬＬｉと、最大値ＶＡｍａｘとに基づいて、該当する複数のステージ遅延の関数を取得する。配線長算出部１５は、複数のステージ遅延の関数と、各セル種ＣＥＬＬｉの後段の配線長ｌｉとして取り得る組み合わせと、各セル種ＣＥＬＬｉの論理段数ｎｉとに基づいて、パス遅延を算出する。このときのパス遅延は式（８）で表される。
【数３】
2013131070.tif 000005
同様に、配線長算出部１５は、各セル種ＣＥＬＬｉと、最小値ＶＡｍｉｎとに基づいて、複数のステージ遅延の関数を取得し、パス遅延を算出する。そして、配線長算出部１５は、算出された各セル種ＣＥＬＬｉの後段の配線長ｌｉの全ての組合せのうちで、最大値ＶＡｍａｘのときのパス遅延と、最小値ＶＡｍｉｎのときのパス遅延との差が最小となるような、各セル種の後段の最適配線長ｌｉの組合せを算出する。各セル種ＣＥＬＬｉの後段の最適配線長ｌｉは、式（９）のｆｓｅｎｓｅの絶対値が最小となるときの配線長ｌｉである。
【数４】
2013131070.tif 000006
図１５は、最大値ＶＡｍａｘのときのパス遅延と、最小値ＶＡｍｉｎのときのパス遅延との差を最小化することを示した概念図である。Ｄｐａｔｈの傾きを小さくする事で電圧変動に関するパス遅延の感度(ｆｓｅｎｓｅの絶対値)を小さくさせている。このように、配線長算出部１５は、電源電圧Ｖが変動しても、パス遅延が変動しにくい各セル種ＣＥＬＬｉの最適配線長ｌｉの組合せである配線情報を算出する。
【００４０】
ジッタ値算出部１６は、配置情報と配線情報とで規定される対象パス２３に対して、平均電源電圧ＶＡｋ（ｋ＝１、２、・・・、ｑ−１）に基づいてジッタ値Ｊを算出する。言い換えると、ジッタ値算出部１６は、各セル種ＣＥＬＬｉと、各セル種ＣＥＬＬｉの論理段数ｎｉと、各セル種ＣＥＬＬｉの後段の最適配線長ｌｉと、平均電源電圧ＶＡｋとに基づいて、対象パス２３のジッタ値Ｊを算出し、判定部１７に提供する。算出するジッタ値Ｊは、条件設定部１１で設定された許容ジッタ値と同じであり、Ｃｙｃｌｅ‐ｔｏ‐Ｃｙｃｌｅジッタ値の最大と周期ジッタ値との何れでもよい。尚、ジッタ値算出部１６は、対象パス２３の要素を決定する一連の処理の中で、駆動能力が高い配置情報の順に処理を行なう。
【００４１】
ジッタ値算出部１６がＣｙｃｌｅ‐ｔｏ‐Ｃｙｃｌｅジッタ値の最大を算出する場合を説明する。ジッタ値算出部１６は、ある時刻ｔｋで立ち上がるクロック信号の周期Ｔｋと、その直後のクロック信号の周期Ｔｋ＋１との差分で表されるジッタ値Ｊｋのうちで、最大ジッタ値Ｊ（ｍａｘＪｋ）を算出する。言い換えると、ジッタ値算出部１６は、ある時刻ｔｋで立ち上がるクロック信号の周期Ｔｋのパス遅延と、その直後のクロック信号の周期Ｔｋ＋１のパス遅延の差分で表されるジッタ値Ｊｋのうちで、最大ジッタ値Ｊ（ｍａｘＪｋ）を算出する。ジッタ値算出部１６は、式（１０）に基づいてＣｙｃｌｅ‐ｔｏ‐Ｃｙｃｌｅジッタ値を算出する。
【数５】
2013131070.tif 000007
【００４２】
詳細には、ジッタ値算出部１６は、配線長算出部１５から各セル種ＣＥＬＬｉと、各セル種ＣＥＬＬｉの論理段数ｎｉと、各セル種ＣＥＬＬｉの後段の最適配線長ｌｉとを取得する。また、ジッタ値算出部１６は、電圧算出部１２から平均電源電圧ＶＡｋを取得する。ジッタ値算出部１６は、各セル種ＣＥＬＬｉと、平均電源電圧ＶＡｋとに基づいて、複数のステージ遅延の関数を取得する。ジッタ値算出部１６は、複数のステージ遅延の関数と、各セル種ＣＥＬＬｉの後段の配線長ｌｉとして取り得る組み合わせと、各セル種ＣＥＬＬｉの論理段数ｎｉとに基づいて、パス遅延を算出する。同様に、ジッタ値算出部１６は、各セル種ＣＥＬＬｉと、平均電源電圧ＶＡｋ＋１とに基づいて、複数のステージ遅延の関数を取得して、パス遅延を算出する。ジッタ値算出部１６は、平均電源電圧ＶＡｋのときのパス遅延と、平均電源電圧ＶＡｋ＋１ときのパス遅延の差分に基づいて、ジッタ値Ｊｋを算出する。そして、ジッタ値算出部１６は、所定の期間内の平均電源電圧ＶＡｋ基づいた全てのＣｙｃｌｅ‐ｔｏ‐Ｃｙｃｌｅジッタ値Ｊｋを算出し、最大ジッタ値Ｊ（ｍａｘＪｋ）を算出する。
【００４３】
一方、ジッタ値算出部１６が周期ジッタ値を算出する場合を説明する。ジッタ値算出部１６は、所定の期間内でのクロック信号の全ての周期Ｔｋを算出し、周期Ｔｋの最大値ｍａｘＴｋと最小値ｍｉｎＴｋの差で表されるジッタ値Ｊを算出する。図１６は、周期ジッタ値の算出対象となる対象パス２３を示す図である。入力クロック信号は、パス遅延Ｄｐａｔｈ分遅れて出力クロック信号として出力される。図１７は、入力クロック信号と、出力クロック信号とに基づいて、ジッタ値Ｊを算出することを示す図である。ジッタ値算出部１６は、出力クロック信号の周期Ｔ１〜Ｔ４のそれぞれを算出し、最大の周期である最大値ｍａｘＴｋと最小の周期である最小値ｍｉｎＴｋとの差分からジッタ値Ｊを算出する。詳細には、ジッタ値算出部１６は、式（１１）に基づいて周期Ｔｋ（ｋ＝１、２、・・・、ｑ）を算出する。
【数６】
2013131070.tif 000008
そして、ジッタ値算出部１６は、周期Ｔｋの最大値ｍａｘＴｋと最小値ｍｉｎＴｋの差で表されるジッタ値Ｊを式（１２）に基づいて算出する。
Ｊ＝ｍａｘＴｋ−ｍｉｎＴｋ  ・・・（１２）
【００４４】
判定部１７は、駆動能力が高い配置情報の順に、ジッタ値Ｊが許容ジッタ値を超えているか否かを判定する。判定部１７は、配置情報と配線情報とで規定される対象パス２３のジッタ値Ｊが許容ジッタ値を越えている場合、当該配置情報と当該配線情報よりも前に算出されている、配置情報と配線情報とを対象パス２３の要素として決定する。詳細には、判定部１７は、ジッタ値算出部１６のジッタ値Ｊと、条件設定部１１の許容ジッタ値とを取得する。判定部１７は、ジッタ値算出部１６から受け取る判定対象となるジッタ値Ｊが、許容ジッタ値を超えているか否かを判定する。判定部１７は、判定対象のジッタ値Ｊが許容ジッタ値以下である場合、セル設定部１４に各セル種ＣＥＬＬｉの論理段数ｎｉの組合せを変更する変更指示を出力する。一方、判定部１７は、判定対象のジッタ値Ｊが許容ジッタ値を越えている場合、前回の判定対象であったジッタ値Ｊを最適なジッタ値Ｊとして決定する。本発明では、ジッタ値算出部１６で算出されるジッタ値Ｊが徐々に大きくなるように、セル設定部１４は対象パス２３に含まれる各セル種ＣＥＬＬｉを駆動能力の高いものから低いものへと順番に変更している。その結果、判定部１７は判定対象のジッタ値Ｊが許容ジッタ値を超えていると判定したとき、前回の判定対象であったジッタ値Ｊを最適なジッタ値Ｊとして決定することができる。図１８は、判定部１７の判定回数と、判定対象のジッタ値Ｊとの関係を示した図である。判定対象のジッタ値Ｊは四角マークで示されている。図１８を参照すると、判定対象のジッタ値Ｊは判定回数が増える毎に増加することが示されている。図１８の例では、判定部１７は４回目の判定時に判定対象のジッタ値Ｊが許容ジッタ値以上であると判定し、３回目の判定対象であったジッタ値Ｊを最適値として決定する。
【００４５】
消費電力算出部１８は、判定部１７から最適なジッタ値を取得して、そのときの消費電力値Ｐを算出する。図１８では、消費電力値Ｐは三角マークで示されている。図１８を参照すると、本発明の回路設計支援装置１は、電源電圧が変動しても許容ジッタ値を満たし、且つ、出来るだけ消費電力の少ない回路を設計できることが示されている。
【００４６】
出力部１９は、判定部１７からジッタ値Ｊ（最適なジッタ値Ｊを含む算出した全てのジッタ値）と判定結果とを取得し、消費電力算出部１８から消費電力値Ｐを取得する。出力部１９は、ジッタ値Ｊ、判定結果、及び、消費電力値Ｐをユーザが認識できるように出力する。また、出力部１９は配線長算出部１５から配置情報と配線情報とを取得し、図３Ａの設計システムにフィードバックを行う。
【００４７】
本発明の実施の形態による回路設計支援装置１は、コンピュータを用いて実現可能である。図１９は、回路設計支援装置１の実施の形態における、ハードウエア構成例を示すブロック図である。図１９を参照すると、本発明の回路設計支援装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、記憶装置１０２と、入力装置１０３と、出力装置１０４と、各装置を接続するバス１０５とを備えるコンピュータシステムで構成される。
【００４８】
ＣＰＵ１０１は、記憶装置１０２に格納されている本発明の回路設計支援装置１に係る演算処理及び制御処理を行う。記憶装置１０２は、ハードディスクやメモリなど、情報の記録を行う装置である。記憶装置１０２は、ＣＤ−ＲＯＭやＤＶＤ等のコンピュータ読み取り可能な記憶媒体から読み取られたプログラム、ネットワーク（図示略）を介してダウンロードされたプログラム、入力装置１０３から入力された信号やプログラム、及びＣＰＵ１０１の処理結果を格納する。入力装置１０３は、マウス、キーボード、マイクロフォンなど、ユーザがコマンド及び信号を入力することが出来る装置である。出力装置１０４は、ディスプレイ、スピーカなど、ユーザに出力結果を認識させる装置である。尚、本発明はハードウエア構成例と示したものに限定されず、各部はハードウエアとソフトウエアとを単独又は組み合わせて実現することが出来る。
【００４９】
図２０は、本発明の回路設計支援装置１の第１の実施の形態による処理動作を示したフローチャートである。図２０を参照して、本発明の第１の実施の形態による処理動作を説明する。
【００５０】
ステップＳ０１：
ライブラリ部１０は、セル種と、当該セル種を駆動する電源電圧の範囲と、電源電圧の範囲に対応したステージ遅延の関数とを関連付けたライブラリを生成する。詳細には、ライブラリ部１０は、任意のセル種ＣＥＬＬｉが駆動する電源電圧を電圧ｖｈとしたときのステージ遅延を、配線長ｌｉ毎にＳＰＩＣＥで算出する。そして、ライブラリ部１０は配線長ｌｉ毎に算出されたステージ遅延を、配線長ｌｉを変数とする２次関数でフィッティングする。ライブラリ部１０は、セル種ＣＥＬＬｉを駆動する電源電圧が電圧ｖｈであるステージ遅延の関数を前述の式（３）のように算出する。ライブラリ部１０は、セル種ＣＥＬＬｉと、電源電圧Ｖの範囲（（ｖｈ−１＋ｖｈ）／２＜Ｖ≦（ｖｈ＋ｖｈ＋１）／２）と、ステージ遅延の関数である式（３）とを関連付けて格納する（図５参照）。ライブラリ部１０は、他のセル種に対しても同様に関連付けを行い、全てのセル種を含むライブラリを生成する。尚、ライブラリ部１０は、ライブラリを予め格納していてもよい。
【００５１】
ステップＳ０２：
条件設定部１１は、ユーザ入力に基づいて、クロック信号を伝搬させる設計対象である対象パス２３をパス情報として設定する。また、条件設定部１１は、対象パスの総配線長Ｌｔｏｔａｌを回路設計支援装置１のサブシステムから取得する。
【００５２】
ステップＳ０３：
条件設定部１１は、ユーザ入力に基づいて、対象パス２３のクロック信号の周波数と、クロック信号の周期と、クロック信号の許容ジッタ値とを取得し、パス情報として設定する。前述したように、ジッタ値は、Ｃｙｃｌｅ‐ｔｏ‐Ｃｙｃｌｅジッタ値の最大と、周期ジッタ値との何れでもよい。
【００５３】
ステップＳ０４：
電圧算出部１２は、電圧波形情報を回路設計支援装置１のサブシステムから取得する。また、電圧算出部１２は、ユーザ入力に基づいて、クロック信号の周期Ｔを取得する。電圧算出部１２は、電圧波形情報を参照して、対象パス２３に供給されるノイズを含む所定の期間の電源電圧Ｖを、クロック信号の周期Ｔ毎に平均化した平均電源電圧ＶＡｋ（ｋ＝１、２、・・・、ｑ）を算出する。また、電圧算出部１２は、所定の期間の平均電源電圧ＶＡｋのうちで、最大値ＶＡｍａｘと最小値ＶＡｍｉｎとを算出する。
【００５４】
ステップＳ０５：
セル条件設定部１３は、ユーザ入力に基づいて、対象パス２３の要素として配置される駆動能力の異なる複数のセル種ＣＥＬＬｉ（ｉ＝１〜ｍ）をリスト化したセルリスト（ＣＥＬＬ＿ＬＩＳＴ＝｛ＣＥＬＬ１、ＣＥＬＬ２、ＣＥＬＬ３、・・・、ＣＥＬＬｍ｝）を取得する。また、セル条件設定部１３は、ユーザ入力に基づいて、セルリストに含まれる各セル種ＣＥＬＬｉの後段に接続する配線長の最大値（最大配線長Ｌｉ）と、各セル種ＣＥＬＬｉの最大の論理段数（最大論理段数Ｎｉ）とを設定する。
【００５５】
ステップＳ０６：
セル設定部１４は、対象パス２３の要素として配置される駆動能力の異なる各セル種ＣＥＬＬｉの論理段数ｎｉの組合せである配置情報を設定する。詳細には、セル設定部１４は、セル条件設定部１３からセルリスト、各セル種ＣＥＬＬｉの最大配線長Ｌｉ、各セル種ＣＥＬＬｉの最大論理段数Ｎｉを取得する。セル設定部１４は、セルリスト及び各セル種ＣＥＬＬｉの最大論理段数Ｎｉに基づいて配置情報を設定する。例えば、各セル種ＣＥＬＬｉの駆動能力の大小関係を、ＣＥＬＬ１＞ＣＥＬＬ２＞ＣＥＬＬ３＞・・・＞ＣＥＬＬｍとし、ＣＥＬＬ１〜ＣＥＬＬｍのそれぞれの最大論理段数Ｎ１〜Ｎｍが５段であるとした場合、セル設定部１４は各セル種ＣＥＬＬｉの論理段数ｎｉを、ｎ１＝５、ｎ２＝０、ｎ３＝０、・・・、ｎｍ＝０とした配置情報を設定する。初期の設定では、セル設定部１４は駆動能力が最も高くなる各セル種ＣＥＬＬｉの論理段数ｎｉに設定する。
【００５６】
ステップＳ０７：
配線長算出部１５は、対象パス２３に含まれる各セル種ＣＥＬＬｉに供給される電源電圧Ｖが変動しても、パス遅延の変動が小さい各セル種ＣＥＬＬｉの後段の最適配線長ｌｉを算出する。まず、配線長算出部１５は、配置情報で規定される対象パス２３に対して、各セル種ＣＥＬＬｉの後段の配線長ｌｉとして取り得る全ての組み合わせを算出する。詳細には、配線長算出部１５は、条件設定部１１から総配線長Ｌｔｏｔａｌを取得する。更に、配線長算出部１５は、セル設定部１４から配置情報と、各セル種ＣＥＬＬｉの最大配線長Ｌｉとを取得する。配線長算出部１５は、前述の式（６）と式（７）とで表される条件式に基づいて、各セル種ＣＥＬＬｉの後段の配線長ｌｉとして取り得る全ての組み合わせを線形計画法に基づいて算出する。
【００５７】
次に、配線長算出部１５は、電圧算出部１２から平均電源電圧ＶＡｋの最大値ＶＡｍａｘと、最小値ＶＡｍｉｎとを取得する。配線長算出部１５は、ライブラリ部１０を参照して、各セル種ＣＥＬＬｉと、最大値ＶＡｍａｘ又は最小値ＶＡｍｉｎに基づいて、該当する複数のステージ遅延の関数を取得する。配線長算出部１５は、複数のステージ遅延の関数と、各セル種ＣＥＬＬｉの後段の配線長ｌｉとして取り得る組み合わせと、各セル種ＣＥＬＬｉの論理段数ｎｉとに基づいて、パス遅延を算出する。このときのパス遅延は前述の式（８）で表される。そして、配線長算出部１５は、算出された各セル種ＣＥＬＬｉの後段の配線長ｌｉの全ての組合せのうちで、最大値ＶＡｍａｘのときのパス遅延と、最小値ＶＡｍｉｎのときのパス遅延との差が最小となるような、各セル種の後段の最適配線長ｌｉの組合せを算出する。各セル種ＣＥＬＬｉの後段の最適配線長ｌｉは、式（９）のｆｓｅｎｓｅの絶対値が最小となるときの配線長ｌｉである。
【００５８】
ステップＳ０８
ジッタ値算出部１６は、配置情報と配線情報とで規定される対象パス２３に対して、平均電源電圧ＶＡｋ（ｋ＝１、２、・・・、ｑ−１）に基づいてジッタ値Ｊを算出する。言い換えると、ジッタ値算出部１６は、各セル種ＣＥＬＬｉと、各セル種ＣＥＬＬｉの論理段数ｎｉと、各セル種ＣＥＬＬｉの後段の最適配線長ｌｉと、平均電源電圧ＶＡｋとに基づいて、対象パス２３のジッタ値Ｊを算出し、判定部１７に提供する。算出するジッタ値Ｊは、ステップＳ０３の条件設定部１１で設定された許容ジッタ値と同じであり、Ｃｙｃｌｅ‐ｔｏ−Ｃｙｃｌｅジッタ値の最大と周期ジッタ値との何れでもよい。
【００５９】
ステップＳ０９：
判定部１７は、ジッタ値算出部１６のジッタ値Ｊと、条件設定部１１の許容ジッタ値とを取得する。判定部１７は、ジッタ値算出部１６から受け取る判定対象となるジッタ値が、許容ジッタ値を超えているか否かを判定する。判定部１７は、判定対象のジッタ値が許容ジッタ値以下である場合、セル設定部１４に各セル種ＣＥＬＬｉの論理段数ｎｉの組合せを変更する変更指示を出力する（ステップＳ０６へ進む）。セル設定部１４は、判定部１７から各セル種の論理段数ｎｉを変更する変更指示を受け取ると、駆動能力が前回の設定よりも低くなるように、各セル種の論理段数ｎｉを変更する。例えば、前述の続きでは、セル設定部１４は各セル種ＣＥＬＬｉの論理段数ｎｉを、ｎ１＝４、ｎ２＝１、ｎ３＝０、・・・、ｎｍ＝０と設定する。
【００６０】
一方、判定部１７は、判定対象のジッタ値Ｊが許容ジッタ値を越えている場合、前回の判定対象であったジッタ値Ｊを最適なジッタ値Ｊとして決定する（ステップＳ１０へ進む）。本発明では、ジッタ値算出部１６で算出されるジッタ値Ｊが徐々に大きくなるように、セル設定部１４は対象パス２３に含まれる各セル種を駆動能力の高いものから低いものへと順番に変更している。その結果、判定部１７は判定対象のジッタ値Ｊが許容ジッタ値を超えていると判定したとき、前回の判定対象であったジッタ値Ｊを最適なジッタ値として決定することができる。そして、判定部１７は、最適なジッタ値のときの配置情報と配線情報とを対象パス２３の要素として決定する。
【００６１】
ステップＳ１０：
消費電力算出部１８は、判定部１７からジッタ値の最適値を取得して、そのときの消費電力値Ｐを算出する。出力部１９は、判定部１７からジッタ値と判定結果とを取得し、消費電力算出部１８から消費電力値Ｐを取得する。出力部１９は、ジッタ値、判定結果、及び、消費電力値Ｐをユーザが認識できるように出力する。また、出力部１９は配線長算出部１５から配置情報と配線情報とを取得し、図３Ａの設計システムにフィードバックを行う。
【００６２】
以上のように、本発明の第１の実施の形態による回路設計支援装置１は、電源電圧が変動しても許容ジッタ値を満たし、且つ、消費電力の少ない回路を設計できる効果を奏している。特に、本発明は、ジッタ値に対してオーバースペックの対象パスを設計するのではなく、許容ジッタ値を満たすなかで出来るだけ消費電力の少ない回路を短時間で設計できる効果を奏している。
【００６３】
尚、セル設定部１４は、対象パス２３の要素として配置される駆動能力の異なる各セル種ＣＥＬＬｉの論理段数ｎｉの組合せである配置情報を、対象パス２３の駆動能力が減少していくように順番に設定しているが、駆動能力が増加していくように順番に設定してもよい。その場合、配線長算出部１５、ジッタ値算出部１６、及び判定部１７は、駆動能力が低い配置情報から高い配置情報の順に一連の処理を行なう。特に、判定部１７は、配置情報と配線情報とで規定される対象パス２３のジッタ値Ｊが許容ジッタ値以下の場合に、当該配置情報と当該配線情報とを対象パス２３の要素として決定することができる。
【００６４】
（第２の実施の形態）
本発明の第２の実施の形態を説明する。図２１は、本発明の第２の実施の形態による回路設計支援装置１ａの構成例を示したブロック図である。図２１を参照すると、回路設計支援装置１ａは、ライブラリ部１０と、条件設定部１１ａと、電圧算出部１２と、セル条件設定部１３と、セル設定部１４と、配線長算出部１５ａと、ジッタ値算出部１６と、判定部１７と、消費電力算出部１８と、出力部１９とを具備する。第２の実施の形態は、条件設定部１１ａと、配線長算出部１５ａとの構成が第１の実施の形態と異なる。その他の構成は第１の実施の形態と同様であるため同じ符号を付して説明を省略する。
【００６５】
条件設定部１１ａは、第１の実施の形態の条件設定部１１と同様に、ユーザ入力に基づいて、クロック信号を伝搬させる設計対象である対象パス２３と、クロック信号の周波数と、クロック信号の周期と、クロック信号の許容ジッタ値とを取得し、パス情報として設定する。更に、条件設定部１１ａは、ユーザ入力に基づいて、クロックソース２０から回路２１にクロック信号を伝搬させる対象パス２３のクロックレイテンシ許容値（Ｄｐａｔｈ＿ＬＩＭＩＴ）を取得し、パス情報として設定する。
【００６６】
配線長算出部１５ａは、対象パス２３に含まれる各セル種ＣＥＬＬｉに供給される電源電圧Ｖが変動しても、パス遅延の変動が小さい各セル種ＣＥＬＬｉの後段の最適配線長ｌｉを算出する。配線長算出部１５ａは、特にクロックレイテンシ許容値を含めて、最適配線長ｌｉを算出する。まず、配線長算出部１５ａは、配置情報で規定される対象パス２３に対して、クロックレイテンシ許容値を条件として含めた、各セル種ＣＥＬＬｉの後段の配線長ｌｉとして取り得る全ての組み合わせを算出する。詳細には、配線長算出部１５ａは、条件設定部１１ａから総配線長Ｌｔｏｔａｌとクロックレイテンシ許容値とを取得する。更に、配線長算出部１５ａは、セル設定部１４から配置情報と、各セル種ＣＥＬＬｉの最大配線長Ｌｉとを取得する。配線長算出部１５ａは、式（１３）と、式（１４）と、式（１５）とで表される条件式に基づいて、各セル種ＣＥＬＬｉの後段の配線長ｌｉとして取り得る全ての組み合わせを２次制約計画問題（Ｑｕａｄｒａｔｉｃ  Ｃｏｎｓｔｒａｉｎｔ  Ｐｒｏｇｒａｍｍｉｎｇ）に基づいて算出する。すなわちここでは、配線長の二次関数のＤｐａｔｈが制約条件に追加されたため、線形計画ではなく二次制約計画問題となる。
【数７】
2013131070.tif 000009
ｌｉ≦Ｌｉ  （ｉ＝１、２、・・・、ｍ）  ・・・（１４）
Ｄｐａｔｈ（ＶＡｍｉｎ，ｎ１，ｎ２，・・・，ｎｍ，ｌ１，ｌ２，・・・，ｌｍ）≦Ｄｐａｔｈ＿ＬＩＭＩＴ  ・・・（１５）
式（１３）は、第１の実施の形態と式（６）と同様であり、式（１４）は式（７）と同様である。式（１５）は、パス遅延が、クロックレイテンシ許容値以下であることを表している。電源電圧Ｖが小さいときにパス遅延が大きくなるため、最小値ＶＡｍｉｎを用いてクロックレイテンシ許容値を設定している。
【００６７】
具体例として、配線長算出部１５ａが、セル設定部１４からセルの種類としてＣＥＬＬ１、ＣＥＬＬ２と、ＣＥＬＬ１の論理段数ｎ１と、ＣＥＬＬ２の論理段数ｎ２と、ＣＥＬＬ１の最大配線長Ｌ１と、ＣＥＬＬ２の最大配線長Ｌ２とを取得する場合を説明する。配線長算出部１５ａは、ライブラリ部１０を参照して、ＣＥＬＬ１又はＣＥＬＬ２と、最小値ＶＡｍｉｎとに基づいて、２つのステージ遅延の関数を取得する。図２２Ａ〜図２２Ｃは、二次制約計画問題によって算出されたＣＥＬＬ１が取り得る配線長ｌ１と、ＣＥＬＬ２とが取り得る配線長ｌ２との全ての組み合わせを実行可能領域として示す図である。図２２Ａは、クロックレイテンシ許容値を含む全ての条件を満たす実行可能領域がないことを示している。この場合、配線長算出部１５ａは、各セル種ＣＥＬＬｉの後段の配線長ｌｉとして取り得る組み合わせがないとする。図２２Ｂは、実行可能領域がある場合、即ち、ＣＥＬＬ１が取り得る１つの配線長ｌ１と、ＣＥＬＬ２とが取り得る１つの配線長ｌ２とがある場合を示している。図２２Ｃも実行可能領域がある場合を示しており、配線長算出部１５ａは、実行可能領域に含まれるＣＥＬＬ１の配線長ｌ１及びＣＥＬＬ２の配線長ｌ２の全ての組合せを算出する。
【００６８】
次に、配線長算出部１５ａは、算出された各セル種ＣＥＬＬｉの後段の配線長ｌｉの全ての組合せのうちで、駆動電圧として供給され得る最大電圧が供給されたときのパス遅延と、供給され得る最小電圧が供給されたときのパス遅延との差が最小となるような、各セル種ＣＥＬＬｉの後段の最適配線長ｌｉの組合せである配線情報を算出する。ここでの処理は、第１の実施の形態の配線長算出部１５と同様である。
【００６９】
図２３は、本発明の第２の実施の形態による回路設計支援装置１ａの処理動作を示したフローチャートである。ステップＳ１１〜ステップＳ１５は、第１の実施の形態のステップＳ０１〜ステップＳ０５と同様である。
【００７０】
ステップＳ１６：
条件設定部１１ａは、ユーザ入力に基づいて、クロックソース２０から回路２１にクロック信号を伝搬させる対象パス２３のクロックレイテンシ許容値（Ｄｐａｔｈ＿ＬＩＭＩＴ）を取得し、パス情報として設定する。
【００７１】
ステップＳ１７：
セル設定部１４は、対象パス２３の要素として配置される駆動能力の異なる各セル種ＣＥＬＬｉの論理段数ｎｉの組合せである配置情報を設定する。詳細には、セル設定部１４は、セル条件設定部１３からセルリスト、各セル種ＣＥＬＬｉの最大配線長Ｌｉ、各セル種ＣＥＬＬｉの最大論理段数Ｎｉを取得する。セル設定部１４は、セルリスト及び各セル種ＣＥＬＬｉの最大論理段数Ｎｉに基づいて配置情報を設定する。
【００７２】
ステップＳ１８：
配線長算出部１５ａは、対象パス２３に含まれる各セル種ＣＥＬＬｉに供給される電源電圧Ｖが変動しても、パス遅延の変動が小さい各セル種ＣＥＬＬｉの後段の最適配線長ｌｉを算出する。配線長算出部１５ａは、特にクロックレイテンシ許容値を含めて、最適配線長ｌｉを算出する。まず、配線長算出部１５ａは、配置情報で規定される対象パス２３に対して、クロックレイテンシ許容値を条件として含めた、各セル種ＣＥＬＬｉの後段の配線長ｌｉとして取り得る全ての組み合わせを算出する。詳細には、配線長算出部１５ａは、条件設定部１１ａから総配線長Ｌｔｏｔａｌとクロックレイテンシ許容値とを取得する。更に、配線長算出部１５ａは、セル設定部１４から配置情報と、各セル種ＣＥＬＬｉの最大配線長Ｌｉとを取得する。配線長算出部１５ａは、前述の式（１３）と式（１４）と式（１５）とで表される条件式に基づいて、各セル種ＣＥＬＬｉの後段の配線長ｌｉとして取り得る全ての組み合わせを二次制約計画問題に基づいて算出する。
【００７３】
次に、配線長算出部１５ａは、算出された各セル種ＣＥＬＬｉの後段の配線長ｌｉの全ての組合せのうちで、駆動電圧として供給され得る最大電圧が供給されたときのパス遅延と、供給され得る最小電圧が供給されたときのパス遅延との差が最小となるような、各セル種ＣＥＬＬｉの後段の最適配線長ｌｉの組合せである配線情報を算出する。ここでの処理は、第１の実施の形態の配線長算出部１５と同様である。
【００７４】
ステップＳ１９〜ステップ２１は、第１の実施の形態のステップＳ０８〜ステップＳ１０と同様である。
【００７５】
以上のように、本発明の第２の実施の形態による回路設計支援装置１ａは、第１の実施の形態と同様に、電源電圧が変動しても許容ジッタ値を満たし、且つ、消費電力の少ない回路を設計できる効果を奏している。特に、回路設計支援装置１ａは、パス遅延が最大となる最小値ＶＡｍｉｎのときのパス遅延を制約として追加しているため、クロックレイテンシ許容値を満たす回路を設計することができる効果を奏している。
【００７６】
本発明は、回路設計全般に適用が可能であるが、以上説明したように、特に半導体集積回路の設計に有用である。たとえば、本発明の回路設計支援装置は、アナログ回路に分配するクロック回路設計、高速Ｉ／Ｆ（ｉｎｔｅｒｆａｃｅ）回路（ＤＤＲ：Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）に分配するクロック回路設計、ＦＦ（ＦｌｉｐＦｌｏｐ）間などのデータラインに分配するクロック回路（クロックツリー）設計などに好適である。
また、このように本発明はクロック信号のみを対象としているものではなく、一般信号（すなわち一般回路）にあっても適用可能である。
【符号の説明】
【００７７】
１、１ａ  ：回路設計支援装置
１０      ：ライブラリ部
１１、１１ａ：条件設定部
１２      ：電圧算出部
１３      ：セル条件設定部
１４      ：セル設定部
１５、１５ａ：配線長算出部
１６      ：ジッタ値算出部
１７      ：判定部
１８      ：消費電力算出部
１９      ：出力部
２０      ：クロックソース
２１      ：回路
２３      ：対象パス
１０２    ：記憶装置
１０３    ：入力装置
１０４    ：出力装置
１０５    ：バス
ＣＥＬＬｉ：セル種
Ｊ        ：ジッタ値
Ｌｉ      ：最大配線長
Ｌｔｏｔａｌ：総配線長
Ｎｉ      ：最大論理段数
Ｔ        ：周期
【図１】
2013131070.tif 000010
【図２】
2013131070.tif 000011
【図３Ａ】
2013131070.tif 000012
【図３Ｂ】
2013131070.tif 000013
【図４】
2013131070.tif 000014
【図５】
2013131070.tif 000015
【図６】
2013131070.tif 000016
【図７】
2013131070.tif 000017
【図８】
2013131070.tif 000018
【図９】
2013131070.tif 000019
【図１０】
2013131070.tif 000020
【図１１】
2013131070.tif 000021
【図１２】
2013131070.tif 000022
【図１３】
2013131070.tif 000023
【図１４】
2013131070.tif 000024
【図１５】
2013131070.tif 000025
【図１６】
2013131070.tif 000026
【図１７】
2013131070.tif 000027
【図１８】
2013131070.tif 000028
【図１９】
2013131070.tif 000029
【図２０】
2013131070.tif 000030
【図２１】
2013131070.tif 000031
【図２２Ａ】
2013131070.tif 000032
【図２２Ｂ】
2013131070.tif 000033
【図２２Ｃ】
2013131070.tif 000034
【図２３】
2013131070.tif 000035