(57)【要約】【課題】階層ブロック間にまたがって接続されるフリップフロップ間のクロックを容易に調整できる半導体集積回路のレイアウト設計方法を提供する。【解決手段】内部回路を、分割予定の複数の階層ブロックに分割した後、階層ブロック内および階層ブロック間を仮配線してタイミング解析を行い、階層ブロック間にまたがって接続されている境界のフリップフロップを検出し、階層ブロック内に含まれる、境界のフリップフロップ以外のフリップフロップに共通のクロックポートとは別に、境界のフリップフロップに専用のクロックポートを設けて仮配線を変更する。続いて、内部回路を、実際に複数の階層ブロックに分割し、変更された仮配線に従い、共通および専用のクロックポートをルートとして、階層ブロック内のクロックツリーを生成した後、クロックが供給されるクロックソースをルートとして、階層ブロック間のクロックツリーを生成する。【選択図】図３
2004302819.tif 000002
【特許請求の範囲】
【請求項１】
内部回路を、分割予定の複数の階層ブロックに分割し、
前記階層ブロック内および前記階層ブロック間を仮配線してタイミング解析を行い、前記階層ブロック間にまたがって接続されている境界のフリップフロップを検出し、
前記階層ブロック内に含まれる、前記境界のフリップフロップ以外のフリップフロップに共通のクロックポートとは別に、前記境界のフリップフロップに専用のクロックポートを設けて前記仮配線を変更し、
前記内部回路を、前記複数の階層ブロックに分割し、前記変更された仮配線に従い、前記共通および専用のクロックポートをルートとして、前記階層ブロック内のクロックツリーをそれぞれ生成し、それぞれの前記階層ブロックの共通および専用のクロックポートに、各々対応するクロックツリーを介して供給されるクロックの遅延情報を与え、その後、前記変更された仮配線に従い、それぞれの前記階層ブロックの共通および専用のクロックポートに与えられたクロックの遅延情報に基づき、ルートクロックが供給されるクロックソースをルートとして、前記階層ブロック間のクロックツリーを生成することを特徴とする半導体集積回路のレイアウト設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内部回路を複数の階層ブロックに分割して半導体集積回路のレイアウト設計を行う技術分野に関するものである。
【０００２】
【従来の技術】
回路の大規模化と製造プロセスの微細化により、半導体集積回路のレイアウト設計を行う際に扱うデータ量が増加している。このデータ量の増加がレイアウト設計を行う際の工数、処理時間を増加させる原因の１つになっている。
【０００３】
この問題を解決するために、大規模な半導体集積回路のレイアウト設計を行う場合には、階層レイアウト設計手法が用いられている。階層レイアウト設計は、大規模化し扱いにくくなった内部回路を取り扱いやすいサイズの複数の階層ブロックに分割し、階層ブロック内と階層ブロック間（トップレベル）とを別々にレイアウト設計することにより、半導体集積回路全体のレイアウト設計を行う手法である。
【０００４】
しかし、階層レイアウト設計手法を用いて半導体集積回路のレイアウト設計を行う場合、半導体集積回路の性能を左右するクロックの調整が非常に困難であるという問題がある。
【０００５】
階層レイアウト設計手法を用いて半導体集積回路のレイアウト設計を行う場合、それぞれの階層ブロック内、および階層ブロック間において別々にクロックツリーが生成される。図４に一例を示すように、回路を複数の階層ブロックに分割した後、図５に示すように、それぞれの階層ブロック内のクロックツリーが生成され、続いて、図６に示すように、階層ブロック間のクロックツリーが生成される。
【０００６】
ここで、図４に示す半導体集積回路１２の場合、内部回路は、３つの階層ブロックＩ１，Ｉ２，Ｉ３に分割されている。
【０００７】
図５に示すように、階層ブロックＩ１にはフリップフロップＦＦ１１，ＦＦ１２，ＦＦ１３が含まれ、以下同様に、階層ブロックＩ２にはフリップフロップＦ２１，Ｆ２２が含まれ、階層ブロックＩ３にはフリップフロップＦＦ３１，ＦＦ３２が含まれている。階層ブロックＩ１，Ｉ２，Ｉ３には、それぞれ１つずつクロックポートＣＰ１，ＣＰ２，ＣＰ３が設けられ、階層ブロックＩ１，Ｉ２，Ｉ３内のクロックツリーは、それぞれ対応するクロックポートＣＰ１，ＣＰ２，ＣＰ３をルート（起点）として構成されている。
【０００８】
半導体集積回路１２には、ルートクロックが供給されるクロックソース１４が設けられている。図６に示すように、階層ブロックＩ１，Ｉ２，Ｉ３間のクロックツリーは、このクロックソース１４をルートとして構成されている。
【０００９】
階層ブロックＩ１，Ｉ２，Ｉ３間のクロックツリーを構成する際には、それぞれの階層ブロックＩ１，Ｉ２，Ｉ３内のクロックツリーの状態が考慮される。それぞれの階層ブロックＩ１，Ｉ２，Ｉ３のクロックポートＣＰ１，ＣＰ２，ＣＰ３には、各々対応する階層ブロックＩ１，Ｉ２，Ｉ３内に構成されたクロックツリーの遅延、入力容量等のクロック情報が与えられている。この階層ブロックＩ１，Ｉ２，Ｉ３内のクロック情報に基づいて、階層ブロックＩ１，Ｉ２，Ｉ３間のクロックツリーが構成される。
【００１０】
図６に示す例の場合、階層ブロックＩ１のクロックポートＣＰ１には、クロックツリーの最大遅延がＡｎｓであり、最小遅延がＡ’ｎｓであるという情報が与えられている。以下同様に、階層ブロックＩ２のクロックポートＣＰ２には、最大遅延がＢｎｓ、最小遅延がＢ’ｎｓであるという情報が与えられ、階層ブロックＩ３のクロックポートＣＰ３には、最大遅延がＣｎｓ、最小遅延がＣ’ｎｓであるという情報が与えられている。
【００１１】
従来の半導体集積回路のレイアウト設計方法では、階層ブロック内のフリップフロップ間や、階層ブロック間のフリップフロップ間など同一レベルに存在するフリップフロップ間のクロック調整は容易に可能であった。しかし、階層ブロック間にまたがって接続される境界のフリップフロップ間のクロックを調整することは困難であった。例えば、図５に示す例の場合、階層ブロックＩ２と階層ブロックＩ１との間にまたがって接続されている境界のフリップフロップＦＦ２１とフリップフロップＦＦ１１間のクロックを調整することは困難であった。
【００１２】
その理由は、各階層ブロックのクロックポートに与えられている階層ブロック内のクロックの遅延情報はクロックツリーの中の最大遅延、最小遅延のみであり、階層ブロックの境界に存在するフリップフロップに供給されるクロックの情報であるとは限らないからである。図６に示す例の場合も、階層ブロックＩ１，Ｉ２のクロックポートＣＰ１，ＣＰ２に与えられているクロック情報は、境界のフリップフロップＦＦ１１，ＦＦ２１のクロック遅延情報であるとは限らない。
【００１３】
【発明が解決しようとする課題】
本発明の目的は、前記従来技術に基づく問題点を解消し、階層ブロック間にまたがって接続される境界のフリップフロップ間のクロックを容易に調整することができる半導体集積回路のレイアウト設計方法を提供することにある。
【００１４】
【課題を解決するための手段】
上記目的を達成するために、本発明は、内部回路を、分割予定の複数の階層ブロックに分割し、
前記階層ブロック内および前記階層ブロック間を仮配線してタイミング解析を行い、前記階層ブロック間にまたがって接続されている境界のフリップフロップを検出し、
前記階層ブロック内に含まれる、前記境界のフリップフロップ以外のフリップフロップに共通のクロックポートとは別に、前記境界のフリップフロップに専用のクロックポートを設けて前記仮配線を変更し、
前記内部回路を、前記複数の階層ブロックに分割し、前記変更された仮配線に従い、前記共通および専用のクロックポートをルートとして、前記階層ブロック内のクロックツリーをそれぞれ生成し、それぞれの前記階層ブロックの共通および専用のクロックポートに、各々対応するクロックツリーを介して供給されるクロックの遅延情報を与え、その後、前記変更された仮配線に従い、それぞれの前記階層ブロックの共通および専用のクロックポートに与えられたクロックの遅延情報に基づき、ルートクロックが供給されるクロックソースをルートとして、前記階層ブロック間のクロックツリーを生成することを特徴とする半導体集積回路のレイアウト設計方法を提供するものである。
【００１５】
【発明の実施の形態】
以下に、添付の図面に示す好適実施形態に基づいて、本発明の半導体集積回路のレイアウト設計方法を詳細に説明する。
【００１６】
図１、図２、および図３は、本発明の半導体集積回路のレイアウト設計方法の各工程を説明する一実施形態のレイアウト概念図である。
本発明の半導体集積回路のレイアウト設計方法では、まず、内部回路を、レイアウト設計を行う際に実際に分割する予定の複数の階層ブロックに分割する。
【００１７】
図１に示す例では、図４に示す従来の半導体集積回路１２との対比が容易となるように、半導体集積回路１０は、３つの階層ブロックＩ１，Ｉ２，Ｉ３に分割されている。
【００１８】
続いて、それぞれの階層ブロック内、および階層ブロック間を仮配線してタイミング解析を行い、階層ブロック間にまたがって接続されている境界のフリップフロップ（以下、単に境界のフリップフロップという）を検出する。
【００１９】
図２に示す例では、階層ブロックＩ２に含まれるフリップフロップＦＦ２１と階層ブロックＩ１に含まれるフリップフロップＦＦ１１とが、階層ブロックＩ２，Ｉ１間にまたがって接続されている。すなわち、階層ブロックＩ２のフリップフロップＦＦ２１の出力信号は、階層ブロックＩ１のフリップフロップＦＦ１１のデータ入力端子に入力されている。なお、途中に論理ゲート等が挿入されている場合も同様である。
【００２０】
図２に示すように、仮配線を行った際、クロックツリーに相当する仮配線は、半導体集積回路１０にルートクロックを供給するためのクロックソース１４からそれぞれの階層ブロックＩ１，Ｉ２，Ｉ３のクロックポートＣＰ１，ＣＰ２，ＣＰ３に共通に接続され、さらにそれぞれの階層ブロックＩ１，Ｉ２，Ｉ３内において、クロックポートＣＰ１，ＣＰ２，ＣＰ３からそれぞれのフリップフロップのクロック入力端子に共通に接続される。
【００２１】
続いて、それぞれの階層ブロック内において、境界のフリップフロップ以外のフリップフロップに共通のクロックポートの他に、境界のフリップフロップに専用のクロックポートを設け、境界のフリップフロップに、この専用のクロックポートを介してクロックが供給されるように仮配線を変更する。また、階層ブロック間において、それぞれの階層ブロックの共通および専用のクロックポートにクロックが供給されるように仮配線を変更する。
【００２２】
図３に示す例では、階層ブロックＩ１には、フリップフロップＦ１１に専用のクロックポートＳＰ１が設けられ、階層ブロックＩ２には、フリップフロップＦＦ２１に専用のクロックポートＳＰ２が設けられている。そして、フリップフロップＦ１１には、専用のクロックポートＳＰ１を介してクロックが供給され、フリップフロップＦＦ２１には、専用のクロックポートＳＰ２を介してクロックが供給されるように、クロックツリーに相当する仮配線が変更されている。
【００２３】
これ以後の工程は、図示を省略しているが、境界のフリップフロップ以外のフリップフロップに共通のクロックポートに加えて、境界のフリップフロップに専用のクロックポートが追加されている点を除いて、従来の半導体集積回路のレイアウト設計方法の場合とほぼ同じである。すなわち、内部回路を実際に複数の階層ブロックに分割し、それぞれの階層ブロック内のクロックツリーを生成した後、階層ブロック間のクロックツリーを生成する。
【００２４】
それぞれの階層ブロック内のクロックツリーを生成する際には、仮配線に従い、それぞれ共通および専用のクロックポートをルートとしてクロックツリーが生成される。すなわち、境界のフリップフロップには、専用のクロックポートをルートとしてクロックツリーが生成され、境界のフリップフロップ以外の全てのフリップフロップには、共通のクロックポートをルートとしてクロックツリーが生成される。
【００２５】
また、共通のクロックポートには、この共通のクロックポートをルートとして生成されたクロックツリーの遅延情報、例えば共通のクロックポートから、クロックツリーを介して、境界のフリップフロップ以外のフリップフロップに供給されるクロックのうちの最大遅延時間および最小遅延時間の情報が与えられる。また、専用のクロックポートには、専用のクロックポートから、境界のフリップフロップまでのクロックの遅延情報が与えられる。
【００２６】
また、階層ブロック間のクロックツリーを生成する際には、仮配線に従い、それぞれの階層ブロックの共通および専用のクロックポートに与えられているクロックの遅延情報に基づいて、クロックソースをルートとしてクロックツリーが生成される。
【００２７】
上記のように、境界のフリップフロップに専用のクロックポートを設け、専用のクロックポートには、この専用のクロックポートから境界のフリップフロップまでのクロックの遅延情報が与えられる。これにより、専用のクロックポートのクロック情報＝境界のフリップフロップのクロック情報を実現することができ、階層ブロック間にまたがって接続されるフリップフロップ間のクロック遅延の調整を容易に行うことができる。
【００２８】
なお、階層ブロック数は２つ以上いくつのブロックに分割されていてもよい。また、共通および専用のクロックポートは１つずつに制限されるわけではなく、１つ以上いくつ設けられていてもよい。また、専用のクロックポートは、境界のフリップフロップに対して１つずつ設けることが望ましいが、境界のフリップフロップ数が多い場合には、複数の境界のフリップフロップに対して１つずつ専用のクロックポートを設けるようにしてもよい。
【００２９】
本発明は、基本的に以上のようなものである。
以上、本発明の半導体集積回路のレイアウト設計方法について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【００３０】
【発明の効果】
以上詳細に説明した様に、本発明の半導体集積回路のレイアウト設計方法は、内部回路を分割予定の複数の階層ブロックに分割し、階層ブロック内および階層ブロック間を仮配線して境界のフリップフロップを検出し、境界のフリップフロップに専用のクロックポートを設けて仮配線を変更し、続いて、内部回路を実際に複数の階層ブロックに分割し、変更された仮配線に従い、共通および専用のクロックポートをルートとして、階層ブロック内のクロックツリーを生成した後、クロックソースをルートとして、階層ブロック間のクロックツリーを生成するものである。
本発明の半導体集積回路のレイアウト設計方法によれば、専用のクロックポートに与えられている、専用のクロックポートから境界のフリップフロップまでのクロックの遅延情報により、境界のフリップフロップ間のクロック遅延やスキューを従来よりも正確に把握することができる。このため、境界のフリップフロップ間のクロック遅延の調整を容易に行うことができる。
【図面の簡単な説明】
【図１】本発明の半導体集積回路のレイアウト設計方法の第１の工程を説明する一実施形態のレイアウト概念図である。
【図２】本発明の半導体集積回路のレイアウト設計方法の第２の工程を説明する一実施形態のレイアウト概念図である。
【図３】本発明の半導体集積回路のレイアウト設計方法の第３の工程を説明する一実施形態のレイアウト概念図である。
【図４】従来の半導体集積回路のレイアウト設計方法の第１の工程を説明する一例のレイアウト概念図である。
【図５】従来の半導体集積回路のレイアウト設計方法の第２の工程を説明する一例のレイアウト概念図である。
【図６】従来の半導体集積回路のレイアウト設計方法の第３の工程を説明する一例のレイアウト概念図である。
【符号の説明】
１０，１２  半導体集積回路
１４  クロックソース
ＣＰ１，ＣＰ２，ＣＰ３  クロックポート
ＳＰ１，ＳＰ２  専用クロックポート
Ｉ１，Ｉ２，Ｉ３  階層ブロック
ＦＦ１１，ＦＦ１２，ＦＦ１３，ＦＦ２１，ＦＦ２２，ＦＦ３１，ＦＦ３２  フリップフロップ
【図１】
2004302819.tif 000003
【図２】
2004302819.tif 000004
【図３】
2004302819.tif 000005
【図４】
2004302819.tif 000006
【図５】
2004302819.tif 000007
【図６】
2004302819.tif 000008