(57)【要約】【課題】迅速かつ精度よくパルス幅エラーを解消することが可能な半導体装置の製造方法を提供する。【解決手段】半導体装置の設計工程において、クロック信号の立ち上がり及び立ち下がりの遅延量を別々に調整することでクロック信号のパルス幅を調整するパルス幅調整回路を含む回路ブロックを配置し（ステップＳ２）、パルス幅を検査し（ステップＳ７，Ｓ８）、パルス幅に異常が検出された場合、パルス幅調整回路によりパルス幅を調整する（ステップＳ９）。【選択図】図１
2011077426.tif 000002
【特許請求の範囲】
【請求項１】
半導体装置の設計工程において、クロック信号の立ち上がり及び立ち下がりの遅延量を別々に調整することで前記クロック信号のパルス幅を調整するパルス幅調整回路を含む回路ブロックを配置する工程と、
前記パルス幅を検査する工程と、
前記パルス幅に異常が検出された場合、前記パルス幅調整回路により前記パルス幅を調整する工程と、
を有することを特徴とする半導体装置の製造方法。
【請求項２】
前記クロック信号のハイレベルのパルスでパルス幅エラーが発生しているか、ロウレベルのパルスでパルス幅エラーが発生しているか判定し、前記ハイレベルの前記パルス幅エラーが発生している場合、前記パルス幅調整回路により、前記クロック信号の立ち上がりタイミングを早める、または立ち下がりタイミングを遅らせるように、前記遅延量を調整し、前記ロウレベルの前記パルス幅エラーが発生している場合、前記パルス幅調整回路により、前記クロック信号の前記立ち下がりタイミングを早める、または前記立ち上がりタイミングを遅らせるように前記遅延量を調整することを特徴とする請求項１に記載の半導体装置の製造方法。
【請求項３】
複数のフリップフロップ群に前記クロック信号を分配するクロック分配回路において、前記回路ブロックを、各前記フリップフロップ群の直前に配置することを特徴とする請求項１または２に記載の半導体装置の製造方法。
【請求項４】
ツリー構造の前記クロック分配回路において、前記回路ブロックを、前記フリップフロップ群の直前を深さ１としたときに、クロックソースに向かって複数の深さまで配置することを特徴とする請求項１乃至３のいずれか一項に記載の半導体装置の製造方法。
【請求項５】
クロック信号の立ち上がり及び立ち下がりの遅延量を別々に調整することで前記クロック信号のパルス幅を調整するパルス幅調整回路を含む回路ブロックを具備することを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置の製造方法及び半導体装置に関する。
【背景技術】
【０００２】
半導体集積回路の設計工程では、配置配線後に各種の検証や修正が行われる。ここでの検証の１つとして、最小パルス幅チェックがある。フリップフロップを含む順序論理回路において、入力されるクロック信号のパルス幅が小さすぎると、データが正常にラッチされない可能性がある。そのため、最小パルス幅チェックでは、クロック信号のパルス幅が所定の最小パルス幅を満たすかチェックする。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２３０３２４号公報
【特許文献２】特開２００６−１７２６４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、配置配線後に、パルス幅エラーが検出された場合、配置配線のやり直しが必要であり、処理時間がかかる問題があった。
そのため、配置配線後にバッファやインバータを置き換えることで、遅延量を可変することが考えられるが、その場合、立ち上がりも立ち下がりも同様に遅延されるので、パルス幅を調整することは困難である。また、事前にパルス幅エラーの発生を抑制するようにクロック配線を作成しても、ＤＲＣ（Design Rule Check）やエレクトロマイグレーションなどの検証後の修正による影響で、パルス幅エラーが生じてしまうことがあった。
【０００５】
上記の点を鑑みて、本発明は、迅速かつ精度よくパルス幅エラーを解消することが可能な半導体装置の製造方法及び半導体装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、以下のような半導体装置の製造方法が提供される。
この半導体装置の製造方法は、半導体装置の設計工程において、クロック信号の立ち上がり及び立ち下がりの遅延量を別々に調整することで前記クロック信号のパルス幅を調整するパルス幅調整回路を含む回路ブロックを配置する工程と、前記パルス幅を検査する工程と、前記パルス幅に異常が検出された場合、前記パルス幅調整回路により前記パルス幅を調整する工程と、を有する。
【０００７】
また、上記の目的を達成するために、以下のような半導体装置が提供される。
この半導体装置は、クロック信号の立ち上がり及び立ち下がりの遅延量を別々に調整することで前記クロック信号のパルス幅を調整するパルス幅調整回路を含む回路ブロックを具備する。
【発明の効果】
【０００８】
開示の半導体装置の製造方法及び半導体装置によれば、配置配線後にパルス幅エラーが検出されても、再度、配置配線を行うことなく、迅速かつ精度よくパルス幅エラーを解消することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】半導体装置の製造方法の一部の流れを示すフローチャートである。
【図２】生成されたクロック分配回路の一例を示す図である。
【図３】パルス幅調整回路を含む回路ブロックの一例を示す図である。
【図４】パルス幅調整回路を含む回路ブロックの一例の動作の様子を示すタイミングチャートである。
【図５】図４で示したタイミングチャートの各期間における信号の状態と、回路状態をまとめた図である。
【図６】パルス幅エラーの一例を示す図であり、図６（Ａ）がＨパルスのパルス幅エラー、図６（Ｂ）がＬパルスのパルス幅エラーの一例を示す図である。
【図７】パルス幅エラーの判定とパルス幅調整処理の流れの一例を示すフローチャートである。
【図８】クロック分配回路の他の例を示す図である。
【図９】パルス幅調整回路を内蔵した回路ブロックにおいて、パルス幅エラーの確定後に削除する部分の一例を示す図である。
【図１０】パルス幅調整回路の不要な部分を削除する工程を含めた、半導体装置の製造方法を示すフローチャートである。
【図１１】パルス幅調整回路を含む回路ブロックの１つ目の変形例を示す図である。
【図１２】パルス幅調整回路を含む回路ブロックの２つ目の変形例を示す図である。
【図１３】パルス幅調整回路を含む回路ブロックの３つ目の変形例を示す図である。
【図１４】パルス幅調整回路を含む回路ブロックの４つ目の変形例を示す図である。
【図１５】パルス幅調整回路を含む回路ブロックの５つ目の変形例を示す図である。
【図１６】設計装置の一例の構成を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態を、図面を参照しつつ説明する。
図１は、半導体装置の製造方法の一部の流れを示すフローチャートである。
図１では、コンピュータ（設計装置）を用いた設計工程における配置工程（ステップＳ１）から図示している。配置工程では、ＥＤＡ（Electronic Design Automation）ツールの１つである自動レイアウトツールにより、自動レイアウトが行われる。
【００１１】
自動レイアウトツールが、設計装置のＣＰＵ（Central Processing Unit）により実行されると、論理回路設計工程（図示せず）の結果得られたセル・ライブラリなどをもとに、回路ブロック（セルまたはマクロセルと呼ばれる場合もある）が自動的に配置される。その後、ＥＤＡツールは、たとえば、複数の動作環境と動作モードを同時に考慮して配置の最適化を行った後（この機能は、ＭＣＭＭ（Multi-Corner / Multi-Mode）と呼ばれている）、クロック分配回路を生成する（ステップＳ２）。クロック分配回路は、クロック信号を複数のフリップフロップなどに分配する回路であり、クロックツリーなどとも呼ばれる。このとき、本実施の形態の半導体装置の製造の方法では、自動レイアウトツールは、クロック信号のパルス幅を調整するパルス幅調整回路を含む回路ブロックをクロック分配回路に配置する。
【００１２】
図２は、生成されたクロック分配回路の一例を示す図である。
図２では、クロックソース１からのクロック信号をフリップフロップ群ＦＦ１，ＦＦ２，ＦＦ３，ＦＦ４へ分配するクロックツリーの例を示している。図２の例では、クロックツリーの段数は、Ｄｅｐｔｈ１，Ｄｅｐｔｈ２，Ｄｅｐｔｈ３，Ｄｅｐｔｈ４の４段階としている。Ｄｅｐｔｈ２〜４では、バッファ２，３，４，５，６，７を配置し、フリップフロップ群ＦＦ１〜ＦＦ４の直前のＤｅｐｔｈ１に、パルス幅調整回路を含む回路ブロック８，９，１０，１１を配置している。
【００１３】
図３は、パルス幅調整回路を含む回路ブロックの一例を示す図である。
ここでは、図２のフリップフロップ群ＦＦ１の直前に配置された回路ブロック８を示している。他の回路ブロック９〜１１も同様の構成である。
【００１４】
回路ブロック８は、クロックツリーの前段のバッファ５からクロック信号ＣＫを入力するバッファ２０と、クロック信号ＣＫのパルス幅を調整するパルス幅調整回路２１を有している。バッファ２０の出力端子は、クロック信号線Ｌ１を介して、フリップフロップ群ＦＦ１の各フリップフロップのクロック端子に接続される。
【００１５】
パルス幅調整回路２１は、クロック信号ＣＫの立ち上がり及び立ち下がりの遅延量を別々に調整することで、クロック信号のパルス幅を調整する。パルス幅調整回路２１は、バッファ２０から出力されたクロック信号を反転するインバータ２２を有している。また、パルス幅調整回路２１は、クロック信号ＣＫの立ち上がりタイミングを調整する立ち上がりタイミング調整部２３と、クロック信号ＣＫの立ち下がりタイミングを調整する立ち下がりタイミング調整部２４を有している。
【００１６】
立ち上がりタイミング調整部２３は、ｎチャネル型ＭＯＳＦＥＴ（Metal-Oxide Semiconductor Field Effect Transistor）（以下ｎＭＯＳと略す）２３ａ，２３ｂと、インバータ２３ｃを有している。さらに、立ち上がりタイミング調整部２３は、スイッチＳＷ１，ＳＷ２，ＳＷ３と、容量Ｃ１，Ｃ２，Ｃ３を有している。
【００１７】
ｎＭＯＳ２３ａの一方のソース／ドレイン端子はクロック信号線Ｌ１に接続され、他方のソース／ドレイン端子はスイッチＳＷ１〜ＳＷ３の一方の端子に接続されている。ｎＭＯＳ２３ａのゲート端子には、インバータ２２の出力信号が入力される。ｎＭＯＳ２３ｂの一方のソース／ドレイン端子はｎＭＯＳ２３ａとスイッチＳＷ１〜ＳＷ３間のノードＮ１に接続され、他方のソース／ドレイン端子は接地されている。また、ｎＭＯＳ２３ｂのゲート端子には、インバータ２３ｃにより反転されたインバータ２２の出力信号が入力される。
【００１８】
スイッチＳＷ１〜ＳＷ３の他方の端子は、それぞれ異なる大きさの容量Ｃ１〜Ｃ３の一方の端子に接続されている。容量Ｃ１〜Ｃ３の他方の端子は接地されている。容量Ｃ１〜Ｃ３の容量値は、容量Ｃ１が最も小さく、容量Ｃ３が最も大きく、容量Ｃ２は、たとえば、容量Ｃ１と容量Ｃ３の中間の大きさとなっている。スイッチＳＷ１〜ＳＷ３のオンオフは、制御信号設定部３０から供給される容量制御信号によって制御される。制御信号設定部３０は、たとえば、書き換え可能なメモリ素子であり、チップ内またはチップ外に設けられる。
【００１９】
立ち下がりタイミング調整部２４は、ｐチャネル型ＭＯＳＦＥＴ（以下ｐＭＯＳと略す）２４ａ，２４ｂと、インバータ２４ｃを有している。さらに、立ち下がりタイミング調整部２４は、スイッチＳＷ４，ＳＷ５，ＳＷ６と、容量Ｃ４，Ｃ５，Ｃ６を有している。
【００２０】
ｐＭＯＳ２４ａの一方のソース／ドレイン端子はクロック信号線Ｌ１に接続され、他方のソース／ドレイン端子はスイッチＳＷ４〜ＳＷ６の一方の端子に接続されている。ｐＭＯＳ２４ａのゲート端子には、インバータ２２の出力信号が入力される。ｐＭＯＳ２４ｂの一方のソース／ドレイン端子には電源電圧ＶＤＤが印加され、他方のソース／ドレイン端子はｐＭＯＳ２４ａとスイッチＳＷ４〜ＳＷ６間のノードＮ２に接続されている。また、ｐＭＯＳ２４ｂのゲート端子には、インバータ２４ｃにより反転されたインバータ２２の出力信号が入力される。
【００２１】
スイッチＳＷ４〜ＳＷ６の他方の端子は、それぞれ異なる大きさの容量Ｃ４〜Ｃ６の一方の端子に接続されている。容量Ｃ４〜Ｃ６の他方の端子は接地されている。容量Ｃ４〜Ｃ６の容量値は、容量Ｃ４が最も小さく、容量Ｃ６が最も大きく、容量Ｃ５は、たとえば、容量Ｃ４と容量Ｃ６の中間の大きさとなっている。スイッチＳＷ４〜ＳＷ６のオンオフは、制御信号設定部３０から供給される容量制御信号によって制御される。
【００２２】
クロック分配回路の生成時には、たとえば、それぞれ中間の容量Ｃ２，Ｃ５のみ用いるように、スイッチＳＷ２，ＳＷ５をオンにしておく。
上記の構成では、バッファ２０からの出力をインバータ２２で反転した信号により、クロック信号線Ｌ１と、遅延量を調整する回路部（スイッチＳＷ１〜ＳＷ６、容量Ｃ１〜Ｃ６）とを接続するスイッチ（ｎＭＯＳ２３ａ、ｐＭＯＳ２４ａ）を制御している。
【００２３】
クロック信号ＣＫの立ち上がりタイミングにおいては、ｎＭＯＳ２３ａがオン、ｐＭＯＳ２４ａがオフ、クロック信号ＣＫの立ち下がりタイミングにおいては、ｎＭＯＳ２３ａがオフ、ｐＭＯＳ２４ａがオンするようにタイミング設計がなされている。
【００２４】
図４は、パルス幅調整回路を含む回路ブロックの一例の動作の様子を示すタイミングチャートである。
また、図５は、図４で示したタイミングチャートの各期間における信号の状態と、回路状態をまとめた図である。
【００２５】
図４、図５では、バッファ２０の入力信号（クロック信号ＣＫ）、インバータ２２の出力信号、ｎＭＯＳ２３ａ、ｐＭＯＳ２４ａの状態、インバータ２３ｃ，２４ｃの出力信号、ノードＮ１，Ｎ２の状態、バッファ２０の出力信号を示している。また、図５では、クロック信号ＣＫの立ち上がりタイミングを調整する回路状態（ｒｉｓｅ）、クロック信号ＣＫの立ち下がりタイミングを調整する回路状態（ｆａｌｌ）を示している。さらに、図５では、ノードＮ１をリセットする回路状態、ノードＮ２をリセットする回路状態があることを示している。ノードＮ１のリセットは、容量Ｃ１〜Ｃ３の電荷を放電させた状態であり、ノードＮ２のリセットは、逆に容量Ｃ４〜Ｃ６を充電させることを意味する。なお、図５で示される“↑”は、信号の立ち上がりを示し、“↓”は、信号の立ち下がりを示している。
【００２６】
また、図４で示す各信号の変化のタイミングは、予めこのようなタイミングで動作するように、バッファ２０やインバータ２２，２３ｃ，２４ｃのサイズなどを選択して遅延量を調節しておくことで実現される。また、インバータ２２の出力信号の立ち上がりタイミング及び立ち下がりタイミングで、所定のセットアップ／ホールド時間を満たすようにタイミング設計がなされている。
【００２７】
期間Ｔ１，Ｔ７のように、バッファ２０の入力信号の立ち上がりタイミングでは、インバータ２２の出力信号がＨ（High）レベルであるようにしておく。これにより、ｎＭＯＳ２３ａはオン、ｐＭＯＳ２４ａはオフの状態となっている。また、このとき、インバータ２３ｃ，２４ｃの出力信号をＬ（Low）レベルとすることで、図３のｎＭＯＳ２３ｂはオフし、ｐＭＯＳ２４ｂはオンする。これにより、バッファ２０の出力信号の立ち上がりタイミングが、スイッチＳＷ１〜ＳＷ３で接続された容量Ｃ１〜Ｃ３による遅延時間分、遅延される。たとえば、スイッチＳＷ２のみがオンの場合、容量Ｃ２による遅延時間分、バッファ２０の出力信号の立ち上がりタイミングが遅延される。また、図４、図５では図示していないが、期間Ｔ１，Ｔ７のときｐＭＯＳ２４ｂはオンであるので、スイッチＳＷ４〜ＳＷ６で接続された容量Ｃ４〜Ｃ６は充電され、ノードＮ２はＨレベルとなっている。
【００２８】
期間Ｔ２，Ｔ８では、ノードＮ１のリセットが行われる。ここでは、インバータ２３ｃ，２４ｃの出力信号が立ち上がった状態で、インバータ２２の出力信号が立ち下がるようにタイミング設計されている。これにより、容量Ｃ１〜Ｃ３に充電された電荷がｎＭＯＳ２３ｂを介して放電される。
【００２９】
期間Ｔ３，Ｔ９では、インバータ２２の出力信号がＬレベルであり、ｎＭＯＳ２３ａがオフし、さらに、期間Ｔ２，Ｔ８において容量Ｃ１〜Ｃ３の電荷が放電されたことにより、ノードＮ１の電位がＬレベルに立ち下がる。
【００３０】
期間Ｔ４，Ｔ１０のように、バッファ２０の入力信号の立ち下がりタイミングでは、インバータ２２の出力信号がＬレベルであるので、ｎＭＯＳ２３ａはオフ、ｐＭＯＳ２４ａはオンしている。また、インバータ２３ｃ，２４ｃの出力信号はＨレベルであるので、図３のｎＭＯＳ２３ｂはオン、ｐＭＯＳ２４ｂはオフしている。そのため、スイッチＳＷ４〜ＳＷ６で接続された容量Ｃ４〜Ｃ６に充電された電荷がクロック信号線Ｌ１を介して放電されることによる遅延時間分、バッファ２０の出力信号の立ち下がりタイミングが遅延される。たとえば、スイッチＳＷ５のみがオンの場合、容量Ｃ５による遅延時間分、バッファ２０の出力信号の立ち下がりタイミングが遅延される。
【００３１】
期間Ｔ５，Ｔ１１では、ノードＮ２のリセットが行われる。ここでは、インバータ２３ｃ，２４ｃの出力信号が立ち下がった状態で、インバータ２２の出力信号が立ち上がるようにタイミング設計されている。これにより、期間Ｔ４，Ｔ１０で放電された容量Ｃ４〜Ｃ６が再び充電され、期間Ｔ６にてノードＮ２の電位がＨレベルに戻る。
【００３２】
なお、図３で示す例では、立ち上がりタイミング調整部２３及び立ち下がりタイミング調整部２４は、それぞれ３つの容量Ｃ１〜Ｃ３、容量Ｃ４〜Ｃ６により遅延量を調整できるようにしているが、２つまたは４つ以上設けてもよい。
【００３３】
以上のような回路ブロック８を配置したクロックツリーを生成したのち、自動レイアウトツールは、クロックツリーの最適化を、たとえば、ＭＣＭＭで行った後、予め作成されたネットリストをもとに、セルやマクロセル間の自動配線を行う（ステップＳ３）。
【００３４】
その後、たとえば、ＥＤＡツールであるＬＰＥ（Layout Parasitic Extraction）ツールにより、配線抵抗や配線容量の抽出（ＲＣ抽出）が行われ（ステップＳ４）、続いて遅延計算（ステップＳ５）、クロストーク解析（ステップＳ６）がＭＣＭＭで行われる。次に、ＳＴＡ（Static Timing Analysis）が行われる（ステップＳ７）。
【００３５】
このＳＴＡにてクロック信号の最小パルス幅チェックが行われる。
最小パルス幅チェックでは、クロック信号のＨレベルのパルス（以下Ｈパルスという）及びＬレベルのパルス（以下Ｌパルスという）が、それぞれ満たすべき最小のパルス幅（所定の閾値）を下回った場合に、エラーが発生する。
【００３６】
図６は、パルス幅エラーの一例を示す図であり、図６（Ａ）がＨパルスのパルス幅エラー、図６（Ｂ）がＬパルスのパルス幅エラーの一例を示す図である。
比較例として、正常波形についても点線で図示している。図６（Ａ）で示されるパルス幅エラー波形は、Ｈパルスのパルス幅が狭く、エラーとなった例である。このようなＨパルスを正常のパルス幅にするには、立ち上がりタイミングを早く、立ち下がりタイミングを遅くする必要がある。一方の図６（Ｂ）で示されるパルス幅エラー波形は、Ｌパルスのパルス幅が狭く、エラーとなった例である。このようなＬパルスを正常のパルス幅にするには、立ち下がりタイミングを早く、立ち上がりタイミングを遅くする必要がある。
【００３７】
パルス幅エラーチェックの結果、エラーリストが作成され、Ｈパルスのパルス幅エラーが発生しているのか、Ｌパルスのパルス幅エラーが発生しているのかが、たとえば、設計装置の記憶部に記憶される。
【００３８】
その後、設計装置はＳＴＡの結果を参照して、パルス幅エラーが発生しているか否かを判定し（ステップＳ８）、パルス幅エラーが発生している場合には、図３で示したような回路ブロック８のパルス幅調整回路２１に、パルス幅を調整させる（ステップＳ９）。
【００３９】
図７は、パルス幅エラーの判定とパルス幅調整処理の流れの一例を示すフローチャートである。
図７は、図１のステップＳ８のパルス幅エラー判定処理として、Ｈパルスのパルス幅エラー判定処理（ステップＳ８ａ）と、Ｌパルスのパルス幅エラー判定処理（ステップＳ８ｂ）を示している。また、図７は、ステップＳ９のパルス幅調整処理として、以下のステップＳ９ａ，Ｓ９ｂの処理を示している。
【００４０】
ＥＤＡツールは、ＳＴＡの結果得られたエラーリストを参照して、まず、たとえば、Ｈパルスのパルス幅エラー判定を行う（ステップＳ８ａ）。Ｈパルスのパルス幅エラーが発生していた場合には、Ｈパルスの立ち上がりタイミングを早め、立ち下がりタイミングを遅らせるような容量制御信号が制御信号設定部３０からパルス幅調整回路２１に供給され、パルス幅が調整される（ステップＳ９ａ）。
【００４１】
図３に示したようなパルス幅調整回路２１が用いられている場合、Ｈパルスの立ち上がりタイミングを早めるため、ＥＤＡツールは、制御信号設定部３０から立ち上がりタイミング調整部２３に出力される容量制御信号を変更する。たとえば、ＥＤＡツールは、一番小さい容量Ｃ１を用いるように、スイッチＳＷ１のみオンさせるように容量制御信号を変更する。さらに、Ｈパルスの立ち下がりタイミングを遅らせるため、ＥＤＡツールは、制御信号設定部３０から立ち下がりタイミング調整部２４に出力される容量制御信号を変更する。たとえば、ＥＤＡツールは、スイッチＳＷ６をオンさせて、容量値の大きな容量Ｃ６を用いるように、容量制御信号を変更する。
【００４２】
Ｈパルスのパルス幅エラーが発生していない場合、もしくは、Ｈパルスのパルス幅エラーが解消された場合、ＥＤＡツールは、ＳＴＡの結果得られたエラーリストを参照して、Ｌパルスのパルス幅エラー判定を行う（ステップＳ８ｂ）。Ｌパルスのパルス幅エラーが発生していた場合には、Ｌパルスの立ち下がりタイミングを早め、立ち上がりタイミングを遅らせるような容量制御信号が制御信号設定部３０からパルス幅調整回路２１に供給され、パルス幅が調整される（ステップＳ９ｂ）。
【００４３】
図３に示したようなパルス幅調整回路２１が用いられている場合、ＥＤＡツールは、Ｌパルスの立ち上がりタイミングを遅らせるため、制御信号設定部３０から立ち上がりタイミング調整部２３に出力される容量制御信号を変更する。たとえば、ＥＤＡツールは、立ち上がりタイミング調整部２３の一番大きい容量Ｃ３と接続するスイッチＳＷ３をオンさせるように、容量制御信号を変更する。さらに、Ｌパルスの立ち下がりタイミングを早めるため、ＥＤＡツールは、制御信号設定部３０から立ち下がりタイミング調整部２４に出力される容量制御信号を変更する。たとえば、ＥＤＡツールは、立ち下がりタイミング調整部２４の一番小さい容量Ｃ４と接続するスイッチＳＷ４のみをオンさせて、容量を減少させるように、容量制御信号を変更する。その後、ステップＳ８ａからの処理が繰り返される。
【００４４】
以上のような処理によれば、パルス幅エラーの種類に応じて、正確にパルス幅調整が可能になる。
なお、図７では、Ｈパルスのパルス幅エラーを先に判定して、パルス幅エラーがあった場合には、Ｈパルスのパルス幅を調整しているが、Ｌパルスのパルス幅エラーを先に判定して、パルス幅エラーがあった場合には、Ｌパルスのパルス幅を先に調整するようにしてもよい。
【００４５】
また、図７では、パルス幅エラーがあった場合、立ち上がりタイミング及び立ち下がりタイミングを両方制御して、パルス幅を調整するようにしているが、どちらか一方のみを制御して、パルス幅を調整するようにしてもよい。
【００４６】
図７の例において、Ｌパルスのパルス幅エラーが発生していないと判定され、検証が終了した場合、生成されたマスクレイアウトに基づき、マスクの製作が行われる（図１のステップＳ１０）。そして、そのマスクを用いて、図３のような回路ブロック８を含んだクロック分配回路を有したチップの製造が行われ（ステップＳ１１）、組立・検査工程（ステップＳ１２）を経たのち、半導体装置が完成する。
【００４７】
以上のような半導体装置の製造方法によれば、予めパルス幅調整回路２１を含む回路ブロック８を配置し、パルス幅エラーが検出された場合、パルス幅調整回路２１により、クロック信号の立ち上がりと立ち下がりの遅延量を別々に調整してパルス幅を調整している。
【００４８】
これにより、パルス幅エラーが検出された場合でも、配置・配線を繰り返すことなく、迅速かつ精度よくパルス幅を調整することができる。また、チップ製造後でも、外部ピンなどにより、制御信号設定部３０から出力される容量制御信号を変更させることで、パルス幅を調整することができる。
【００４９】
また、図２で示したように、フリップフロップ群ＦＦ１〜ＦＦ４の直前にパルス幅調整回路を内蔵した回路ブロック８〜１１を配置しているため、たとえばフリップフロップ群ＦＦ１でのパルス幅エラー発生時、回路ブロック８のみでパルス幅調整をすればよい。これにより、他のフリップフロップ群ＦＦ２〜ＦＦ４へ供給されるクロック信号に影響を与えることを防止することができる。
【００５０】
なお、図１のステップＳ２の処理で生成するクロック分配回路は、たとえば、以下のような構成であってもよい。
図８は、クロック分配回路の他の例を示す図である。
【００５１】
図２と同じ構成要素については同一符号としている。図８で示すクロック分配回路の例では、Ｄｅｐｔｈ１のほかに、Ｄｅｐｔｈ２及びＤｅｐｔｈ３にもパルス幅調整回路を内蔵した回路ブロック８〜１６を配置している。
【００５２】
このような構成とすることで、複数のフリップフロップ群に跨って、パルス幅エラーが発生した場合に、クロックツリーの収斂先の回路ブロックのパルス幅調整回路を調整することで、一度に複数のフリップフロップ群でのパルス幅エラーを修正することができる。たとえば、フリップフロップ群ＦＦ１〜ＦＦ３で同じエラー量のパルス幅エラーが発生している場合、クロックツリーの収斂先の回路ブロック１５のパルス幅調整回路を調整することで、フリップフロップ群ＦＦ１〜ＦＦ３でのパルス幅エラーを同時に修正できる。
【００５３】
なお、図２や図８で示したクロック分配回路の回路ブロック８〜１６のパルス幅調整回路において、パルス幅の調整を行わないものは、パルス幅エラーの確定後に、一部を削除するようにしてもよい。
【００５４】
図９は、パルス幅調整回路を内蔵した回路ブロックにおいて、パルス幅エラーの確定後に削除する部分の一例を示す図である。
図９で示す回路ブロック８のうち、立ち上がりタイミング調整部２３の可変容量部２３ｄと、立ち下がりタイミング調整部２４の可変容量部２４ｄを削除可能な構成としている。回路ブロック８のその他の構成については、ハードコーディングとし、削除不可とする。
【００５５】
図１０は、パルス幅調整回路の不要な部分を削除する工程を含めた、半導体装置の製造方法を示すフローチャートである。
図１で示したようなステップＳ１〜Ｓ９の工程を行った後、パルス幅エラーがない、もしくは解消された場合、ＥＤＡツールは、パルス幅調整回路の不要な部分を削除する（ステップＳ２０）。たとえば、図９で示したようなパルス幅調整回路２１の可変容量部２３ｄ，２４ｄを削除する。これにより、回路面積を削減することができる。ステップＳ２１，Ｓ２２，Ｓ２３の工程は、図１のステップＳ１０〜Ｓ１２の工程と同じである。
【００５６】
ところで、パルス幅調整回路を含む回路ブロックについても、図３で示した構成に限定されず、様々な変形が可能である。
以下、パルス幅調整回路を含む回路ブロックの変形例を示す。
（変形例１）
図１１は、パルス幅調整回路を含む回路ブロックの１つ目の変形例を示す図である。
【００５７】
図３で示した回路ブロック８と同じ構成要素については同一符号を付している。
図１１で示す回路ブロック８−１において、パルス幅調整回路２１−１の立ち上がりタイミング調整部２３−１は、図３で示したような複数の容量Ｃ１〜Ｃ３とスイッチＳＷ１〜ＳＷ３を用いる代わりに、１つの可変コンデンサＣｖ１を用いている。また、立ち下がりタイミング調整部２４−１も、図３で示したような複数の容量Ｃ４〜Ｃ６とスイッチＳＷ４〜ＳＷ６を用いる代わりに、１つの可変コンデンサＣｖ２を用いている。
【００５８】
可変コンデンサＣｖ１，Ｃｖ２は、チップ内またはチップ外に設けられる制御信号設定部３１により、別々に制御される。パルス幅エラーが発生した場合、制御信号設定部３１は、たとえば、ＥＤＡツールによる制御のもと、可変コンデンサＣｖ１，Ｃｖ２に、容量制御信号として供給する電圧値を可変し、可変コンデンサＣｖ１，Ｃｖ２の容量値を可変させパルス幅を調整する。パルス幅の調整が完了したら、ＥＤＡツールは、制御信号設定部３１から可変コンデンサＣｖ１，Ｃｖ２に供給する電圧値を固定する。
【００５９】
このような可変コンデンサＣｖ１，Ｃｖ２を用いることで、より正確にクロック信号のパルス幅を調整することができる。
（変形例２）
図１２は、パルス幅調整回路を含む回路ブロックの２つ目の変形例を示す図である。
【００６０】
図３で示した回路ブロック８と同じ構成要素については同一符号を付している。
図１２で示す回路ブロック８−２において、パルス幅調整回路２１−２の立ち上がりタイミング調整部２３−２は、図３で示したような複数の容量Ｃ１〜Ｃ３とスイッチＳＷ１〜ＳＷ３を用いる代わりに、１つの可変抵抗Ｒｖ１を用いている。また、立ち下がりタイミング調整部２４−２も、図３で示したような複数の容量Ｃ４〜Ｃ６とスイッチＳＷ４〜ＳＷ６を用いる代わりに、１つの可変抵抗Ｒｖ２を用いている。
【００６１】
可変抵抗Ｒｖ１，Ｒｖ２は、チップ内またはチップ外に設けられる制御信号設定部３２により、別々に制御される。パルス幅エラーが発生した場合、制御信号設定部３２は、ＥＤＡツールによる制御のもと、抵抗制御信号を可変し、可変抵抗Ｒｖ１，Ｒｖ２の抵抗値を可変させパルス幅を調整する。パルス幅の調整が完了したら、ＥＤＡツールは、制御信号設定部３２から可変抵抗Ｒｖ１，Ｒｖ２に供給する抵抗制御信号を固定する。
【００６２】
このような可変抵抗Ｒｖ１，Ｒｖ２を用いることで、より正確にクロック信号のパルス幅を調整することができる。
（変形例３）
図１３は、パルス幅調整回路を含む回路ブロックの３つ目の変形例を示す図である。
【００６３】
図３で示した回路ブロック８と同じ構成要素については同一符号を付している。
回路ブロック８−３のパルス幅調整回路２１−３では、立ち上がりタイミング調整部２３−３と、立ち下がりタイミング調整部２４−３のｎＭＯＳ２３ａ、ｐＭＯＳ２４ａのオンオフを、クロックツリーの前段のバッファ５の入力信号で制御している。また、立ち上がりタイミング調整部２３−３において、図３で示したようなインバータ２３ｃの代わりに、バッファ２３ｅからの出力信号で、ｎＭＯＳ２３ｂのオンオフを制御している。また、立ち下がりタイミング調整部２４−３において、図３で示したようなインバータ２４ｃの代わりに、バッファ２４ｅからの出力信号で、ｐＭＯＳ２４ｂのオンオフを制御している。なお、この回路ブロック８−３では、バッファ２０からの出力信号の立ち上がりタイミングでｎＭＯＳ２３ａがオン、立ち下がりタイミングでｐＭＯＳ２４ａがオンするように、バッファ５やバッファ２０などにより遅延量が調整されている。これにより、パルス幅が調整可能となっている。
【００６４】
このような回路ブロック８−３とすることで、図３で示される構成で必要であったインバータ２２が不要となるので、回路規模を縮小できる。
（変形例４）
図１４は、パルス幅調整回路を含む回路ブロックの４つ目の変形例を示す図である。
【００６５】
図３で示した回路ブロック８と同じ構成要素については同一符号を付している。
図１４で示す回路ブロック８−４では、図３で示したバッファ２０の代わりに、駆動能力の異なる複数のバッファ２０ａ，２０ｂ，２０ｃを設け、スイッチＳＷ７，ＳＷ８，ＳＷ９でバッファ２０ａ，２０ｂ，２０ｃを選択できるようにしている。スイッチＳＷ７〜ＳＷ９は、回路ブロック８−４の外からの図示しない制御信号により制御される。図１４で示される例では、バッファ２０ａ，２０ｂ，２０ｃの順で駆動能力が大きい。
【００６６】
このような回路ブロック８−４とすることで、クロック信号ＣＫの立ち上がり及び立ち下がり時の波形のなまりを調整することができる。
（変形例５）
図１５は、パルス幅調整回路を含む回路ブロックの５つ目の変形例を示す図である。
【００６７】
図３で示した回路ブロック８と同じ構成要素については同一符号を付している。
図１５で示す回路ブロック８−５では、図３のバッファの代わりに、閾値可変のｐＭＯＳ２０ｄ、ｎＭＯＳ２０ｅと、インバータ２０ｆを用いている。ｐＭＯＳ２０ｄ、ｎＭＯＳ２０ｅはインバータを構成しており、ゲート端子にクロック信号ＣＫを入力している。また、ｐＭＯＳ２０ｄ、ｎＭＯＳ２０ｅは、回路ブロック８−５の外部から入力されるＶｔｈ制御信号により、閾値電圧が可変する。
【００６８】
このような回路ブロック８−５とすることで、クロック信号ＣＫの立ち上がり及び立ち下がり時の波形のなまりを調整することができる。
以上、５つの変形例を説明したが、上記各変形例を組み合わせてもよい。
【００６９】
ところで、図１、図１０で示したステップＳ１〜Ｓ９，Ｓ２０の処理は、たとえば、以下のような設計装置で行われる。
図１６は、設計装置の一例の構成を示す図である。
【００７０】
設計装置４０は、ＣＰＵ４１、ＲＯＭ（Read Only Memory）４２、ＲＡＭ（Random Access Memory）４３、ＨＤＤ（Hard Disk Drive）４４、グラフィック処理部４５、入力Ｉ／Ｆ（Interface）４６、通信Ｉ／Ｆ４７などによって構成され、これらはバス４８を介して相互に接続されている。
【００７１】
ＣＰＵ４１は、ＨＤＤ４４に格納されている各種ＥＤＡツールを実行し、ＥＤＡツールに図１、図１０で示したステップＳ１〜Ｓ９，Ｓ２０の処理を行わせる。また、ＣＰＵ４１は、ＲＯＭ４２やＨＤＤ４４に格納された各種データに基づいて、設計装置４０の各部を制御する。
【００７２】
ＲＯＭ４２は、ＣＰＵ４１が実行する基本的なプログラムやデータを格納している。
ＲＡＭ４３は、ＣＰＵ４１が実行途中のプログラムや、演算途中のデータを格納している。
【００７３】
ＨＤＤ４４は、ＣＰＵ４１が実行するＯＳ（Operation System）、各種ＥＤＡツール、各種ライブラリデータ、ネットリスト、ＥＤＡツールで作成したレイアウトデータ、ＳＴＡの結果得られたエラーリストなどを格納する。
【００７４】
グラフィック処理部４５には、表示装置として、たとえば、ディスプレイ４５ａが接続されており、ＣＰＵ４１からの描画命令に従って、ディスプレイ４５ａ上に、設計途中の半導体装置のレイアウトデータなどを表示する。
【００７５】
入力Ｉ／Ｆ４６には、マウス４６ａやキーボード４６ｂなどの入力装置が接続されており、設計者などにより入力された情報を受信し、バス４８を介してＣＰＵ４１に伝送する。
【００７６】
通信Ｉ／Ｆ４７は、たとえば、企業内のＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）などのネットワーク４７ａと接続して、ＥＤＡツールにより設計されたマスクデータを、マスク製作装置に送信したり、各種データの送受信を行う。
【００７７】
なお、図１、図１０で示したステップＳ１〜Ｓ９，Ｓ２０の処理を、複数の設計装置で分担して行うようにしてもよい。
以上、実施の形態に基づき、本発明の半導体装置の製造方法及び半導体装置の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【００７８】
以上説明した複数の実施の形態に関し、さらに以下の付記を開示する。
（付記１）  半導体装置の設計工程において、クロック信号の立ち上がり及び立ち下がりの遅延量を別々に調整することで前記クロック信号のパルス幅を調整するパルス幅調整回路を含む回路ブロックを配置する工程と、
前記パルス幅を検査する工程と、
前記パルス幅に異常が検出された場合、前記パルス幅調整回路により前記パルス幅を調整する工程と、
を有することを特徴とする半導体装置の製造方法。
【００７９】
（付記２）  前記クロック信号のハイレベルのパルスでパルス幅エラーが発生しているか、ロウレベルのパルスでパルス幅エラーが発生しているか判定し、前記ハイレベルの前記パルス幅エラーが発生している場合、前記パルス幅調整回路により、前記クロック信号の立ち上がりタイミングを早める、または立ち下がりタイミングを遅らせるように、前記遅延量を調整し、前記ロウレベルの前記パルス幅エラーが発生している場合、前記パルス幅調整回路により、前記クロック信号の前記立ち下がりタイミングを早める、または前記立ち上がりタイミングを遅らせるように前記遅延量を調整することを特徴とする付記１に記載の半導体装置の製造方法。
【００８０】
（付記３）  複数のフリップフロップ群に前記クロック信号を分配するクロック分配回路において、前記回路ブロックを、各前記フリップフロップ群の直前に配置することを特徴とする付記１または２に記載の半導体装置の製造方法。
【００８１】
（付記４）  ツリー構造の前記クロック分配回路において、前記回路ブロックを、前記フリップフロップ群の直前を深さ１としたときに、クロックソースに向かって複数の深さまで配置することを特徴とする付記１乃至３のいずれか一項に記載の半導体装置の製造方法。
【００８２】
（付記５）  前記クロック分配回路に配置した前記回路ブロックにおいて、前記パルス幅の調整を行わない前記パルス幅調整回路の少なくとも一部を削除する工程を有することを特徴とする付記３または４に記載の半導体装置の製造方法。
【００８３】
（付記６）  クロック信号の立ち上がり及び立ち下がりの遅延量を別々に調整することで前記クロック信号のパルス幅を調整するパルス幅調整回路を含む回路ブロックを具備することを特徴とする半導体装置。
【００８４】
（付記７）  前記パルス幅調整回路に対して、前記遅延量を指定するための制御信号を送出する制御信号設定部を有することを特徴とする付記６記載の半導体装置。
（付記８）  前記パルス幅調整回路は、前記クロック信号の立ち上がりタイミングを調整する立ち上がりタイミング調整部と、立ち下がりタイミングを調整する立ち下がりタイミング調整部とを有し、
前記立ち上がりタイミング調整部及び前記立ち下がりタイミング調整部は、前記立ち上がりタイミングまたは前記立ち下がりタイミングで、クロック信号線に接続する容量値を可変することで、前記立ち上がりタイミングまたは前記立ち下がりタイミングの前記遅延量を調整することを特徴とする付記６または７に記載の半導体装置。
【００８５】
（付記９）  前記パルス幅調整回路は、前記クロック信号の立ち上がりタイミングを調整する立ち上がりタイミング調整部と、立ち下がりタイミングを調整する立ち下がりタイミング調整部とを有し、
前記立ち上がりタイミング調整部及び前記立ち下がりタイミング調整部は、前記立ち上がりタイミングまたは前記立ち下がりタイミングで、クロック信号線に接続する抵抗値を可変することで、前記立ち上がりタイミングまたは前記立ち下がりタイミングの前記遅延量を調整することを特徴とする付記６または７記載の半導体装置。
【００８６】
（付記１０）  前記回路ブロックは、複数のフリップフロップ群に前記クロック信号を分配するクロック分配回路において、各前記フリップフロップ群の直前に配置されていることを特徴とする付記６乃至９のいずれか一項に記載の半導体装置。
【００８７】
（付記１１）  前記パルス幅調整回路において、前記クロック信号の前記立ち上がりタイミングまたは前記立ち下がりタイミングにおいて、前記遅延量を可変する回路部とクロック信号線とを接続するスイッチを、前記クロック分配回路における前記回路ブロックに対して前段に配置されたバッファの入力信号で制御することを特徴とする付記１０記載の半導体装置。
【００８８】
（付記１２）  前記回路ブロックは、クロック信号線に接続された、駆動能力の異なる選択可能な複数のバッファを有していることを特徴とする付記６乃至１１のいずれか一項に記載の半導体装置。
【００８９】
（付記１３）  前記回路ブロックは、クロック信号線に接続された、閾値可変のｎチャネル型ＭＯＳＦＥＴ及びｐチャネル型トランジスタを用いたインバータを有していることを特徴とする付記６乃至１１のいずれか一項に記載の半導体装置。
【符号の説明】
【００９０】
１  クロックソース
２〜７，２０  バッファ
８〜１１  回路ブロック
２１  パルス幅調整回路
２２，２３ｃ，２４ｃ  インバータ
２３  立ち上がりタイミング調整部
２３ａ，２３ｂ  ｎＭＯＳ
２４  立ち下がりタイミング調整部
２４ａ，２４ｂ  ｐＭＯＳ
３０  制御信号設定部
Ｃ１〜Ｃ６  容量
ＣＫ  クロック信号
ＦＦ１〜ＦＦ４  フリップフロップ群
Ｌ１  クロック信号線
Ｎ１，Ｎ２  ノード
ＳＷ１〜ＳＷ６  スイッチ
【図１】
2011077426.tif 000003
【図２】
2011077426.tif 000004
【図３】
2011077426.tif 000005
【図４】
2011077426.tif 000006
【図５】
2011077426.tif 000007
【図６】
2011077426.tif 000008
【図７】
2011077426.tif 000009
【図８】
2011077426.tif 000010
【図９】
2011077426.tif 000011
【図１０】
2011077426.tif 000012
【図１１】
2011077426.tif 000013
【図１２】
2011077426.tif 000014
【図１３】
2011077426.tif 000015
【図１４】
2011077426.tif 000016
【図１５】
2011077426.tif 000017
【図１６】
2011077426.tif 000018