(57)【要約】    【課題】      クロック信号の分配において低消費電力化を図り、クロック信号の振幅を補償しつつ、分配経路毎のクロック信号の遅延時間を均一化することができる半導体集積回路の製造方法を提供する。    【解決手段】  クロック信号分配回路を備えた半導体集積回路の製造方法において、回路セルを配置（Ｓ１）後、駆動能力値及び駆動する配線のスリュー値を規定値以下とする駆動可能容量値を算出（Ｓ２）し、この駆動可能容量に基づき回路セル、ドライブ用バッファ、ルートバッファのそれぞれを順次配置（Ｓ４〜Ｓ１４）し、クロック信号の分配経路を構築する。  【選択図】      図１
2005191389.tif 000002
【特許請求の範囲】
【請求項１】
複数の回路セルを配置する工程と、
前記複数の回路セルにクロック信号を供給する第１のドライブ用バッファにおいて、駆動能力値及び駆動する配線のスリュー値が規定値以下になる駆動可能容量値を算出する工程と、
前記駆動可能容量値を越える場合、前記複数の回路セルを駆動可能な回路セル数毎に分割する工程と、
前記第１のドライブ用バッファを配置する工程と、
前記回路セルの第１の端子容量値を算出する工程と、
前記第１のドライブ用バッファから前記回路セルまでの第１の配線容量値を算出する工程と、
前記第１の端子容量値と前記第１の配線容量値との和が前記駆動可能容量値と同等の場合、前記第１のドライブ用バッファの配置位置を決定する工程と、
前記第１のドライブ用バッファを駆動する第２のドライブ用バッファを配置する工程と、
前記第１のドライブ用バッファの第２の端子容量値を算出する工程と、
前記第２のドライブ用バッファから前記第１のドライブ用バッファまでの第２の配線容量値を算出する工程と、
前記第２の端子容量値と前記第２の配線容量値との和が前記駆動可能容量値と同等の場合、前記第２のドライブ用バッファの配置位置を決定する工程と、
前記第２のドライブ用バッファの駆動可能容量値と前記第２のドライブ用バッファを駆動するルートバッファの駆動可能容量値とが同等の場合、前記ルートバッファを配置する工程と、
を備えたことを特徴とする半導体集積回路の製造方法。
【請求項２】
前記ルートバッファを配置する工程は、前記ルートバッファと前記第２のドライブ用バッファとが置き換え可能になるまで、前記第１のドライブ用バッファの配置位置を決定する工程以降の、前記第２のドライブ用バッファを配置する工程、前記第２の端子容量値を算出する工程、前記第２の配線容量値を算出する工程、前記第２のドライブ用バッファの配置位置を決定する工程のそれぞれを順次繰り返し行う工程であることを特徴とする請求項１記載の半導体集積回路の製造方法。
【請求項３】
前記第２のドライブ用バッファの配置位置を決定する工程の後に、前記双方の駆動可能容量値が同等の場合、前記第２のドライブ用バッファをクロック切換セレクタに置き換える工程を更に備え、
前記ルートバッファを配置する工程は、前記第２のドライブ用バッファ又はクロック切換セレクタの駆動可能容量値と前記ルートバッファの駆動可能容量値とが同等の場合、前記ルートバッファを配置する工程としたことを特徴とする請求項１又は請求項２記載の半導体集積回路の製造方法。
【請求項４】
第１のドライブ用バッファを駆動する第２のドライブ用バッファにおいて、駆動能力値及び駆動する配線のスリュー値が規定値以下になる駆動可能容量値を算出する工程と、
前記第２のドライブ用バッファが駆動する第１の配線容量値及び第１の端子容量値を算出する工程と、
前記第１のドライブ用バッファが駆動する第２の配線容量値及び第２の端子容量値を算出する工程と、
前記第１及び第２の配線容量値と第１及び第２の端子容量値との和と前記駆動可能容量値とを比較し、前記容量値の和と前記駆動可能容量値とが同等の場合、前記第２のドライブ用バッファの配置位置を決定し、前記容量値の和が前記駆動可能容量値未満の場合、前記第１のドライブ用バッファを削除する工程と、
前記第２のドライブ用バッファの駆動可能容量値と前記第２のドライブ用バッファを駆動するルートバッファの駆動可能容量値とが同等の場合、前記ルートバッファを配置する工程と、
を備えたことを特徴とする半導体集積回路の製造方法。
【請求項５】
前記第２のドライブ用バッファの配置位置を決定する工程の後に、前記第２のドライブ用バッファをクロック切換セレクタに置き換える工程を更に備えたことを特徴とする請求項４記載の半導体集積回路の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の製造方法に関し、特にクロック信号の分配に好適なクロック信号分配回路を備えた半導体集積回路の製造方法に関する。
【背景技術】
【０００２】
近年、半導体製造技術の飛躍的な進歩に伴い、半導体集積回路の高集積化、大規模化、高速化が進んでいる。このため、半導体集積回路においては、クロック信号が供給される回路セルやクロック信号を制御する制御回路セルの配置数が増大し、又クロック信号の周波数は高速化されている。
【０００３】
クロック信号の高速化に伴い、クロック信号の「立ち上がり遅延」や「立ち下がり遅延」の鈍り、つまりスリュー値を規定し、クロック信号の振幅を補償する必要がある。スリュー値が大きく、規定を満たさない場合、クロック信号が完全に振幅しないため、ライブラリ計算値に対して前段のゲート遅延速度が速くなる可能性がある。また、回路セルの素子に正常なバイアスが印加されないことからホットキャリアが発生し、このホットキャリアによる回路セルの特性劣化や、或いはクロック信号の伝搬異常を生じる可能性がある。
【０００４】
従来、ツリー状に配列した回路セルに分配されるクロック信号の低消費電力化に最適な、クロック信号配線のツリー深さ最適化方法が提案されている（特許文献１）。この最適化方法は、図７に示すように、各種のパラメータを入力する第１のステップＳＴ１と、クロック信号配線の消費電力成分である貫通電流成分、セル内消費電流成分及び配線消費電流成分の各々についてツリー深さを変数とする式で定義する第２のステップＳＴ２と、クロック信号配線の消費電力を貫通電流成分、セル内消費電流成分及び配線消費電流成分の総和で定義する第３のステップＳＴ３と、消費電力が最小となるツリー深さを算出する第４のステップＳＴ４とを備えている。
【０００５】
また、別途、クロック信号の低消費電力化に最適な、半導体集積回路のレイアウト方法が提案されている（特許文献２）。このレイアウト方法は下記の手順を備えている。
【０００６】
まず、ルートバッファの近傍に第１のドライブ用バッファが配置される。ここで、ドライブ用バッファはツリー状に配列された順序回路にクロック信号を分配する。また、ルートバッファは、ドライブ用バッファにクロック信号を分配する、クロック信号の供給源である。
【０００７】
次に、第１のドライブ用バッファの駆動能力と駆動可能な順序回路の個数とが算出される。この算出された個数の順序回路を第１のドライブ用バッファに近いものから順次割り当て、ルートバッファから、割り当てられた順序回路までの遅延時間が算出される。
【０００８】
次に、第１のドライブ用バッファに割り当てた順序回路の領域以外の領域を対象に、ルートバッファに最も近い任意の場所に第２のドライブ用バッファが配置される。第２のドライブ用バッファは第１のドライブ用バッファにクロック信号を分配する。ルートバッファから第２のドライブ用バッファまでの距離で決まる遅延時間と第２のドライブ用バッファが駆動する順序回路の個数で決まる遅延時間との総和が、ルートバッファから第１のドライブ用バッファまでの距離で決まる遅延時間と第１のドライブ用バッファが駆動する順序回路の個数で決まる遅延時間との総和と等しくなるように、第２のドライブ用バッファに割り当てる順序回路の個数が算出される。この算出された個数の順序回路を第２のドライブ用バッファに近いものから順に割り当てる。そして、これらの手順が、未割り当ての順序回路がなくなるまで繰り返し行われる。
【特許文献１】特開平１１−８３１４号公報
【特許文献２】特許第３１８４１３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、前述の特許文献１に開示された、クロック信号配線のツリー深さ最適化方法においては、低消費電力化には有効であるものの、スリューについては考慮されていない。このため、クロック信号の周波数の高速化に伴い、クロック信号の振幅を補償することができないという問題があった。
【００１０】
一方、特許文献２に開示された、半導体集積回路のレイアウト方法は、同様に低消費電力化には有効である。しかしながら、このレイアウト方法は、ルートバッファの配置、ドライブ用バッファの配置、順序回路の配置と順を追っていく方法であり、ドライブ用バッファの負荷容量の要素となる配線容量や入力端子容量の割合がドライブ用バッファ毎に大きく異なってしまう。配線容量や入力端子容量は温度変化や電圧変化により変動し、このため、分配経路毎にクロック信号の遅延時間が変動してしまうという問題があった。
【００１１】
本発明は、かかる点に鑑みてなされたものであり、クロック信号の分配において低消費電力化を図り、クロック信号の振幅を補償しつつ、分配経路毎のクロック信号の遅延時間を均一化することができる半導体集積回路の製造方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の半導体集積回路の製造方法は、複数の回路セルを配置する工程と、前記複数の回路セルにクロック信号を供給する第１のドライブ用バッファにおいて、駆動能力値及び駆動する配線のスリュー値が規定値以下になる駆動可能容量値を算出する工程と、前記駆動可能容量値を越える場合、前記複数の回路セルを駆動可能な回路セル数毎に分割する工程と、前記第１のドライブ用バッファを配置する工程と、前記回路セルの第１の端子容量値を算出する工程と、前記第１のドライブ用バッファから前記回路セルまでの第１の配線容量値を算出する工程と、前記第１の端子容量値と前記第１の配線容量値との和が前記駆動可能容量値と同等の場合、前記第１のドライブ用バッファの配置位置を決定する工程と、前記第１のドライブ用バッファを駆動する第２のドライブ用バッファを配置する工程と、前記第１のドライブ用バッファの第２の端子容量値を算出する工程と、前記第２のドライブ用バッファから前記第１のドライブ用バッファまでの第２の配線容量値を算出する工程と、前記第２の端子容量値と前記第２の配線容量値との和が前記駆動可能容量値と同等の場合、前記第２のドライブ用バッファの配置位置を決定する工程と、前記第２のドライブ用バッファの駆動可能容量値と前記第２のドライブ用バッファを駆動するルートバッファの駆動可能容量値とが同等の場合、前記ルートバッファを配置する工程とを備えた構成を採る。
【００１３】
この製造方法によれば、駆動能力値及び駆動する配線のスリュー値が予め設定された規定値以下になる駆動可能容量値を算出し、第１の端子容量値及び第１の配線容量値を算出した上でこれらの容量値の和が駆動可能容量値と同等の場合に第１のドライブ用バッファが配置される。第２のドライブ用バッファは、第２の端子容量値と第２の配線容量値とを算出した上でこれらの容量値の和が駆動可能容量値と同等の場合に配置される。そして、ルートバッファは、その駆動可能容量値と第２のドライブ用バッファの駆動可能容量値とが同等の場合に配置される。すなわち、第１のドライブ用バッファ、第２のドライブ用バッファ、ルートバッファは、いずれも駆動可能容量値と同等の場合に配置されているので、クロック信号の周波数が高速化された場合でもスリュー値を越えることがなく、又過剰な電力消費がない。
【００１４】
更に、ルートバッファから最も離間された回路セル、第１のドライブ用バッファ、第２のドライブ用バッファを駆動可能容量値と同等の場合に順次配置し、最後にルートバッファを配置するようにしたので、ルートバッファから第２のドライブ用バッファ、第１のドライブ用バッファを通して回路セルに至るクロック信号の分配経路においてバッファ段数、配線容量、端子容量のそれぞれを均一化することができる。すなわち、温度変化や電圧変化が生じても、すべてのクロック信号の分配経路においてクロック信号の遅延時間は同様に変動するので、クロック信号の分配系統毎に遅延時間のばらつきはない。
【００１５】
本発明の半導体集積回路の製造方法は、前記ルートバッファを配置する工程は、前記ルートバッファと前記第２のドライブ用バッファとが置き換え可能になるまで、前記第１のドライブ用バッファの配置位置を決定する工程以降の、前記第２のドライブ用バッファを配置する工程、前記第２の端子容量値を算出する工程、前記第２の配線容量値を算出する工程、前記第２のドライブ用バッファの配置位置を決定する工程のそれぞれを順次繰り返し行う工程である構成を採る。
【００１６】
本発明の半導体集積回路の製造方法は、前記第２のドライブ用バッファの配置位置を決定する工程の後に、前記双方の駆動可能容量値が同等の場合、前記第２のドライブ用バッファをクロック切換セレクタに置き換える工程を更に備え、前記ルートバッファを配置する工程は、前記第２のドライブ用バッファ又はクロック切換セレクタの駆動可能容量値と前記ルートバッファの駆動可能容量値とが同等の場合、前記ルートバッファを配置する工程とした構成を採る。
【００１７】
この製造方法によれば、第２のドライブ用バッファの駆動可能容量値とクロック切換セレクタの駆動可能容量値とが同等の場合に第２のドライブ用バッファをクロック切換セレクタに置き換えられるようにしたので、論理構造を根本から変更することなく、簡易にクロック切換セレクタをクロック信号分配経路に組み込むことができる。
【００１８】
本発明の半導体集積回路の製造方法は、第１のドライブ用バッファを駆動する第２のドライブ用バッファにおいて、駆動能力値及び駆動する配線のスリュー値が規定値以下になる駆動可能容量値を算出する工程と、前記第２のドライブ用バッファが駆動する第１の配線容量値及び第１の端子容量値を算出する工程と、前記第１のドライブ用バッファが駆動する第２の配線容量値及び第２の端子容量値を算出する工程と、前記第１及び第２の配線容量値と第１及び第２の端子容量値との和と前記駆動可能容量値とを比較し、前記容量値の和と前記駆動可能容量値とが同等の場合、前記第２のドライブ用バッファの配置位置を決定し、前記容量値の和が前記駆動可能容量値未満の場合、前記第１のドライブ用バッファを削除する工程と、前記第２のドライブ用バッファの駆動可能容量値と前記第２のドライブ用バッファを駆動するルートバッファの駆動可能容量値とが同等の場合、前記ルートバッファを配置する工程とを備えた構成を採る。
【００１９】
この製造方法によれば、既に回路セルやそれにクロック信号を分配するドライブ用バッファの配置が行われている場合でも、第２のドライブ用バッファの駆動可能容量値を算出し、第１のドライブ用バッファや回路セルの容量値を算出した後、これらの容量値の和と駆動可能容量値とを比較し、これらの比較結果に基づき、第２のドライブ用バッファの配置位置の決定、第２のドライブ用バッファの削除を行うようにしたので、スリュー値を越えることがなく、過剰な電力消費がなく、そして温度変化や電圧変化が生じてもクロック信号の分配系統毎に遅延時間のばらつきが発生しない。
【００２０】
本発明の半導体集積回路の製造方法は、前記第２のドライブ用バッファの配置位置を決定する工程の後に、前記第２のドライブ用バッファをクロック切換セレクタに置き換える工程を更に備えた構成を採る。
【発明の効果】
【００２１】
本発明によれば、クロック信号の分配において低消費電力化を図り、クロック信号の振幅を補償しつつ、分配経路毎のクロック信号の遅延時間を均一化することができる半導体集積回路の製造方法を提供することができる。
【発明を実施するための最良の形態】
【００２２】
本発明の骨子は、駆動能力値及び駆動する配線のスリュー値を規定値以下とする駆動可能容量値を算出し、この駆動可能容量を基準として回路セル、ドライブ用バッファ、ルートバッファのそれぞれを順次配置し、クロック信号の分配経路を構築することである。
【００２３】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００２４】
（実施の形態１）
本発明の実施の形態１に係る半導体集積回路は、特定用途向け半導体集積回路（ASIC：application specific integrated circuit）であり、クロック信号を回路セルに分配するクロック信号分配回路を構築している。図２に示すように、クロック信号分配回路１は、クロックツリー構造において構成され、複数の回路セル１０Ａ、１０Ｂ、…、１０Ｎ、１１Ａ、１１Ｂ、…、１１Ｎ、…、１３Ａ、１３Ｂ、…、１３Ｎと、複数の回路セル１０Ａ〜１３Ｎを駆動する第１のドライブ用バッファ２０〜２３と、第１のドライブ用バッファ２０〜２３を駆動する第２のドライブ用バッファ３０及び３１と、第２のドライブ用バッファ３０及び３１を駆動するルートバッファ４０とを備えている。
【００２５】
回路セル１０Ａ〜１３Ｎは、半導体集積回路において、中央演算処理ユニット（CPU）、論理ブロック等のマクロセルや機能ブロックを構築する、繰り返しの基本単位となる回路である。回路セル１０Ａ〜１３Ｎには、例えばフリップフロップ、NANDゲート回路、インバータ等の基本論理回路を実用的に使用することができる。ここでは、フリップフロップを使用する場合について説明する。
【００２６】
回路セル１０Ａ〜１３Ｎのうち、回路セル１０Ａ〜１０Ｎは第１の回路ブロック１０を構築する。この第１の回路ブロック１０の回路セル１０Ａ〜１０Ｎには第１のドライブ用バッファ２０からクロック信号が分配され、回路セル１０Ａ〜１０Ｎは第１のドライブ用バッファ２０により駆動される。同様に、回路セル１１Ａ〜１１Ｎは第１の回路ブロック１１を構築する。この第１の回路ブロック１１の回路セル１１Ａ〜１１Ｎには第１のドライブ用バッファ２１からクロック信号が分配され、回路セル１１Ａ〜１１Ｎは第１のドライブ用バッファ２１により駆動される。回路セル１２Ａ〜１２Ｎは第１の回路ブロック１２を構築する。この第１の回路ブロック１２の回路セル１２Ａ〜１２Ｎには第１のドライブ用バッファ２２からクロック信号が分配され、回路セル１２Ａ〜１２Ｎは第１のドライブ用バッファ２２により駆動される。回路セル１３Ａ〜１３Ｎは第１の回路ブロック１３を構築する。この第１の回路ブロック１３の回路セル１３Ａ〜１３Ｎには第１のドライブ用バッファ２３からクロック信号が分配され、回路セル１３Ａ〜１３Ｎは第１のドライブ用バッファ２３により駆動される。
【００２７】
なお、図２において、理解し易くするために、第１の回路ブロック１０〜１３の領域を便宜的に破線で囲んで示しているが、実際の半導体集積回路上には破線は存在しない。以下、図２に示す他の破線、図４に示す破線及び図６に示す破線についても同様である。
【００２８】
第２のドライブ用バッファ３０は、第１のドライブ用バッファ２０及び２１にクロック信号を分配し、この第１のドライブ用バッファ２０及び２１を駆動する。第２のドライブ用バッファ３１は、第１のドライブ用バッファ２２及び２３にクロック信号を分配し、この第１のドライブ用バッファ２２及び２３を駆動する。
【００２９】
第１のドライブ用バッファ２０〜２３は、バッファツリー構造上の階層が異なるので、第２のドライブ用バッファ３０及び３１から分割された第２の回路ブロック２５を構築する。そして、第２のドライブ用バッファ３０及び３１は第３の回路ブロック３５を構築する。
【００３０】
ルートバッファ４０は、図２に示すバッファツリー構造のクロック信号分配回路１にクロック信号を供給する供給源となるバッファである。このルートバッファ４０は、第２のドライブ用バッファ３０及び３１にクロック信号を分配し、この第２のドライブ用バッファ３０及び３１を駆動する。
【００３１】
次に、図２に示すクロック信号分配回路１を含む半導体集積回路の製造方法を、図１を用いて説明する。この半導体集積回路の開発製造段階においては、コンピュータ支援設計（CAD：computer aided design）システムが使用されている。
【００３２】
まず最初に、CADシステムを利用し、ステップＳ１に示すように、シリコン単結晶基板上に複数の回路セル１０Ａ〜１３Ｎが配置される。なお、ここで、シリコン単結晶基板とは、CADシステムのメモリ空間に仮想的に設定された基板に相当する領域を意味し、回路セル１０Ａ〜１３Ｎを配置するとは、回路セル１０Ａ〜１３Ｎに相当する部品データをメモリ空間の基板に相当する領域に格納するという意味で使用されている。
【００３３】
ステップＳ２に示すように、回路セル１０Ａ〜１３Ｎにクロック信号を供給する第１のドライブ用バッファ２０〜２３において、駆動能力値及び駆動する配線のスリュー値が規定値以下になる駆動可能容量値を算出する。駆動能力値を規定値以下に設定することによって、回路セル１０Ａ〜１３Ｎに分配されたクロック信号の過剰な電力消費を減少することができる。更に、スリュー値を既定値以下に設定することによって、クロック信号の周波数が高速化された場合でも、クロック信号の振幅を補償することができる。すなわち、駆動可能容量値とは、低消費電力化を図りつつ、クロック信号の振幅を補償可能な基準値として設定されている。
【００３４】
ステップＳ３に示すように、駆動可能容量値を基準値とし、この駆動可能容量値を越える場合、回路セル１０Ａ〜１３Ｎを駆動可能な回路セル数毎に分割した第１の回路ブロック１０〜１３を構築する。ここでは、駆動可能な範囲において、回路セル１０Ａ〜１０Ｎにより第１の回路ブロック１０が構築され、回路セル１１Ａ〜１１Ｎにより第１の回路ブロック１１が構築され、回路セル１２Ａ〜１２Ｎにより第１の回路ブロック１２が構築され、回路セル１３Ａ〜１３Ｎにより第１の回路ブロック１３が構築される。
【００３５】
ステップＳ４に示すように、駆動可能容量値が設定された第１のドライブ用バッファ２０を第１の回路ブロック１０に対応させて配置し、第１のドライブ用バッファ２１を第１の回路ブロック１１に対応させて配置し、第１のドライブ用バッファ２２を第１の回路ブロック１２に対応させて配置し、第１のドライブ用バッファ２３を第１の回路ブロック１３に対応させて配置する。
【００３６】
ステップＳ５に示すように、第１の回路ブロック１０の回路セル１０Ａ〜１０Ｎの第１の端子容量値（１）を算出する。ここでは、回路セル１０Ａ〜１０Ｎのそれぞれの入力端子容量値が算出される。同様に、第１の回路ブロック１１の回路セル１１Ａ〜１１Ｎの第１の端子容量値（２）、第１の回路ブロック１２の回路セル１２Ａ〜１２Ｎの第１の端子容量値（３）、第１の回路ブロック１３の回路セル１３Ａ〜１３Ｎの第１の端子容量値（４）がそれぞれ算出される。
【００３７】
ステップＳ６に示すように、第１のドライブ用バッファ２０から第１の回路ブロック１０の回路セル１０Ａ〜１０Ｎのそれぞれに至るまでの第１の配線容量値（１）を算出する。同様に、第１のドライブ用バッファ２１から第１の回路ブロック１１の回路セル１１Ａ〜１１Ｎのそれぞれに至るまでの第１の配線容量値（２）、第１のドライブ用バッファ２２から第１の回路ブロック１２の回路セル１２Ａ〜１２Ｎのそれぞれに至るまでの第１の配線容量値（３）、第１のドライブ用バッファ２３から第１の回路ブロック１３の回路セル１３Ａ〜１３Ｎのそれぞれに至るまでの第１の配線容量値（４）を、各々、算出する。
【００３８】
ステップＳ７に示すように、第１の端子容量値（１）に第１の配線容量値（１）を加算し、この双方の容量値の和と予め算出された駆動可能容量値とが比較される。この比較の結果、双方の容量値の和と駆動可能容量値とが等しくなった状態において、第１の回路ブロック１０の回路セル１０Ａ〜１０Ｎにクロック信号を供給する第１のドライブ用バッファ２０の配置位置を決定し、第１のドライブ用バッファ２０が再度配置される（配置位置が修正される）。
【００３９】
同様に、第１の端子容量値（２）と第１の配線容量値（２）との和と駆動可能容量値とが比較され、双方の容量値が等しくなった状態において、第１の回路ブロック１１の回路セル１１Ａ〜１１Ｎにクロック信号を供給する第１のドライブ用バッファ２１の配置位置を決定し、第１のドライブ用バッファ２１が再度配置される。第１の端子容量値（３）と第１の配線容量値（３）との和と駆動可能容量値とが比較され、双方の容量値が等しくなった状態において、第１の回路ブロック１２の回路セル１２Ａ〜１２Ｎにクロック信号を供給する第１のドライブ用バッファ２２の配置位置を決定し、第１のドライブ用バッファ２２が再度配置される。そして、第１の端子容量値（４）と第１の配線容量値（４）との和と駆動可能容量値とが比較され、双方の容量値が等しくなった状態において、第１の回路ブロック１３の回路セル１３Ａ〜１３Ｎにクロック信号を供給する第１のドライブ用バッファ２３の配置位置を決定し、第１のドライブ用バッファ２３が再度配置される。
【００４０】
ステップＳ８に示すように、配置位置が決定された第１のドライブ用バッファ２０〜２３を、後に配置する第２のドライブ用バッファ３０及び３１に対して分割し、第１のドライブ用バッファ２０〜２３から第２の回路ブロック２５を構築する。
【００４１】
ステップＳ９に示すように、第２の回路ブロック２５とは別の領域に、第１のドライブ用バッファ２０及び２１にクロック信号を分配し駆動する第２のドライブ用バッファ３０と、第１のドライブ用バッファ２２及び２３にクロック信号を分配し駆動する第２のドライブ用バッファ３１とを配置する。この第２のドライブ用バッファ３０及び３１は第３の回路ブロック３５として構築される。
【００４２】
ステップＳ１０に示すように、第２の回路ブロック２５において、第１のドライブ用バッファ２０及び２１の第２の端子容量値（１）が算出される。ここでは、第１のドライブ用バッファ２０及び２１（２２及び２３も同様である。）の入力端子容量値が算出される。同様に、第１のドライブ用バッファ２２及び２３の第２の端子容量値（２）が算出される。
【００４３】
ステップＳ１１に示すように、第１のドライブ用バッファ２０、２１のそれぞれと第２のドライブ用バッファ３０との間の第２の配線容量値（１）が算出される。引き続き、第１のドライブ用バッファ２２、２３のそれぞれと第２のドライブ用バッファ３１との間の第２の配線容量値（２）が算出される。
【００４４】
ステップＳ１２に示すように、第２の端子容量値（１）に第２の配線容量値（１）を加算し、この双方の容量値の和と予め算出された駆動可能容量値とが比較される。この比較の結果、双方の容量値の和と駆動可能容量値とが等しくなった状態において、第２のドライブ用バッファ３０の配置位置を決定し、第２のドライブ用バッファ３０が再度配置される。
【００４５】
同様に、第２の端子容量値（２）に第２の配線容量値（２）を加算し、この双方の容量値の和と予め算出された駆動可能容量値とが比較される。この比較の結果、双方の容量値の和と駆動可能容量値とが等しくなった状態において、第２のドライブ用バッファ３１の配置位置を決定し、第２のドライブ用バッファ３１が再度配置される。
【００４６】
ステップＳ１３に示すように、ここで、第２のドライブ用バッファ３０、３１のそれぞれがルートバッファ４０と置き換え可能か否かが判定される。置き換え可能とは、第２のドライブ用バッファ３０又は３１の駆動可能容量値とルートバッファ４０の駆動可能容量値とが等しい場合か、又はルートバッファ４０の駆動可能容量値が第２のドライブ用バッファ３０又は３１の駆動可能容量値以下の場合である。置き換え不可能とは、ルートバッファ４０の駆動可能容量値が第２のドライブ用バッファ３０の駆動可能容量値を越えている場合である。
【００４７】
置き換え不可能な場合、ステップＳ８からステップＳ１３までの工程を、置き換え可能になるまで繰り返し行う。置き換え可能であると判断された場合、ステップＳ１４に示すように、第２のドライブ用バッファ３０及び３１を駆動するルートバッファ４０を配置する。これらの一連の工程が終了した時点において、CADシステムを利用したクロック信号分配回路１が完成する。
【００４８】
そして、CADシステムにより作成された情報に基づき、ステップＳ１５に示すように、実際に製造プロセスで使用する製造用マスクを作成する。この製造用マスクを使用し、ステップＳ１６に示すように、実際の製造プロセスを行うことにより、本実施の形態に係るクロック信号分配回路１を搭載した半導体集積回路が完成する。
【００４９】
このように、本実施の形態によれば、駆動能力値及び駆動する配線のスリュー値が予め設定された規定値以下になる駆動可能容量値を算出し、第１の端子容量値及び第１の配線容量値を算出した上でこれらの容量値の和が駆動可能容量値と同等の場合に第１のドライブ用バッファ２０〜２３が配置される。第２のドライブ用バッファ３０及び３１は、第２の端子容量値と第２の配線容量値とを算出した上でこれらの容量値の和が駆動可能容量値と同等の場合に配置される。そして、ルートバッファ４０は、その駆動可能容量値と第２のドライブ用バッファ３０又は３１の駆動可能容量値とが同等の場合に配置される。すなわち、第１のドライブ用バッファ２０〜２３、第２のドライブ用バッファ３０及び３１、ルートバッファ４０は、いずれも、駆動可能容量値を基準値として配置されているので、クロック信号の周波数が高速化された場合でもスリュー値を越えることがなく、過剰な電力消費がない。
【００５０】
更に、ルートバッファ４０から最も離間された回路セル１０Ａ〜１３Ｎ、第１のドライブ用バッファ２０〜２３、第２のドライブ用バッファ３０及び３１を駆動可能容量値を基準値として順次配置し、最後にルートバッファ４０を配置するようにしたので、ルートバッファ４０から第２のドライブ用バッファ３０及び３１、第１のドライブ用バッファ２０〜２３を通して回路セル１０Ａ〜１３Ｎに至るクロック信号の分配経路において、バッファ段数、配線容量、端子容量のそれぞれを均一化することができる。すなわち、温度変化や電圧変化が生じても、すべてのクロック信号の分配経路においてクロック信号の遅延時間は同様に変動するので、クロック信号の分配系統毎に遅延時間のばらつきはない。
【００５１】
（実施の形態２）
本発明の実施の形態２は、クロック切換セレクタが組み込まれたクロック信号分配回路１を備えた半導体集積回路及びその製造方法を説明するものである。
【００５２】
図４に示すように、本実施の形態に係るクロック信号分配回路１は、前述の実施の形態１に係るクロック信号分配回路１の第２のドライブ用バッファ３１に代えて組み込まれたクロック切換セレクタ３２を備えている。クロック切換セレクタ３２は、ルートバッファ４０から供給されるクロック信号と、別の系統（例えば、別のルートバッファ）から供給されるクロック信号とを切り換え、この切り換えたクロック信号を第１のドライブ用バッファ２２及び２３に分配する。従って、第１のドライブ用バッファ２２により駆動される第１の回路ブロック１２の回路セル１２Ａ〜１２Ｎ、第１のドライブ用バッファ２３により駆動される第１の回路ブロック１３の回路セル１３Ａ〜１３Ｎには、クロック切換セレクタ３２により２種類のクロック信号が分配される。
【００５３】
次に、図４に示すクロック信号分配回路１を含む半導体集積回路の製造方法を、図３を用いて説明する。
【００５４】
前述の実施の形態１に係る半導体集積回路の製造方法と同様に、まず最初に、CADシステムを利用し、ステップＳ２１に示すように、シリコン単結晶基板上に複数の回路セル１０Ａ〜１３Ｎが配置される。
【００５５】
ステップＳ２２に示すように、回路セル１０Ａ〜１３Ｎにクロック信号を供給する第１のドライブ用バッファにおいて、駆動能力値及び駆動する配線のスリュー値が規定値以下になる駆動可能容量値が算出される。
【００５６】
ここで、ステップＳ２３に示すように、ルートバッファ４０から第２のドライブ用バッファ３０を通して回路セル１０Ａ〜１１Ｎにクロック信号を分配するルートと、ルートバッファ４０からクロック切換セレクタ３２を通して回路セル１２Ａ〜１３Ｎにクロック信号を分配するルートとに分割する（図４参照）。
【００５７】
ステップＳ２４に示すように、駆動可能容量値を基準値とし、この駆動可能容量値を越える場合、回路セル１０Ａ〜１３Ｎを駆動可能な回路セル数毎に分割した第１の回路ブロック１０〜１３を構築する。ここでは、駆動可能な範囲において、回路セル１０Ａ〜１３Ｎは、第２のドライブ用バッファ３０からクロック信号が分配される第１の回路ブロック１０及び１１と、クロック切換セレクタ３２からクロック信号が分配される第１の回路ブロック１２及び１３とに分割される。第１の回路ブロック１０は回路セル１０Ａ〜１０Ｎにより構築され、第１の回路ブロック１１は回路セル１１Ａ〜１１Ｎにより構築され、第１の回路ブロック１２は回路セル１２Ａ〜１２Ｎにより構築され、第１の回路ブロック１３は回路セル１３Ａ〜１３Ｎにより構築される。
【００５８】
前述の実施の形態１に係る半導体集積回路の製造方法のステップＳ４に示す第１のドライブ用バッファ２０〜２３を配置する工程からステップＳ１２に示す第２のドライブ用バッファ３０及び２１を再度配置する工程までと同様に、ステップＳ２５に示すように、第１のドライブ用バッファ２０〜２３、第２のドライブ用バッファ３０及び３１を配置する。なお、CADシステムの処理においては、クロック切換セレクタ３２は、第２のドライブ用バッファ３１として仮想的に置き換え、端子容量値の算出、配線容量値の算出、容量値の比較との処理がなされている。
【００５９】
第２のドライブ用バッファ３０及び３１を再度配置する工程が終了した後、ステップＳ２６に示すように、第２のドライブ用バッファ３１がクロック切換セレクタ３２に置き換え可能か否かが判定される。ここで、第２のドライブ用バッファ３１の駆動可能容量値がクロック切換セレクタ３２の駆動可能容量値と同等の場合、ステップＳ２７に示すように、第２のドライブ用バッファ３１に置き換えてクロック切換セレクタ３２が配置される。駆動可能容量値を越える場合には、駆動可能容量値が同等になるまで、ステップＳ２４に示す回路セル１０Ａ〜１３Ｎの配置領域の分割工程からステップＳ２７に示すクロック切換セレクタ３２の置き換えの判定工程までを繰り返し行う。
【００６０】
ステップＳ２８に示すように、第２のドライブ用バッファ３０又はクロック切換セレクタ３２がルートバッファ４０と置き換え可能か否かが判定される。置き換え不可能な場合、ステップＳ２４からステップＳ２７までの工程を、置き換え可能になるまで繰り返し行う。置き換え可能であると判断された場合、ステップＳ２９に示すように、第２のドライブ用バッファ３０及びクロック切換セレクタ３２を駆動するルートバッファ４０を配置する。これらの一連の工程が終了した時点において、CADシステムを利用したクロック信号分配回路１が完成する。
【００６１】
この後、CADシステムにより作成された情報に基づき、ステップＳ３０に示すように、実際に製造プロセスで使用する製造用マスクを作成する。この製造用マスクを使用し、ステップＳ３１に示すように、実際の製造プロセスを行うことにより、本実施の形態に係るクロック信号分配回路１を搭載した半導体集積回路が完成する。
【００６２】
本実施の形態によれば、第２のドライブ用バッファ３１の駆動可能容量値とクロック切換セレクタの駆動可能容量値とが同等の場合、第２のドライブ用バッファ３１をクロック切換用セレクタ３２に置き換えられるようにしたので、論理構造を根本から変更することなく、簡易にクロック切換セレクタ３２をクロック信号の分配経路に組み込むことができる。
【００６３】
（実施の形態３）
本発明の実施の形態３は、回路セルとそれにクロック信号を分配するドライブ用バッファとが既に配置されている場合に、ドライブ用バッファ並びにルートバッファを最適に配置したクロック信号分配回路１を備えた半導体集積回路及びの製造方法を説明するものである。
【００６４】
図６に示すように、本実施の形態に係るクロック信号分配回路１は、既にCADシステム上の基板に配置された回路セル１６Ａ、１６Ｂ、１６Ｃ、１７Ａ、１７Ｂ、１７Ｃ、１８Ａ、１８Ｂ及び１８Ｃと、既に配置された第１のドライブ用バッファ２６、２７及び２８と、第２のドライブ用バッファ３６と、予め配置されていたが後に削除された第２のドライブ用バッファ３７と、ルートバッファ４０とを備えている。
【００６５】
回路セル１６Ａ〜１８Ｃのうち、３つの回路セル１６Ａ〜１６Ｃは第１の回路ブロック１６を構築する。第１の回路ブロック１６の回路セル１６Ａ〜１６Ｃには第１のドライブ用バッファ２６からクロック信号が分配され、回路セル１６Ａ〜１６Ｃは第１のドライブ用バッファ２６により駆動される。回路セル１７Ａ〜１７Ｃは第１の回路ブロック１７を構築する。第１の回路ブロック１７の回路セル１７Ａ〜１７Ｃには第１のドライブ用バッファ２７からクロック信号が分配され、回路セル１７Ａ〜１７Ｃは第１のドライブ用バッファ２７により駆動される。回路セル１８Ａ〜１８Ｃは第１の回路ブロック１８を構築する。第１の回路ブロック１８の回路セル１８Ａ〜１８Ｃには第１のドライブ用バッファ２８からクロック信号が分配され、回路セル１８Ａ〜１８Ｃは第１のドライブ用バッファ２８により駆動される。第１のドライブ用バッファ２６〜２８は、第２の回路ブロック２９を構築する。
【００６６】
なお、説明を簡略化するために、ここでは３つの回路セルにより第１の回路ブロックを構築しているが、回路セル数やドライブ用バッファ数は本実施の形態で説明する個数に限定されるものではない。
【００６７】
第２のドライブ用バッファ３６は、第１のドライブ用バッファ２６及び２７にクロック信号を分配し、この第１のドライブ用バッファ２６及び２７を駆動する。第２のドライブ用バッファ３７は、第１の回路ブロック１８の回路セル１８Ａ〜１８Ｃにクロック信号を分配することを目的として当初配置されたものである。この第２のドライブ用バッファ３７は、半導体集積回路の製造方法において説明するように、後に削除される。第２のドライブ用バッファ３６（及び第２のドライブ用バッファ３７）は第３の回路ブロック３８を構築する。
【００６８】
ルートバッファ４０は、第２のドライブ用バッファ３６及び第１のドライブ用バッファ２８にクロック信号を分配する。
【００６９】
次に、図６に示すクロック信号分配回路１を含む半導体集積回路の製造方法を、図５を用いて説明する。
【００７０】
まず最初に、ここでは、第１の回路ブロック１６の回路セル１６Ａ〜１６Ｃ、第１の回路ブロック１７の回路セル１７Ａ〜１７Ｃ、第１の回路ブロック１８の回路セル１８Ａ〜１８Ｃ、第１のドライブ用バッファ２６〜２８が既に配置されている。
【００７１】
CADシステムを利用し、ステップＳ４０に示すように、第１のドライブ用バッファ２６及び２７を駆動する第２のドライブ用バッファ３６、第１のドライブ用バッファ２８を駆動する第２のドライブ用バッファ３７のそれぞれの駆動可能容量値（Ｃ）が算出される。駆動可能容量値とは、前述の実施の形態１に係るクロック信号分配回路１を備えた半導体集積回路の製造方法で説明したように、駆動能力値及び駆動する配線のスリュー値が規定値以下になる値である。ここで、駆動可能容量値は、２つの第１のドライブ用バッファ２６及び２７を駆動可能な配線容量値及び端子容量値、又は合計６つの回路セル１６Ａ〜１６Ｃ及び１７Ａ〜１７Ｃを駆動可能な配線容量値及び端子容量値に設定されている。
【００７２】
ステップＳ４１に示すように、第２のドライブ用バッファ３６とそれが駆動する第１のドライブ用バッファ２６及び２７との間の第１の配線容量値（１）及び第１のドライブ用バッファ２６及び２７の第１の端子容量値（１）が算出される。同様に、第２のドライブ用バッファ３７とそれが駆動する第１のドライブ用バッファ２８の第１の配線容量値（２）及び第１のドライブ用バッファ２８の第１の端子容量値（２）が算出される。
【００７３】
ステップＳ４２に示すように、第１のドライブ用バッファ２６が駆動する第１の回路ブロック１６の回路セル１６Ａ〜１６Ｃまでの第２の配線容量値（１）及び回路セル１６Ａ〜１６Ｃの第２の端子容量値（１）が算出される。同様に、第１のドライブ用バッファ２７が駆動する第１の回路ブロック１７の回路セル１７Ａ〜１７Ｃまでの第２の配線容量値（２）及び回路セル１７Ａ〜１７Ｃの第２の端子容量値（２）が算出される。第１のドライブ用バッファ２８が駆動する第１の回路ブロック１８の回路セル１８Ａ〜１８Ｃまでの第２の配線容量値（３）及び回路セル１８Ａ〜１８Ｃの第２の端子容量値（３）が算出される。
【００７４】
ステップＳ４３に示すように、第１の配線容量値（１）、第２の配線容量値（１）及び第２の配線容量値（２）と第１の端子容量値（１）、第２の端子容量値（１）及び第２の端子容量値（２）の和と、第２のドライブ用バッファ３６の駆動可能容量値とが比較される。すなわち、第２のドライブ用バッファ３６が、予め設定された駆動可能容量値において、第１のドライブ用バッファ２６、２７、第１の回路ブロック１６の回路セル１６Ａ〜１６Ｃ及び第１の回路ブロック１７の回路セル１７Ａ〜１７Ｃを駆動することができるか否かが比較される。
【００７５】
容量値の和（Ｃｗ＋Ｃｔ）と駆動可能容量値（Ｃ）とが同等の場合（Ｃ＝Ｃｗ＋Ｃｔ）、クロック信号の分配が適正に行われると判断し、ステップＳ４４に示すように第２のドライブ用バッファ３６の配置位置が確定される。容量値の和が駆動可能容量値を越える場合（Ｃ＜Ｃｗ＋Ｃｔ）、ステップＳ４１からステップＳ４３までが繰り返し行われる。容量値の和が駆動可能容量値未満の場合（Ｃ＞Ｃｗ＋Ｃｔ）、ステップＳ４９に示すように、過剰な駆動能力になることから、第２のドライブ用バッファ３７が削除される。
【００７６】
ステップＳ４５に示すように、第２のドライブ用バッファ３６がルートバッファ４０と置き換え可能か否かが判定される。置き換え不可能な場合、ステップＳ４１からステップＳ４４までの工程を、置き換え可能になるまで繰り返し行う。置き換え可能であると判断された場合、ステップＳ４６に示すように、第２のドライブ用バッファ３６を駆動するルートバッファ４０を配置する。これらの一連の工程が終了した時点において、CADシステムを利用したクロック信号分配回路１が完成する。
【００７７】
そして、CADシステムにより作成された情報に基づき、ステップＳ４７に示すように、実際に製造プロセスで使用する製造用マスクを作成する。この製造用マスクを使用し、ステップＳ４８に示すように、実際の製造プロセスを行うことにより、本実施の形態に係るクロック信号分配回路１を搭載した半導体集積回路が完成する。
【００７８】
このように、本実施の形態によれば、クロック信号分配回路１の回路セル１６Ａ〜１８Ｃの配置、第１のドライブ用バッファ２６〜２８の配置、第２のドライブ用バッファ３６及び３７の配置が既に行われていても、第２のドライブ用バッファ３６、３７の駆動可能容量値を算出し、第１のドライブ用バッファや回路セルの容量値を算出した後、これらの容量値と駆動可能容量値とを比較し、これらの比較結果に基づき、第２のドライブ用バッファ３６の配置位置の確定、第２のドライブ用バッファ３７の削除等の処理を行うようにしたので、クロック信号の周波数が高速化された場合でもスリュー値を越えることがなく、過剰な電力消費がない。更に、温度変化や電圧変化が生じても、すべてのクロック信号の分配経路においてクロック信号の遅延時間は同様に変動するので、クロック信号の分配系統毎に遅延時間のばらつきはない。
【産業上の利用可能性】
【００７９】
本発明に係る半導体集積回路の製造方法は、クロック信号の分配において低消費電力化を図り、クロック信号の振幅を補償しつつ、分配経路毎のクロック信号の遅延時間を均一化することができるという効果を有し、配線基板上に複数の半導体集積回路（IC、LSI等）をシステム化した例えばCPUボード、システムボード、マザーボード等の、クロック信号分配系統を有する電子回路の製造方法に有効である。
【図面の簡単な説明】
【００８０】
【図１】本発明の実施の形態１に係る半導体集積回路の製造方法を示すフローチャート
【図２】本発明の実施の形態１に係る半導体集積回路のクロック信号分配回路の回路ブロック図
【図３】本発明の実施の形態２に係る半導体集積回路の製造方法を示すフローチャート
【図４】本発明の実施の形態２に係る半導体集積回路のクロック信号分配回路の回路ブロック図
【図５】本発明の実施の形態３に係る半導体集積回路の製造方法を示すフローチャート
【図６】本発明の実施の形態３に係る半導体集積回路のクロック信号分配回路の回路ブロック図
【図７】従来の半導体集積回路の製造方法を示すフローチャート
【符号の説明】
【００８１】
１  クロック信号分配回路
１０〜１３、１６〜１８  第１の回路ブロック
１０Ａ〜１３Ｎ、１６Ａ〜１８Ｃ  回路セル
２０〜２３、２６〜２８  第１のドライブ用バッファ
２５、２９  第２の回路ブロック
３０、３１、３６、３７  第２のドライブ用バッファ
３５、３８  第３の回路ブロック
３２  クロック切換セレクタ
４０  ルートバッファ
【図１】
2005191389.tif 000003
【図２】
2005191389.tif 000004
【図３】
2005191389.tif 000005
【図４】
2005191389.tif 000006
【図５】
2005191389.tif 000007
【図６】
2005191389.tif 000008
【図７】
2005191389.tif 000009