(57)【要約】【課題】回路規模及び消費電力が増大することを抑制しつつ半導体集積回路におけるホールドエラーを解消できるようにする。【解決手段】タイミング検証によりホールドエラーが検出されたデータの伝送経路に、制御信号によって電源供給及び遅延量が制御可能な可変遅延バッファ回路を挿入し、タイミング検証の結果を基に要求される遅延量及び動作モードに応じて可変遅延バッファ回路に供給する制御信号を決定するようにして、複数のバッファ回路を設けずとも遅延量を広い範囲で制御可能にし、不要な場合には可変遅延バッファ回路への電源供給を遮断して動作を停止させることができるようにする。【選択図】図６
2010152718.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路のタイミング検証の結果に基づいてホールドエラーが発生したデータの伝送経路に、制御信号によって電源供給及び遅延量が制御される可変遅延バッファ回路を挿入する第１の工程と、
挿入される前記可変遅延バッファ回路に供給する制御信号を、前記タイミング検証の結果に基づく要求遅延量及び動作モードに応じて決定する第２の工程とを有することを特徴とする半導体集積回路の設計方法。
【請求項２】
前記第２の工程では、電源供給の有無及び遅延量の範囲に応じて予めグループ分けされている前記可変遅延バッファ回路に供給する制御信号の中から、前記要求遅延量及び前記動作モードに対応するグループの制御信号を選択することを特徴とする請求項１記載の半導体集積回路の設計方法。
【請求項３】
前記第１の工程では、制御可能な遅延量の範囲が互いに異なる複数の前記可変遅延バッファ回路の中から、挿入する前記可変遅延バッファ回路を前記要求遅延量に応じて選択することを特徴とする請求項１又は２記載の半導体集積回路の設計方法。
【請求項４】
前記第２の工程では、テスト動作に係るデータの伝送経路に挿入される前記可変遅延バッファ回路に対して、前記動作モードにより通常動作が行われる場合に供給する制御信号を、電源供給を遮断する制御信号に決定することを特徴とする請求項１〜３の何れか１項に記載の半導体集積回路の設計方法。
【請求項５】
前記半導体集積回路の製造ばらつきに応じて、前記タイミング検証の結果に基づく前記要求遅延量を調整して前記可変遅延バッファ回路に供給する制御信号を決定する第３の工程を有することを特徴とする請求項１〜４の何れか１項に記載の半導体集積回路の設計方法。
【請求項６】
半導体集積回路のタイミング検証の結果に基づいてホールドエラーが発生したデータの伝送経路に、制御信号によって電源供給及び遅延量が制御される可変遅延バッファ回路を挿入する第１のステップと、
挿入される前記可変遅延バッファ回路に供給する制御信号を、前記タイミング検証の結果に基づく要求遅延量及び動作モードに応じて決定する第２のステップとをコンピュータに実行させるためのプログラム。
【請求項７】
前記第１のステップ及び前記第２のステップの実行前に、前記半導体集積回路の前記タイミング検証を行うタイミング検証ステップをコンピュータに実行させる請求項６記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計方法及びプログラムに関し、半導体集積回路に係るタイミング設計技術に関する。
【背景技術】
【０００２】
半導体集積回路においては、タイミングエラーの１つであるホールドエラーが回路上で発生した場合には、ホールドエラーが解消されるようにバッファ回路の挿入を行っている。また、従来、フリップフロップは、テストモードでの動作（テスト動作）時に信号を出力するスキャンテスト用の出力端子（ＳＯ：スキャンアウト）を有していた。
【０００３】
しかし、セルの小型化等の要求によりスキャンテスト用の出力端子を設けずに、ユーザモードでの動作（通常動作）時と出力端子を共通して使用するようになってきた。この場合には、フリップフロップの出力端子（Ｑ：データ出力端子）に対して、ユーザロジック等を有する通常動作に係るデータの伝送経路（データライン）とともに、テスト動作に係るデータの伝送経路（スキャンチェーン）が接続されることとなる。
【０００４】
また、半導体集積回路におけるクロック信号線上に可変遅延器を設けることで、製造後にタイミング不良が生じた場合の救済を可能にしたり、動作性能の向上を可能にしたりする半導体集積回路が提案されている（例えば、特許文献１参照。）。また、クロック信号線の駆動回路中に可変な遅延値を持つ遅延回路を設け、その遅延値を制御することで、クロックスキューを抑制しクロック信号が係わるタイミングエラーを回避するようにした半導体集積回路が提案されている（例えば、特許文献２参照。）。
【０００５】
【特許文献１】特開２００５−３０３１８９号公報
【特許文献２】特開２０００−９１５０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、半導体集積回路上でホールドエラーが発生した場合には、所定の遅延値を有するバッファ回路をホールドエラーが解消される遅延量に相当する分だけ挿入するために回路規模の増大を招いてしまう。また、ユーザモード及びテストモードにおいて、フリップフロップの出力端子（Ｑ：データ出力端子）が共通して使用される場合には、ユーザモードでの動作時にもテスト動作に係るデータの伝送経路上のバッファ回路が動作する。すなわち、テスト動作に係るデータの伝送経路上のバッファ回路が、動作不要なユーザモードでの動作時を含めて常に動作するために、半導体集積回路の消費電力が増大してしまう。
本発明の目的は、回路規模及び消費電力が増大することを抑制しつつ半導体集積回路におけるホールドエラーを解消できるようにすることである。
【課題を解決するための手段】
【０００７】
本発明の一観点によれば、タイミング検証により検出されたホールドエラーに係るデータの伝送経路に、制御信号によって電源供給及び遅延量が制御される可変遅延バッファ回路を挿入し、タイミング検証の結果に基づく要求遅延量及び動作モードに応じて可変遅延バッファ回路に供給する制御信号を決定する半導体集積回路の設計方法が提供される。
【発明の効果】
【０００８】
データの伝送経路に挿入する可変遅延バッファ回路に供給する制御信号によって、データの伝送に係る遅延量の制御、及び可変遅延バッファ回路への電源供給の遮断を行うことができる。これにより、多数のバッファ回路を設けずとも遅延量を広い範囲で制御可能になり、また不要な場合には可変遅延バッファ回路の動作を停止させることができ、回路規模及び消費電力の増大を抑制しつつ半導体集積回路におけるホールドエラーを解消することが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施形態を図面に基づいて説明する。
【００１０】
（第１の実施形態）
本発明の第１の実施形態について説明する。
図１は、第１の実施形態における半導体集積回路の構成例を示す図である。
図１において、１０は半導体集積回路であり、ＦＦ１１〜ＦＦ１７はフリップフロップである。また、１１〜１５は可変遅延バッファ回路であり、１６〜１８はユーザロジック（論理回路）である。
【００１１】
フリップフロップＦＦ１１〜ＦＦ１７は、クロック信号ＣＫが供給され、当該クロック信号ＣＫに応じてデータの転送や保持等を行う。フリップフロップＦＦ１１〜ＦＦ１７は、ユーザモード及びテストモードにおいて出力端子（データ出力端子）Ｑが共通して使用される。すなわち、フリップフロップＦＦ１１〜ＦＦ１７のデータ出力端子Ｑは、ユーザモードでの動作（通常動作）時には通常のデータ出力端子として機能し、テストモードでの動作（テスト動作）時にはスキャンテスト用の出力端子（いわゆる従来のスキャンアウト）として機能する。
【００１２】
可変遅延バッファ回路１１〜１５は、入力される信号（データ信号）を遅延させて出力するバッファ回路である。可変遅延バッファ回路１１〜１５は、同様に構成される。可変遅延バッファ回路１１〜１５は、遅延量が可変であり、供給される制御信号Ｓ１１〜Ｓ１５によって遅延量が独立して制御される。また、可変遅延バッファ回路１１〜１５は、供給される制御信号Ｓ１１〜Ｓ１５によって電源供給が制御される。ユーザロジック１６〜１８は、それぞれ所望の回路機能を実現するための論理回路等である。
【００１３】
図１に示した半導体集積回路１０の例では、フリップフロップＦ１１の出力端子（データ出力端子）ＱとフリップフロップＦ１２の入力端子（データ入力端子）Ｄとが、ユーザロジック１６及び可変遅延バッファ回路１１を介して接続される。フリップフロップＦ１１のデータ出力端子ＱとフリップフロップＦ１３のデータ入力端子Ｄとが、可変遅延バッファ回路１２を介して接続される。
【００１４】
また、フリップフロップＦ１７のデータ出力端子ＱとフリップフロップＦ１４のデータ入力端子Ｄとが、ユーザロジック１７及び可変遅延バッファ回路１３を介して接続される。フリップフロップＦ１７のデータ出力端子ＱとフリップフロップＦ１５のデータ入力端子Ｄとが、ユーザロジック１８及び可変遅延バッファ回路１４を介して接続され、フリップフロップＦ１７のデータ出力端子ＱとフリップフロップＦ１６のデータ入力端子Ｄとが、可変遅延バッファ回路１５を介して接続される。
【００１５】
ここで、図１に示した半導体集積回路１０においては、各ユーザロジック１６〜１８を介したデータの伝送経路を通常動作に係るデータの伝送経路（データライン）とする。一方、ユーザロジック１６〜１８を介さないデータの伝送経路をテスト動作に係るデータの伝送経路（スキャンチェーン）とする。
【００１６】
すなわち、フリップフロップＦ１１のデータ出力端子ＱからフリップフロップＦ１２のデータ入力端子Ｄへのデータ伝送経路、及びフリップフロップＦ１７のデータ出力端子ＱからフリップフロップＦ１４、Ｆ１５の各々のデータ入力端子Ｄへの各データ伝送経路を通常動作に係るデータの伝送経路とする。また、フリップフロップＦ１１のデータ出力端子ＱからフリップフロップＦ１３のデータ入力端子Ｄへのデータ伝送経路、及びフリップフロップＦ１７のデータ出力端子ＱからフリップフロップＦ１６のデータ入力端子Ｄへのデータ伝送経路をテスト動作に係るデータの伝送経路とする。
【００１７】
図２は、第１の実施形態における可変遅延バッファ回路の構成例を示す回路図である。
図２において、ＰＴ１、ＰＴ２、及びＰＴａ、ＰＴｂ、ＰＴｃ、…、ＰＴｇ、ＰＴｈ、ＰＴｉは、ｐチャネル型トランジスタであり、ＮＴ１、ＮＴ２、及びＮＴａ、ＮＴｂ、ＮＴｃ、…、ＮＴｇ、ＮＴｈ、ＮＴｉは、ｎチャネル型トランジスタである。
【００１８】
トランジスタＰＴ１は、ソースがノードＮＡに接続され、ドレインがトランジスタＮＴ１のドレインに接続される。トランジスタＮＴ１は、ソースがノードＮＢに接続される。トランジスタＰＴ１及びＮＴ１のゲートには、入力信号ＩＮが入力される。同様に、トランジスタＰＴ２は、ソースがノードＮＡに接続され、ドレインがトランジスタＮＴ２のドレインに接続される。トランジスタＮＴ２は、ソースがノードＮＢに接続される。トランジスタＰＴ２及びＮＴ２は、ゲートがトランジスタＰＴ１とＮＴ１のドレインの相互接続点に接続される。また、トランジスタＰＴ２とＮＴ２のドレインの相互接続点の電位が、出力信号ＯＵＴとして出力される。
【００１９】
すなわち、トランジスタＰＴ１とＮＴ１とからなる第１のインバータに入力信号ＩＮが入力される。トランジスタＰＴ１とＮＴ１とからなる第１のインバータの出力がトランジスタＰＴ２とＮＴ２とからなる第２のインバータに入力される。また、トランジスタＰＴ２とＮＴ２とからなる第２のインバータの出力が出力信号ＯＵＴとして出力される。トランジスタＰＴ１とＮＴ１とからなる第１のインバータと、トランジスタＰＴ２とＮＴ２とからなる第２のインバータとにより、入力される入力信号ＩＮを遅延させて出力信号ＯＵＴとして出力するバッファ部が構成される。
【００２０】
また、トランジスタＰＴａ、ＰＴｂ、ＰＴｃ、…、ＰＴｇ、ＰＴｈ、ＰＴｉの各々は、ソースが第１の電源線に接続され、ドレインがノードＮＡに接続される。また、各トランジスタＰＴａ、ＰＴｂ、ＰＴｃ、…、ＰＴｇ、ＰＴｈ、ＰＴｉのゲートには、制御信号ＳＰａ、ＳＰｂ、ＳＰｃ、…、ＳＰｇ、ＳＰｈ、ＳＰｉが入力される。第１の電源線は、第１の電源電圧（例えば、電源電圧Ｖｄｄ）を供給するための電源線である。
【００２１】
同様に、トランジスタＮＴａ、ＮＴｂ、ＮＴｃ、…、ＮＴｇ、ＮＴｈ、ＮＴｉの各々は、ソースが第２の電源線に接続され、ドレインがノードＮＢに接続される。また、各トランジスタＮＴａ、ＮＴｂ、ＮＴｃ、…、ＮＴｇ、ＮＴｈ、ＮＴｉのゲートには、制御信号ＳＮａ、ＳＮｂ、ＳＮｃ、…、ＳＮｇ、ＳＮｈ、ＳＮｉが入力される。第２の電源線は、第２の電源電圧（例えば、基準電位Ｖｓｓ）を供給するための電源線である。
【００２２】
トランジスタＰＴａ、ＰＴｂ、ＰＴｃ、…、ＰＴｇ、ＰＴｈ、ＰＴｉ及びＮＴａ、ＮＴｂ、ＮＴｃ、…、ＮＴｇ、ＮＴｈ、ＮＴｉは、対応する制御信号ＳＰａ、ＳＰｂ、ＳＰｃ、…、ＳＰｇ、ＳＰｈ、ＳＰｉ及びＳＮａ、ＳＮｂ、ＳＮｃ、…、ＳＮｇ、ＳＮｈ、ＳＮｉにより独立してオン／オフ制御される。トランジスタＰＴａ、ＰＴｂ、ＰＴｃ、…、ＰＴｇ、ＰＴｈ、ＰＴｉ及びＮＴａ、ＮＴｂ、ＮＴｃ、…、ＮＴｇ、ＮＴｈ、ＮＴｉにおいて、オンされる（あるいはオフされる）トランジスタの個数を制御することにより、可変遅延バッファ回路の遅延量が制御される。
【００２３】
例えば、本実施形態では、図３に示すように可変遅延バッファ回路における遅延量を任意の値及び幅（範囲）で予めグループ分け（Ｇ１〜Ｇ７）しておき、可変遅延バッファ回路に要求される遅延量（要求遅延量）に対応するグループの制御信号が供給する制御信号として選択される。なお、図３においては、０＜Ｔ１＜Ｔ２＜Ｔ３＜Ｔ４＜Ｔ５＜Ｔ６とする。また、図３に示すような制御信号は、例えばシミュレーションを予め行って決定しておけば良い。
【００２４】
また、制御信号ＳＰａ、ＳＰｂ、ＳＰｃ、…、ＳＰｇ、ＳＰｈ、ＳＰｉについては、信号値が“０”のときにトランジスタＰＴａ、ＰＴｂ、ＰＴｃ、…、ＰＴｇ、ＰＴｈ、ＰＴｉはオン状態であり、信号値が“１”のときにトランジスタＰＴａ、ＰＴｂ、ＰＴｃ、…、ＰＴｇ、ＰＴｈ、ＰＴｉはオフ状態である。同様に、制御信号ＳＮａ、ＳＮｂ、ＳＮｃ、…、ＳＮｇ、ＳＮｈ、ＳＮｉについては、信号値が“１”のときにトランジスタＮＴａ、ＮＴｂ、ＮＴｃ、…、ＮＴｇ、ＮＴｈ、ＮＴｉはオン状態であり、信号値が“０”のときにトランジスタＮＴａ、ＮＴｂ、ＮＴｃ、…、ＮＴｇ、ＮＴｈ、ＮＴｉはオフ状態である。
【００２５】
例えば、図３に示したように、可変遅延バッファ回路に要求される遅延量が０〜Ｔ１（ｐｓ）である場合には、トランジスタＰＴａ、ＰＴｂ、ＰＴｃ、…、ＰＴｇ、ＰＴｈ、ＰＴｉ及びＮＴａ、ＮＴｂ、ＮＴｃ、…、ＮＴｇ、ＮＴｈ、ＮＴｉのすべてがオン状態とされる。一方、可変遅延バッファ回路に要求される遅延量がＴ５〜Ｔ６（ｐｓ）である場合には、トランジスタＰＴａ及びＮＴａがオン状態とされ、トランジスタＰＴｂ、ＰＴｃ、…、ＰＴｇ、ＰＴｈ、ＰＴｉ及びＮＴｂ、ＮＴｃ、…、ＮＴｇ、ＮＴｈ、ＮＴｉがオフ状態とされる。
【００２６】
また、グループＧ７に示すように、トランジスタＰＴａ、ＰＴｂ、ＰＴｃ、…、ＰＴｇ、ＰＴｈ、ＰＴｉ及びＮＴａ、ＮＴｂ、ＮＴｃ、…、ＮＴｇ、ＮＴｈ、ＮＴｉのすべてをオフ状態とすることで、可変遅延バッファ回路への電源供給を遮断（カットオフ）し、可変遅延バッファ回路の動作を停止させることを可能としている。このグループＧ７に係る制御信号は、例えば、ユーザモードでの動作（通常動作）時にテスト動作に係るデータの伝送経路上の可変遅延バッファ回路に供給し、その動作を停止させるために用いられる。これにより、無駄な消費電力を抑制し、半導体集積回路の消費電力を低減することができる。
【００２７】
なお、図２に示す可変遅延バッファ回路において、トランジスタＰＴａ、ＰＴｂ、ＰＴｃ、…、ＰＴｇ、ＰＴｈ、ＰＴｉ及びＮＴａ、ＮＴｂ、ＮＴｃ、…、ＮＴｇ、ＮＴｈ、ＮＴｉの各々は、電源線とノードＮＡ、ＮＢとの接続に係るスイッチング機能を実現するものである。しかしながら、トランジスタに限定されず、同様のスイッチング機能が実現可能であればよく、複数のスイッチが並列接続された構成であれば良い。
【００２８】
図４は、第１の実施形態における可変遅延バッファ回路の他の構成例を示す回路図である。図２に示した可変遅延バッファ回路は、トランジスタＰＴａ、ＰＴｂ、ＰＴｃ、…、ＰＴｇ、ＰＴｈ、ＰＴｉ及びＮＴａ、ＮＴｂ、ＮＴｃ、…、ＮＴｇ、ＮＴｈ、ＮＴｉをオン／オフ制御することで、すなわちデジタル的な制御により遅延量の制御が行われる。それに対して、以下に説明する図４に示す可変遅延バッファ回路は、供給される電流をアナログ的に制御することで遅延量の制御が行われる。
【００２９】
図４において、ＰＴ１、ＰＴ２、及びＰＴＡは、ｐチャネル型トランジスタであり、ＮＴ１、ＮＴ２、及びＮＴＡは、ｎチャネル型トランジスタである。
【００３０】
トランジスタＰＴ１は、ソースがノードＮＡに接続され、ドレインがトランジスタＮＴ１のドレインに接続される。トランジスタＮＴ１は、ソースがノードＮＢに接続される。トランジスタＰＴ１及びＮＴ１のゲートには、入力信号ＩＮが入力される。同様に、トランジスタＰＴ２は、ソースがノードＮＡに接続され、ドレインがトランジスタＮＴ２のドレインに接続される。トランジスタＮＴ２は、ソースがノードＮＢに接続される。トランジスタＰＴ２及びＮＴ２は、ゲートがトランジスタＰＴ１とＮＴ１のドレインの相互接続点に接続される。また、トランジスタＰＴ２とＮＴ２のドレインの相互接続点の電位が、出力信号ＯＵＴとして出力される。
【００３１】
すなわち、トランジスタＰＴ１とＮＴ１とからなる第１のインバータに入力信号ＩＮが入力される。トランジスタＰＴ１とＮＴ１とからなる第１のインバータの出力がトランジスタＰＴ２とＮＴ２とからなる第２のインバータに入力される。また、トランジスタＰＴ２とＮＴ２とからなる第２のインバータの出力が出力信号ＯＵＴとして出力される。トランジスタＰＴ１とＮＴ１とからなる第１のインバータと、トランジスタＰＴ２とＮＴ２とからなる第２のインバータとにより、入力される入力信号ＩＮを遅延させて出力信号ＯＵＴとして出力するバッファ部が構成される。
【００３２】
また、トランジスタＰＴＡは、ソースが第１の電源線に接続され、ドレインがノードＮＡに接続され、ゲートに制御信号ＶＰが入力される。第１の電源線は、第１の電源電圧（例えば、電源電圧Ｖｄｄ）を供給するための電源線である。また、トランジスタＮＴＡは、ソースが第２の電源線に接続され、ドレインがノードＮＢに接続され、ゲートに制御信号ＶＮが入力される。第２の電源線は、第２の電源電圧（例えば、基準電位Ｖｓｓ）を供給するための電源線である。
【００３３】
トランジスタＰＴＡ、ＮＴＡは、制御信号ＶＰ、ＶＮにより制御される。制御信号ＶＰ、ＶＮの電圧に応じてトランジスタＰＴＡ、ＮＴＡを流れる電流を制御することにより、可変遅延バッファ回路の遅延量が制御される。図２に示した可変遅延バッファ回路と同様に、例えば、遅延量を任意の値及び幅（範囲）で予めグループ分けしておき、可変遅延バッファ回路に要求される遅延量（要求遅延量）に対応するグループの制御信号（電圧値）を供給するよう選択するようにしても良い。
【００３４】
次に、可変遅延バッファ回路への制御信号の供給方法について説明する。
可変遅延バッファ回路への制御信号の供給は、電源供給に係る各トランジスタに対して外部から制御信号を個別に入力するようにしても良いが、これに限定されるものではない。
【００３５】
例えば、図５（Ａ）に示すように制御信号を予め組み込んだ記憶部（例えばＲＯＭ）５２を設けておく。そして、どの制御信号を出力するかを指示する信号ＳＣを記憶部５２に入力し、可変遅延バッファ回路５１に供給する制御信号ＣＴＬを信号ＳＣに応じて選択するようにしても良い。例えば、信号ＳＣとしてグループを特定するための制御信号値を入力し、信号ＳＣにより入力された制御信号値に対応するグループの制御信号を可変遅延バッファ回路５１に信号ＣＴＬとして供給するようにしても良い。このようにした場合には、制御信号を指定する制御信号値を入力するだけでよく、簡単な制御で行うことができる。
【００３６】
また、図２に示した可変遅延バッファ回路においては、制御信号を供給する配線を引き回すことなく、図５（Ｂ）に示すように、電源供給に係る各トランジスタのゲートを制御信号に合わせて、近傍の第１の電源線や第２の電源線に接続するようにしても良い。
【００３７】
図６は、第１の実施形態における半導体集積回路の設計方法に係る処理の流れを示す図である。以下に説明する処理は、例えばコンピュータを利用した設計システム等により実行される。
【００３８】
まず、レイアウト済みの設計データを用いてタイミング検証が行われる（Ｓ１１）。このタイミング検証により、半導体集積回路上でのホールドエラーの発生箇所及びホールドエラー値が検出される。
【００３９】
次に、ステップＳ１１でのタイミング検証の結果を基にグループ化処理を行う（Ｓ１２）。グループ化処理では、タイミング検証で検出されたホールドエラーを解消するために挿入する可変遅延バッファ回路に要求される遅延量（要求遅延量）及び動作モード（ユーザモードであるかテストモードであるか）に応じた分類を行う。グループ化処理は、タイミング検証で検出されたホールドエラーのすべてについて行う。
【００４０】
なお、図６においては可変遅延バッファ回路への電源供給が遮断されるグループを図示していない。しかし、例えばテスト動作に係るデータの伝送経路上に挿入される可変遅延バッファ回路（図１に示した例では、可変遅延バッファ回路１２，１５）については、動作モードがユーザモードである場合には電源供給が遮断されるグループに分類される。
【００４１】
続いて、ステップＳ１２でのグループ化処理の結果に従い、検出されたホールドエラーの発生箇所にセルの追加（可変遅延バッファ回路の挿入）を行うとともに要求遅延量に対応する制御信号を分配する（Ｓ１３）。
【００４２】
以上、第１の実施形態によれば、タイミング検証によりホールドエラーが検出されたデータの伝送経路に、制御信号によって電源供給及び遅延量が制御可能な可変遅延バッファ回路を挿入する。そして、タイミング検証の結果を基に要求される遅延量、及びユーザモードであるかテストモードであるかに応じた制御信号を可変遅延バッファ回路に供給する。これにより、複数のバッファ回路を設けずとも遅延量を広い範囲で制御可能になり、また不要な場合には可変遅延バッファ回路への電源供給を遮断して動作を停止させることができる。したがって、回路規模及び消費電力の増大を抑制しながらも半導体集積回路におけるホールドエラーを解消することが可能となる。
【００４３】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。
１種類のセル（１種類の可変遅延バッファ回路）のみを用いて、半導体集積回路で発生したすべてのホールドエラーを解消しようとすると、可変遅延バッファ回路は要求され得る最大遅延量に対応する必要があるため、可変遅延バッファ回路のサイズは大きくなる。そこで、以下に説明する第２の実施形態は、制御可能な遅延量が互いに異なる複数種類の可変遅延バッファ回路を用いるようにし、タイミング検証の結果を基に要求される遅延量に応じて、適切なサイズの可変遅延バッファ回路の挿入を行うようにするものである。
【００４４】
図７は、第２の実施形態における半導体集積回路の構成例を示す図である。
図７において、２０は半導体集積回路であり、ＦＦ２１〜ＦＦ２７はフリップフロップである。また、２１〜２５は可変遅延バッファ回路であり、２６〜２８はユーザロジック（論理回路）である。
【００４５】
フリップフロップＦＦ２１〜ＦＦ２７は、クロック信号ＣＫが供給され、当該クロック信号ＣＫに応じてデータの転送や保持等を行う。フリップフロップＦＦ２１〜ＦＦ２７は、図１に示したフリップフロップＦＦ１１〜ＦＦ１７と同様に構成される。
【００４６】
可変遅延バッファ回路２１〜２５は、入力される信号（データ信号）を遅延させて出力するバッファ回路である。可変遅延バッファ回路２１〜２５は、供給される制御信号Ｓ２１〜Ｓ２５によって、遅延量が独立して制御されるとともに電源供給が制御される。
【００４７】
図７に示す例では、可変遅延バッファ回路２１は、第１の範囲（例えば０〜ＴＡ）で遅延量が可変な可変遅延バッファ回路Ａであり、可変遅延バッファ回路２３は、第２の範囲（例えばＴＡ〜ＴＢ）で遅延量が可変な可変遅延バッファ回路Ｂである。また、可変遅延バッファ回路２２、２４、２５は、第３の範囲（例えばＴＢ〜ＴＣ）で遅延量が可変な可変遅延バッファ回路Ｃである。なお、０＜ＴＡ＜ＴＢ＜ＴＣとする。
【００４８】
可変遅延バッファ回路２１〜２５の各々は、上述した第１の実施形態における可変遅延バッファ回路１１〜１５と同様に構成されるが、上述した制御可能な遅延量の範囲に応じて、トランジスタサイズや、電源供給に係るトランジスタのサイズや数が異なる。ユーザロジック２６〜２８は、それぞれ所望の回路機能を実現するための論理回路等である。
【００４９】
図７に示した半導体集積回路２０の例では、フリップフロップＦ２１のデータ出力端子ＱとフリップフロップＦ２２のデータ入力端子Ｄとが、ユーザロジック２６及び可変遅延バッファ回路２１を介して接続される。フリップフロップＦ２１のデータ出力端子ＱとフリップフロップＦ２３のデータ入力端子Ｄとが、可変遅延バッファ回路２２を介して接続される。
【００５０】
また、フリップフロップＦ２７のデータ出力端子ＱとフリップフロップＦ２４のデータ入力端子Ｄとが、ユーザロジック２７及び可変遅延バッファ回路２３を介して接続される。フリップフロップＦ２７のデータ出力端子ＱとフリップフロップＦ２５のデータ入力端子Ｄとが、ユーザロジック２８及び可変遅延バッファ回路２４を介して接続され、フリップフロップＦ２７のデータ出力端子ＱとフリップフロップＦ２６のデータ入力端子Ｄとが、可変遅延バッファ回路２５を介して接続される。
【００５１】
ここで、フリップフロップＦ２１のデータ出力端子ＱからフリップフロップＦ２２のデータ入力端子Ｄへのデータ伝送経路、及びフリップフロップＦ２７のデータ出力端子ＱからフリップフロップＦ２４、Ｆ２５の各々のデータ入力端子Ｄへの各データ伝送経路を通常動作に係るデータの伝送経路とする。また、フリップフロップＦ２１のデータ出力端子ＱからフリップフロップＦ２３のデータ入力端子Ｄへのデータ伝送経路、及びフリップフロップＦ２７のデータ出力端子ＱからフリップフロップＦ２６のデータ入力端子Ｄへのデータ伝送経路をテスト動作に係るデータの伝送経路とする。
【００５２】
図８は、第２の実施形態における半導体集積回路の設計方法に係る処理の流れを示す図であり、当該処理は、例えばコンピュータを利用した設計システム等により実行される。
【００５３】
まず、レイアウト済みの設計データを用いてタイミング検証が行われる（Ｓ２１）。このタイミング検証により、半導体集積回路上でのホールドエラーの発生箇所及びホールドエラー値が検出される。
【００５４】
次に、ステップＳ２１でのタイミング検証の結果を基に第１のグループ化処理を行う（Ｓ２２）。第１のグループ化処理では、タイミング検証で検出されたホールドエラー値、すなわちホールドエラーを解消するために要求される遅延量（要求遅延量）を大きなグループに分ける。そして、グループに応じて、制御可能な遅延量が互いに異なる複数の可変遅延バッファ回路の中から挿入する可変遅延バッファ回路を選択する。第１のグループ化処理は、タイミング検証で検出されたホールドエラーのすべてについて行われる。
【００５５】
図６に示した例では、３種類の可変遅延バッファ回路を予め用意している。そして、要求遅延量が０〜ＴＡの場合には第１の可変遅延バッファ回路（Ｃｅｌｌ−１）が選択され、要求遅延量がＴＢ〜ＴＣの場合には第２の可変遅延バッファ回路（Ｃｅｌｌ−２）が選択され、要求遅延量がＴＢ〜ＴＣの場合には第３の可変遅延バッファ回路（Ｃｅｌｌ−３）が選択される。
【００５６】
次に、ステップＳ２２での第１のグループ化処理が終了すると、ステップＳ２１でのタイミング検証の結果を基に第２のグループ化処理を行う（Ｓ２３、Ｓ２４、Ｓ２５）。第２のグループ化処理では、ステップＳ２２で挿入されることとなった可変遅延バッファ回路について、タイミング検証で検出されたホールドエラーを解消するための要求遅延量及び動作モード（ユーザモードであるかテストモードであるか）に応じた分類を行う。
【００５７】
なお、図８においては可変遅延バッファ回路への電源供給が遮断されるグループを図示していない。しかし、例えばテスト動作に係るデータの伝送経路上に挿入される可変遅延バッファ回路（図７に示した例では、可変遅延バッファ回路２２，２５）については、動作モードがユーザモードである場合には電源供給が遮断されるグループに分類される。
【００５８】
続いて、ステップＳ２２での第１のグループ化処理及びステップＳ２３〜Ｓ２５での第２のグループ化処理の結果に従い、検出されたホールドエラーの発生箇所にセルの追加（可変遅延バッファ回路の挿入）を行うとともに要求遅延量に対応する制御信号を分配する（Ｓ２６）。
【００５９】
第２の実施形態によれば、第１の実施形態と同様の効果が得られるとともに、複数種類の可変遅延バッファ回路を用意し、要求される遅延量に応じた適切なサイズの可変遅延バッファ回路を挿入するようにしたので、回路規模が増大するのを抑制することができる。
【００６０】
ここで、上述した説明では、半導体集積回路の設計工程で遅延量を調整する場合について説明したが、一般に半導体集積回路の製造においては製造ばらつきが発生する。例えば、Ｔｙｐｉｃａｌ値ではホールドエラーが発生しなくとも、製造ばらつきにより速くなる場合にはホールド値が厳しくなってホールドエラーが発生してしまうことが考えられる。
【００６１】
そこで、図９に示すように構成して、半導体集積回路の製造後においても、製造ばらつきに応じて可変遅延バッファ回路の供給する制御信号を変更できるようにしても良い。半導体集積回路の製造後においても制御信号を変更可能にすることで、従来であれば不良品とされるものを救済して良品とすることができ、歩留まりを向上させることができる。
【００６２】
図９において、９１は制御信号を予め組み込んだ記憶部（例えばＲＯＭ）であり、９２はセレクタである。セレクタ９２は、設定部９４及びテストモード選択部９５からの信号に応じて、可変遅延バッファ回路９３に供給する制御信号ＣＴＬを選択する。設定部９４は、半導体集積回路の製造後に外部からの設定が可能なように構成されており、例えば電気ヒューズ等のＯＴＰＭ（One Time Program Memory）である。
【００６３】
そして、製造ばらつきにより速くなる場合には、タイミング検証に応じて要求される遅延量を製造ばらつきに応じて調整し、設定部９４を使用して可変遅延バッファ回路に供給する制御信号を、Ｔｙｐｉｃａｌのときよりも例えば１グループ分遅くなるように変更する。これにより、可変遅延バッファ回路における遅延量を大きくする。例えば、ＴｙｐｉｃａｌでグループＧ３の制御信号を供給するのであれば、製造ばらつきにより速くなる場合には、例えばグループＧ２の制御信号を供給するように設定部９４により設定する。これにより、半導体集積回路における製造ばらつきに起因した遅延のばらつきの影響を吸収（緩和）することができる。
【００６４】
なお、図１や図７に示した半導体集積回路の構成例は一例であり、これに限定されるものではない。例えば、ユーザロジック及び可変遅延バッファ回路は模式的に図示したものであり、その接続順は任意であり、可変遅延バッファ回路の後段側にユーザロジックがあっても良いし、可変遅延バッファ回路の前段側及び後段側にユーザロジックがあっても良い。
【００６５】
また、上述した各実施形態における半導体集積回路の設計方法は、例えばコンピュータのＣＰＵ又はＭＰＵ、ＲＡＭ、ＲＯＭ等で構成できるものであり、ＲＡＭやＲＯＭに記憶されたプログラムが動作することによって実現でき、前記プログラムは本発明の実施形態に含まれる。また、コンピュータが前記機能を果たすように動作させるプログラムを、例えばＣＤ−ＲＯＭのような記録媒体に記録し、コンピュータに読み込ませることによって実現できるものであり、前記プログラムを記録した記録媒体は本発明の実施形態に含まれる。前記プログラムを記録する記録媒体としては、ＣＤ−ＲＯＭ以外に、フレキシブルディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を用いることができる。
また、コンピュータがプログラムを実行し処理を行うことにより、前記実施形態の機能が実現されるプログラムプロダクトは、本発明の実施形態に含まれる。前記プログラムプロダクトとしては、前記実施形態の機能を実現するプログラム自体、前記プログラムが読み込まれたコンピュータ、ネットワークを介して通信可能に接続されたコンピュータに前記プログラムを提供可能な送信装置、及び当該送信装置を備えるネットワークシステム等がある。
また、コンピュータが供給されたプログラムを実行することにより前記実施形態の機能が実現されるだけでなく、そのプログラムがコンピュータにおいて稼動しているＯＳ（オペレーティングシステム）又は他のアプリケーションソフト等と共同して前記実施形態の機能が実現される場合や、供給されたプログラムの処理のすべて又は一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて前記実施形態の機能が実現される場合も、かかるプログラムは本発明の実施形態に含まれる。また、本発明をネットワーク環境で利用するべく、全部又は一部のプログラムが他のコンピュータで実行されるようになっていても良い。
【００６６】
例えば、上述した各実施形態における半導体集積回路の設計方法は、図１０に示すようなコンピュータ機能７００により実現でき、そのＣＰＵ７０１により前記実施形態での動作が実施される。
コンピュータ機能７００は、図１０に示すように、ＣＰＵ７０１と、ＲＯＭ７０２と、ＲＡＭ７０３と、操作部（ＣＯＮＳ）７０９のコントローラ（ＣＯＮＳＣ）７０５と、表示部としてのディスプレイ（ＤＩＳＰ）７１０のディスプレイコントローラ（ＤＩＳＰＣ）７０６と、ハードディスク（ＨＤ）７１１及びフレキシブルディスク等の記憶デバイス（ＳＴＤ）７１２のコントローラ（ＤＣＯＮＴ）７０７と、ネットワークインタフェースカード（ＮＩＣ）７０８とが、システムバス７０４を介して互いに通信可能に接続された構成としている。
ＣＰＵ７０１は、ＲＯＭ７０２又はＨＤ７１１に記憶されたソフトウェア（プログラム）、又はＳＴＤ７１２により供給されるソフトウェア（プログラム）を実行することで、システムバス７０４に接続された各構成部を統括的に制御する。すなわち、ＣＰＵ７０１は、上述したような動作を行うための処理プログラムを、ＲＯＭ７０２、ＨＤ７１１、又はＳＴＤ７１２から読み出して実行することで、前記実施形態での動作を実現するための制御を行う。ＲＡＭ７０３は、ＣＰＵ７０１の主メモリ又はワークエリア等として機能する。
ＣＯＮＳＣ７０５は、ＣＯＮＳ７０９や図示していないポインティングデバイス等からの指示入力を制御する。ＤＩＳＰＣ７０６は、ＤＩＳＰ７１０の表示を制御する。ＤＣＯＮＴ７０７は、ブートプログラム、種々のアプリケーション、ユーザファイル、ネットワーク管理プログラム、及び前記実施形態における前記処理プログラム等を記憶するＨＤ７１１及びＳＴＤ７１２とのアクセスを制御する。ＮＩＣ７０８はネットワーク７１３上の他の装置と双方向にデータをやりとりする。
【００６７】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
【００６８】
（付記１）半導体集積回路のタイミング検証の結果に基づいてホールドエラーが発生したデータの伝送経路に、制御信号によって電源供給及び遅延量が制御される可変遅延バッファ回路を挿入する第１の工程と、
挿入される前記可変遅延バッファ回路に供給する制御信号を、前記タイミング検証の結果に基づく要求遅延量及び動作モードに応じて決定する第２の工程とを有することを特徴とする半導体集積回路の設計方法。
（付記２）前記第２の工程では、電源供給の有無及び遅延量の範囲に応じて予めグループ分けされている前記可変遅延バッファ回路に供給する制御信号の中から、前記要求遅延量及び前記動作モードに対応するグループの制御信号を選択することを特徴とする付記１記載の半導体集積回路の設計方法。
（付記３）前記第１の工程では、制御可能な遅延量の範囲が互いに異なる複数の前記可変遅延バッファ回路の中から、挿入する前記可変遅延バッファ回路を前記要求遅延量に応じて選択することを特徴とする付記１又は２記載の半導体集積回路の設計方法。
（付記４）前記第２の工程では、テスト動作に係るデータの伝送経路に挿入される前記可変遅延バッファ回路に対して、前記動作モードにより通常動作が行われる場合に供給する制御信号を、電源供給を遮断する制御信号に決定することを特徴とする付記１〜３の何れか１項に記載の半導体集積回路の設計方法。
（付記５）前記半導体集積回路の製造ばらつきに応じて、前記タイミング検証の結果に基づく前記要求遅延量を調整して前記可変遅延バッファ回路に供給する制御信号を決定する第３の工程を有することを特徴とする付記１〜４の何れか１項に記載の半導体集積回路の設計方法。
（付記６）前記可変遅延バッファ回路は、
入力信号を遅延させるバッファ部と、
前記バッファ部と電源との間に並列に接続され、前記制御信号によって独立してオン／オフ制御される複数のスイッチとを有することを特徴とする付記１〜５の何れか１項に記載の半導体集積回路の設計方法。
（付記７）前記可変遅延バッファ回路は、
入力信号を遅延させるバッファ部と、
前記バッファ部と電源との間に接続され、前記制御信号によって流れる電流が制御される電源供給制御部とを有することを特徴とする付記１〜５の何れか１項に記載の半導体集積回路の設計方法。
（付記８）半導体集積回路のタイミング検証の結果に基づいてホールドエラーが発生したデータの伝送経路に、制御信号によって電源供給及び遅延量が制御される可変遅延バッファ回路を挿入する第１のステップと、
挿入される前記可変遅延バッファ回路に供給する制御信号を、前記タイミング検証の結果に基づく要求遅延量及び動作モードに応じて決定する第２のステップとをコンピュータに実行させるためのプログラム。
（付記９）前記第２のステップでは、電源供給の有無及び遅延量の範囲に応じて予めグループ分けされている前記可変遅延バッファ回路に供給する制御信号の中から、前記要求遅延量及び前記動作モードに対応するグループの制御信号を選択することを特徴とする付記８記載のプログラム。
（付記１０）前記第１のステップでは、制御可能な遅延量の範囲が互いに異なる複数の前記可変遅延バッファ回路の中から、挿入する前記可変遅延バッファ回路を前記要求遅延量に応じて選択することを特徴とする付記８又は９記載のプログラム。
（付記１１）前記第１のステップ及び前記第２のステップの実行前に、前記半導体集積回路の前記タイミング検証を行うタイミング検証ステップをコンピュータに実行させる付記８〜１０の何れか１項に記載のプログラム。
【図面の簡単な説明】
【００６９】
【図１】第１の実施形態における半導体集積回路の構成例を示す図である。
【図２】第１の実施形態における可変遅延バッファ回路の構成例を示す図である。
【図３】図２に示した可変遅延バッファ回路に供給する制御信号の一例を示す図である。
【図４】第１の実施形態における可変遅延バッファ回路の他の構成例を示す図である。
【図５】可変遅延バッファ回路への制御信号の供給方法を説明するための図である。
【図６】第１の実施形態における半導体集積回路の設計方法に係る処理の流れを示す図である。
【図７】第２の実施形態における半導体集積回路の構成例を示す図である。
【図８】第２の実施形態における半導体集積回路の設計方法に係る処理の流れを示す図である。
【図９】本発明の各実施形態における半導体集積回路の製造後の救済方法を説明するための図である。
【図１０】本発明の各実施形態における半導体集積回路の設計方法を実行可能なコンピュータの構成例を示す図である。
【符号の説明】
【００７０】
１０、２０  半導体集積回路
ＦＦ１１〜ＦＦ１７、ＦＦ２１〜ＦＦ２７  フリップフロップ
１１〜１５、２１〜２５  可変遅延バッファ回路
１６〜１８、２６〜２８  ユーザロジック
【図１】
2010152718.tif 000003
【図２】
2010152718.tif 000004
【図３】
2010152718.tif 000005
【図４】
2010152718.tif 000006
【図５】
2010152718.tif 000007
【図６】
2010152718.tif 000008
【図７】
2010152718.tif 000009
【図８】
2010152718.tif 000010
【図９】
2010152718.tif 000011
【図１０】
2010152718.tif 000012