(57)【要約】【課題】ゲーテッドクロック回路を含む半導体集積回路のレイアウト設計において、ネットリストを変更することなしに、クロックツリー回路の規模を削減し、クロック信号の遅延量を低減する。【解決手段】このレイアウト設計方法は、制御信号の状態に従ってクロック信号を出力する複数の第１の回路と、各群がそれぞれ１つの第１の回路から供給されるクロック信号に同期して動作する複数群の第２の回路とを含むネットリストをコンピュータに入力するステップ（ａ）と、各群の第２の回路がそれぞれ１つの第１の回路から所定の距離内に配置されるように、ネットリストに含まれている回路の配置を行うステップ（ｂ）と、所定の条件の下で複数の第１の回路にクロック信号が供給されるように、クロックツリー回路の配置を行うステップ（ｃ）と、これらの回路の配線を行うステップ（ｄ）とを具備する。【選択図】  図１
2004207530.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを用いて半導体集積回路のレイアウトを設計する方法であって、
制御信号とクロック信号とを入力し、制御信号の状態に従ってクロック信号を出力する複数の第１の回路と、各群がそれぞれ１つの第１の回路から供給されるクロック信号に同期して動作する複数群の第２の回路とを含むネットリストをコンピュータに入力するステップ（ａ）と、
前記ネットリストに基づいて、各群の第２の回路がそれぞれ１つの第１の回路から所定の距離内に配置されるように、前記ネットリストに含まれている回路の配置を行うステップ（ｂ）と、
所定の条件の下で前記複数の第１の回路にクロック信号が供給されるように、クロックツリー回路の配置を行うステップ（ｃ）と、
前記ネットリストに含まれている回路及び前記クロックツリー回路の配線を行うステップ（ｄ）と、
を具備するレイアウト設計方法。
【請求項２】
ステップ（ｄ）において前記ネットリストに含まれている回路及び前記クロックツリー回路の配線が可能であったか否かを判断するステップ（ｅ）と、
前記ネットリストに含まれている回路及び前記クロックツリー回路の配線が不可能であったと判断された場合に、前記ネットリストに含まれている回路と前記クロックツリー回路との内の一方の配置を変更するステップ（ｆ）と、
をさらに具備する請求項１記載のレイアウト設計方法。
【請求項３】
半導体集積回路であって、
制御信号とクロック信号とを入力し、制御信号の状態に従ってクロック信号を出力する複数の第１の回路と、
各群がそれぞれ１つの第１の回路から供給されるクロック信号に同期して動作する複数群の第２の回路であって、各群の第２の回路がそれぞれ１つの第１の回路から所定の距離内に配置されている前記複数群の第２の回路と、
前記複数の第１の回路にクロック信号を供給するクロックツリー回路と、
を具備する半導体集積回路。
【請求項４】
前記複数の第１の回路の各々が、ＡＮＤゲート、ＮＡＮＤゲート、ＯＲゲート、又は、ＮＯＲゲートを含む、請求項３記載の半導体集積回路。
【請求項５】
前記複数群の第２の回路の内の少なくとも１つの回路が、フリップフロップを含む、請求項３又は４記載の半導体集積回路。
【請求項６】
前記クロックツリー回路が、複数のバッファ又は複数のインバータを含む、請求項３〜５のいずれか１項記載の半導体集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ゲーテッドクロック回路を含む半導体集積回路のレイアウト設計方法に関し、さらに、そのようなレイアウト設計方法を用いて製造された半導体集積回路に関する。
【０００２】
【従来の技術】
ゲーテッドクロック回路を含む半導体集積回路のレイアウト設計においては、ゲーテッドクロック回路の前後にクロックツリー回路を配置するのが一般である。クロックツリー回路とは、入力されるクロック信号を複数のクロック信号に分岐して出力するために用いられる複数のバッファ又は複数のインバータの集合体のことをいう。
【０００３】
このような従来のレイアウト設計によれば、ゲーテッドクロック回路の前後において別々にクロックツリー回路を構成した後に、最終的に分岐されたクロック信号のスキュー調整を行うので、クロックツリー回路の規模が大きくなり易く、また、クロック信号の遅延量が大きくなり易い。さらに、クロックツリー回路をインバータで構成する場合には、クロックツリー回路の各系統においてインバータを偶数個ずつ配置しなければならないので、インバータの数が多くなり易いという問題があった。
【０００４】
ところで、下記の特許文献１には、クロックラインの消費電力を抑えるゲーテッドクロック回路のクロック信号が供給されるフリップフロップ間の遅延時間差（スキュー）をなくすことができる半導体集積回路及びその設計方法が開示されている。この設計方法によれば、ルートバッファと、該ルートバッファから順に分岐した複数段のバッファと、最終段多入力ゲート（ＮＯＲゲート）との組合せからなるクロックツリー構造を持つゲーテッドクロック回路を含む半導体集積回路の設計において、その接続関係は、全セルの配置後に生成される。しかしながら、このような設計を行うためには、自動配置配線ツールにおいて用いるネットリストを変更しなければならないので、手間がかかる。
【０００５】
【特許文献１】
特開平１０−３０８４５０号公報  （第１頁、図１）
【０００６】
【発明が解決しようとする課題】
そこで、上記の点に鑑み、本発明は、ゲーテッドクロック回路を含む半導体集積回路のレイアウト設計において、ネットリストを変更することなしに、クロックツリー回路の規模を削減し、クロック信号の遅延量を低減することを目的とする。さらに、本発明は、そのようなレイアウト設計方法を用いて製造された半導体集積回路を提供することを目的とする。
【０００７】
【課題を解決するための手段】
以上の課題を解決するため、本発明に係るレイアウト設計方法は、コンピュータを用いて半導体集積回路のレイアウトを設計する方法であって、制御信号とクロック信号とを入力し、制御信号の状態に従ってクロック信号を出力する複数の第１の回路と、各群がそれぞれ１つの第１の回路から供給されるクロック信号に同期して動作する複数群の第２の回路とを含むネットリストをコンピュータに入力するステップ（ａ）と、ネットリストに基づいて、各群の第２の回路がそれぞれ１つの第１の回路から所定の距離内に配置されるように、ネットリストに含まれている回路の配置を行うステップ（ｂ）と、所定の条件の下で複数の第１の回路にクロック信号が供給されるように、クロックツリー回路の配置を行うステップ（ｃ）と、ネットリストに含まれている回路及びクロックツリー回路の配線を行うステップ（ｄ）とを具備する。
【０００８】
このレイアウト設計方法は、ステップ（ｄ）においてネットリストに含まれている回路及びクロックツリー回路の配線が可能であったか否かを判断するステップ（ｅ）と、ネットリストに含まれている回路及びクロックツリー回路の配線が不可能であったと判断された場合に、ネットリストに含まれている回路とクロックツリー回路との内の一方の配置を変更するステップ（ｆ）とをさらに具備するようにしても良い。
【０００９】
また、本発明に係る半導体集積回路は、制御信号とクロック信号とを入力し、制御信号の状態に従ってクロック信号を出力する複数の第１の回路と、各群がそれぞれ１つの第１の回路から供給されるクロック信号に同期して動作する複数群の第２の回路であって、各群の第２の回路がそれぞれ１つの第１の回路から所定の距離内に配置されている複数群の第２の回路と、複数の第１の回路にクロック信号を供給するクロックツリー回路とを具備する。
【００１０】
ここで、複数の第１の回路の各々が、ＡＮＤゲート、ＮＡＮＤゲート、ＯＲゲート、又は、ＮＯＲゲートを含んでも良いし、複数群の第２の回路の内の少なくとも１つの回路がフリップフロップを含んでも良いし、クロックツリー回路が複数のバッファ又は複数のインバータを含んでも良い。
【００１１】
以上の様に構成した本発明によれば、ゲーテッドクロック回路を含む半導体集積回路のレイアウト設計において、各群の第２の回路がそれぞれ１つの第１の回路（ゲーテッドクロック回路）から所定の距離内に配置されるようにしたので、ネットリストを変更することなしに、クロックツリー回路の規模を削減し、クロック信号の遅延量を低減することができる。
【００１２】
【発明の実施の形態】
以下、図面に基づいて、本発明の実施の形態について説明する。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
図１は、本発明の一実施形態に係る半導体集積回路のレイアウト設計方法を示すフローチャートである。
まず、ステップＳ１において、半導体集積回路の回路設計を行い、ネットリストを作成する。ここでは、図２に示すような回路を含む半導体集積回路のレイアウトを設計するものとする。なお、図２に示す回路においては、クロックツリー回路は含まれていない。
【００１３】
図２に示すように、クロック信号が供給されるクロック信号入力端子１は、ＡＮＤゲート５０及び６０の一方の入力端子に接続され、制御信号が供給される制御信号入力端子２は、ＡＮＤゲート５０及び６０の他方の入力端子に接続されている。ＡＮＤゲート５０及び６０は、制御信号がハイレベルであるときに、入力されたクロック信号をそのまま出力し、制御信号がローレベルであるときに、出力をローレベルとすることにより、ゲーテッドクロック回路として動作する。なお、ゲーテッドクロック回路としては、ＡＮＤゲートの他に、ＮＡＮＤゲート、ＯＲゲート、又は、ＮＯＲゲート等を使用することができる。
【００１４】
ＡＮＤゲート５０の出力端子は、一群のフリップフロップ５１〜５４のクロック信号入力端子Ｃに接続されている。同様に、ＡＮＤゲート６０の出力端子は、一群のフリップフロップ６１〜６４のクロック信号入力端子Ｃに接続されている。これらのフリップフロップは、クロック信号入力端子Ｃに供給されたクロック信号に同期して、データ入力端子Ｄに供給されたデータをラッチして出力端子Ｑから出力する。
【００１５】
ネットリストは、上記のＡＮＤゲートやフリップフロップ等を半導体集積回路において形成するための複数のセルに関する情報と、これらのセル間の配線に関する情報とを含んでいる。
【００１６】
再び図１を参照すると、ステップＳ２において、作成されたネットリストをコンピュータに入力する。次に、ステップＳ３において、コンピュータ上で動作する自動配置配線ツールを用いて、ネットリストに基づいてセルの初期配置を行う。その際に、１つのＡＮＤゲートからクロック信号を供給される一群のフリップフロップが、そのＡＮＤゲートから所定の距離内に配置されるように、各セルをレイアウト領域内に配置する。
【００１７】
ステップＳ４において、コンピュータ上で動作するクロックツリー生成ツールを用いて、複数の第１の回路に規定範囲内の遅延時間を伴ってクロック信号が供給されるように、クロックツリー回路を生成する。これにより、クロックツリー回路を構成する複数のバッファ又はインバータのセルが、レイアウト領域内に配置される。
【００１８】
ステップＳ５において、ネットリストに含まれている回路及びクロックツリー回路の配線を行う。ステップＳ６において、配線が可能であったか否かについて判断し、配線が可能であった場合には、半導体集積回路のレイアウト設計を終了する。一方、配線が不可能であった場合には、ステップＳ７に移行して、ネットリストに含まれている回路とクロックツリー回路との内の少なくとも一方の配置を変更する。その後、再びステップＳ５に移行して、ネットリストに含まれている回路及びクロックツリー回路の配線を行う。
【００１９】
図３は、ネットリストに含まれている回路とクロックツリー回路とを含む全体回路を示す回路図である。図３に示すように、クロック信号入力端子１には、最初にルートバッファ１１の入力端子が接続され、ルートバッファ１１の出力端子には、複数のバッファ２１及び２２の入力端子が接続され、このようにしてクロック信号が段階的に分岐される。最終段のバッファ４１の出力端子は、ＡＮＤゲート５０及び６０の一方の入力端子に接続されている。
【００２０】
本実施形態によれば、１つのＡＮＤゲートからクロック信号を供給される一群のフリップフロップが、そのＡＮＤゲートから所定の距離内に配置されて回路ブロックを形成する。即ち、図３に示すように、ＡＮＤゲート５０とフリップフロップ５１〜５４とが回路ブロック５５を形成し、ＡＮＤゲート６０とフリップフロップ６１〜６４とが回路ブロック６５を形成する。
【００２１】
図４は、ネットリストに含まれている回路とクロックツリー回路との配置を示すレイアウト図である。図４に示すように、回路ブロック５５においては、フリップフロップ５１〜５４がＡＮＤゲート５０から所定の距離内に配置され、回路ブロック６５においては、フリップフロップ６１〜６４がＡＮＤゲート６０から所定の距離内に配置されている。
【００２２】
これにより、クロックツリー回路は、ゲーテッドクロック回路（ＡＮＤゲート）の入力側だけに配置されるので、クロックツリー回路を構成するバッファ又はインバータの数を減少させることができる。その結果、クロック信号の遅延時間や消費電流が低減され、基板面積も小さくて済む。特に、クロックツリー回路をインバータで構成する場合には、インバータを偶数個ずつ配置する必要があるので、クロックツリー回路をゲーテッドクロック回路の入力側だけに配置することは、インバータの数を減少させるために大いに有効である。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るレイアウト設計方法を示すフロー図。
【図２】レイアウト設計すべき半導体集積回路を示す回路図。
【図３】ネットリストの回路とクロックツリー回路とを示す回路図。
【図４】ネットリストの回路とクロックツリー回路との配置を示す図。
【符号の説明】
１  クロック信号入力端子、  ２  制御信号入力端子、  ５０、６０  ＡＮＤゲート、  ５１〜５４、６１〜６４  フリップフロップ、  ５５、６５  回路ブロック
【図１】
2004207530.tif 000003
【図２】
2004207530.tif 000004
【図３】
2004207530.tif 000005
【図４】
2004207530.tif 000006