(57)【特許請求の範囲】
【請求項１】
半導体集積回路内のパスを、当該パスの動作時に発生する遅延の確率分布に基づいてソートするステップと、
前記ソート結果、前記遅延が最大となるパスをワーストパスとし、該ワーストパスの遅延分布に基づいて、半導体集積回路全体の動作タイミングに影響を与えることのないパスの動作遅延の上限値を上限パスディレイとして決定するステップと、
前記上限パスディレイに基づいて、セルの置き換えが前記半導体集積回路全体の動作タイミングに影響を与える可能性のあるパスをクリティカルパスとして決定するステップと、
セルの遅延の余裕値を表すスラック値を求め、前記スラック値を基に、前記クリティカルパス以外のパスである非クリティカルパスの中からセルを選択し、選択したセルを置き換えた場合のスラック値を再計算して、パスの遅延が前記上限パスディレイ以下であれば、選択したセルの置き換えを行う処理を、前記非クリティカルパスに含まれるセル全てに対して行うステップと
をコンピュータに実行させることを特徴とする回路設計支援方法。
【請求項２】
前記セルの置き換えは、前記クリティカルパス上に含まれるセルのセルサイズを小さくしないこと、および前記クリティカルパス上に含まれないセルのセルサイズを小さくする場合には当該セルを含むパスの遅延が前記上限パスディレイを超えないことを制約条件とすることを特徴とする請求項１に記載の回路設計支援方法。
【請求項３】
前記ソートステップは、前記遅延の確率分布の中央値、もしくは前記遅延の確率分布の平均値に当該分布の分散の３倍の値を加えて求めた遅延が大きい側の３σ値で前記パスをソートすることを特徴とする請求項１または２に記載の回路設計支援方法。
【請求項４】
前記上限パスディレイ決定ステップは、前記ワーストパスの遅延分布の平均値から当該分布の分散の３倍の値を減じて求めた遅延が小さい側の３σ値を上限パスディレイとすることを特徴とする請求項１〜３のいずれか一つに記載の回路設計支援方法。
【請求項５】
前記クリティカルパス決定ステップは、前記半導体集積回路内のパスのうち、遅延の確率分布において当該分布の平均値に当該分布の分散の３倍の値を加えて求めた遅延が大きい側の３σ値が前記ワーストパスの遅延の小さい側の３σ値に比して大きいパスを前記クリティカルパスとすることを特徴とする請求項１〜４のいずれか一つに記載の回路設計支援方法。
【請求項６】
半導体集積回路内のパスを、当該パスの動作時に発生する遅延の確率分布に基づいてソートし、前記ソートの結果、前記遅延が最大となるパスをワーストパスとし、該ワーストパスの遅延分布に基づいて、半導体集積回路全体の動作タイミングに影響を与えることのないパスの動作遅延の上限値を上限パスディレイとして決定する上限パスディレイ決定部と、
前記上限パスディレイに基づいて、セルの置き換えが前記半導体集積回路全体の動作タイミングに影響を与える可能性のあるパスをクリティカルパスとして求めるクリティカルパス決定部と、
前記クリティカルパス上に含まれるセルのセルサイズを小さくしないこと、および前記クリティカルパス上に含まれないセルのセルサイズを小さくする場合には当該セルを含むパスの遅延が前記上限パスディレイを超えないことを制約条件として出力する制約条件出力部と、
セルの遅延の余裕値を表すスラック値を求め、前記スラック値を基に、前記クリティカルパス以外のパスである非クリティカルパスの中からセルを選択し、選択したセルを置き換えた場合のスラック値を再計算して、パスの遅延が前記上限パスディレイ以下であれば、前記制約条件出力部が出力した制約条件にしたがい選択したセルの置き換えを行う処理を、前記非クリティカルパスに含まれるセル全てに対して行うセルサイズ最適化処理部と
を備えたことを特徴とする回路設計支援装置。
【請求項７】
前記セルサイズ最適化処理部を、前記クリティカルパスが目標の動作タイミング内で動作するように最適化する処理と共用することを特徴とする請求項６に記載の回路設計支援装置。
【請求項８】
半導体集積回路内のパスを当該パスの動作時に発生する遅延の確率分布に基づいてソートする手順と、
前記ソートの結果、前記遅延が最大となるパスをワーストパスとし、該ワーストパスの遅延分布に基づいて、半導体集積回路全体の動作タイミングに影響を与えることのないパスの動作遅延の上限値を上限パスディレイとして決定する手順と、
前記上限パスディレイに基づいて、セルの置き換えが前記半導体集積回路全体の動作タイミングに影響を与える可能性のあるパスをクリティカルパスとして決定する手順と、
セルの遅延の余裕値を表すスラック値を求め、前記スラック値を基に、前記クリティカルパス以外のパスである非クリティカルパスの中からセルを選択し、選択したセルを置き換えた場合のスラック値を再計算して、パスの遅延が前記上限パスディレイ以下であれば、選択したセルの置き換えを行う処理を、前記非クリティカルパスに含まれるセル全てに対して行う手順と
をコンピュータに実行させることを特徴とする回路設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路設計支援方法、回路設計支援装置および回路設計支援プログラムに関する。
【背景技術】
【０００２】
ＬＳＩ(Large Scale Integrated circuit)等の半導体集積回路の性能は、動作周波数（サイクルタイム）に基づく動作タイミングによるところが大きい。そこで集積回路を設計する場合、回路上の全てのパスについてディレイ値及びレーシング値等の動作タイミングが目標の値以内、言い換えれば動作周波数が目標の値以上となるように設計する。パスの動作周波数を上げる方法には、論理変更、配置改善、配線抵抗の抑制などに加え、セルの駆動能力増大がある。なお、ここでは「動作周波数」とは動作が可能なクロック周波数の上限値をいう。また、「サイクルタイム」とは、動作が可能な上限周波数におけるクロックの１周期の期間をいい、上限値動作周波数の逆数により求められる。さらに、「動作タイミング」とは、目標の動作周波数の達成の条件となる回路上のパスが満たす必要があるディレイ値及びレーシング値等の設計指標をいう。
【０００３】
設定したパスについてセルの駆動能力を最適化し、目標の動作周波数を達成する技術は従来から知られている。
【０００４】
また、パスが有する各セルで生じる遅延を確率分布として捉え、パスの動作周波数を統計的に解析する統計的タイミング解析（SSTA: Statistical Static Timing Analysis）も従来から知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１６７４８号公報
【特許文献２】特開２００４−２５２８３１号公報
【特許文献３】特開２００５−９２８８５号公報
【特許文献４】特開２００８−１１２４０６号公報
【特許文献５】特開２００９−２１３７８号公報
【特許文献６】特開２００９−２５９１４号公報
【特許文献７】国際公開第２００４／０４６９７５号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、セルサイズを増大して駆動能力が上がると、消費電力も増大する。言い換えれば、消費電力と動作周波数（サイクルタイム）とはトレードオフの関係にある。
【０００７】
また、各パスの動作周波数が目標を達成するように最適化すると、目標の動作周波数の近辺にパスが集中することとなる。これは、回路上のパスのうち、目標動作周波数の逆数である目標サイクルタイムを達成していないパスは目標サイクルタイムに達するまでセルの駆動能力を上げることになる。一方、目標サイクルタイムを満たすパスについては、さらにセルサイズを大きくして遅延量にマージンを取れる場合でも、消費電力及びチップサイズの観点から、セルの置き換えを行なわないためである。
【０００８】
複数のパスの経路に使用されることにより当該複数のパスに共用され、複数のセルの出力からの入力を受けるセルでは、そのセルの動作の際に発生する遅延量は入力の最大の遅延量よりも大きくなる場合がある。そのため、目標の動作速度の近辺のパス、すなわちマージンの小さいパスが多いと、共用されるセルの遅延によって現実に製造された半導体集積回路が目標動作周波数で動作しない可能性がある。
【０００９】
また、半導体集積回路はシリコンウェハ上に複数の回路を同時に形成する場合が多いが、シリコンウェハ上の位置によって製造精度にばらつきがある。そのため、同じ設計の半導体集積回路であってもシリコンウェハ上の位置によって目標の動作速度を達成できる回路と目標の動作速度を達成できない回路が発生しうる。動作速度のマージンが小さいパスほど製造ばらつきに弱くなるので、マージンの小さいパスが多いとタイミング歩留まり（周波数歩留まり）が低下することとなる。
【００１０】
このような消費電力や遅延量のマージンを指標としてセルの最適化を行なう場合、セルの置き換えによって動作周波数（サイクルタイム）が目標値を下回るパスが出ない範囲で最適化することが求められる。
【００１１】
そこで、回路全体の動作周波数（サイクルタイム）に影響を与えない範囲でのセル最適化を支援する技術の実現が重要な課題となっていた。
【００１２】
開示の技術は、上記に鑑みてなされたものであって、回路全体の動作周波数（サイクルタイム）に影響を与えない範囲でのセル最適化を支援する回路設計支援方法、回路設計支援装置および回路設計支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本願の開示する回路設計支援方法、回路設計支援装置および回路設計支援プログラムは、半導体集積回路内のパスのうち、半導体集積回路全体の動作タイミングに影響を与えることのないパスの動作遅延の上限値を上限パスディレイとする。開示の方法、装置、プログラムは、上限パスディレイに基づいて、セルの置き換えが前記半導体集積回路全体の動作タイミングに影響を与える可能性のあるパスをクリティカルパスとして決定する。開示の方法、装置、プログラムは、クリティカルパス上のセルのサイズを小さくしないこと、それ以外のセルは当該セルを含むパスの遅延が上限パスディレイを超えないことをセルサイズ最適化の制約条件とする。
【発明の効果】
【００１４】
本願の開示する回路設計支援方法、回路設計支援装置および回路設計支援プログラムによれば、回路全体の動作周波数に影響を与えない範囲でのセル最適化を支援する回路設計支援方法、回路設計支援装置および回路設計支援プログラムを得ることができるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施例１にかかる回路設計支援方法のフローチャートである。
【図２】図２は、４つの入力を受けて一つの出力を出すセルにおける遅延分布の説明図である。
【図３】図３は、実施例１にかかる回路設計支援装置の概要構成図である。
【図４】図４は、セルに対する最適化の制約についての説明図である。
【図５】図５は、上限パスディレイとクリティカルパスの決定についての説明図である。
【図６】図６は、制約条件決定の変形例を説明するフローチャートである。
【図７】図７は、実施例２にかかる回路設計支援装置の概要構成図である。
【図８】図８は、実施例２に開示した回路設計支援装置の処理動作を説明する説明図である。
【図９】図９は、非クリティカルパスの最適化処理の詳細について説明するフローチャートである。
【図１０】図１０は、実施例３にかかる回路設計支援プログラムの説明図である。
【発明を実施するための形態】
【００１６】
以下に、本願の開示する回路設計支援方法、回路設計支援装置および回路設計支援プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例１】
【００１７】
図１は、実施例１にかかる回路設計支援方法のフローチャートである。実施例１にかかる回路設計支援方法は、ソートステップ（Ｓ１０１）、上限パスディレイ決定ステップ（Ｓ１０２）、クリティカルパス決定ステップ（Ｓ１０３）を有する。
【００１８】
ソートステップ(Ｓ１０１)は、半導体集積回路内のパスのリストをパスの動作時に発生する遅延の確率分布に基づいてソートするステップである。上限パスディレイ決定ステップ（Ｓ１０２）は、ソートの結果、遅延が最大となるワーストパスの遅延分布に基づいて、半導体集積回路全体の動作タイミングに影響を与えることのないパスの動作遅延の上限値を上限パスディレイとして決定するステップである。
【００１９】
クリティカルパス決定ステップ（Ｓ１０３）は、上限パスディレイに基づいて、セルの置き換えが半導体集積回路全体の動作タイミングに影響を与える可能性のあるパスをクリティカルパス(critical path)とするステップである。
【００２０】
この回路設計支援方法によって回路全体の動作タイミングに影響を与えない範囲でセルサイズを最適化することができる制約条件が得られる。具体的には、クリティカルパス上に含まれるセルのセルサイズを小さくしないこと、およびクリティカルパス上に含まれないセルのセルサイズを小さくする場合には当該セルを含むパスの遅延が上限パスディレイを超えないことが制約条件となる。
【００２１】
これにより、消費電力の低減や、目標の動作速度近辺に集中していたパスを分散することによるマージンの確保を実現することができる。
【００２２】
パスの動作速度の集中による問題の１つについて説明する。複数のパスの経路に使用されることにより当該複数のパスに共用され、複数の入力を受けるセルでは、その動作に発生する遅延量は入力の最大の遅延量よりも大きくなる場合がある。複数の入力を受けるセルの出力の遅延分布は、統計的演算、いわゆる統計的Ｍａｘによって求めることができる。統計的Ｍａｘ演算では、遅延の確率分布がＦ１（ｔ），Ｆ２（ｔ）である２つの入力を受けたセルの出力ｆ（ｔ）は、
ｆ（ｔ）＝ｄｔ（Ｆ１（ｔ），Ｆ２（ｔ））／ｄｔ
となり、Ｆｉはｆｉの累積確率関数となる。
【００２３】
図２は、４つの入力を受けて一つの出力を出すセルにおける遅延分布の説明図である。図２は、Ａ１〜Ａ４の４つの入力を受けたセルがＸを出力として出す設計において、遅延量はＡ１，Ａ２，Ａ３，Ａ４の順に大きい場合を例示している。
【００２４】
最も遅延の小さい入力Ａ４と、次に遅延の小さい入力Ａ３を受けた場合のセルの出力の遅延分布がＸ＿１である。その後、入力Ａ２を受けたセルの出力の遅延分布がＸ＿２であり、さらに入力Ａ１を受けたセルの出力の遅延分布がＸ＿３である。
【００２５】
このように、セルに対して複数の入力がある場合、出力の遅延分布は最も遅い入力の遅延分布に比してさらに遅い分布となる。そのため、目標のサイクルタイムの近辺のパス、すなわちマージンの小さいパスが多いと、マージンの小さいパスの経路に使用されることにより当該マージンの小さいパスにおいて共用されるセルの遅延によって、目標の動作周波数を達成することができなくなる可能性がある。
【００２６】
図３は、実施例１にかかる回路設計支援装置の概要構成図である。図３に示した回路設計支援装置は、制約情報抽出部１１およびセルサイズ最適化処理部１２を有する。制約情報抽出部１１は、その内部に上限パスディレイ決定部１１ａ、クリティカルパス決定部１１ｂおよび制約条件出力部１１ｃを有する。
【００２７】
上限パスディレイ決定部１１ａは、パスリスト２１に格納された半導体集積回路内のパスのリストをパスの動作時に発生する遅延の確率分布に基づいてソートし、ワーストパスの遅延分布に基づいて上限パスディレイを決定する。
【００２８】
クリティカルパス決定部１１ｂは、上限パスディレイに基づいて、パス全体の集合から、セルの置き換えが半導体集積回路全体の動作タイミングに影響を与える可能性のあるパスをクリティカルパスとして求める。
【００２９】
制約条件出力部１１ｃは、上限パスディレイ決定部１１ａが決定した上限パスディレイと、クリティカルパス決定部１１ｂが決定したクリティカルパスとを制約条件としてセルサイズ最適化処理部１２に出力する。
【００３０】
セルサイズ最適化処理部１２は、設計データ２２、セルパラメータライブラリ２３を参照してセルサイズの最適化を行なって設計データ２２を書き換える。具体的には、セルの駆動能力が小さいことにより波形が歪み、ディレイが大きくなっている場合にはセルサイズを大きくすることによりセルの駆動能力を上げる等、セルサイズの最適化を行う。このとき制約情報抽出部１１から受けた制約条件を使用することで、集積体路全体の動作タイミングに影響を与えない範囲でのセルサイズの最適化を行なうことができる。
【００３１】
図４は、セルに対する最適化の制約についての説明図である。図４に示した例では、ラッチＬ１〜Ｌ５の間を繋ぐパスを示している。また、パス上にはセルＣ１１〜Ｃ１３，Ｃ２１〜Ｃ２５，Ｃ３１〜Ｃ３４を配置している。
【００３２】
図４に示した例では、ラッチＬ２からラッチＬ４に至るパスがクリティカルパスである。クリティカルパス上のセルは、セルサイズを小さくすると半導体集積回路全体の動作タイミングを悪化させる可能性がある。具体的には、セルサイズを小さくした場合には、セルの駆動能力が小さくなり、出力波形が歪むことによりディレイが大きくなる。そのため、クリティカルパス上のセルは遅延が増加する変更、すなわちより小さいセルサイズへの変更が禁止される。
【００３３】
これ以外のパスは、半導体集積回路全体の動作タイミングに影響を与えることなくセルサイズの増減が可能なパス、つまり非クリティカルパスである。しかしながら、非クリティカルパス上のセルであってもクリティカルパスと共用されるセルについては遅延が増加する変更、すなわちより小さいセルサイズへの変更を禁止する。
【００３４】
たとえば、ラッチＬ１からセルＣ１１〜Ｃ１３，Ｃ２４〜Ｃ２５を経由してラッチＬ４に至るパスは非クリティカルパスである。このパス上のセルのうち、セルＣ１１〜Ｃ１３は最適化においてセルサイズの増加と減少のいずれも許容される。一方、セルＣ２４〜Ｃ２５は、クリティカルパスに使用されることにより、当該クリティカルパスと共用されるのでセルサイズを小さくすることはできない。
【００３５】
同様に、ラッチＬ２からセルＣ２１〜Ｃ２３，Ｃ３３〜Ｃ３４を経由してラッチＬ５に至るパスも非クリティカルパスである。このパス上のセルのうち、セルＣ２１〜Ｃ２３はセルサイズの減少を禁止し、セルＣ３３〜Ｃ３４はセルサイズの増減を許可する。
【００３６】
また、ラッチＬ３からセルＣ３１〜Ｃ３２，Ｃ２３〜Ｃ２５を経由してラッチＬ４に至るパスも非クリティカルパスである。このパス上のセルのうち、セルＣ２３〜Ｃ２５はセルサイズの減少を禁止し、セルＣ３１〜Ｃ３２はセルサイズの増減を許可する。
【００３７】
同様に、ラッチＬ３からセルＣ３１〜Ｃ３２，Ｃ２３，Ｃ３３〜Ｃ３４を経由してラッチＬ５に至るパスも非クリティカルパスである。このパス上のセルのうち、セルＣ２３はセルサイズの減少を禁止し、セルＣ３１〜Ｃ３２，Ｃ３３〜Ｃ３４はセルサイズの増減を許可する。
【００３８】
このように、クリティカルパス上のセルのセルサイズ減少を禁止すれば、回路全体の動作タイミングに影響を与えることなくセルサイズの最適化を行なうことができる。なお、非クリティカルパスであってもセルの置き換えによって動作速度が遅くなりすぎるとクリティカルパスになる可能性がある。そこで、非クリティカルパスに対するセル置き換えにおいては、パスの遅延量が上限パスディレイを超えないことを条件とする。
【００３９】
図５は、上限パスディレイとクリティカルパスの決定についての説明図である。図５に示した例は、パスの遅延分布の中央値でパスリストをソートした状態である。ソートの結果、最も遅延分布の中央値の大きいパスがワーストパスである。上限パスディレイ決定部１１ａは、ワーストパスの遅延分布のうち遅延が小さい側の３σ値、すなわち３σｆａｓｔ値を上限パスディレイＤｍａｘとする。３σ値は、パス遅延分布の平均値と分散値から求める。具体的には、パス遅延分布の平均値から分散の３倍を減じた値が３σｆａｓｔ値であり、パス遅延分布の平均値に分散の３倍を加えた値が３σｓｌｏｗ値である。確率分布が正規分布に従う場合、２つの３σ値の間に分布の９９．７パーセントが収まることが知られている。
【００４０】
半導体集積回路内のパスのうち、遅延の確率分布において遅延が大きい側の３σ値、すなわち３σｓｌｏｗ値がワーストパスの３σｆａｓｔ値に比して大きいパスは、ワーストパスの遅延分布に影響を与える可能性のあるクリティカルパスである。言い換えれば、３σｓｌｏｗ値がワーストパスの３σｆａｓｔ値に比して大きいパスは、全体の動作タイミングに影響を及ぼす可能性がある。３σｓｌｏｗ値がワーストパスの３σｆａｓｔ値に比して小さいパスは、ワーストパスの遅延分布に影響を与えることなくセルサイズを増減できる非クリティカルパスとなる。
【００４１】
図６は、制約条件決定の変形例を説明するフローチャートである。図６に示した回路設計支援方法では、制約情報抽出部１１は、まずパスリストを遅延分布の中央値でソートする（Ｓ２０１）。つぎに、制約情報抽出部１１は、中央値のソートで遅延が最大となるワーストパスの３σｆａｓｔ値を上限パスディレイ候補とする（Ｓ２０２）。
【００４２】
その後、制約情報抽出部１１は、ソースとしたパスのうち、３σｓｌｏｗ値がワーストパスの３σｆａｓｔ値よりも大きいパスをクリティカルパスとする（Ｓ２０３）。
【００４３】
つぎに、制約情報抽出部１１は、パスリストの遅延分布の３σｓｌｏｗでソートする（Ｓ２０４）。そして、制約情報抽出部１１は、３σｓｌｏｗ値のソートで遅延が最大となるワーストパスの３σｆａｓｔ値を上限パスディレイ候補とする（Ｓ２０５）。
【００４４】
その後、制約情報抽出部１１は、ソースとしたパスのうち、３σｓｌｏｗ値がワーストパスの３σｆａｓｔ値よりも大きいパスをクリティカルパスに追加する（Ｓ２０６）。
【００４５】
そして、制約情報抽出部１１は、上限パスディイ候補の最小値を上限パスディレイとする（Ｓ２０７）。
【００４６】
なお、半導体集積回路がプロセッサである場合、回路内のパスの段数が近く、パスの分布に偏りが少ないので、ステップＳ２０３〜Ｓ２０６を省略しても良い。
【００４７】
上述してきたように、本実施例１にかかる回路設計支援方法および回路設計支援装置は、半導体集積回路内のパスの遅延分布から上限パスディレイとクリティカルパスを求める。そして、上限パスディレイとクリティカルパスから半導体集積回路全体の動作タイミングに影響を与えることなくセルサイズの最適化に用いる制約条件を求める。そのため回路全体の動作速度に影響を与えない範囲でのセル最適化を支援することができる。
【００４８】
回路全体の動作速度に影響を与えない範囲でのセル最適化は、性能や消費電力、パスディレイのマージン確保といった複数の目標があり、目標を達成する設計改善には相反する内容が発生することがある場合の有効な支援となる。
【００４９】
パスディレイのマージンを確保することで、半導体集積回路製造時のタイミング歩留まりを向上し、製造コストを下げることができる。タイミング歩留まりの向上は設計コスト、すなわち設計収束までの期間の短縮にも有効である。
【実施例２】
【００５０】
図７は、実施例２にかかる回路設計支援装置の概要構成図である。図７に示した回路設計支援装置は、制約情報抽出部１１、セルサイズ最適化処理部１２、タイミング分析部１３、遅延計算部１４および設計部１５を有する。
【００５１】
設計部１５は、ユーザからの操作入力に基づいて半導体集積回路の設計データを作成し、設計データ２２に格納する。設計部１５による設計には、論理設計、セル配置、配線処理が含まれる。
【００５２】
遅延計算部１４は、設計データ２２とセルパラメータライブラリ２３とを用いて各セルの遅延分布を算出する。タイミング分析部１３は、遅延計算部１４の計算結果を用いて統計的タイミング解析を行ない、半導体集積回路全体の動作タイミングを分析する。また、タイミング分析部１３は、タイミング分析に使用した各パスの遅延分布をパスリスト２１に登録する。
【００５３】
実施例１で説明したように、制約情報抽出部１１はパスリスト２１から制約条件を求め、セルサイズ最適化処理部１２は制約条件に基づいてセルサイズを最適化することで半導体集積回路全体の動作タイミングに影響を与えない範囲でセルサイズの最適化を行なう。
【００５４】
このように実施例２に開示した回路設計支援装置は、半導体集積回路全体の動作タイミングを分析し、分析用に作成したパスの遅延分布を利用して半導体集積回路全体の動作タイミングに影響を与えない範囲でセルサイズの最適化を行なうことができる。
【００５５】
さらに、セルサイズ最適化処理部１２は、半導体集積回路全体の動作タイミングに影響を与えない範囲でセルサイズの最適化と、半導体集積回路全体の動作タイミングを最適化するセルサイズの最適化とで共用することができる。
【００５６】
図８は、実施例２に開示した回路設計支援装置の処理動作を説明する説明図である。図８に示したように、実施例２に開示した回路設計支援装置では、まず、設計部１５がユーザ操作に基づいて設計データ２２を作成する（Ｓ３０１）。つぎにセルサイズ最適化処理部１２が設計データ２２とセルパラメータライブラリ２３に基づいてクリティカルパスを最適化する（Ｓ３０２）。
【００５７】
このクリティカルパスの最適化は、半導体集積回路全体の動作タイミングが目標値を達成するようセルを置き換える処理である。具体的には、目標の動作タイミングを達成していないパスのセルサイズを大きくすることでサイクルタイムを向上こととなる。
【００５８】
セルサイズ最適化処理部１２は、半導体集積回路全体の動作タイミングが目標値を達成した場合にクリティカルパスの最適化を終了し、設計データ２２を上書きする。
【００５９】
その後、セルサイズ最適化処理部１２は、非クリティカルパスの最適化を行なう（Ｓ３０３）。非クリティカルパスの最適化は、既に述べたように、制約情報抽出部１１から得られた制約条件を適用してセルの置き換えを行なう処理である。
【００６０】
この非クリティカルパスの最適化は、既に述べたように半導体全体の動作タイミングを悪化させることなくセルサイズの最適化を行なうことができる。セルサイズ最適化処理部１２は、非クリティカルパスの最適化が終了した場合に、設計データ２２を上書きする。
【００６１】
図９は、非クリティカルパスの最適化処理の詳細について説明するフローチャートである。非クリティカルパスの最適化処理は、まず、各セルのスラック情報を計算する（Ｓ４０１）。スラック情報は、各セルでの遅延の余裕値を示すものである。スラック情報は、タイミング解析など他の処理で計算されていれば、その値を用いることができるのでスラック情報計算は省略することができる。
【００６２】
つぎにセルサイズ最適化処理部１２は、制約条件に基づき、非クリティカルパスから最適化の対象となるパスを選択する（Ｓ４０２）。セルサイズ最適化処理部１２は、選択したパス上のスラック値を取り出し（Ｓ４０３）、スラック値と制約条件から置き換え対象のセルを仮決定する（Ｓ４０４）。
【００６３】
そして、セルサイズ最適化処理部１２は、セルパラメータライブラリ２３を参照してセルを置き換えた場合のスラックを再計算する（Ｓ４０５）。セルサイズ最適化処理部１２は、再計算の結果、パスの遅延が上限パスディレイを超過するか否かを判定する（Ｓ４０６）。パスの遅延が上限パスディレイ以下であれば（Ｓ４０６，Ｎｏ）、セルサイズ最適化処理部１２は、仮決定していたセルの置き換えを行なう（Ｓ４０７）。パスの遅延が上限パスディレイを超過した場合（Ｓ４０６，Ｙｅｓ）には、セルサイズ最適化処理部１２は仮決定したセルの置き換えを行なわない。
【００６４】
その後、セルサイズ最適化処理部１２は、選択中のパス上に他に変更可能なセルが存在するか否かを判定する（Ｓ４０８）。選択中のパス上に他に変更可能なセルが存在する場合（Ｓ４０８，Ｙｅｓ）、セルサイズ最適化処理部１２はステップＳ４０４に戻る。
【００６５】
選択中のパス上に他に変更可能なセルが存在しない場合（Ｓ４０８，Ｎｏ）、セルサイズ最適化処理部１２は、非クリティカルパスのうち、未選択のパスが存在するか否かを判定する（Ｓ４０９）。未選択の非クリティカルパスが存在するならば（Ｓ４０９，Ｙｅｓ）、セルサイズ最適化処理部１２は、ステップＳ４０２に戻る。
【００６６】
そして、すべての非クリティカルパスについてセルサイズの最適化が終了した場合（Ｓ４０９，Ｎｏ）、セルサイズ最適化処理部１２は、非クリティカルパスの最適化処理を終了する。
【００６７】
上述してきたように、実施例２に開示した回路設計支援装置は、半導体集積回路全体の動作タイミングの分析用に作成したパスの遅延分布を有効に利用して半導体集積回路全体の動作タイミングに影響を与えない範囲でセルサイズの最適化を行なうことができる。
【００６８】
また、実施例２に開示した回路設計支援装置は、クリティカルセルの最適化と非クリティカルセルの最適化とでセルサイズ最適化処理部を共用することで、既存のクリティカルパスの最適化処理を利用して非クリティカルパスの最適化を行なうことができる。
【実施例３】
【００６９】
図１０は、実施例３にかかる回路設計支援プログラムの説明図である。図１０では、コンピュータシステムのハードディスク４１に回路設計支援プログラム５０を格納している。
【００７０】
コンピュータシステムは、ＣＰＵ（Central Processing Unit）３１、ＲＡＭ（Random Access Memory）、ハードディスクコントローラ３３、光学媒体ドライバ３４、通信ボード３５、キーボードコントローラ３６、ディスプレイコントローラ３７を有する。ＣＰＵ３１、ＲＡＭ、ハードディスクコントローラ３３、光学媒体ドライバ３４、通信ボード３５、キーボードコントローラ３６、ディスプレイコントローラ３７は、バス３０に接続される。
【００７１】
また、ハードディスクコントローラ３３は、ハードディスク４１と接続する。光学媒体ドライバ３４は、光学媒体４２、たとえばＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ＢＤ（Blu-ray Disk）などに対するアクセスを行なう装置である。
【００７２】
通信ボード３５は、任意の通信プロトコルで通信を行なう通信装置である。キーボードコントローラ３６は、キーボード４３と接続し、ユーザからの操作入力を受け付ける。また、ディスプレイコントローラ３７は、ディスプレイ４４に対する表示出力を制御する出力インタフェースである。
【００７３】
図１０に示した例では、ハードディスク４１が回路設計支援プログラム５０、設計データ２２、セルパラメータライブラリ２３およびパスリスト２１を保持している。
【００７４】
回路設計支援プログラム５０は、設計プログラム５１、遅延計算プログラム５２、タイミング分析プログラム５３、セルサイズ最適化処理プログラム５４および制約情報抽出プログラム５５を有する。
【００７５】
ＣＰＵ３１は、回路設計支援プログラム５０をＲＡＭ３２に展開して実行する。設計プログラム５１は、ＣＰＵ３１に実行されることで、実施例２に示した設計部として機能する。遅延計算プログラム５２は、ＣＰＵ３１に実行されることで、実施例２に示した遅延計算部として機能する。タイミング分析プログラム５３は、ＣＰＵ３１に実行されることで、実施例２に示したタイミング分析部として機能する。セルサイズ最適化処理プログラム５４は、ＣＰＵ３１に実行されることで、実施例２に示したセルサイズ最適化処理部として機能する。そして、制約情報抽出プログラム５５は、ＣＰＵ３１に実行されることで、実施例２に示した制約情報抽出部として機能する。
【００７６】
したがって、ＣＰＵ３１が回路設計支援プログラム５０を実行することで、コンピュータシステムは実施例に開示した回路設計支援装置として動作する。
【００７７】
上述してきたように、実施例３に開示した回路設計支援プログラムは、任意のコンピュータシステムを回路設計支援装置として動作させることができる。なお、本実施例３では、ハードディスク４１に回路設計支援プログラムを格納した場合を例示したが、回路設計支援プログラムは、コンピュータによって読み取ることのできる任意の記録媒体に格納することができる。記録媒体の一例として、ＣＤ、ＤＶＤやＢＤなどの光学媒体、ＭＯ(Magneto-Optical)ディスクなどの光磁気記録媒体、フロッピィディスクなどの磁気記録媒体、フラッシュメモリがある。
【符号の説明】
【００７８】
１１    制約情報抽出部
１１ａ  上限パスディレイ決定部
１１ｂ  クリティカルパス決定部
１１ｃ  制約条件出力部
１２    セルサイズ最適化処理部
１３    タイミング分析部
１４    遅延計算部
１５    設計部
２１    パスリスト
２２    設計データ
２３    セルパラメータライブラリ
３０    バス
３１    ＣＰＵ
３２    ＲＡＭ  
３３    ハードディスクコントローラ
３４    光学媒体ドライバ
３５    通信ボード
３６    キーボードコントローラ
３７    ディスプレイコントローラ
４１    ハードディスク
４２    光学媒体
４３    キーボード
４４    ディスプレイ
５０    回路設計支援プログラム
５１    設計プログラム
５２    遅延計算プログラム
５３    タイミング分析プログラム
５４    セルサイズ最適化処理プログラム
５５    制約情報抽出プログラム
【図１】
0005397083.tif 000002
【図２】
0005397083.tif 000003
【図３】
0005397083.tif 000004
【図４】
0005397083.tif 000005
【図５】
0005397083.tif 000006
【図６】
0005397083.tif 000007
【図７】
0005397083.tif 000008
【図８】
0005397083.tif 000009
【図９】
0005397083.tif 000010
【図１０】
0005397083.tif 000011