(57)【要約】【課題】半導体集積回路のレイアウト設計におけるタイミング収束性を向上させること。【解決手段】本発明にかかる半導体集積回路のレイアウト方法は、半導体集積回路に搭載され、同一のクロックルートからクロックが分配されるＮ個（Ｎは、３以上の整数）の順序回路のうち、Ｍ個（Ｍは、２以上かつＮ以下の整数）の順序回路を選択し、選択されたＭ個の順序回路を、Ｍ個の入力端子及び出力端子と、クロックルートから分配されるクロックを受け付ける１個のクロック端子とを有する１個の多データ入出力順序回路へ置換する。【選択図】図４
2011238163.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路に搭載され、同一のクロックルートからクロックが分配されるＮ個（Ｎは、３以上の整数）の順序回路のうち、Ｍ個（Ｍは、２以上かつＮ以下の整数）の順序回路を選択し、
前記選択されたＭ個の順序回路を、Ｍ個の入力端子及び出力端子と、前記クロックルートから分配されるクロックを受け付ける１個のクロック端子とを有する１個の多データ入出力順序回路へ置換する
半導体集積回路のレイアウト方法。
【請求項２】
前記選択されたＭ個の順序回路のそれぞれの前段パス及び後段パスについて、前記選択されたＭ個の順序回路の配置情報と、前記置換されたと仮定した場合の前記多データ入出力順序回路の配置情報とを用いて、前記多データ入出力順序回路に置換されたと仮定した場合のタイミング検証を実施し、
前記タイミング検証を実施した全ての前記前段パス及び前記後段パスについてタイミングエラーが発生しない場合に、前記多データ入出力順序回路へ置換する
ことを特徴とする請求項１に記載のレイアウト方法。
【請求項３】
前記選択されたＭ個の順序回路のそれぞれの前段パス及び後段パスについて、ＣＴＳ実施後のクロックスキュー値をさらに用いて、前記タイミング検証を実施することを特徴とする請求項２に記載のレイアウト方法。
【請求項４】
前記Ｎ個の順序回路についてタイミング解析を行い、
タイミングエラーが発生した順序回路の一部又は全部を前記Ｍ個の順序回路として選択し、
当該選択されたＭ個の順序回路を１個の前記多データ入出力順序回路へ置換することを特徴とする請求項１乃至３のいずれか１項に記載のレイアウト方法。
【請求項５】
ＣＴＳ実施後にクロックスキュー値を算出し、
前記クロックスキュー値が所定値を超えたパスに対応する順序回路の一部又は全部を前記Ｍ個の順序回路として選択し、
当該選択されたＭ個の順序回路を１個の前記多データ入出力順序回路へ置換することを特徴とする請求項３に記載のレイアウト方法。
【請求項６】
ＣＴＳ実施前の前記Ｎ個の順序回路の中から、前記Ｍ個の順序回路を選択し、
前記選択されたＭ個の順序回路を１個の前記多データ入出力順序回路へ置換し、
前記置換後の配置情報に基づきＣＴＳを実施し、
前記ＣＴＳ実施後に、前記Ｎ個の順序回路のうち前記置換されなかった順序回路と、前記置換された前記多データ入出力順序回路との中から複数の順序回路を選択し、
前記ＣＴＳ実施後のクロックスキュー値を考慮して、前記選択された複数の順序回路を１個の前記多データ入出力順序回路へ置換することを特徴とする請求項１乃至５のいずれか１項に記載のレイアウト方法。
【請求項７】
前記選択されたＭ個の順序回路のそれぞれの前段パス及び後段パスについて、クロックのＯＣＶ値をさらに用いて、前記タイミング検証を実施することを特徴とする請求項２又は３に記載のレイアウト方法。
【請求項８】
半導体集積回路に搭載され、同一のクロックルートからクロックが分配されるＮ個（Ｎは、３以上の整数）の順序回路の配置情報を記憶する記憶部と、
前記半導体集積回路における前記順序回路のレイアウトを行う制御部と、
を備えるコンピュータを用いた半導体集積回路のレイアウトシステムであって、
前記制御部は、
前記Ｎ個の順序回路のうち、Ｍ個（Ｍは、２以上かつＮ以下の整数）の順序回路を選択する選択手段と、
前記選択されたＭ個の順序回路を、Ｍ個の入力端子及び出力端子と、前記クロックルートから分配されるクロックを受け付ける１個のクロック端子とを有する１個の多データ入出力順序回路へ置換する置換手段と、を備える
半導体集積回路のレイアウトシステム。
【請求項９】
前記制御部は、
前記選択されたＭ個の順序回路のそれぞれの前段パス及び後段パスについて、前記選択されたＭ個の順序回路の配置情報と、前記置換されたと仮定した場合の前記多データ入出力順序回路の配置情報とを用いて、前記多データ入出力順序回路に置換されたと仮定した場合のタイミング検証を実施するタイミング検証手段をさらに備え、
前記置換手段は、前記タイミング検証を実施した全ての前記前段パス及び前記後段パスについてタイミングエラーが発生しない場合に、前記多データ入出力順序回路へ置換する
ことを特徴とする請求項８に記載のレイアウトシステム。
【請求項１０】
前記タイミング検証手段は、前記選択されたＭ個の順序回路のそれぞれの前段パス及び後段パスについて、ＣＴＳ実施後のクロックスキュー値をさらに用いて、前記タイミング検証を実施することを特徴とする請求項９に記載のレイアウトシステム。
【請求項１１】
前記制御部は、
前記Ｎ個の順序回路についてタイミング解析を行うタイミング解析手段をさらに備え、
前記選択手段は、タイミングエラーが発生した順序回路の一部又は全部を前記Ｍ個の順序回路として選択し、
前記置換手段は、当該選択されたＭ個の順序回路を１個の前記多データ入出力順序回路へ置換することを特徴とする請求項８乃至１０のいずれか１項に記載のレイアウトシステム。
【請求項１２】
前記制御部は、
ＣＴＳ実施後にクロックスキュー値を算出する算出手段をさらに備え、
前記選択手段は、前記クロックスキュー値が所定値を超えたパスに対応する順序回路の一部又は全部を前記Ｍ個の順序回路として選択し、
前記置換手段は、当該選択されたＭ個の順序回路を１個の前記多データ入出力順序回路へ置換することを特徴とする請求項１０に記載のレイアウトシステム。
【請求項１３】
半導体集積回路に搭載され、同一のクロックルートからクロックが分配されるＮ個（Ｎは、３以上の整数）の順序回路のうち、Ｍ個（Ｍは、２以上かつＮ以下の整数）の順序回路を選択する選択処理と、
前記選択されたＭ個の順序回路を、Ｍ個の入力端子及び出力端子と、前記クロックルートから分配されるクロックを受け付ける１個のクロック端子とを有する１個の多データ入出力順序回路へ置換する置換処理と、
を含む処理をコンピュータに実行させる半導体集積回路のレイアウトプログラム。
【請求項１４】
前記選択されたＭ個の順序回路のそれぞれの前段パス及び後段パスについて、前記選択されたＭ個の順序回路の配置情報と、前記置換されたと仮定した場合の前記多データ入出力順序回路の配置情報とを用いて、前記多データ入出力順序回路に置換されたと仮定した場合のタイミング検証を実施するタイミング検証処理をさらに含み、
前記置換処理は、前記タイミング検証を実施した全ての前記前段パス及び前記後段パスについてタイミングエラーが発生しない場合に、前記多データ入出力順序回路へ置換することを特徴とする請求項１３に記載のレイアウトプログラム。
【請求項１５】
前記タイミング検証処理は、前記選択されたＭ個の順序回路のそれぞれの前段パス及び後段パスについて、ＣＴＳ実施後のクロックスキュー値をさらに用いて、前記タイミング検証を実施することを特徴とする請求項１４に記載のレイアウトプログラム。
【請求項１６】
前記Ｎ個の順序回路についてタイミング解析を行うタイミング解析処理をさらに含み、
前記選択処理は、前記タイミング解析処理によりタイミングエラーが発生した順序回路の一部又は全部を前記Ｍ個の順序回路として選択し、
前記置換処理は、当該選択されたＭ個の順序回路を１個の前記多データ入出力順序回路へ置換することを特徴とする請求項１３乃至１５のいずれか１項に記載のレイアウトプログラム。
【請求項１７】
ＣＴＳ実施後にクロックスキュー値を算出する算出処理をさらに含み、
前記選択処理は、前記クロックスキュー値が所定値を超えたパスに対応する順序回路の一部又は全部を前記Ｍ個の順序回路として選択し、
前記置換処理は、当該選択されたＭ個の順序回路を１個の前記多データ入出力順序回路へ置換することを特徴とする請求項１５に記載のレイアウトプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のレイアウト方法、レイアウトシステム及びレイアウトプログラムに関し、特に、順序回路の配置配線情報に基づく、タイミング解析を行う半導体集積回路のレイアウト方法、レイアウトシステム及びレイアウトプログラムに関する。
【背景技術】
【０００２】
近年、ＡＳＩＣ（Application Specific Integrated Circuit）、マイコン、ＡＳＳＰ（Application Specific Standard Produce）に代表される半導体集積回路の大規模化により、レイアウト設計時の消費電力が増大する傾向がある。また、半導体集積回路のプロセス微細化に伴い、ＯＣＶ（On Chip Variation）影響が拡大している。さらに、半導体集積回路の大規模化により、ＣＴＳ（Clock Tree Synthesis）スキューの悪化によるタイミング収束が困難となり、設計ＴＡＴ（Turn Around Time）が大きくなっている。これらのことから、半導体集積回路のレイアウトの小面積化、低消費電力化並びにＯＣＶ値及びＣＴＳスキュー値の更なる低減の要求が高まってきた。
【０００３】
特許文献１には、ＣＴＳのスキューの低減を計ることにより、レイアウト面積や消費電力の増大を抑えることができる半導体集積回路のレイアウト方法及びレイアウト装置に関する技術が開示されている。特許文献１に開示されたレイアウト方法及びレイアウト装置では、ＣＴＳ最終段における各ＦＦの配線長が平均配線長距離になるように、ＦＦを再配置する。これにより、ＣＴＳスキューを合わせるためのＤｅｌａｙセルの挿入を抑制することができるため、半導体集積回路のレイアウトの小面積、低消費電力化及びＯＣＶ対象距離縮小を実現する。
【０００４】
図１０は、特許文献１にかかる半導体集積回路のレイアウト方法の処理の流れを示すフローチャート図である。まず、特許文献１にかかる半導体集積回路のレイアウト装置Ｘ（不図示）は、レイアウト対象のＦＦ等を配置する（Ｓ９１）。次に、レイアウト装置Ｘは、配置されたＦＦに対してＣＴＳにより配置及び配線を行う（Ｓ９２）。尚、ここまでは、通常のＣＴＳ工程である。
【０００５】
ここで、図１１は、特許文献１にかかる半導体集積回路のレイアウト方法におけるＣＴＳ工程後の回路図の例を示す図である。尚、以下の説明では、ＣＴＳ最終段バッファを含むＦＦ群をＣＴＳブロックと呼ぶ。図１１では、ＣＴＳブロック９１は、ＣＴＳ最終段バッファであるバッファ９１０と、バッファ９１０からクロック配線されたＦＦ９１１乃至９１３とを含む。ＣＴＳブロック９２は、ＣＴＳ最終段バッファであるバッファ９２０と、バッファ９２０からクロック配線されたＦＦ９２１乃至９２３とを含む。以下、同様に、ＣＴＳブロック９ｎ（ｎは、３以上の整数）まで存在するものとする。
【０００６】
このとき、レイアウト装置Ｘは、各ＣＴＳブロックについて、ＣＴＳ最終段バッファからＦＦまでの最長配線長を選出する（Ｓ９３）。例えば、レイアウト装置Ｘは、ＣＴＳブロック９１における最長配線長として、バッファ９１０からＦＦ９１２の間の配線長Ｌ１を選出する。また、レイアウト装置Ｘは、ＣＴＳブロック９２における最長配線長として、バッファ９２０からＦＦ９２１の間の配線長Ｌ２を選出する。以下、同様に、レイアウト装置Ｘは、ＣＴＳブロック９ｎにおける最長配線長として、バッファ９ｎ０からＦＦ９ｎ３の間の配線長Ｌｎを選出する。
【０００７】
そして、レイアウト装置Ｘは、各ＣＴＳブロックにおける選出された最長配線長を用いて平均値Ｌを算出する（Ｓ９４）。すなわち、レイアウト装置Ｘは、以下の式（１）により、最長配線長の平均値Ｌａｖｇを求める。
（  Ｌ１  ＋Ｌ２  ＋.........＋Ｌｎ  ）／ｎ＝Ｌａｖｇ      ・・・（１）
【０００８】
続いて、レイアウト装置Ｘは、以下の式（２）を満たす座標（ｘ、ｙ）にＦＦを再配置する（Ｓ９５）。すなわち、レイアウト装置Ｘは、各ＣＴＳブロックにおけるＣＴＳ最終段バッファを原点としたｘ軸及びｙ軸の二次元座標において、式（２）を満たす正方形の辺上に各ＦＦを配置し直す。
Ｌ＝｜ｘ｜＋｜ｙ｜      ・・・（２）
【０００９】
そして、レイアウト装置Ｘは、各ＣＴＳブロックについて、ＣＴＳ最終段バッファから再配置された各ＦＦまでを最短で配線する（Ｓ９６）。すなわち、レイアウト装置Ｘは、原点のＣＴＳ最終段バッファから各ＦＦまでをｘ軸又はｙ軸に平行な直線を組み合わせて配線を行う。これにより、特許文献１では、最終段バッファから各ＦＦまでの配線長を平均配線長距離に近づける。
【００１０】
図１２は、特許文献１にかかる半導体集積回路のレイアウト方法における配置の概念を説明する図である。ＣＴＳブロック９１では、バッファ９１０とＦＦ９１１、９１２及び９１３のそれぞれとの間の実線で示す配線長が等しいことを示す。同様に、ＣＴＳブロック９２では、バッファ９２０とＦＦ９２１、９２２及び９２３のそれぞれとの間の実線で示す配線長が等しいことを示す。
【００１１】
図１３は、特許文献１にかかる半導体集積回路のレイアウト方法における配置の概念を説明する図である。まず、原点には、あるＣＴＳブロックにおけるＣＴＳ最終段バッファが配置されているものとする。そして、ｘ軸及びｙ軸上の正と負の方向に、最長配線長の平均値Ｌａｖｇとなる点をａ、ｂ、ｃ及びｄとする。そして、点ａ、ｂ、ｃ及びｄを頂点として点線で結ぶことにより、正方形となる。当該正方形は、正方形の辺上の座標を（ｘ、ｙ）とした時、式（２）を用いて表すことができる。また、第１象限〜第４象限におけるＬは、以下の式（２１）〜（２４）で表すことができる。
（第１象限）Ｌ＝  ｘ  ＋  ｙ      ・・・（２１）
（第２象限）Ｌ＝−ｘ  ＋  ｙ      ・・・（２２）
（第３象限）Ｌ＝−ｘ  −  ｙ      ・・・（２３）
（第４象限）Ｌ＝  ｘ  −  ｙ      ・・・（２４）
【００１２】
例えば、図１３の点Ｂ（ｘ１、ｙ１）にＦＦが配置され、原点であるＣＴＳ最終段バッファから、Ｏ−Ａ−Ｂという経路で配線がされた場合、配線長は、以下の式（３）となる。
ＯＡ＋ＡＢ＝ｘ１＋ｙ１＝Ｌａｖｇ      ・・・（３）
【００１３】
また同様に、図１３の点Ｅ（ｘ２、ｙ２）にＦＦが配置され、原点であるＣＴＳ最終段バッファから、Ｏ−Ｃ−Ｄ−Ｅという経路で配線がされた場合、配線長は、以下の式（４）となる。
ＯＣ＋ＣＤ＋ＤＥ＝（ＯＣ＋ＤＥ）＋ＣＤ＝｜ｘ２｜＋｜ｙ２｜＝Ｌａｖｇ      ・・・（４）
【００１４】
その後、レイアウト装置Ｘは、概略配線（Ｓ９７）、詳細配線（Ｓ９８）、検証（Ｓ９９）を行う。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２０００−３４８０８３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、特許文献１にかかる手法では、タイミング収束が十分でないという問題点がある。その理由は、特許文献１では、各ＦＦの周辺の配置状況の制約からＣＴＳ最終段バッファからの配線長を完全に平均距離に一致させることが困難なためである。また、仮に、配線長を完全に平均距離に一致させたとしても、各ＦＦにとって最適なタイミングエラーとなるとは限らない。そのため、スキューが生じ得るため、十分にタイミング収束することができない場合がある。
【課題を解決するための手段】
【００１７】
本発明の第１の態様にかかる半導体集積回路のレイアウト方法は、半導体集積回路に搭載され、同一のクロックルートからクロックが分配されるＮ個（Ｎは、３以上の整数）の順序回路のうち、Ｍ個（Ｍは、２以上かつＮ以下の整数）の順序回路を選択し、前記選択されたＭ個の順序回路を、Ｍ個の入力端子及び出力端子と、前記クロックルートから分配されるクロックを受け付ける１個のクロック端子とを有する１個の多データ入出力順序回路へ置換する。
【００１８】
本発明の第２の態様にかかる半導体集積回路のレイアウトシステムは、半導体集積回路に搭載され、同一のクロックルートからクロックが分配されるＮ個（Ｎは、３以上の整数）の順序回路の配置情報を記憶する記憶部と、前記半導体集積回路における前記順序回路のレイアウトを行う制御部と、を備えるコンピュータを用いた半導体集積回路のレイアウトシステムであって、前記制御部は、前記Ｎ個の順序回路のうち、Ｍ個（Ｍは、２以上かつＮ以下の整数）の順序回路を選択する選択手段と、前記選択されたＭ個の順序回路を、Ｍ個の入力端子及び出力端子と、前記クロックルートから分配されるクロックを受け付ける１個のクロック端子とを有する１個の多データ入出力順序回路へ置換する置換手段と、を備える。
【００１９】
本発明の第３の態様にかかる半導体集積回路のレイアウトプログラムは、半導体集積回路に搭載され、同一のクロックルートからクロックが分配されるＮ個（Ｎは、３以上の整数）の順序回路のうち、Ｍ個（Ｍは、２以上かつＮ以下の整数）の順序回路を選択する選択処理と、前記選択されたＭ個の順序回路を、Ｍ個の入力端子及び出力端子と、前記クロックルートから分配されるクロックを受け付ける１個のクロック端子とを有する１個の多データ入出力順序回路へ置換する置換処理と、を含む処理をコンピュータに実行させる。
【００２０】
上述したように、本発明の第１乃至第３の態様により、Ｍ個の順序回路が１個の多ビットフリップフロップ等の多データ入出力順序回路に置き換わる。置換前には、異なる複数の順序回路のそれぞれに対して、同一のクロックルートからクロックを分配して入力されていたために、タイミングエラーが発生しやすい状態であった。それに比べて、本発明による置換後は、複数の順序回路と同等のデータ処理を実現しつつ、クロックの入力を一つにまとめることで、クロックの遅延を抑えることができる。これにより、スキューが生じにくくなり、タイミング収束を効率的に行うことができる。
【発明の効果】
【００２１】
本発明により、タイミング収束性を向上させる半導体集積回路のレイアウト方法、レイアウトシステム及びレイアウトプログラムを提供することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施の形態１にかかる半導体集積回路のレイアウト方法を実施する情報システムの構成を示すブロック図である。
【図２】本発明の実施の形態１にかかる半導体集積回路のレイアウト方法を実施するレイアウト装置のハードウェア構成を示すブロック図である。
【図３】本発明の実施の形態１にかかる半導体集積回路のレイアウト方法の適用対象とする回路図の例を示す図である。
【図４】本発明の実施の形態１にかかる半導体集積回路のレイアウト方法の適用後の回路図の例を示す図である。
【図５】本発明の実施の形態１にかかる半導体集積回路のレイアウト方法の処理の流れを示すフローチャート図である。
【図６】本発明の実施の形態１にかかるＣＴＳ前タイミング解析処理（前半）の流れを示すフローチャート図である。
【図７】本発明の実施の形態１にかかるＣＴＳ前タイミング解析処理（後半）の流れを示すフローチャート図である。
【図８】本発明の実施の形態１にかかるＣＴＳ後タイミング解析処理（前半）の流れを示すフローチャート図である。
【図９】本発明の実施の形態１にかかるＣＴＳ後タイミング解析処理（後半）の流れを示すフローチャート図である。
【図１０】関連技術にかかる半導体集積回路のレイアウト方法の処理の流れを示すフローチャート図である。
【図１１】関連技術にかかる半導体集積回路のレイアウト方法におけるＣＴＳ工程後の回路図の例を示す図である。
【図１２】関連技術にかかる半導体集積回路のレイアウト方法における配置の概念を説明する図である。
【図１３】関連技術にかかる半導体集積回路のレイアウト方法における配置の概念を説明する図である。
【発明を実施するための形態】
【００２３】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【００２４】
＜発明の実施の形態１＞
図１は、本発明の実施の形態１にかかる半導体集積回路のレイアウト方法を実施するレイアウトシステム１００の構成を示すブロック図である。レイアウトシステム１００は、ネットワーク１０３を介して接続されるサーバ装置１０１と、コンピュータ装置１０４ａ、１０４ｂ、・・・、１０４ｎとを備えるコンピュータシステムである。ネットワーク１０３は、インターネット、イントラネット、公衆網、専用線等の通信ネットワークである。
【００２５】
サーバ装置１０１は、記憶装置１０２を含むコンピュータ装置である。尚、サーバ装置１０１のその他の構成及び動作は、公知なものであるため、図示及び詳細な説明を省略する。記憶装置１０２には、少なくともレイアウトプログラム１０２１が格納されている。記憶装置１０２は、例えば、ハードディスクドライブ、フラッシュメモリ等の記憶媒体又は不揮発性の記憶装置でもよいし、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置であってもよい。サーバ装置１０１は、ネットワーク１０３を介してクライアント端末であるコンピュータ装置１０４ａ乃至１０４ｎと接続される。サーバ装置１０１は、コンピュータ装置１０４ａ乃至１０４ｎのいずれかからの要求に応じて、記憶装置１０２に格納されたレイアウトプログラム１０２１を、ネットワーク４２を介して要求元へ提供する。
【００２６】
コンピュータ装置１０４ａ乃至１０４ｎは、サーバ装置１０１からレイアウトプログラム１０２１を取得し、内蔵する記憶装置（不図示）に記憶して実行することにより、本発明の実施の形態１にかかる半導体集積回路のレイアウト処理を実現するコンピュータ装置である。コンピュータ装置１０４ａ乃至１０４ｎは、例えば、エンジニアリングワークステーション等である。
【００２７】
尚、本発明の実施の形態１は、図１に示したレイアウトシステム１００のようなコンピュータシステムに限定されない。例えば、本発明の実施の形態１にかかるレイアウトシステム１００は、単一のコンピュータ装置により実現しても構わない。その場合、例えば、コンピュータ装置１０４ａに予めレイアウトプログラム１５２を内蔵することで実現可能である。
【００２８】
図２は、本発明の実施の形態１にかかる半導体集積回路のレイアウト方法を一台のコンピュータ装置により実施するレイアウト装置１０のハードウェア構成を示すブロック図である。レイアウト装置１０は、ＣＰＵ（Central Processing Unit）１１０と、ＲＡＭ（Random Access Memory）１２０と、ＲＯＭ（Read Only Memory）１３０と、ＩＦ（InterFace）部１４０と、ハードディスク１５０とを備えるコンピュータ装置である。また、ハードディスク１５０は、不揮発性記憶装置であり、ＯＳ（Operating System）１５１及びレイアウトプログラム１５２を格納する。尚、ハードディスク１５０には、レイアウトに関する情報やＣＴＳやタイミング解析を行うためのコンピュータプログラムを格納しても構わない。レイアウトに関する情報とは、例えば、レイアウト対象の半導体集積回路に搭載されるフリップフロップ等の順序回路の配置情報及び配線情報等である。
【００２９】
ＣＰＵ１１０は、レイアウト装置１０における各種処理、ＲＡＭ１２０、ＲＯＭ１３０、ＩＦ部１４０及びハードディスク１５０へのアクセス等を制御する制御装置である。ＩＦ部１４０は、レイアウト装置１０の外部とのデータの入出力を行う。レイアウト装置１０は、ＣＰＵ１１０がハードディスク１５０に格納されたＯＳ１５１及びレイアウトプログラム１５２等を読み込み、実行する。これにより、レイアウト装置１０は、半導体集積回路のレイアウト処理として実現する。
【００３０】
図３は、本発明の実施の形態１にかかる半導体集積回路のレイアウト方法の適用対象とする半導体集積回路２００の回路図の例を示す図である。半導体集積回路２００は、入力端子Ｔ１に外部からのデータ信号Ｄ１が入力され、入力端子Ｔ２に外部からのデータ信号Ｄ２が入力され、クロック入力端子ＣＬＫ０にクロックルートからクロック信号ＣＬＫが入力される。また、半導体集積回路２００は、出力端子Ｔ３から外部へデータ信号Ｄ３を出力し、出力端子Ｔ４から外部へデータ信号Ｄ４を出力する。また、半導体集積回路２００に搭載されるＦＦ１〜ＦＦ８のそれぞれは、１ビットのデータの入力を受け付けるための入力端子ＤＡＴＡ１〜ＤＡＴＡ８と、１ビットのデータの出力を行うための出力端子ＯＵＴ１〜ＯＵＴ８と、同一のクロックルートからクロック信号ＣＬＫが分配されて入力されるクロック入力端子ＣＬＫ１〜ＣＬＫ８とを有する順序回路の一例であるフリップフロップ回路である。
【００３１】
ここで、図３に示す半導体集積回路２００の回路素子の接続関係を説明する。ＦＦ５は、入力端子ＤＡＴＡ５に入力端子Ｔ１を接続し、出力端子ＯＵＴ５に後段のセル１５の入力端子を接続する。また、ＦＦ５は、クロック入力端子ＣＬＫ５にクロック入力端子ＣＬＫ０を接続する。セル１５は、その出力端子に、組合せ回路を経由してＦＦ１の前段のセル１８の入力端子を接続する。セル１８は、その出力端子に、ＦＦ１の入力端子ＤＡＴＡ１を接続する。
【００３２】
ＦＦ１は、出力端子ＯＵＴ１に後段のセル１１の入力端子を接続する。また、ＦＦ１は、クロック入力端子ＣＬＫ１にクロック入力端子ＣＬＫ０を接続する。
【００３３】
ＦＦ６は、入力端子ＤＡＴＡ６に入力端子Ｔ２を接続し、出力端子ＯＵＴ６に後段のセル１６の入力端子を接続する。また、ＦＦ６は、クロック入力端子ＣＬＫ６にクロック入力端子ＣＬＫ０を接続する。セル１６は、その出力端子に、組合せ回路を経由してＦＦ２の前段のセル１７の入力端子を接続する。セル１７は、その出力端子に、ＦＦ２の入力端子ＤＡＴＡ２を接続する。
【００３４】
ＦＦ２は、出力端子ＯＵＴ２に後段のセル１２の入力端子の一つを接続する。また、ＦＦ２は、クロック入力端子ＣＬＫ２にクロック入力端子ＣＬＫ０を接続する。
【００３５】
セル１１は、その出力端子に、組合せ回路を経由してＦＦ４の前段のセル１４の入力端子と、セル１２の入力端子の一つとを接続する。セル１４は、その出力端子に、ＦＦ４の入力端子ＤＡＴＡ４を接続する。ＦＦ４は、出力端子ＯＵＴ４に、後段のセル１９の入力端子を接続する。また、ＦＦ４は、クロック入力端子ＣＬＫ４にクロック入力端子ＣＬＫ０を接続する。
【００３６】
セル１２は、その出力端子に、組合せ回路を経由してＦＦ３の前段のセル１３の入力端子を接続する。セル１３は、その出力端子に、ＦＦ３の入力端子ＤＡＴＡ３を接続する。ＦＦ３は、出力端子ＯＵＴ３に、後段のセル２０の入力端子を接続する。また、ＦＦ３は、クロック入力端子ＣＬＫ３にクロック入力端子ＣＬＫ０を接続する。
【００３７】
セル１９は、その出力端子に、組合せ回路を経由してＦＦ８の前段のセル２２の入力端子を接続する。セル２２は、その出力端子に、ＦＦ８の入力端子ＤＡＴＡ８を接続する。ＦＦ８は、出力端子ＯＵＴ８に出力端子Ｔ３を接続する。また、ＦＦ８は、クロック入力端子ＣＬＫ８にクロック入力端子ＣＬＫ０を接続する。
【００３８】
セル２０は、その出力端子に、組合せ回路を経由してＦＦ７の前段のセル２１の入力端子を接続する。セル２１は、その出力端子に、ＦＦ７の入力端子ＤＡＴＡ７を接続する。ＦＦ７は、出力端子ＯＵＴ７に出力端子Ｔ４を接続する。また、ＦＦ７は、クロック入力端子ＣＬＫ７にクロック入力端子ＣＬＫ０を接続する。
【００３９】
図４は、本発明の実施の形態１にかかる半導体集積回路のレイアウト方法の適用後の半導体集積回路２００の回路図の例を示す図である。具体的には、図４は、図３のＦＦ１、ＦＦ２、ＦＦ３及びＦＦ４の４セルがＦＦ１ｅに置換されたものである。ＦＦ１ｅは、１つのクロック信号の入力を受け付け、４ビットのデータの入力を受け付け、４ビットのデータを出力する順序回路の一例である多ビットフリップフロップ回路である。具体的には、ＦＦ１ｅは、１ビットのデータの入力を受け付けるための４個の入力端子ＤＡＴＡ１〜ＤＡＴＡ４と、１ビットのデータの出力を行うための４個の出力端子ＯＵＴ１〜ＯＵＴ４と、クロック信号ＣＬＫが分配されて入力される１個のクロック入力端子ＣＬＫ１ｅとを有する。言い換えると、ＦＦ１ｅは、置換対象のＦＦ１〜ＦＦ４と同数の入力端子及び出力端子と、クロックルートから分配されるクロックを受け付ける１個のクロック端子とを有する１個の多データ入出力順序回路といえる。尚、図４において、ＦＦ５、セル１５、ＦＦ６、セル１６、セル２２、ＦＦ８、セル２１、ＦＦ７の構成は、図３と同じであるため説明を省略する。
【００４０】
ここで、図４に示す半導体集積回路２００の回路素子の接続関係を説明する。ＦＦ１ｅは、入力端子ＤＡＴＡ１にセル１８の出力端子を接続し、入力端子ＤＡＴＡ２にセル１７の出力端子を接続し、入力端子ＤＡＴＡ３にセル１３の出力端子を接続し、入力端子ＤＡＴＡ４にセル１４の出力端子を接続する。また、ＦＦ１ｅは、出力端子ＯＵＴ１にセル１１の入力端子を接続し、出力端子ＯＵＴ２にセル１２の入力端子の一つを接続し、出力端子ＯＵＴ３にセル２０の入力端子を接続し、出力端子ＯＵＴ４にセル１９の入力端子を接続する。また、ＦＦ１ｅは、クロック入力端子ＣＬＫ１ｅにクロック入力端子ＣＬＫ０を接続する。
【００４１】
セル１１は、その出力端子に、組合せ回路を経由してセル１４の入力端子と、セル１２の入力端子の一つとを接続する。セル１４は、その出力端子に、ＦＦ１ｅの入力端子ＤＡＴＡ４を接続する。セル１２は、その出力端子に、組合せ回路を経由してセル１３の入力端子を接続する。セル１３は、その出力端子に、ＦＦ１ｅの入力端子ＤＡＴＡ３を接続する。また、図４のセル１１〜１４のそれぞれは、図３のセル１１〜１４と同一のセルタイプであり、同一の配置座標に配置されたものである。
【００４２】
ここで、図３及び図４を用いて、本発明の実施の形態１にかかる半導体集積回路のレイアウト方法における多ビットＦＦ回路への置換の例を説明する。まず、前提として図３における配置距離について説明する。距離ＬＡは、セル１８とＦＦ１との間の配置座標に基づく距離を示す。また、距離ＬＢは、ＦＦ１とセル１１との間の配置座標に基づく距離を示す。距離ＬＣは、セル１１とセル１４との間の配置座標に基づく距離を示す。距離ＬＤは、セル１４とＦＦ４との間の配置座標に基づく距離を示す。距離ＬＥは、ＦＦ４とセル１９との間の配置座標に基づく距離を示す。距離ＬＦは、ＦＦ５とＦＦ１との間の配置座標に基づく距離を示す。距離ＬＧは、ＦＦ４とＦＦ８との間の配置座標に基づく距離を示す。
【００４３】
そして、本発明の実施の形態１にかかる置換の例としては、図３のＦＦ１、ＦＦ２、ＦＦ３及びＦＦ４の４つのフリップフロップ回路が、図４のＦＦ１ｅで示す一つの多ビットＦＦ回路に置換されたことを挙げることができる。そして、当該置換処理においては、セル１１、セル１２、セル１３、セル１４、セル１７、セル１８、セル１９及びセル２０の配置位置は変更されない。
【００４４】
このとき、当該置換処理により図３から図４へ配置距離が変化する。例えば、セル１８から、ＦＦ１、セル１１、セル１４及びＦＦ４を経由して、セル１９までのセル又はＦＦ間の配置距離については、距離ＬＣを除いて次のように変化する。具体的には、図３では、セル１８からＦＦ１の入力端子ＤＡＴＡ１までの配置距離が距離ＬＡであったのに対し、図４では、セル１８からＦＦ１ｅの入力端子ＤＡＴＡ１までの配置距離が「距離ＬＡ＋距離ＬＡ１＋距離ＬＡ２」と変化する。また、図３では、ＦＦ１の出力端子ＯＵＴ１からセル１１までの配置距離が距離ＬＢであったのに対し、図４では、ＦＦ１ｅの出力端子ＯＵＴ１からセル１１までの配置距離が「距離ＬＢ１＋距離ＬＢ２」と変化する。また、図３では、セル１４からＦＦ４の入力端子ＤＡＴＡ４までの配置距離が距離ＬＤであったのに対し、図４では、セル１４からＦＦ１ｅの入力端子ＤＡＴＡ４までの配置距離が「距離ＬＤ１＋距離ＬＤ２」と変化する。また、図３では、ＦＦ４の出力端子ＯＵＴ４からセル１９までの配置距離が距離ＬＥであったのに対し、図４では、ＦＦ１ｅの出力端子ＯＵＴ４からセル１９までの配置距離が「距離ＬＥ１＋距離ＬＥ２＋距離ＬＥ」と変化する。
【００４５】
尚、セル１７から、ＦＦ２、セル１２、セル１３及びＦＦ３を経由して、セル２０までのセル又はＦＦ間の配置距離については、セル１２とセル１３間を除いて同様に変化する。
【００４６】
図５は、本発明の実施の形態１にかかる半導体集積回路のレイアウト方法の処理の流れを示すフローチャート図である。ここでは、予め半導体集積回路２００にＮ個（Ｎは、３以上の整数）のフリップフロップ回路が配置及び配線済みであるものとする。
【００４７】
まず、レイアウト装置１０は、ＣＴＳ前のタイミング解析処理を実行する（Ｓ１１）。すなわち、レイアウト装置１０は、ＣＴＳを実施する前に、レイアウト対象のＮ個のフリップフロップ回路のうち、Ｍ個（Ｍは、２以上かつＮ以下の整数）の順序回路を選択する。そして、レイアウト装置１０は、選択されたＭ個の順序回路を、Ｍ個の入力端子及び出力端子と、１個のクロック端子とを有する１個の多ビットＦＦ回路へ置換する。
【００４８】
より具体的には、レイアウト装置１０は、半導体集積回路２００に搭載される複数のフリップフロップ回路の配置情報に基づき、タイミング解析処理の対象となる２つのＦＦの組合せである対象ＦＦ組を選択する。そして、レイアウト装置１０は、選択した対象ＦＦ組が多ビットＦＦ回路に置換可能か否かを判定する。例えば、レイアウト装置１０は、選択した対象ＦＦ組を多ビットＦＦ回路に置換すると仮定する。そして、レイアウト装置１０は、当該仮定した場合の配置移動距離を考慮した場合に、タイミングエラーとなるか否かを判定する。そして、置換可能であると判定した場合、つまり、タイミングエラーとならない場合、レイアウト装置１０は、当該選択された対象ＦＦ組を１個の多ビットＦＦ回路へ置換する。
【００４９】
すなわち、ステップＳ１１において、レイアウト装置１０は、選択されたＭ個の順序回路のそれぞれの前段パス及び後段パスについて、選択されたＭ個の順序回路の配置情報と、置換されたと仮定した場合の多ビットＦＦ回路の配置情報とを用いて、多ビットＦＦ回路に置換されたと仮定した場合のタイミング検証を実施する。そして、レイアウト装置１０は、タイミング検証を実施した全ての前段パス及び後段パスについてタイミングエラーが発生しない場合に、多ビットＦＦ回路へ置換することが望ましい。これにより、多ビットＦＦ回路へ置換すべき対象ＦＦ組をより正確に特定することができ、置換により効果を高めることができる。
【００５０】
さらに、ステップＳ１１において、レイアウト装置１０は、Ｎ個の順序回路についてタイミング解析を行い、タイミングエラーが発生した順序回路の一部又は全部をＭ個の順序回路として選択し、当該選択されたＭ個の順序回路を１個の多ビットＦＦ回路へ置換するとよい。
【００５１】
次に、レイアウト装置１０は、ＣＴＳ前のタイミング解析処理済みの半導体集積回路２００の配置情報に基づき、ＣＴＳを実行する（Ｓ１２）。
【００５２】
そして、レイアウト装置１０は、ＣＴＳ後のタイミング解析処理を実行する（Ｓ１３）。すなわち、レイアウト装置１０は、ＣＴＳ実施後に、半導体集積回路２００に搭載されるＮ個の順序回路のうち、ステップＳ１１において置換されなかった順序回路と、ステップＳ１１において置換された多ビットＦＦ回路との中から複数の順序回路を選択する。そして、レイアウト装置１０は、ＣＴＳ実施後のクロックスキュー値を考慮して、当該選択された複数の順序回路を１個の多ビットＦＦ回路へ置換する。
【００５３】
つまり、ステップＳ１３において、レイアウト装置１０は、ステップＳ１１の処理に加えて、選択されたＭ個の順序回路のそれぞれの前段パス及び後段パスについて、ＣＴＳ実施後のクロックスキュー値をさらに用いて、タイミング検証を実施する。
【００５４】
さらに、ステップＳ１３において、レイアウト装置１０は、ＣＴＳ実施後にクロックスキュー値を算出し、クロックスキュー値が所定値を超えたパスに対応する順序回路の一部又は全部を前記Ｍ個の順序回路として選択し、当該選択されたＭ個の順序回路を１個の多ビットＦＦ回路へ置換するとよい。
【００５５】
また、ステップＳ１３において、レイアウト装置１０は、選択されたＭ個の順序回路のそれぞれの前段パス及び後段パスについて、クロックのＯＣＶ値をさらに用いて、タイミング検証を実施するとよい。
【００５６】
尚、ステップＳ１０１及びＳ１０３にて置換対象となるＦＦ組は、同一クロック、かつ、同期クロックのＦＦ組である。
【００５７】
続いて、図６及び図７を用いて、図５のステップＳ１１のＣＴＳ前タイミング解析処理の流れを説明する。図６は、本発明の実施の形態１にかかるＣＴＳ前タイミング解析処理（前半）の流れを示すフローチャート図である。図７は、本発明の実施の形態１にかかるＣＴＳ前タイミング解析処理（後半）の流れを示すフローチャート図である。
【００５８】
前提として、ＲＡＭ１２０には、予めタイミング解析対象となる半導体集積回路２００に搭載されるＮ個のＦＦを識別する情報と、各ＦＦの配置座標を含む配置情報とが記憶されているものとする。このとき、説明の便宜上、半導体集積回路２００が図３の状態であるものとする。また、ＲＡＭ１２０には、タイミング解析対象として選択され処理済みのＦＦの組合せを登録するための処理済みリストの領域が確保されているものとする。尚、ＣＴＳ前タイミング解析処理の開始時において、処理済みリストには、ＦＦの組合せが登録されていないものとする。または、処理済みリストには、当該タイミング解析対象の対象外とするＦＦについて予め登録しておいてもよい。
【００５９】
まず、レイアウト装置１０は、タイミング解析対象のＦＦ組（始点ＦＦと終点ＦＦ）を抽出する（Ｓ２０１）。例えば、図３において、レイアウト装置１０は、始点ＦＦをＦＦ１、終点ＦＦをＦＦ４とした組合せを対象ＦＦ組として選択する。併せて、レイアウト装置１０は、始点ＦＦをＦＦ１、終点ＦＦをＦＦ３とした組合せと、始点ＦＦをＦＦ２、終点ＦＦをＦＦ３とした組合せとを選択する。つまり、対象ＦＦ組として３つが選択されたものとする。
【００６０】
尚、対象ＦＦ組の選択の仕方は、任意に定めることができる。例えば、レイアウト装置１０は、外部から予めタイミング解析対象の矩形領域として図３のＦＦ１、ＦＦ２、ＦＦ３及びＦＦ４を囲む点線の領域の指定を受け付け、当該指定領域内の上述した３つの対象ＦＦ組を選択するようにしてもよい。または、レイアウト装置１０は、指定領域から上述した３つの対象ＦＦ組のうち、一つを選択し、以後、ステップＳ２０１が実行される度に、指定領域内の未選択の対象ＦＦ組を選択するようにしてもよい。または、レイアウト装置１０は、ステップＳ２０１が実行される度に、都度、指定領域を受け付けるようにしても構わない。
【００６１】
さらに、レイアウト装置１０は、指定領域の受け付けを必要とせず、セルや組合せ回路を経由して接続された２つのＦＦの組み合わせを対象ＦＦ組として選択してもよい。または、対象ＦＦ組は、２つずつである必要はない。例えば、始点ＦＦをＦＦ１として、ＦＦ１から接続されるＦＦ４及びＦＦ３を終点ＦＦとし、ＦＦ１、ＦＦ３及びＦＦ４を対象ＦＦ組としてもよい。さらには、ＦＦ１、ＦＦ２、ＦＦ３及びＦＦ４を対象ＦＦ組として選択してもよい。つまり、半導体集積回路２００に搭載される全てのＦＦのうち、少なくとも２以上のＦＦが選択されればよい。
【００６２】
次に、レイアウト装置１０は、対象ＦＦ組の各ＦＦが処理済みリストに未登録であるか否かを判定する（Ｓ２０２）。すなわち、レイアウト装置１０は、ＲＡＭ１２０に格納された処理済みリストを参照し、ステップＳ２０１により抽出した対象ＦＦ組の各ＦＦが登録されているか否かを判定する。
【００６３】
ステップＳ２０２において、処理済みリストに登録済みであると判定した場合、後述するステップＳ２１７へ進む。また、ステップＳ２０２において、処理済みリストに未登録であると判定した場合、レイアウト装置１０は、対象ＦＦ組においてタイミングエラーが発生しているか否かを判定する（Ｓ２０３）。すなわち、レイアウト装置１０は、当該タイミング解析処理の開始前の半導体集積回路２００におけるＦＦの配置位置において、対象ＦＦ組の始点ＦＦと終点ＦＦとの間でタイミングエラーが発生しているか否かを判定する。
【００６４】
ステップＳ２０３において、タイミングエラーが発生していると判定した場合、レイアウト装置１０は、以下の式（５１）に従い、ＲＡＭ１２０内に変数ａとして最悪タイミングエラー値を代入する（Ｓ２０４）。
ａ  ＝  最悪タイミングエラー値      ・・・（５１）
【００６５】
ステップＳ２０３において、タイミングエラーが発生していないと判定した場合、レイアウト装置１０は、以下の式（５２）に従い、ＲＡＭ１２０内に変数ａとして最悪タイミングマージン値、つまり、タイミング余裕値を代入する（Ｓ２０５）。
ａ  ＝  最悪タイミングマージン値      ・・・（５２）
【００６６】
その後、レイアウト装置１０は、対象ＦＦ組を多ビットＦＦ（置換ＦＦ）へ置換したと仮定した場合の配置位置を登録する（Ｓ２０６）。すなわち、レイアウト装置１０は、対象ＦＦ組の始点ＦＦと終点ＦＦの中間位置を置換後の配置位置として決定し、決定した配置位置をＲＡＭ１２０に登録する。例えば、図３のＦＦ１、ＦＦ２、ＦＦ３及びＦＦ４を置換ＦＦであるＦＦ１ｅに置換したと仮定した場合、ＦＦ１ｅの配置位置が登録される。尚、当該置換後の配置位置の決定方法は、任意であるが、具体例については、後述する。
【００６７】
続いて、レイアウト装置１０は、置換ＦＦの後段パスについての遅延値を算出する（Ｓ２０７）。すなわち、まず、レイアウト装置１０は、以下の式（６１）及び（６２）に従い、距離Ｌｂ１及びＬｂ２を算出する。そして、以下の式（６３）に従い、遅延値ｂを算出する。
Ｌｂ１  ＝  置換ＦＦから後段セルまでの距離      ・・・（６１）
Ｌｂ２  ＝  置換前の始点ＦＦから後段セルまでの距離      ・・・（６２）
ｂ  ＝  Ｌｂ１とＬｂ２との差分距離から換算した遅延値      ・・・（６３）
【００６８】
例えば、対象ＦＦ組がＦＦ１及びＦＦ４であり、ＦＦ１ｅに置換されたと仮定した場合、まず、レイアウト装置１０は、ＦＦ１ｅの出力端子ＯＵＴ１からセル１１までの距離である「距離ＬＢ１＋距離ＬＢ２」を距離Ｌｂ１として算出する。また、レイアウト装置１０は、ＦＦ１の出力端子ＯＵＴ１からセル１１までの距離である距離ＬＢを距離Ｌｂ２として算出する。そして、レイアウト装置１０は、距離Ｌｂ１と距離Ｌｂ２の差分距離を算出する。そして、レイアウト装置１０は、当該差分距離による影響を遅延時間に換算して遅延値ｂを算出し、遅延値ｂをＲＡＭ１２０に登録する。
【００６９】
次に、レイアウト装置１０は、前段パスについての遅延値を算出する（Ｓ２０８）。すなわち、まず、レイアウト装置１０は、以下の式（７１）及び（７２）に従い、距離Ｌｃ１及びＬｃ２を算出する。そして、以下の式（７３）に従い、遅延値ｃを算出する。
Ｌｃ１  ＝  前段セルから置換ＦＦまでの距離      ・・・（７１）
Ｌｃ２  ＝  前段セルから置換前の終点ＦＦまでの距離      ・・・（７２）
ｃ  ＝  Ｌｃ１とＬｃ２との差分距離から換算した遅延値      ・・・（７３）
【００７０】
例えば、対象ＦＦ組がＦＦ１及びＦＦ４であり、ＦＦ１ｅに置換されたと仮定した場合、まず、レイアウト装置１０は、セル１４からＦＦ１ｅの入力端子ＤＡＴＡ４までの距離である「距離ＬＤ１＋距離ＬＤ２」を距離Ｌｃ１として算出する。また、レイアウト装置１０は、セル１４からＦＦ４の入力端子ＤＡＴＡ４までの距離である距離ＬＤを距離Ｌｃ２として算出する。そして、レイアウト装置１０は、距離Ｌｃ１と距離Ｌｃ２の差分距離を算出する。そして、レイアウト装置１０は、当該差分距離による影響を遅延時間に換算して遅延値ｃを算出し、遅延値ｃをＲＡＭ１２０に登録する。
【００７１】
尚、対象ＦＦ組がＦＦ１及びＦＦ３並びにＦＦ２及びＦＦ３である場合についても同様に遅延値ｂ及び遅延値ｃを算出し、登録する。
【００７２】
ここで、レイアウト装置１０は、多ビットＦＦ回路への置換に伴う配置位置の移動距離で生じた遅延変化分を含めて、タイミングエラーとならないか否かを判定する（Ｓ２０９）。具体的には、レイアウト装置１０は、変数ａが「遅延値ｂ＋遅延値ｃ」に比べて大きいか否かを判定する。ステップＳ２０９において、タイミングエラーとなると判定した場合、ステップＳ２１６へ進む。
【００７３】
ステップＳ２０９において、タイミングエラーとならないと判定した場合、レイアウト装置１０は、対象ＦＦ組の始点ＦＦを終点ＦＦとするＦＦ組である前パスＦＦ組の最悪タイミングマージン値を、以下の式（８１）に従い、ＲＡＭ１２０内に変数ｄとして代入する（Ｓ２１０）。
ｄ  ＝  最悪タイミングマージン値      ・・・（８１）
【００７４】
例えば、対象ＦＦ組がＦＦ１及びＦＦ４である場合、始点ＦＦであるＦＦ１を終点ＦＦとするため、前パスＦＦ組は、ＦＦ５及びＦＦ１となる。そのため、変数ｄには、ＦＦ５及びＦＦ１における最悪タイミングマージン値が登録される。
【００７５】
そして、レイアウト装置１０は、対象ＦＦ組の終点ＦＦを始点ＦＦとするＦＦ組である後パスＦＦ組の最悪タイミングマージン値を、以下の式（８２）に従い、ＲＡＭ１２０内に変数ｅとして代入する（Ｓ２１１）。
ｅ  ＝  最悪タイミングマージン値      ・・・（８２）
【００７６】
例えば、対象ＦＦ組がＦＦ１及びＦＦ４である場合、終点ＦＦであるＦＦ４を始点ＦＦとするため、後パスＦＦ組は、ＦＦ４及びＦＦ８となる。そのため、変数ｅには、ＦＦ４及びＦＦ８における最悪タイミングマージン値が登録される。
【００７７】
尚、対象ＦＦ組がＦＦ１及びＦＦ３である場合、前パスＦＦ組はＦＦ５及びＦＦ１となり、後パスＦＦ組はＦＦ３及びＦＦ７となる。また、対象ＦＦ組がＦＦ２及びＦＦ３である場合、前パスＦＦ組はＦＦ６及びＦＦ２となり、後パスＦＦ組はＦＦ３及びＦＦ７となる。これらの場合も同様に、変数ｄ及び変数ｅを算出し、登録する。
【００７８】
続いて、レイアウト装置１０は、ステップＳ２１０により登録された対象ＦＦ組の前パスＦＦ組の最悪タイミングマージン値に基づいて、遅延値を算出する（Ｓ２１２）。すなわち、まず、レイアウト装置１０は、以下の式（９１）及び（９２）に従い、距離Ｌｆ１及びＬｆ２を算出する。そして、以下の式（９３）に従い、遅延値ｆを算出する。
Ｌｆ１  ＝  前パス最終段セルから置換ＦＦまでの距離      ・・・（９１）
Ｌｆ２  ＝  前パス最終段セルから置換前の始点ＦＦまでの距離      ・・・（９２）
ｆ  ＝  Ｌｆ１とＬｆ２との差分距離から換算した遅延値      ・・・（９３）
【００７９】
例えば、前パスＦＦ組がＦＦ５及びＦＦ１である場合、まず、レイアウト装置１０は、セル１８からＦＦ１ｅの入力端子ＤＡＴＡ１までの距離である「距離ＬＡ＋距離ＬＡ１＋距離ＬＡ２」を距離Ｌｆ１として算出する。また、レイアウト装置１０は、セル１８からＦＦ１の入力端子ＤＡＴＡ１までの距離である距離ＬＡを距離Ｌｆ２として算出する。そして、レイアウト装置１０は、距離Ｌｆ１と距離Ｌｆ２の差分距離を算出する。そして、レイアウト装置１０は、当該差分距離による影響を遅延時間に換算して遅延値ｆを算出し、遅延値ｆをＲＡＭ１２０に登録する。
【００８０】
次に、レイアウト装置１０は、ステップＳ２１１により登録された対象ＦＦ組の後パスＦＦ組の最悪タイミングマージン値に基づいて、遅延値を算出する（Ｓ２１３）。すなわち、まず、レイアウト装置１０は、以下の式（１０１）及び（１０２）に従い、距離Ｌｇ１及びＬｇ２を算出する。そして、以下の式（１０３）に従い、遅延値ｇを算出する。
Ｌｇ１  ＝  置換ＦＦから後パス初段セルまでの距離      ・・・（１０１）
Ｌｇ２  ＝  置換前の始点ＦＦから後パス初段セルまでの距離      ・・・（１０２）
ｇ  ＝  Ｌｇ１とＬｇ２との差分距離から換算した遅延値      ・・・（１０３）
【００８１】
例えば、後パスＦＦ組がＦＦ４及びＦＦ８である場合、まず、レイアウト装置１０は、ＦＦ１ｅの出力端子ＯＵＴ４からセル１９までの距離である「距離ＬＥ１＋距離ＬＥ２＋距離ＬＥ」を距離Ｌｇ１として算出する。また、レイアウト装置１０は、ＦＦ４の出力端子ＯＵＴ４からセル１９までの距離である距離ＬＥを距離Ｌｇ２として算出する。そして、レイアウト装置１０は、距離Ｌｇ１と距離Ｌｇ２の差分距離を算出する。そして、レイアウト装置１０は、当該差分距離による影響を遅延時間に換算して遅延値ｇを算出し、遅延値ｇをＲＡＭ１２０に登録する。
【００８２】
尚、対象ＦＦ組がＦＦ１及びＦＦ３並びにＦＦ２及びＦＦ３である場合についても、それぞれ前パスＦＦ組及び後パスＦＦ組について同様に遅延値ｆ及び遅延値ｇを算出し、登録する。
【００８３】
ここで、レイアウト装置１０は、多ビットＦＦ回路への置換に伴う配置位置の移動距離で生じた遅延変化分を含めて、タイミングエラーとならないか否かを判定する（Ｓ２１４）。具体的には、レイアウト装置１０は、変数ｄが遅延値ｆに比べて大きく、かつ、変数ｅが遅延値ｇに比べて大きいか否かを判定する。ステップＳ２１４において、タイミングエラーとなると判定した場合、ステップＳ２１６へ進む。
【００８４】
ステップＳ２１４において、タイミングエラーとならないと判定した場合、レイアウト装置１０は、対象ＦＦ組を多ビットＦＦ回路に置換する（Ｓ２１５）。すなわち、レイアウト装置１０は、ＲＡＭ１２０内の対象ＦＦ組の配置情報を削除し、ステップＳ２０６において登録した多ビットＦＦ回路の配置位置を配置情報として登録する。
【００８５】
そして、レイアウト装置１０は、対象ＦＦ組の各ＦＦを処理済みリストへ登録する（Ｓ２１６）。つまり、レイアウト装置１０は、ステップＳ２０１において選択された対象ＦＦ組の各ＦＦの識別情報をＲＡＭ１２０内に登録する。
【００８６】
その後、レイアウト装置１０は、タイミング解析対象ＦＦの全てが処理済みリストに登録済みであるか否かを判定する（Ｓ２１７）。未登録のＦＦが存在すると判定した場合、ステップＳ２０１へ進む。ステップＳ２１７において、全てのＦＦが処理済みリストに登録済みであると判定した場合、当該ＣＴＳ前のタイミング解析処理を終了する。
【００８７】
続いて、図８及び図９を用いて、図５のステップＳ１３のＣＴＳ後タイミング解析処理の流れを説明する。図８は、本発明の実施の形態１にかかるＣＴＳ後タイミング解析処理（前半）の流れを示すフローチャート図である。図９は、本発明の実施の形態１にかかるＣＴＳ後タイミング解析処理（後半）の流れを示すフローチャート図である。尚、以下の説明において、図６及び図７と同等の処理については、適宜、詳細な説明を省略する。
【００８８】
ここで、例えば、図５のステップＳ１１において、複数のＦＦが多ビットＦＦ回路へ置換された場合には、図４における各ＦＦにおける配置情報がＣＴＳ後のタイミング解析処理の対象となる。また、図５のステップＳ１１において、複数のＦＦが多ビットＦＦ回路へ置換されなかった場合には、図３における各ＦＦにおける配置情報がＣＴＳ後のタイミング解析処理の対象となる。尚、以下では、説明の便宜上、半導体集積回路２００が図３の状態であるものとする。
【００８９】
また、前提として、ＲＡＭ１２０には、予め、上述したＣＴＳ後のタイミング解析対象となる半導体集積回路２００に搭載される複数のＦＦを識別する情報と、各ＦＦの配置座標を含む配置情報とが記憶されているものとする。また、ＲＡＭ１２０には、タイミング解析対象として選択され処理済みのＦＦの組合せを登録するための処理済みリストの領域が確保されているものとする。尚、ＣＴＳ後タイミング解析処理の開始時において、処理済みリストには、ＦＦの組合せが登録されていないものとする。または、処理済みリストには、当該タイミング解析対象の対象外とするＦＦについて予め登録しておいてもよい。
【００９０】
まず、レイアウト装置１０は、ステップＳ２０１と同様に、タイミング解析対象のＦＦ組（始点ＦＦと終点ＦＦ）を抽出する（Ｓ３０１）。尚、抽出される対象ＦＦ組には、図５のステップＳ１１において置換された多ビットＦＦ回路が始点ＦＦ又は終点ＦＦとして含まれても構わない。
【００９１】
次に、ステップＳ２０２及びＳ２０３と同様に、ステップＳ３０２及びＳ３０３を行う。ステップＳ３０３において、タイミングエラーが発生していると判定した場合、レイアウト装置１０は、以下の式（１１１）に従い、ＲＡＭ１２０内に変数ｈとして最悪タイミングエラー値を、また、以下の式（１１２）に従い、ＲＡＭ１２０内に変数ｊとしてクロックスキュー値を代入する（Ｓ３０４）。
ｈ  ＝  最悪タイミングエラー値      ・・・（１１１）
ｊ  ＝  クロックスキュー値  ＝  終点ＦＦのクロック遅延値  −  始点ＦＦのクロック遅延値      ・・・（１１２）
【００９２】
例えば、対象ＦＦ組がＦＦ１及びＦＦ４である場合、終点ＦＦのクロック遅延値は、クロック入力端子ＣＬＫ０からＦＦ４のクロック入力端子ＣＬＫ４までの間で、図５のステップＳ１２によるＣＴＳの実行結果により求まるクロック遅延値となる。また、同様に、始点ＦＦのクロック遅延値は、クロック入力端子ＣＬＫ０からＦＦ１のクロック入力端子ＣＬＫ１までの間のクロック遅延値となる。
【００９３】
ステップＳ３０３において、タイミングエラーが発生していないと判定した場合、レイアウト装置１０は、以下の式（１１３）に従い、ＲＡＭ１２０内に変数ｈとして最悪タイミングマージン値を、また、上記の式（１１２）に従い、ＲＡＭ１２０内に変数ｊとしてクロックスキュー値を代入する（Ｓ３０５）。
ｈ  ＝  最悪タイミングマージン値      ・・・（１１３）
【００９４】
その後、レイアウト装置１０は、ステップＳ２０６と同様に、対象ＦＦ組を多ビットＦＦ（置換ＦＦ）へ置換したと仮定した場合の配置位置を登録する（Ｓ３０６）。
【００９５】
続いて、レイアウト装置１０は、ステップＳ２０７と同様に、置換ＦＦの後段パスについての遅延値を算出する（Ｓ３０７）。すなわち、まず、レイアウト装置１０は、以下の式（１２１）及び（１２２）に従い、距離Ｌｋ１及びＬｋ２を算出する。そして、以下の式（１２３）に従い、遅延値ｋを算出する。
Ｌｋ１  ＝  置換ＦＦから後段セルまでの距離      ・・・（１２１）
Ｌｋ２  ＝  置換前の始点ＦＦから後段セルまでの距離      ・・・（１２２）
ｋ  ＝  Ｌｋ１とＬｋ２との差分距離から換算した遅延値      ・・・（１２３）
【００９６】
次に、レイアウト装置１０は、ステップＳ２０８と同様に、前段パスについての遅延値を算出する（Ｓ３０８）。すなわち、まず、レイアウト装置１０は、以下の式（１３１）及び（１３２）に従い、距離Ｌｍ１及びＬｍ２を算出する。そして、以下の式（１３３）に従い、遅延値ｍを算出する。
Ｌｍ１  ＝  前段セルから置換ＦＦまでの距離      ・・・（１３１）
Ｌｍ２  ＝  前段セルから置換前の終点ＦＦまでの距離      ・・・（１３２）
ｍ  ＝  Ｌｍ１とＬｍ２との差分距離から換算した遅延値      ・・・（１３３）
【００９７】
ここで、レイアウト装置１０は、多ビットＦＦ回路への置換に伴う配置位置の移動距離で生じた遅延変化分及びクロック遅延値を考慮して、タイミングエラーとならないか否かを判定する（Ｓ３０９）。具体的には、レイアウト装置１０は、「変数ｈ  −  クロックスキュー値である変数ｊ」が「遅延値ｋ＋遅延値ｍ」に比べて大きいか否かを判定する。ステップＳ３０９において、タイミングエラーとなると判定した場合、ステップＳ３１６へ進む。
【００９８】
ステップＳ３０９において、タイミングエラーとならないと判定した場合、レイアウト装置１０は、ステップＳ２１０と同様に、対象ＦＦ組の始点ＦＦを終点ＦＦとするＦＦ組である前パスＦＦ組の最悪タイミングマージン値を、以下の式（１４１）に従い、ＲＡＭ１２０内に変数ｎとして代入する（Ｓ３１０）。
ｎ  ＝  最悪タイミングマージン値      ・・・（１４１）
【００９９】
そして、レイアウト装置１０は、ステップＳ２１１と同様に、対象ＦＦ組の終点ＦＦを始点ＦＦとするＦＦ組である後パスＦＦ組の最悪タイミングマージン値を、以下の式（１４２）に従い、ＲＡＭ１２０内に変数ｐとして代入する（Ｓ３１１）。
ｐ  ＝  最悪タイミングマージン値      ・・・（１４２）
【０１００】
続いて、レイアウト装置１０は、ステップＳ２１２と同様に、ステップＳ３１０により登録された対象ＦＦ組の前パスＦＦ組の最悪タイミングマージン値に基づいて、遅延値を算出する（Ｓ３１２）。すなわち、まず、レイアウト装置１０は、以下の式（１５１）及び（１５２）に従い、距離Ｌｑ１及びＬｑ２を算出する。そして、以下の式（１５３）に従い、遅延値ｑを算出する。
Ｌｑ１  ＝  前パス最終段セルから置換ＦＦまでの距離      ・・・（１５１）
Ｌｑ２  ＝  前パス最終段セルから置換前の始点ＦＦまでの距離      ・・・（１５２）
ｑ  ＝  Ｌｑ１とＬｑ２との差分距離から換算した遅延値      ・・・（１５３）
【０１０１】
次に、レイアウト装置１０は、ステップＳ２１３と同様に、ステップＳ３１１により登録された対象ＦＦ組の後パスＦＦ組の最悪タイミングマージン値に基づいて、遅延値を算出する（Ｓ３１３）。すなわち、まず、レイアウト装置１０は、以下の式（１６１）及び（１６２）に従い、距離Ｌｒ１及びＬｒ２を算出する。そして、以下の式（１６３）に従い、遅延値ｒを算出する。
Ｌｒ１  ＝  置換ＦＦから後パス初段セルまでの距離      ・・・（１６１）
Ｌｒ２  ＝  置換前の始点ＦＦから後パス初段セルまでの距離      ・・・（１６２）
ｒ  ＝  Ｌｒ１とＬｒ２との差分距離から換算した遅延値      ・・・（１６３）
【０１０２】
ここで、レイアウト装置１０は、ステップＳ２１４と同様に、多ビットＦＦ回路への置換に伴う配置位置の移動距離で生じた遅延変化分を含めて、タイミングエラーとならないか否かを判定する（Ｓ３１４）。具体的には、レイアウト装置１０は、変数ｎが遅延値ｑに比べて大きく、かつ、変数ｐが遅延値ｒに比べて大きいか否かを判定する。ステップＳ３１４において、タイミングエラーとなると判定した場合、ステップＳ３１６へ進む。
【０１０３】
ステップＳ３１４において、タイミングエラーとならないと判定した場合、レイアウト装置１０は、ステップＳ２１５と同様に、対象ＦＦ組を多ビットＦＦ回路に置換する（Ｓ３１５）。すなわち、レイアウト装置１０は、ＲＡＭ１２０内の対象ＦＦ組の配置情報を削除し、ステップＳ３０６において登録した多ビットＦＦ回路の配置位置を配置情報として登録する。
【０１０４】
そして、レイアウト装置１０は、ステップＳ２１６と同様に、対象ＦＦ組の各ＦＦを処理済みリストへ登録する（Ｓ３１６）。つまり、レイアウト装置１０は、ステップＳ３０１において選択された対象ＦＦ組の各ＦＦの識別情報をＲＡＭ１２０内に登録する。
【０１０５】
その後、レイアウト装置１０は、ステップＳ２１７と同様に、タイミング解析対象ＦＦの全てが処理済みリストに登録済みであるか否かを判定する（Ｓ３１７）。未登録のＦＦが存在すると判定した場合、ステップＳ３０１へ進む。ステップＳ３１７において、全てのＦＦが処理済みリストに登録済みであると判定した場合、当該ＣＴＳ後のタイミング解析処理を終了する。
【０１０６】
ここで、本発明の実施の形態１にかかる置換後の配置位置の決定方法の具体例について説明する。ここでは、図３のＦＦ５からセル１８、ＦＦ１、セル１１、セル１４、ＦＦ４及びセル１９を経由したＦＦ８までのパスを対象とする。
【０１０７】
このとき、対象ＦＦ組をＦＦ１及びＦＦ４とした場合、多ビットＦＦ回路であるＦＦ１ｅの配置位置は、次のように決定することができる。例えば、タイミングエラー値又はタイミングマージン値といったタイミング情報を考慮しない場合、ＦＦ１ｅの配置位置は、セル１８からセル１１及びセル１４を経由してセル１９までのパスの中間位置とすることが望ましい。また、タイミング情報が存在する場合、ＦＦ５からＦＦ１のタイミング情報、ＦＦ１からＦＦ４のタイミング情報及びＦＦ４からＦＦ８のタイミング情報に基づき、タイミング収束が可能な位置とすることが望ましい。つまり、この場合、上記の中間位置を基準としつつ、それぞれのＦＦ間におけるタイミング余裕値が同一となるような距離比率の位置に多ビットＦＦ回路を配置することが望ましい。
【０１０８】
例えば、セル１８からセル１９のパスの距離が３ｍｍとした場合、中間距離は、１．５ｍｍである。このとき、ＦＦ５からＦＦ１のタイミング余裕値が１ｎｓ、ＦＦ４からＦＦ８のタイミング余裕値が２ｎｓである場合、セル１８からＦＦ１ｅの距離を１ｍｍ、ＦＦ１ｅからセル１９の距離を２ｍｍとすることが望ましい。
【０１０９】
この場合に、さらに、ＦＦ１からＦＦ４のタイミング余裕値が−１ｎｓ、つまり、タイミング余裕度が無い場合、ＦＦ１からセル１１の距離及びセル１４からＦＦ４の距離を短くすることにより、タイミング収束する可能性がある。そのため、タイミングエラー箇所を特定させることが望ましい。
【０１１０】
尚、前段パス又は後段パスのタイミング余裕度が必ずしもプラスである必要はない。例えば、ＦＦ５からＦＦ１のタイミング余裕値が−１ｎｓ、つまり、タイミング余裕度が無く、ＦＦ４からＦＦ８のタイミング余裕値が２ｎｓである場合、セル１８からＦＦ１ｅの距離を０ｍｍ、すなわち、ＦＦ１ｅがセル１８に隣接し、ＦＦ１ｅからセル１９の距離を３ｍｍとするとよい。尚、本発明の実施の形態１にかかる置換後の配置位置の決定方法は、上述したものに限定されない。
【０１１１】
以上のことから、本発明の実施の形態１の第１の効果として、クロックスキュー値をゼロに近づけることにより、タイミング収束性が向上することが挙げられる。その理由としては、次の通りである。まず、特許文献１にかかる発明では、クロック配線長が平均値となるように対処する手法である。そのため、上述したように、クロックスキューの影響により、タイミングエラーを完全に収束させることが不可能であった。これに対して、本発明の実施の形態１では、複数のＦＦを同一のクロック構造を持つ多ビットＦＦ回路へ置き換えるものである。これにより、タイミング解析対象のＦＦ間でクロック遅延時間の差異が無くなる。そして、クロックスキューをゼロに近づけることができる。そのため、クロックスキューの影響によりタイミングエラーとなっているパスをポジティブタイミングスラック（Positive Timing Slack）にすることできるからである。
【０１１２】
また、本発明の実施の形態１の第２の効果として、相対ばらつき成分であるＯＣＶ（On Chip Variation）をゼロに近づけることにより、タイミング収束性が向上することが挙げられる。その理由としては、次の通りである。まず、本発明の実施の形態１では、ＯＣＶの影響により、ネガティブタイミングスラック（Negative Timing Slack）となっているパスに対し、同一クロック構造を持つ、多ビットＦＦ回路へ置き換える。これにより、タイミング解析対象のＦＦ間でのクロック分岐点が存在しなくなる。そして、ＯＣＶをゼロに近づけることができる。そのため、ＯＣＶの影響でタイミングエラーとなっているパスをポジティブタイミングスラックにすることができるからである。
【０１１３】
さらに、本発明の実施の形態１の第３の効果として、面積縮小化が可能となることが挙げられる。その理由としては、次の通りである。まず、本発明の実施の形態１では、ＦＦとＦＦとの組合せを同一クロック構造を持つ多ビットＦＦ回路へ置換する。これにより、ＦＦ内とＦＦ内に各々存在していたクロックのトランジスタ回路が一つの同一トランジスタ回路化される。そのため、ＦＦ自体の面積が縮小される。また、特許文献１では、ＦＦとＦＦのそれぞれにＣＴＳツリーが存在していた。本発明の実施の形態１では、多ビットＦＦ回路に置換することで、ＣＴＳツリーが一本化され、ＣＴＳツリーバッファ分の面積が縮小されるためである。
【０１１４】
また、本発明の実施の形態１の第４の効果として、低消費電力化が可能となることが挙げられる。その理由としては、次の通りである。まず、特許文献１では、ＦＦ内のクロック回路とＦＦ内のクロック回路が各々動作するため、電力が各々のＦＦにおいて消費されていた。これに対して、本発明の実施の形態１では、同一クロック構造を持つ多ビットＦＦ回路への置換により、一つのクロック回路のみの動作となる。そのため、クロック回路を共有して多ビットを一つの回路として動作させることができる。それ故、ＦＦが集約された分だけ、ＦＦ自身の消費電力を削減することができる。また、特許文献１では、ＦＦとＦＦのそれぞれにＣＴＳツリーが存在していた。これに対して、本発明の実施の形態１では、多ビットＦＦ回路に置換することで、ＣＴＳツリーが一本化され、ＣＴＳツリーにおけるバッファ分の消費電力が削減されるためである。
【０１１５】
＜その他の発明の実施の形態＞
尚、本発明は、以下のように言うことができる。すなわち、半導体集積回路のレイアウト設計であって、多ビットＦＦ回路に置換する方法において、任意の置換対象ＦＦ組が同一クロックでかつ同期クロックであり、ＣＴＳ実施前の配置後に多ビットＦＦ回路置換前後の距離を判断して多ビットＦＦ回路への置換を行なう手段と、ＣＴＳ実施後に多ビットＦＦ回路置換前後の距離およびクロック遅延から判断して多ビットＦＦ回路への置換を行なう手段とを有することを特徴とする半導体集積回路のレイアウト方法。これにより、クロックスキュー影響によりネガティブタイミングスラックとなっているパスを、同一クロック構造を持つ多ビットＦＦ回路に置換することにより、クロックスキューをゼロに近づけることができる。また、クロックスキュー影響（又はＯＣＶ影響）でタイミングエラーとなっているパスをポジティブタイミングスラックとする事ができ、クロックスキューをゼロに近づけることによりタイミング収束性の向上が図ることができる。
【０１１６】
また、上記に加えて、ＣＴＳ実施前のタイミング解析において、距離から換算した遅延値がタイミングマージン範囲内であるかを判断する手段を有することが望ましい。
【０１１７】
さらに、上記に加えて、多ビットＦＦ回路への置換により発生した差分距離を遅延換算して、任意の対象ＦＦ組および該当ＦＦ組の前パスＦＦ組および後パスＦＦ組がタイミングマージン範囲内にあるかを判断し、多ビットＦＦ回路への置換を行なう手段を有することが望ましい。
【０１１８】
または、ＣＴＳ実施後のタイミング解析において、多ビットＦＦ回路への置換により発生した差分距離を遅延換算およびクロック遅延から、任意の対象ＦＦ組および該当ＦＦ組の前パスＦＦ組および後パスＦＦ組が所望のタイミングであるかを判断し、多ビットＦＦ回路への置換を行なう手段を有するようにしてもよい。
【０１１９】
この場合、さらに、任意のＦＦ組の最悪タイミングマージン値または最悪タイミングエラー値とクロックスキュー値の差分が、置換前後の距離を遅延値に換算した差分の総計よりも大きい場合に多ビットＦＦ回路への置換を行なう手段を有するとよい。
【０１２０】
または、任意のＦＦ組の最悪タイミングマージン値または最悪タイミングエラー値とクロックのＯＣＶ値の差分が、置換前後の距離を遅延値に換算した差分の総計よりも大きい場合に多ビットＦＦ回路への置換を行なう手段を有するようにしてもよい。
【０１２１】
または、任意のＦＦ組の最悪タイミングマージン値または最悪タイミングエラー値とクロックスキュー値およびクロックＯＣＶ値の差分が、置換前後の距離を遅延値に換算した差分の総計よりも大きい場合に多ビットＦＦ回路への置換を行なう手段を有するとよい。
【０１２２】
上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、任意の処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、ＤＶＤ（Digital Versatile Disc）、ＢＤ(Blu-ray(登録商標) Disc)、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【０１２３】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【符号の説明】
【０１２４】
１００  レイアウトシステム
１０１  サーバ装置
１０２  記憶装置
１０２１  レイアウトプログラム
１０３  ネットワーク
１０４ａ  コンピュータ装置
１０４ｂ  コンピュータ装置
１０４ｎ  コンピュータ装置
１０  レイアウト装置
１１０  ＣＰＵ
１２０  ＲＡＭ
１３０  ＲＯＭ
１４０  ＩＦ部
１５０  ハードディスク
１５１  ＯＳ
１５２  レイアウトプログラム
２００  半導体集積回路
１  ＦＦ
２  ＦＦ
３  ＦＦ
４  ＦＦ
５  ＦＦ
６  ＦＦ
７  ＦＦ
８  ＦＦ
１ｅ  ＦＦ
１１  セル
１２  セル
１３  セル
１４  セル
１５  セル
１６  セル
１７  セル
１８  セル
１９  セル
２０  セル
２１  セル
２２  セル
ＬＡ  距離
ＬＡ１  距離
ＬＡ２  距離
ＬＢ  距離
ＬＢ１  距離
ＬＢ２  距離
ＬＣ  距離
ＬＤ  距離
ＬＤ１  距離
ＬＤ２  距離
ＬＥ  距離
ＬＥ１  距離
ＬＥ２  距離
ＬＦ  距離
ＬＧ  距離
ＣＬＫ０  クロック入力端子
ＣＬＫ１  クロック入力端子
ＣＬＫ２  クロック入力端子
ＣＬＫ３  クロック入力端子
ＣＬＫ４  クロック入力端子
ＣＬＫ５  クロック入力端子
ＣＬＫ６  クロック入力端子
ＣＬＫ７  クロック入力端子
ＣＬＫ８  クロック入力端子
ＣＬＫ１ｅ  クロック入力端子
ＤＡＴＡ１  入力端子
ＤＡＴＡ２  入力端子
ＤＡＴＡ３  入力端子
ＤＡＴＡ４  入力端子
ＤＡＴＡ５  入力端子
ＤＡＴＡ６  入力端子
ＤＡＴＡ７  入力端子
ＤＡＴＡ８  入力端子
ＯＵＴ１  出力端子
ＯＵＴ２  出力端子
ＯＵＴ３  出力端子
ＯＵＴ４  出力端子
ＯＵＴ５  出力端子
ＯＵＴ６  出力端子
ＯＵＴ７  出力端子
ＯＵＴ８  出力端子
ＣＬＫ  クロック信号
Ｄ１  データ信号
Ｄ２  データ信号
Ｄ３  データ信号
Ｄ４  データ信号
Ｔ１  入力端子
Ｔ２  入力端子
Ｔ３  出力端子
Ｔ４  出力端子
ａ  変数
Ｌｂ１  距離
Ｌｂ２  距離
ｂ  遅延値
Ｌｃ１  距離
Ｌｃ２  距離
ｃ  遅延値
ｄ  変数
ｅ  変数
Ｌｆ１  距離
Ｌｆ２  距離
ｆ  遅延値
Ｌｇ１  距離
Ｌｇ２  距離
ｇ  遅延値
ｈ  変数
ｊ  変数
Ｌｋ１  距離
Ｌｋ２  距離
ｋ  遅延値
Ｌｍ１  距離
Ｌｍ２  距離
ｍ  遅延値
ｎ  変数
ｐ  変数
Ｌｑ１  距離
Ｌｑ２  距離
ｑ  遅延値
Ｌｒ１  距離
Ｌｒ２  距離
ｒ  遅延値
９１  ＣＴＳブロック
９１０  バッファ
９１１  ＦＦ
９１２  ＦＦ
９１３  ＦＦ
９２  ＣＴＳブロック
９２０  バッファ
９２１  ＦＦ
９２２  ＦＦ
９２３  ＦＦ
９ｎ  ＣＴＳブロック
９ｎ０  バッファ
９ｎ１  ＦＦ
９ｎ２  ＦＦ
９ｎ３  ＦＦ
Ｌ１  配線長
Ｌ２  配線長
Ｌｉ  配線長
Ｌｎ  配線長
Ｌａｖｇ  平均値
Ｘ  レイアウト装置
【図１】
2011238163.tif 000003
【図２】
2011238163.tif 000004
【図３】
2011238163.tif 000005
【図４】
2011238163.tif 000006
【図５】
2011238163.tif 000007
【図６】
2011238163.tif 000008
【図７】
2011238163.tif 000009
【図８】
2011238163.tif 000010
【図９】
2011238163.tif 000011
【図１０】
2011238163.tif 000012
【図１１】
2011238163.tif 000013
【図１２】
2011238163.tif 000014
【図１３】
2011238163.tif 000015