(57)【要約】【課題】  階層化設計手法で設計される集積回路のホールドエラー及びセットアップエラーを確実に解消し得るタイミングエラー修正方法を提供する。【解決手段】  最上位階層に複数の同一レイアウトブロックを含む集積回路のレイアウトにタイミング調整用セルを挿入してタイミングエラーを修正するタイミングエラー修正方法であって、各レイアウトブロック１ａ，１ｂを構成するセルにおいて、タイミングエラーが発生するまでの余裕度を各レイアウトブロックで対応するセルの最悪条件に揃え、各余裕度の範囲でタイミング調整用セルｃｄ６〜ｃｄ９を挿入してタイミングエラーを調整する。【選択図】      図１
2006155056.tif 000002
【特許請求の範囲】
【請求項１】
最上位階層に複数の同一レイアウトブロックを含む集積回路にタイミング調整用セルを挿入してタイミングエラーを修正するタイミングエラー修正方法であって、
各レイアウトブロックを構成するセルにおいて、タイミングエラーが発生するまでの余裕度を各レイアウトブロックで対応するセルの最悪条件に揃え、各余裕度の範囲で前記タイミング調整用セルを挿入してタイミングエラーを調整することを特徴とするタイミングエラー修正方法。
【請求項２】
最上位階層に複数の同一レイアウトブロックを含む集積回路に遅延セルを挿入してホールドエラーを修正するタイミングエラー修正方法であって、
各レイアウトブロックを構成するセルにおいて、セットアップエラーが発生するまでの余裕度を各レイアウトブロックで対応するセルの最悪条件に揃え、各余裕度の範囲で各レイアウトブロックに遅延セルを挿入してホールドエラーを調整することを特徴とするタイミングエラー修正方法。
【請求項３】
最上位階層に複数の同一レイアウトブロックを含む集積回路にタイミング調整用セルを挿入してタイミングエラーを修正するタイミングエラー修正方法であって、
タイミングエラーが発生しているパスを含むレイアウトブロックを固有化し、固有化したレイアウトブロックに前記タイミング調整用セルを挿入することを特徴とするタイミングエラー修正方法。
【請求項４】
最上位階層に複数の同一レイアウトブロックを含む集積回路に遅延セルを挿入してホールドエラーを修正するタイミングエラー修正方法であって、
ホールドエラーが発生しているパスを含むレイアウトブロックを固有化し、固有化したレイアウトブロックに前記遅延セルを挿入することを特徴とするタイミングエラー修正方法。
【請求項５】
最上位階層に複数の同一レイアウトブロックを含む集積回路にタイミング調整用セルを挿入するタイミングエラー修正方法であって、
タイミングエラーが発生しているパスを含むレイアウトブロック数を判定し、そのレイアウトブロック数が多いとき、各レイアウトブロックを構成するセルにおいて、タイミングエラーが発生するまでの余裕度を各レイアウトブロックで対応するセルの最悪条件に揃えて各余裕度の範囲で前記タイミング調整用セルを挿入してタイミングエラーを調整し、前記レイアウトブロック数が少ないとき、タイミングエラーが発生しているパスを含むレイアウトブロックを固有化し、固有化したレイアウトブロックに前記タイミング調整用セルを挿入することを特徴とするタイミングエラー修正方法。
【請求項６】
最上位階層に複数の同一レイアウトブロックを含む集積回路に遅延セルを挿入してホールドエラーを修正するタイミングエラー修正方法であって、
タイミングエラーが発生しているパスを含むレイアウトブロック数を判定し、そのレイアウトブロック数が多いとき、各レイアウトブロックを構成するセルにおいて、セットアップエラーが発生するまでの余裕度を各レイアウトブロックで対応するセルの最悪条件に揃え、各余裕度の範囲で各レイアウトブロックに遅延セルを挿入してホールドエラーを調整し、前記レイアウトブロック数が少ないとき、タイミングエラーが発生しているパスを含むレイアウトブロックを固有化し、固有化したレイアウトブロックに前記遅延セルを挿入することを特徴とするタイミングエラー修正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体集積回路を階層化設計手法に基づいて設計する際に、動作タイミングエラーを修正する設計方法に関するものである。
近年の大規模化された半導体集積回路では、その設計工数を削減するために、階層化設計手法が用いられている。このような設計手法を用いた場合、ホールドタイミングエラーあるいはセットアップタイミングエラー等の動作タイミングエラーを修正するために要する工数を削減しなければ、設計工数を十分に削減することはできない。
【背景技術】
【０００２】
図５は、階層化設計手法で設計されるデータ転送回路の一例を示す。同図において、レイアウトブロック１ａ，１ｂは、下位層としてあらかじめ設計されている。
最上位階層は、前記レイアウトブロック１ａ，１ｂと、フリップフロップ回路FF１〜FF４と、セルｃ１〜ｃ６から構成される。レイアウトブロック１ａは、単入力セルｃ７〜ｃ９と、複数入力セルｃ１０及びフリップフロップ回路FF01〜FF04とから構成される。レイアウトブロック１ｂは、レイアウトブロック１ａと同様な回路構成であり、単入力セルｃ１１〜ｃ１３と、複数入力セルｃ１４及びフリップフロップ回路FF05〜FF08とから構成される。
【０００３】
各フリップフロップ回路FF１〜FF４，FF01〜FF08は、クロック信号に基づいてデータの入出力動作を行う。図５においては、クロック信号の記載を省略している。
フリップフロップ回路FF１から出力されるデータは、セルｃ３，ｃ２，ｃ７，ｃ９を経て、フリップフロップ回路FF02，FF03に出力され、セルｃ３，ｃ２，ｃ７，ｃ８，ｃ１０を経てフリップフロップ回路FF01に出力される。
【０００４】
フリップフロップ回路FF３から出力されるデータは、セルｃ１を経てフリップフロップ回路FF04に出力され、セルｃ１，ｃ１０を経てフリップフロップ回路FF01に出力される。
フリップフロップ回路FF４から出力されるデータは、セルｃ４〜ｃ６を経てFF08に出力され、セルｃ４〜ｃ６及び同ｃ１４を経てフリップフロップ回路FF05に出力される。
【０００５】
フリップフロップ回路FF２から出力されるデータは、セルｃ１１，ｃ１２，ｃ１４を経てフリップフロップ回路FF05に出力され、セルｃ１１，ｃ１３を経てフリップフロップ回路FF06，FF07に出力される。
【０００６】
前記各セルｃ１〜ｃ１４の前後に記載された数字及びフリップフロップ回路FF01〜FF08の入力端に記載された数字は、各セルｃ１〜ｃ１４及びフリップフロップ回路FF01〜FF08においてセットアップタイミングエラーが発生するまでの遅延マージン時間Slackを示すものであり、単位はpsである。また、複数入力セルｃ１０，ｃ１４のSlackは、条件の厳しい入力ピンのSlackとなる。
【０００７】
図６は、フリップフロップ回路のホールドタイム及びセットアップタイムを示す。図６（ａ）に示すフリップフロップ回路FFにおいて、クロック信号ＣＬＫの立ち上がりに基づいてデータＤＡＴＡの取り込み動作が行われるとき、図６（ｂ）に示すように、取り込もうとするデータＤＡＴＡの入力開始からクロック信号ＣＬＫの立ち上がりまでに所定時間以上のセットアップ時間ｓｔを確保する必要がある。
【０００８】
また、図６（ｃ）に示すように、クロック信号ＣＬＫの立ち上がりから、取り込もうとするデータＤＡＴＡの入力が終了するまでに所定時間以上のホールド時間ｈｔを確保する必要がある。
【０００９】
図５に示す回路構成において、次に示すようなホールドエラーが発生している場合の従来のタイミングエラー修正方法を説明する。
例えばフリップフロップ回路FF３からフリップフロップ回路FF01にいたるパスＡにおいて、フリップフロップ回路FF01にホールドエラーが発生し、その調整時間すなわちホールドエラーを修正するために必要とするデータの遅延時間は４５psである。
【００１０】
また、フリップフロップ回路FF１からフリップフロップ回路FF01にいたるパスＢにおいて、フリップフロップ回路FF01にホールドエラーが発生し、その調整時間すなわちホールドエラーを修正するために必要とするデータの遅延時間は１４０psである。
【００１１】
また、フリップフロップ回路FF２からフリップフロップ回路FF06にいたるパスＣにおいて、フリップフロップ回路FF06にホールドエラーが発生し、その調整時間すなわちホールドエラーを修正するために必要とするデータの遅延時間は１２０psである。
【００１２】
このようなホールドエラーを解消するために最上位階層だけに遅延セルを挿入する場合を図７に示す。パスＣのホールドエラーを解消するために、フリップフロップ回路FF２とセルｃ１１との間に遅延時間１２０psの遅延セルｃｄ１を挿入すれば、フリップフロップ回路FF06において、セットアップ時間を確保しながらホールドエラーを解消可能となる。
【００１３】
しかし、パスＡでは遅延時間３０psの遅延セルｃｄ２をフリップフロップ回路FF３とセルｃ１との間に挿入すると、フリップフロップ回路FF04のSlackが０となるため、これ以上の遅延時間を備えた遅延セルを挿入すると、フリップフロップ回路FF04でセットアップタイミングエラーが発生してしまう。従って、フリップフロップ回路FF04でのセットアップエラーを発生させずに、パスＡのホールドエラーを解消することはできない。
【００１４】
また、パスＢでは遅延時間１２０psの遅延セルｃｄ３をフリップフロップ回路FF１とセルｃ３との間に挿入すると、フリップフロップ回路FF02のSlackが０となるため、これ以上の遅延時間を備えた遅延セルを挿入すると、フリップフロップ回路FF02でセットアップエラーが発生してしまう。従って、フリップフロップ回路FF02でのセットアップエラーを発生させずに、パスＡのホールドエラーを解消することはできない。
【００１５】
図８は、上記のようなホールドエラーを解消するために、レイアウトブロック１ａ，１ｂ内にさらに遅延セルを挿入する場合を示す。同図に示すように、遅延セルｃｄ１〜ｃｄ３に加えて、レイアウトブロック１ａ，１ｂ内に遅延時間２０psの遅延セルｃｄ４，ｃｄ５を挿入する。
【００１６】
すなわち、レイアウトブロック１ａ，１ｂは最上位階層の設計に先立って同一構成で設計されるため、レイアウトブロック１ａでセルｃ１０とFF01との間に遅延時間２０psの遅延セルｃｄ４を挿入するとき、レイアウトブロック１ｂにおいても、セルｃ１４とフリップフロップ回路ff05との間に同様な遅延セルｃｄ５が挿入される。
【００１７】
このよう調整を行うと、パスＡでは遅延セルｃｄ２，ｃｄ４により５０psの遅延時間を確保することができるため、４５psの調整時間を確保してホールドエラーを解消することができるとともに、フリップフロップ回路FF04でセットアップエラーを発生させることはない。
【００１８】
また、パスＢでは遅延セルｃｄ３，ｃｄ４により１４０psの遅延時間を確保することができるため、１４０psの調整時間を確保してホールドエラーを解消することができる。
また、パスＣには遅延セルｃｄ５の挿入は影響しないので、ホールドエラーを解消できることには変わりがない。
【００１９】
しかし、フリップフロップ回路FF４から同FF05にいたるパスＤでは、１５psのSlackを備えたフリップフロップ回路FF05に対し、遅延時間２０psの遅延セルｃｄ５が挿入されるため、フリップフロップ回路FF05のSlackがマイナスの値となり、セットアップエラーが発生してしまう。
【００２０】
上記のような、ホールドエラーの修正方法に関連する内容が特許文献１〜３に開示されている。
【特許文献１】特開２００３−１６２５５６号公報
【特許文献２】特開２００３−２５６４８８号公報
【特許文献３】特開２０００−２５０９６３号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】
上記のように、階層化設計手法でホールドエラーを調整する場合、最上位階層にのみ遅延セルを挿入しても、ホールドエラーを解消することができないことがある。
また、最上位階層に同一構成のレイアウトブロックが複数使用されている場合、ホールドエラーを解消するために、いずれか一つのレイアウトブロックに着目して当該レイアウトブロック内に遅延セルを挿入すると、すべてのレイアウトブロックに同様な遅延セルが挿入される。
【００２２】
すると、他のレイアウトブロックを通るパスでセットアップエラーが発生してしまい、これらを再調整するための工数が増大するという問題点がある。
この発明の目的は、階層化設計手法で設計される集積回路のホールドエラー及びセットアップエラーを確実に解消し得るタイミングエラー修正方法を提供することにある。
【課題を解決するための手段】
【００２３】
上記目的は、最上位階層に複数の同一レイアウトブロックを含む集積回路のレイアウトにタイミング調整用セルを挿入してタイミングエラーを修正するタイミングエラー修正方法であって、各レイアウトブロックを構成するセルにおいて、タイミングエラーが発生するまでの余裕度を各レイアウトブロックで対応するセルの最悪条件に揃え、各余裕度の範囲で前記タイミング調整用セルを挿入してタイミングエラーを調整するタイミングエラー修正方法により達成される。
【００２４】
また、上記目的は、最上位階層に複数の同一レイアウトブロックを含む集積回路のレイアウトに遅延セルを挿入してホールドエラーを修正するタイミングエラー修正方法であって、タイミングエラーが発生しているパスを含むレイアウトブロックを固有化し、固有化したレイアウトブロックに遅延セルを挿入してホールドエラーを調整するタイミングエラー修正方法により達成される。
【００２５】
また、上記目的は、最上位階層に複数の同一レイアウトブロックを含む集積回路のレイアウトに遅延セルを挿入してホールドエラーを修正するタイミングエラー修正方法であって、タイミングエラーが発生しているパスを含むレイアウトブロック数を判定し、そのレイアウトブロック数が多いとき、各レイアウトブロックを構成するセルにおいて、セットアップエラーが発生するまでの余裕度を各レイアウトブロックで対応するセルの最悪条件に揃え、各余裕度の範囲で各レイアウトブロックに遅延セルを挿入してホールドエラーを調整し、前記レイアウトブロック数が少ないとき、タイミングエラーが発生しているパスを含むレイアウトブロックを固有化し、固有化したレイアウトブロックに前記遅延セルを挿入するタイミングエラー修正方法により達成される。
【発明の効果】
【００２６】
本発明によれば、階層化設計手法で設計される集積回路のホールドエラー及びセットアップエラーを確実に解消し得るタイミングエラー修正方法を提供することができる。
【発明を実施するための最良の形態】
【００２７】
以下、この発明を具体化した一実施の形態を説明する。前記従来例と同一構成部分は同一符号を付して説明する。
図１は、図５に示す従来例について、ホールドエラーを解消するために、図７と同様な遅延セル（タイミング調整用セル）ｃｄ１〜ｃｄ３を挿入した状態を示す。
【００２８】
すなわち、パスＡはホールドエラーを解消するために４５psの遅延時間が必要であるが、セットアップエラーを発生しない範囲で最大となる遅延時間３０ｐｓの遅延セルｃｄ２が挿入されている。従って、パスＡではホールドエラーが解消されておらず、さらに１５psの調整時間が必要となる。
【００２９】
また、パスＢはホールドエラーを解消するために１４０psの遅延時間が必要であるが、セットアップエラーを発生しない範囲で最大となる遅延時間１２０psの遅延セルｃｄ３が挿入されている。従って、パスＢではホールドエラーが解消されておらず、さらに２０psの調整時間が必要となる。
【００３０】
また、パスＣはホールドエラーを解消するために１２０psの遅延時間が必要であり、遅延時間１２０psの遅延セルｃｄ１が挿入されている。従って、パスＣではホールドエラーが解消されている。
【００３１】
ここで、パスＡ，Ｂのホールドエラーを解消するために、次のような処理を行う。前記遅延セルｃｄ１〜ｃｄ３を挿入した状態で、図７に示すレイアウトブロック１ａ，１ｂ内の各セルのSlack（セットアップエラーが発生するまでの遅延マージン時間、余裕度）を、各レイアウトブロック１ａ，１ｂで対応するセルの最も条件の悪いものに揃える。
【００３２】
すなわち、セルｃ７，ｃ１１のSlackは、セルｃ７のSlackである「０」に揃え、セルｃ８，ｃ１２はセルｃ８のSlackである「２０」に揃え、セルｃ９，ｃ１３はセルｃ９のSlackである「０」に揃える。また、セルｃ１０，ｃ１４は、各セルピンにおいて条件の悪いものに揃えて、「１５」「２０」とする。
【００３３】
フリップフロップ回路FF01〜FF08は、それぞれ条件の悪いものに揃えて、フリップフロップ回路FF01，FF05のSlackを「１５」、フリップフロップ回路FF02，FF06のSlackを「０」とする。また、フリップフロップ回路FF03，FF07のSlackを「５０」、フリップフロップ回路FF04，FF08のSlackを「０」とする。
【００３４】
このような処理により、各レイアウトブロック１ａ，１ｂで対応するセルのSlackが揃えられる。
次いで、パスＡ，Ｂのホールドエラーを解消するために、レイアウトブロック内に遅延セルを挿入する。このとき、レイアウトブロック内の各セルのSlackが「０」未満とならないように遅延セルを挿入する。
【００３５】
すなわち、図２に示すように、レイアウトブロック１ａにおいて、セルｃ１０とフリップフロップ回路FF01との間に１５psの遅延時間を備えた遅延セルｃｄ６を挿入し、セルｃ８とセルｃ１０との間に５psの遅延時間を備えた遅延セルｃｄ７を挿入する。
【００３６】
すると、パスＡでは１５psの遅延時間が加えられて、ホールドエラーが解消され、パスＢでは２０psの遅延時間が加えられて、ホールドエラーが解消される。
このとき、レイアウトブロック１ｂにおいても同様な遅延セルｃｄ８，ｃｄ９が挿入されるが、Slackが「０」未満となる経路は存在しないので、セットアップエラーは発生しない。従って、上記のような処理を行うことにより、すべてのパスでホールドエラーを解消しながら、セットアップエラーの発生を防止することができる。
【００３７】
上記のように、すべてのレイアウトブロックに共通の遅延セルを挿入する処理を示したが、多数のレイアウトブロックのうちの一部でのみホールドエラーが発生する場合には、当該レイアウトブロックだけに遅延セルを挿入して、他のレイアウトブロックとは異なる構成とする処理を行ってもよい。
【００３８】
図７に示すように、遅延セルｃｄ１〜ｃｄ３を挿入して、レイアウトブロック１ｂのパスＣではホールドエラーが解消され、レイアウトブロック１ａのパスＡ，Ｂのみでホールドエラーが解消されていないとき、図３に示すように、レイアウトブロック１ａのみに遅延セルｃｄ１０を挿入する。
【００３９】
すなわち、セルｃ１０とフリップフロップ回路FF01との間に遅延時間２０psの遅延セルｃｄ１０を挿入すると、パスＡ，Ｂのホールドエラーがともに解消され、セットアップエラーも発生しない。
【００４０】
レイアウト装置による集積回路の設計時には、上記のような２つの処理方法を、ホールドエラーが発生しているパスの状況に応じて選択して使用する。そのホールドエラー調整方法を図４に従って説明する。
【００４１】
最上位階層のレイアウトが終了し、ホールドエラーの調整が開始されると、まずホールドエラーが発生しているパス、すなわち調整対象となるパスが存在するか否かを判定する（ステップ１）。
【００４２】
ステップ１において、調整対象となるパスが存在する場合には、図１に示すように、最上位階層に遅延セルを挿入して、ホールドタイミングを調整する（ステップ２）。
次いで、ステップ２の処理によりすべてのパスでホールドエラーが解消されたか否かを判定する（ステップ３）。ステップ３において、すべてのパスでホールドエラーが解消されている場合には、ステップ１に復帰する。
【００４３】
ホールドエラーが解消されていない場合には、ホールドエラーが発生しているパスの状況に応じてその後の処理を選択する（ステップ４）。多数のレイアウトブロックでホールドエラーが発生している場合には、ステップ５に移行して図１及び図２に示す処理を行う。
【００４４】
すなわち、各レイアウトブロックにおいて対応するセルのセルピンにおけるSlackを比較し、各セルには対応するセルの中で最も条件の悪いSlackを設定する。そして、各Slackを超えない範囲でレイアウトブロック内に遅延セルを挿入してホールドエラーを調整する（ステップ６）。次いで、ホールドエラーの調整量を見積もり、その結果を出力して（ステップ７）、ステップ１に復帰する。
【００４５】
ステップ４において、少数のレイアウトブロックでのみホールドエラーが発生している場合には、ステップ８に移行して、図３に示す処理を行う。
すなわち、ホールドエラーが発生しているレイアウトブロックのみを固有化し、当該レイアウトブロックのみに遅延セルを挿入して（ステップ９）、ステップ１に復帰する。
【００４６】
ステップ１において、調整対象パスが存在しない場合には、その判定結果を出力して（ステップ１０）ホールドエラーの調整処理を終了する。
上記のようなホールドエラーの調整方法では、次に示す作用効果を得ることができる。
（１）最上位階層に遅延セルを挿入してホールドエラーを調整しても、ホールドエラーを解消できないとき、最上位階層に使用されるレイアウトブロック内に遅延セルを挿入して、セットアップエラーを発生させることなくホールドエラーを解消することができる。
（２）レイアウトブロック内に遅延セルを挿入するとき、各レイアウトブロックの対応するセルのSlackを、最も条件の悪いものに揃え、その状態で各セルのSlackが「０」未満とならない範囲で遅延セルを挿入するので、ホールドエラーを解消しながら、セットアップエラーを発生させない遅延セルの挿入処理を容易に行うことができる。
（３）ホールドエラーが発生するパスを含むレイアウトブロックが少数である場合には、当該レイアウトブロックを固有化し、そのレイアウトブロックにのみ遅延セルを挿入することができる。従って、すべてのレイアウトブロックに遅延セルを挿入する場合に比して工数を削減することができる。
【００４７】
上記実施の形態は、次に示すように変更してもよい。
・上記実施の形態ではホールドエラーを調整するために遅延セルを挿入したが、セットアップエラーを調整するために、ホールドエラーを発生しない範囲でデータの転送タイミングを調整するリピーターセルあるいはドライバーセルを挿入する場合にも、上記の方法を応用することができる。
【図面の簡単な説明】
【００４８】
【図１】一実施の形態のタイミングエラー修正方法を示す説明図である。
【図２】一実施の形態のタイミングエラー修正方法を示す説明図である。
【図３】一実施の形態のタイミングエラー修正方法を示す説明図である。
【図４】一実施の形態のタイミングエラー修正方法を示すフローチャートである。
【図５】従来例のタイミングエラー修正方法を示す説明図である。
【図６】（ａ）〜（ｃ）はホールドエラー及びセットアップエラーの概念を示す説明図である。
【図７】従来例のタイミングエラー修正方法を示す説明図である。
【図８】従来例のタイミングエラー修正方法を示す説明図である。
【符号の説明】
【００４９】
１ａ，１ｂ        レイアウトブロック
ｃｄ１〜ｃｄ１０      タイミング調整用セル（遅延セル）
【図１】
2006155056.tif 000003
【図２】
2006155056.tif 000004
【図３】
2006155056.tif 000005
【図４】
2006155056.tif 000006
【図５】
2006155056.tif 000007
【図６】
2006155056.tif 000008
【図７】
2006155056.tif 000009
【図８】
2006155056.tif 000010