(57)【要約】【課題】ＲＡＭ等のメモリセルとフリップフロップ等の順序論理回路とを含む半導体集積回路のレイアウト設計において、回路規模を削減しながらクロック信号のスキューを容易に合わせる。【解決手段】このレイアウト設計方法は、半導体集積回路の回路情報を表すネットリストをコンピュータに入力するステップ（ａ）と、ネットリストに含まれている回路の配置を行うステップ（ｂ）と、順序論理回路のスキュー合わせ込み条件に基づいて、順序論理回路に接続される第１のクロックツリー回路の配置を行うステップ（ｃ）と、メモリセルアレイのスキュー合わせ込み条件に基づいて、メモリセルアレイに接続される第２のクロックツリー回路の配置を行うステップ（ｄ）と、ネットリストに含まれている回路及び第１及び第２のクロックツリー回路の配線を行うステップ（ｅ）とを具備する。【選択図】  図１
2004335589.tif 000002
【特許請求の範囲】
【請求項１】
メモリセルアレイと順序論理回路とを含む半導体集積回路のレイアウトをコンピュータを用いて設計する方法であって、
前記半導体集積回路の回路情報を表すネットリストをコンピュータに入力するステップ（ａ）と、
前記ネットリストに含まれている回路の配置を行うステップ（ｂ）と、
前記順序論理回路のスキュー合わせ込み条件に基づいて、前記順序論理回路に接続される第１のクロックツリー回路の配置を行うステップ（ｃ）と、
前記メモリセルアレイのスキュー合わせ込み条件に基づいて、前記メモリセルアレイに接続される第２のクロックツリー回路の配置を行うステップ（ｄ）と、前記ネットリストに含まれている回路及び前記第１及び第２のクロックツリー回路の配線を行うステップ（ｅ）と、
を具備するレイアウト設計方法。
【請求項２】
ステップ（ｃ）が、前記第１のクロックツリー回路の配置を行った後で、前記順序論理回路におけるクロック信号のスキューが所定値以下であるか否かをチェックし、スキューが所定値以下でない場合に前記第１のクロックツリー回路の再配置を行うことを含み、
ステップ（ｄ）が、前記第２のクロックツリー回路の配置を行った後で、少なくとも前記メモリセルアレイにおけるクロック信号のスキューが所定値以下であるか否かをチェックし、スキューが所定値以下でない場合に前記第２のクロックツリー回路の再配置を行うことを含む、請求項１記載のレイアウト設計方法。
【請求項３】
請求項１又は２記載のレイアウト設計方法を用いて製造された半導体集積回路。
【請求項４】
前記メモリセルアレイが、ＲＡＭのメモリセルアレイを含む、請求項３記載の半導体集積回路。
【請求項５】
前記順序論理回路が、フリップフロップを含む、請求項３又は４記載の半導体集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリセルアレイとフリップフロップ等の順序論理回路とを含むＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ＩＣ：特定用途向けＩＣ）等の半導体集積回路のレイアウト設計方法に関し、さらに、そのようなレイアウト設計方法を用いて製造された半導体集積回路に関する。
【０００２】
【従来の技術】
ＲＡＭ等のメモリセルアレイとフリップフロップ等の順序論理回路とを含む半導体集積回路のレイアウト設計においては、ＲＡＭ等のセルとフリップフロップ等のセルとを区別せずに、一律にスキューを削減するようにしていた。ここで、クロックツリー回路とは、入力されるクロック信号を複数のクロック信号に分岐して出力するために用いられる複数のバッファ又は複数のインバータの集合体のことをいう。
【０００３】
具体的には、図２に示すように、クロック信号が供給されるクロック信号入力端子（パッド）に接続された入力バッファ１と、入力バッファ１からクロック信号が供給されて動作する一群のフリップフロップ１１〜１４と、ＲＡＭ２１及び２２とを含む半導体集積回路のレイアウト設計を行う場合について考える。
【０００４】
コンピュータを用いて、半導体集積回路に含まれる複数の回路の情報を表すネットリストに基づいてこれらの回路の配置を行った後で、ＣＴＳ（クロックツリーシンセシス）と呼ばれる機能を用いて、図５に示すように、バッファ５１〜５７を含むクロックツリー回路５０を挿入する。
【０００５】
図６は、ネットリストに含まれている回路とクロックツリー回路の配置を示すレイアウト図である。図６に示すように、半導体基板の周辺部に並べられた複数の入出力セルの内の１つに、クロック信号の入力バッファ１が形成されている。入力バッファ１の出力端子は、バッファ５１の入力端子に接続される。バッファ５１から出力されるクロック信号は、バッファ５２及び５３を介してフリップフロップ１１及び１２のクロック信号入力端子Ｃに接続されると共に、バッファ５４及び５６の入力端子に接続される。
【０００６】
バッファ５４から出力されるクロック信号は、バッファ５５を介してフリップフロップ１３のクロック信号入力端子Ｃに接続されると共に、ＲＡＭ２１のクロック信号入力端子に接続される。また、バッファ５６から出力されるクロック信号は、バッファ５７を介してフリップフロップ１４のクロック信号入力端子Ｃに接続されると共に、ＲＡＭ２２のクロック信号入力端子に接続される。
【０００７】
しかしながら、大規模なメモリセルとフリップフロップ等との間ではクロック信号のスキューを合わせるのが困難であり、クロックツリー回路内に多数のバッファを配置する必要が生じるために、配線が複雑になったり、基板面積や消費電力が増加してしまうという問題があった。
【０００８】
ところで、下記の特許文献１には、高いクロック周波数においても、ブロック間のクロックスキューを低減して安定動作させるクロックスキュー補正回路が開示されている。しかしながら、このクロックスキュー補正回路は、可変遅延手段や可変周波数発振手段を含む位相同期ループを必要とするので、回路規模が大きくなってしまう。
【０００９】
【特許文献１】
特開平９−１４８９１９号公報  （第１頁、図１）
【００１０】
【発明が解決しようとする課題】
そこで、上記の点に鑑み、本発明は、ＲＡＭ等のメモリセルとフリップフロップ等の順序論理回路とを含む半導体集積回路のレイアウト設計において、回路規模を削減しながらクロック信号のスキューを容易に合わせることを目的とする。さらに、本発明は、そのようなレイアウト設計方法を用いて製造された半導体集積回路を提供することを目的とする。
【００１１】
【課題を解決するための手段】
以上の課題を解決するため、本発明に係るレイアウト設計方法は、メモリセルアレイと順序論理回路とを含む半導体集積回路のレイアウトをコンピュータを用いて設計する方法であって、半導体集積回路の回路情報を表すネットリストをコンピュータに入力するステップ（ａ）と、ネットリストに含まれている回路の配置を行うステップ（ｂ）と、順序論理回路のスキュー合わせ込み条件に基づいて、順序論理回路に接続される第１のクロックツリー回路の配置を行うステップ（ｃ）と、メモリセルアレイのスキュー合わせ込み条件に基づいて、メモリセルアレイに接続される第２のクロックツリー回路の配置を行うステップ（ｄ）と、ネットリストに含まれている回路及び第１及び第２のクロックツリー回路の配線を行うステップ（ｅ）とを具備する。
【００１２】
ここで、ステップ（ｃ）が、第１のクロックツリー回路の配置を行った後で、順序論理回路におけるクロック信号のスキューが所定値以下であるか否かをチェックし、スキューが所定値以下でない場合に第１のクロックツリー回路の再配置を行うことを含み、ステップ（ｄ）が、第２のクロックツリー回路の配置を行った後で、少なくともメモリセルアレイにおけるクロック信号のスキューが所定値以下であるか否かをチェックし、スキューが所定値以下でない場合に第２のクロックツリー回路の再配置を行うことを含むようにしても良い。
【００１３】
また、本発明に係る半導体集積回路は、上記のレイアウト設計方法を用いて製造される。ここで、メモリセルアレイが、ＲＡＭのメモリセルアレイを含んでも良いし、順序論理回路が、フリップフロップを含んでも良い。
【００１４】
以上の様に構成した本発明によれば、順序論理回路におけるクロック信号のスキュー合わせ込みとメモリセルアレイにおけるクロック信号のスキュー合わせ込みとを別々に行うので、クロックツリー回路の回路規模を削減しながらスキューを合わせることができる。その結果、配線が簡単になり、基板面積や消費電力が削減される。
【００１５】
【発明の実施の形態】
以下、図面に基づいて、本発明の実施の形態について説明する。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
図１は、本発明の一実施形態に係る半導体集積回路のレイアウト設計方法を示すフローチャートである。
【００１６】
まず、ステップＳ１において、半導体集積回路の回路設計を行い、ネットリストを作成する。ここでは、図２に示すような回路を含む半導体集積回路のレイアウトを設計するものとする。なお、図２に示す回路には、クロックツリー回路は含まれていない。
【００１７】
図２に示すように、クロック信号が供給されるクロック信号入力端子（パッド）が、入力バッファ１の入力端子に接続されている。入力バッファ１の出力端子は、順序論理回路を構成する一群のフリップフロップ１１〜１４のクロック信号入力端子Ｃに接続されると共に、メモリセルアレイをそれぞれ構成するＲＡＭ２１及び２２のクロック信号入力端子に接続されている。フリップフロップ１１〜１４の各々は、クロック信号入力端子Ｃに供給されるクロック信号に同期して、データ入力端子Ｄに供給されるデータをラッチして出力端子Ｑから出力する。
【００１８】
ネットリストは、上記の入力バッファ１やフリップフロップ１１〜１４やＲＡＭ２１及び２２等を半導体集積回路において形成するための複数のセルに関する情報と、これらのセル間の配線に関する情報とを含んでいる。
【００１９】
再び図１を参照すると、ステップＳ２において、作成されたネットリストをコンピュータに入力する。次に、ステップＳ３において、コンピュータ上で動作する自動配置配線ツールを用いて、ネットリストに基づいてセルの初期配置を行う。
【００２０】
ステップＳ４において、コンピュータ上で動作するＣＴＳ（クロックツリーシンセシス）と呼ばれる機能を用いることにより、順序論理回路のスキュー合わせ込み条件が設定されているファイルに基づいて、順序論理回路に接続される第１のクロックツリー回路３０（図３参照）の配置を行う。これにより、図３に示すように、入力バッファ１とフリップフロップ１１〜１４との間に、バッファ３１〜３３が挿入される。
【００２１】
ステップＳ５において、順序論理回路におけるクロック信号のスキューが所定値以下であるか否かをチェックし、スキューが所定値以下となっていない場合には、ステップＳ４に戻って第１のクロックツリー回路３０の再配置を行う。このようにして、順序論理回路におけるクロック信号のスキューが合わせ込まれる。
【００２２】
ステップＳ６において、ＣＴＳを用いて、メモリセルアレイのスキュー合わせ込み条件が設定されているファイルに基づいて、メモリセルアレイに接続される第２のクロックツリー回路４０（図３参照）の配置を行う。これにより、図３に示すように、入力バッファ１とＲＡＭ２１及び２２との間に、バッファ４１及び４２が挿入される。
【００２３】
ステップＳ７において、少なくともメモリセルアレイにおけるクロック信号のスキューが所定値以下であるか否かをチェックし、スキューが所定値以下となっていない場合には、ステップＳ６に戻って第２のクロックツリー回路４０の再配置を行う。このようにして、メモリセルアレイにおけるクロック信号のスキューが合わせ込まれる。なお、必要な場合には、ステップＳ７において、順序論理回路とメモリセルアレイとの両方におけるクロック信号のスキューをチェックするようにしても良い。
【００２４】
ステップＳ８において、ネットリストに含まれている回路と第１及び第２のクロックツリー回路の配線を行う。なお、配線が不可能であった場合には、ネットリストに含まれている回路と第１及び第２のクロックツリー回路との内のいずれかの配置を変更する。その後、再びステップＳ４に移行して、クロック信号のスキューの合わせ込みを行う。
【００２５】
図４は、ネットリストに含まれている回路と第１及び第２のクロックツリー回路の配置を示すレイアウト図である。図４に示すように、半導体基板の周辺部に並べられた複数の入出力セルの内の１つに、クロック信号の入力バッファ１が形成されている。入力バッファ１の出力端子に接続された配線は、順序論理回路用とメモリセルアレイ用とに分岐される。
【００２６】
順序論理回路用の配線は、バッファ３１の入力端子に接続され、バッファ３１の出力端子は、バッファ３２及び３３の入力端子に接続される。バッファ３２の出力端子は、フリップフロップ１１及び１２のクロック信号入力端子Ｃに接続され、バッファ３３の出力端子は、フリップフロップ１３及び１４のクロック信号入力端子Ｃに接続される。
【００２７】
メモリセルアレイ用の配線は、バッファ４１及び４２の入力端子に接続される。バッファ４１の出力端子は、ＲＡＭ２１のクロック信号入力端子に接続され、バッファ４２の出力端子は、ＲＡＭ２２のクロック信号入力端子に接続される。
【００２８】
これにより、クロック信号のスキューを、順序論理回路系とメモリセルアレイ系とに分けて合わせ込むことが可能となるので、図６に示す従来のレイアウト設計方法によるレイアウトと比較して、クロックツリー回路を構成するバッファ又はインバータの数を減少させることができる。その結果、クロック信号の遅延時間や消費電流が低減され、基板面積も小さくて済む。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るレイアウト設計方法を示すフロー図。
【図２】レイアウト設計対象となる回路の構成を示す図。
【図３】本発明の一実施形態による回路の構成を示す図。
【図４】本発明の一実施形態による回路の配置を示す図。
【図５】従来のレイアウト設計方法による回路の構成を示す図。
【図６】従来のレイアウト設計方法による回路の配置を示す図。
【符号の説明】
１  入力バッファ、  １１〜１４  フリップフロップ、  ２１、２２  ＲＡＭ、  ３０  第１のクロックツリー回路、  ３１〜３３  バッファ、  ４０  第２のクロックツリー回路、  ４１、４２  バッファ
【図１】
2004335589.tif 000003
【図２】
2004335589.tif 000004
【図３】
2004335589.tif 000005
【図４】
2004335589.tif 000006
【図５】
2004335589.tif 000007
【図６】
2004335589.tif 000008