(57)【要約】【課題】  実装状態でホールドマージンの検査を行なうことのできる集積回路及びホールドマージンの検査方法を提供すること。【解決手段】  バッファ１００は通常の動作時は通常遅延で出力を行なうが、ホールドマージンを検査する場合には、通常遅延よりも大きい遅延量で入力クロックを遅延させて出力する。検査時の遅延量の例としては予想されるホットキャリアによるクロックの遅延分とする。バッファ１００にホールドマージン分を加えた遅延量でクロックを遅延させて出力させ、Ｆ／Ｆ１０１で正常にデータを取り込むことができるかを検査する。【選択図】  図８
2005293622.tif 000002
【特許請求の範囲】
【請求項１】
集積回路であって、
通常の遅延量と、前記通常の遅延量よりも大きい検査用遅延量とのいずれかの遅延量で、クロックを遅延させて出力する遅延機能付きクロックバッファと、
前記遅延機能付きクロックバッファから出力されるクロックで、データを取り込み保持する記憶回路とを備え、
前記遅延機能付きクロックバッファにおいて、前記検査用遅延量を選択して通常の遅延量よりも大きい遅延量でクロックを出力させ、このクロックで前記フリップフロップによりデータを取り込ませ、前記フリップフロップの出力データと出力データの期待値とを比較することにより、前記クロックバッファのクロック遅延により生じるホールドタイムエラーの余裕度を検査するように構成したことを特徴とする集積回路。
【請求項２】
集積回路であって、
通常の使用のパスと、ホットキャリアによるクロック遅延を見込んだホールドマージン分の遅延量を加味した検査用遅延パスとを有する遅延機能付きクロックバッファと、
前記遅延機能付きクロックバッファから出力されるクロックで、データを取り込むフリップフロップとを備え、
前記遅延機能付きクロックバッファにおいて、前記検査用遅延パスを選択してホールドマージン分の遅延量を加味した遅延量でクロックを出力させ、このクロックで前記フリップフロップによりデータを取り込ませ、前記フリップフロップの出力データと出力データの期待値とを比較することにより、ホールドマージンを検査するように構成したことを特徴とする集積回路。
【請求項３】
クロックバッファが多段に構成された集積回路において、前記遅延機能付きクロックバッファを最終段に設けることを特徴とする請求項１又は請求項２に記載の集積回路。
【請求項４】
前記遅延機能付きクロックバッファは、外部から与えられるデータにより、遅延量を選択できるように構成されていることを特徴とする請求項１から請求項３のいずれかに記載の集積回路。
【請求項５】
遅延量を選択するデータの前記遅延機能付きクロックバッファへの入力を、スキャンパスを用いて行なうことを特徴とする請求項１から請求項４のいずれかに記載の集積回路。
【請求項６】
集積回路において、クロックバッファのクロック遅延によって生じるホールドタイムアウトの余裕度を検査する方法であって、
クロックバッファにおいて、通常の遅延量よりも大きい遅延量でクロックを遅延させて出力させ、このクロックにより、フリップフロップでデータを取り込ませ、
前記フリップフロップの出力データと出力データの期待値とを比較することにより、ホールドタイムの余裕度を検査することを特徴とするホールドタイムアウトの余裕度の検査方法。
【請求項７】
遅延量を、ホットキャリアによるクロック遅延を見込んだホールドマージン分の遅延量を加味した遅延量とすることを特徴とする請求項６に記載のホールドタイムアウトの余裕度の検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は集積回路の技術に関し、特にクロックバッファの劣化によるクロック遅延によって生じるホールドタイムエラーを防ぐ為に設けられる余裕度（ホールドマージン）を検査することができる集積回路の技術に関する。
【背景技術】
【０００２】
一般にデジタル信号を扱うＩＣでは、データを内部に取り込むために、データそのものを渡すデータ信号線の他に、取り込むタイミングを知らせるための信号（クロック信号など）をＩＣに与える必要がある。このときデータ信号線は、タイミング信号よりも先にその内容（ＨかＬか）を確定しておき、さらにデータが確実に内部に取り込めるように、タイミング信号を与えた後もしばらくはそのままの状態で保持しておく必要がある。そうでないと、ＩＣ内部でＨかＬかを正しく認識できず、内部状態が不定となってしまうからである。
【０００３】
このタイミング信号に先だって、データ信号を確定、保持しておかなければならない最小限の時間をセットアップタイム（ＳＴ）といい、タイミング信号を与えた後もデータ信号を保持しておかなければならない時間をホールドタイム（ＨＴ）という。
【０００４】
図１は、上記のセットアップタイムとホールドタイムを説明する図である。
【０００５】
図１に示されるフリップフロップ（Ｆ/Ｆ）１は、入力されるデータを、クロックＣＬＫの立ち上がりエッジに応答して取り込み、そのデータを出力する。このクロックＣＬＫに応答してデータを適切に取り込むためには、クロックＣＬＫのタイミングよりセットアップタイム以上前からデータが確定し、ホールドタイムまでそのデータが保持されなければならない。
【０００６】
図２はセットアップタイムを示す図であり、データＤＡＴＡの確定時とクロックＣＬＫの立ち上がりエッジとの間がセットアップタイムＳＴであり、フリップフロップの特性から決まるセットアップタイム以上であることが要求される。また、図３はホールドタイムを示す図であり、クロックＣＬＫの立ち上がりエッジとデータＤＡＴＡの終了時との間がホールドタイムである。
【０００７】
一方、半導体集積回路の多くは、階層化設計手法により設計されており、複数の下位階層マクロで共用する回路を上位階層に配置したツリー構造を構成する手法がとられている（例えば、特許文献１）。
【０００８】
図４は、特許文献１に記載された回路を示すものであり、４つの下位階層のマクロで１つのＰＬＬ回路を共用した例のブロック構成図である。半導体集積回路は周辺部にＩ／Ｏ回路２を配置するとともに、内部回路領域に４つの下位階層マクロ３，４，５，６を配置されている。各下位階層マクロ３〜６は、下位階層ＣＴＳルートバッファ７，８，９，１０と、それぞれ配線１５及びＣＴＳ（Clock tree synthesis:クロックツリーシンセシス）バッファ１１を介して接続される複数のＦ／Ｆ（フリップフロップ）回路１２とから構成されている。そして、下位階層マクロ３〜６の上位階層１４にＰＬＬ回路１６が配置される。ＰＬＬ回路１６はＩ／Ｏ回路２から基準クロックを入力し、その出力をフィードバック入力としてＰＬＬループを構成し、そのＰＬＬ出力を各下位階層マクロ３〜６に入力することで、前記各下位階層マクロ３〜６でＰＬＬ回路１６の共用化を実現しているものである。
【０００９】
【特許文献１】特開２００２−２３８８６号
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、上述のツリー構造した回路において、ＣＴＳ（Clock tree synthesis:クロックツリーシンセシス）バッファを動作させると、ホットキャリアによるクロックの遅延が生じる。全てのＣＴＳバッファが同じ遅延量を持つならば良いが、これらの遅延はＣＴＳバッファ毎にばらつきがある。
【００１１】
また、上述のツリー構造した回路において一部の回路、例えば、マクロスイッチ等により下位階層マクロ３のみを動作させる場合等、下位階層マクロ３のＣＴＳ（Clock tree synthesis:クロックツリーシンセシス）バッファの使用頻度が高くなり、それらのＣＴＳバッファについてのみホットキャリアによるクロックの遅延が生じ、クロックの遅延がばらつく場合がある。
【００１２】
更に、動作環境や、使用される電圧（例えば、同一集積回路内において、ある回路部分は5Ｖを使用し、他の回路部分は3.3Ｖ使用する場合等）によっても、ＣＴＳバッファのクロック遅延にばらつきが生じる場合がある。
【００１３】
例えば、図５に示されるように、フリップフロップ（Ｆ/Ｆ）２３が、ＣＴＳバッファ２０から出力されるクロックにより、フリップフロップ（Ｆ/Ｆ）２２、論理回路２４を介して出力されるデータを取り込む場合、ＣＴＳバッファ２０が他のＣＴＳバッファ２１よりも高い周波数で動作させたりすると、ホットキャリア等によりクロック遅延が発生し、ＣＴＳバッファ２０から出力されるクロックが遅延し、フリップフロップ２３において、ホールドタイムエラーが生じる可能性がある。この様子を図６を用いて説明すると、ＣＴＳバッファ２０から出力されるクロックの遅延により、クロックの立ち上がりが次のデータ側に移行し、ホールドタイム（ＨＴ）が十分とれずにホールドタイムエラーとなり、フリップフロップ２３からのデータが取り込めない。
【００１４】
このような状態を防ぐため、図７に示す如く、必要なホールドタイム（ＨＴ）に余裕を持たせる為にホールドタイムに余裕を持たせるマージン（ホールドマージン：ＭＴ）を加えることにより、クロックの遅延を吸収するようにしている。
【００１５】
しかしながら、クロックの遅延はホットキャリアの程度や、動作環境、使用される電圧等によって異なり、各クロックバッファのクロックに対して同じマージン（ＭＴ）にすることはできないので、設計保証のみに頼ってきており、実装状態での検査ができなかった。
【００１６】
そこで、本発明は上記課題に鑑みて発明されたものであって、その目的は各クロックバッファのクロックに対するホールドマージンの検査を実装状態で行なうことのできる集積回路及びホールドマージンの検査方法を提供することにある。
【課題を解決するための手段】
【００１７】
上記課題を解決する第１の発明は、集積回路であって、
通常の遅延量と、前記通常の遅延量よりも大きい検査用遅延量とのいずれかの遅延量で、クロックを遅延させて出力する遅延機能付きクロックバッファと、
前記遅延機能付きクロックバッファから出力されるクロックで、データを取り込み保持する記憶回路とを備え、
前記遅延機能付きクロックバッファにおいて、前記検査用遅延量を選択して通常の遅延量よりも大きい遅延量でクロックを出力させ、このクロックで前記フリップフロップによりデータを取り込ませ、前記フリップフロップの出力データと出力データの期待値とを比較することにより、前記クロックバッファのクロック遅延により生じるホールドタイムエラーの余裕度を検査するように構成したことを特徴とする。
【００１８】
上記課題を解決する第２の発明は、集積回路であって、
通常の使用のパスと、ホットキャリアによるクロック遅延を見込んだホールドマージン分の遅延量を加味した検査用遅延パスとを有する遅延機能付きクロックバッファと、
前記遅延機能付きクロックバッファから出力されるクロックで、データを取り込むフリップフロップとを備え、
前記遅延機能付きクロックバッファにおいて、前記検査用遅延パスを選択してホールドマージン分の遅延量を加味した遅延量でクロックを出力させ、このクロックで前記フリップフロップによりデータを取り込ませ、前記フリップフロップの出力データと出力データの期待値とを比較することにより、ホールドマージンを検査するように構成したことを特徴とする。
【００１９】
上記課題を解決する第３の発明は、上記第１又は第２の発明において、クロックバッファが多段に構成された集積回路において、前記遅延機能付きクロックバッファを最終段に設けることを特徴とする。
【００２０】
上記課題を解決する第４の発明は、上記第１から第３のいずれかの発明において、前記遅延機能付きクロックバッファは、外部から与えられるデータにより、遅延量を選択できるように構成されていることを特徴とする。
【００２１】
上記課題を解決する第５の発明は、上記第１から第４のいずれかの発明において、遅延量を選択するデータの前記遅延機能付きクロックバッファへの入力を、スキャンパスを用いて行なうことを特徴とする。
【００２２】
上記課題を解決する第６の発明は、集積回路において、クロックバッファのクロック遅延によって生じるホールドタイムアウトの余裕度を検査する方法であって、
クロックバッファにおいて、通常の遅延量よりも大きい遅延量でクロックを遅延させて出力させ、このクロックにより、フリップフロップでデータを取り込ませ、
前記フリップフロップの出力データと出力データの期待値とを比較することにより、ホールドタイムの余裕度を検査することを特徴とする。
【００２３】
上記課題を解決する第７の発明は、上記第６の発明において、遅延量を、ホットキャリアによるクロック遅延を見込んだホールドマージン分の遅延量を加味した遅延量とすることを特徴とする。
【発明の効果】
【００２４】
本発明は、通常パス量とは別に通常パスよりも遅延量が大きい遅延パスをクロックバッファに設けることにより、実装した状態であっても、特定のクロックバッファに対してホールドタイムエラーの検査を行なうことができるという優れた効果を奏する。また、遅延量を、ホットキャリア劣化や、動作環境、使用電圧等によるクロック遅延を見込んだホールドマージン分の遅延量を加味することにより、ホールドマージンの検査を行なうことができる。
【００２５】
また、バッファが多段に設けられている場合には、遅延量の変更ができるバッファを最終段に設ければ、最終段までに経由したバッファの遅延をも考慮して検査することができる。
【発明を実施するための最良の形態】
【００２６】
本発明の実施の形態を説明する。
【００２７】
図８は本発明の集積回路の要部を示した図であり、図中、１００は外部からの指示により、入力されるクロックを所定量遅延させて出力する機能を有するバッファであり、１０１はバッファ１００のクロックで入力されるデータを取り込むＦ／Ｆ（フリップフロップ）である。
【００２８】
バッファ１００は、通常の動作時は通常遅延で出力を行なうが、ホールドタイムのマージン（以下、ホールドマージン）を検査する場合には、通常遅延よりも大きい遅延量で入力クロックを遅延させて出力する。ここで、検査時の遅延量の例としては、設計時のホールドマージン分の遅延量、例えば、バッファ１００における、予想されるホットキャリア劣化や、使用動作環境、使用電圧等によるクロックの遅延分とする。
【００２９】
バッファ１００が正常な場合、Ｆ／Ｆ１０１では、図９に示す如く、ホールドタイム（ＨＴ）が十分に取れ、正常にデータを取り込むことができる。
【００３０】
一方、バッファ１００からのクロック出力がホットキャリア劣化や、使用動作環境、使用電圧等により遅延する場合には、クロックのホールドタイム（ＨＴ）が次のデータ側にずれる。図１０に示す如く、ずれた時間（遅延時間）がホールドマージン（ＭＴ）以内であれば、Ｆ／Ｆ１０１は正常にデータを取り込むことができる。しかしながら、図１１に示す如く、ずれた時間（遅延時間）がホールドマージン（ＭＴ）分以上であれば、Ｆ／Ｆ１０１は正常にデータを取り込むことができない。
【００３１】
そこで、上述のように構成された回路の実装状態で、外部からの選択指示により、バッファ１００にホールドマージン分を加えた遅延量でクロックを遅延させて出力させ、Ｆ／Ｆ１０１で正常にデータを取り込むことができるかを検査する。
【００３２】
出荷時の検査において、Ｆ／Ｆ１０１が正常にデータを取り込むことができた場合は、バッファ１００は設計時のホールドマージン（ＭＴ）が確保されていることを示している。また、一定使用後の検査において、Ｆ／Ｆ１０１が正常にデータを取り込むことができた場合は、バッファ１００がホットキャリアや、動作環境、使用電圧等により劣化しておらず、正常であることを示している。
【００３３】
一方、出荷時の検査において、Ｆ／Ｆ１０１が正常にデータを取り込むことができない場合は、バッファ１００は設計時のホールドマージン（ＭＴ）が確保されていないことを示している。また、出荷後の検査において、Ｆ／Ｆ１０１が正常にデータを取り込むことができない場合は、バッファ１００がホットキャリアや、動作環境、使用電圧等により劣化しており、クロック出力の遅延が生じていることを示している。
【００３４】
尚、異常の検出方法であるが、予め定められたデータ列をＦ／Ｆ１０１に入力し、その出力が期待するデータと一致、例えば入力データと一致しているかにより検査する。
【００３５】
また、バッファ１００（遅延量変更機能を持つバッファ）の設置位置であるが、バッファが多段に設けられている場合には最終段に設けることが好ましい。最終段までに経由したＣＴＳバッファの遅延を含めて検査することができるからである。
【００３６】
このような構成を取ることにより、集積回路に各バッファが実装された状態で、各クロックバッファにおけるクロック遅延の為のホールドマージンの検査を行なうことができる。
【００３７】
尚、本実施の形態において、バッファから出力されるクロックのタイミングでデータを取り込む手段としてＦ／Ｆ（フリップフロップ）を用いたが、これに限定されるものでなく、バッファから出力されるクロックのタイミングでデータを取り込み、一時的に保持するような記憶回路であれば良い。
【００３８】
以下、具体的な実施例について述べる。
【実施例１】
【００３９】
本発明の実施例１を説明する。
【００４０】
図１２は実施例１の構成を示す図である。
【００４１】
実施例１の集積回路は、複数のＦ／Ｆ（フリップフロップ）回路２００〜２０６と、複数のＣＴＳバッファ２１０，２１１，２１２と、ＳＣＡＮデータが入力されるＳＣＡＮデータ入力端子２２０と、ＳＣＡＮデータの取得タイミングを規定するＳＣＡＮクロック入力端子２２１と、論理回路２２２，２２３，２２４とを備えている。
【００４２】
ＣＴＳバッファ２１０，２１１，２１２は、ＣＴＳクロックツリーの最終段に設けられたＣＴＳバッファであり、この内部には通常パスと、自ＣＴＳバッファのクロック遅延を吸収するホールドマージン分の遅延量を持つ遅延パスとが設けられている。そして、各々入力されたクロックは、いずれかのパスを通って、Ｆ／Ｆ（フリップフロップ）回路２０４，２０５，２０６に出力される。尚、ＣＴＳバッファ２１０，２１１，２１２におけるパスの選択方法であるが、ホールドマージンの検査時には、ＳＣＡＮデータ入力端子２２０により入力されるデータにより、ターゲットとなるＣＴＳバッファ（ホールドマージンの検査を行なうＣＴＳバッファ）を選択し、このＣＴＳバッファは遅延パスを選択するように構成されている。
【００４３】
Ｆ／Ｆ（フリップフロップ）回路２００，２０１，２０２，２０３は、レジスタの如くＳＣＡＮクロックによりＳＣＡＮデータを取得し、対応するＣＴＳバッファ２１０，２１１，２１２にデータを出力する。
【００４４】
Ｆ／Ｆ（フリップフロップ）回路２０４，２０５，２０６は、ＣＴＳバッファ２１０，２１１，２１２からのクロックにより、論理回路２２２，２２３，２２４からのデータを取り込み出力するように構成される。
【００４５】
次に、上述のように構成された集積回路において、具体的なホールドマージンの検査の動作について説明する。
【００４６】
尚、以下の説明において、ＳＣＡＮデータが“1”の場合は遅延パス選択、ＳＣＡＮデータが“０”の場合は通常パス選択とし、ターゲットとなるＣＴＳバッファ（ホールドマージンの検査を行ないたいＣＴＳバッファ）をＣＴＳバッファ２１２として説明する。
【００４７】
まず、ＣＴＳバッファ２１２をターゲットにしたい場合には、ＳＣＡＮデータ“１００…”をＳＣＡＮデータ入力端子２２０に入力し、ＣＴＳバッファ２１０のデータが“０”、ＣＴＳバッファ２１１のデータが“０”、ＣＴＳバッファ２１２のデータが“１”となるように、ＳＣＡＮクロック入力端子２２１からクロックを入力し、Ｆ／Ｆ（フリップフロップ）回路２００，２０１，２０２にラッチさせてＣＴＳバッファ２１０，２１１，２１２へ出力させる。
【００４８】
すると、ＣＴＳバッファ２１０はデータが“０”であるので通常パスを選択し、ＣＴＳバッファ２１１はデータが“０”であるので通常パスを選択し、ＣＴＳバッファ２１２はデータが“１”であるので遅延パスを選択する。
【００４９】
続いて、Ｆ／Ｆ（フリップフロップ）回路２０４，２０５，２０６に検査データが入力される。このとき、Ｆ／Ｆ（フリップフロップ）回路２０４，２０５は、ＣＴＳバッファ２１０，２１１の通常パスを通ったクロックにより、検査データが取り込まれる。
【００５０】
一方、Ｆ／Ｆ回路２０６は、遅延パスを選択したＣＴＳバッファ２１２から出力されるホールドマージン分の遅延量のクロックにより、検査データが取り込まれる。このとき、ＣＴＳバッファ２１２が、設計ミスやホットキャリア等により、ホールドマージンを超えるクロック遅延が生じている場合には、Ｆ／Ｆ回路２０６はホールドタイムアウトしてしまい、正常にデータを取り込むことができない。従って、Ｆ／Ｆ回路２０６から出力されるデータは、検査データの期待値とは異なっているはずである。
【００５１】
このように、ＣＴＳバッファの実装状態で実際にホールドマージンの検査を行なうことができる。
【００５２】
尚、上述の例では、検査用に専用のＳＣＡＮパスを設けたが、集積回路に通常設けられるＳＣＡＮパスを利用することも可能である。
【００５３】
更に、本実施例において、ＣＴＳバッファ２１０，２１１，２１２から出力されるクロックのタイミングでデータを取り込む手段としてＦ／Ｆ（フリップフロップ）回路２０４，２０５，２０６を用いたが、これに限定されるものでなく、バッファから出力されるクロックのタイミングでデータを取り込み、一時的に保持するような記憶回路でも良い。
【図面の簡単な説明】
【００５４】
【図１】図１はセットアップタイムとホールドタイムを説明する図である。
【００５５】
【図２】図２はセットアップタイムを示す図である。
【００５６】
【図３】図３はホールドタイムを示す図である。
【００５７】
【図４】図４は従来技術を示す図である。
【００５８】
【図５】図５は従来技術を示す図である。
【００５９】
【図６】図６は従来技術を示す図である。
【００６０】
【図７】図７は従来技術を示す図である。
【００６１】
【図８】図８は本発明の集積回路の要部を示した図である。
【００６２】
【図９】図９本発明を説明する為の図である。
【００６３】
【図１０】図１０本発明を説明する為の図である。
【００６４】
【図１１】図１１本発明を説明する為の図である。
【００６５】
【図１２】図１２は実施例１の構成を示す図である。
【符号の説明】
【００６６】
１００                    バッファ
１０１                    Ｆ／Ｆ（フリップフロップ）
２００〜２０６            Ｆ／Ｆ（フリップフロップ）
２１０，２１１，２１２    ＣＴＳバッファ
２２０                    ＳＣＡＮデータ入力端子
２２１                    ＳＣＡＮクロック入力端子
２２２，２２３，２２４    論理回路
【図１】
2005293622.tif 000003
【図２】
2005293622.tif 000004
【図３】
2005293622.tif 000005
【図４】
2005293622.tif 000006
【図５】
2005293622.tif 000007
【図６】
2005293622.tif 000008
【図７】
2005293622.tif 000009
【図８】
2005293622.tif 000010
【図９】
2005293622.tif 000011
【図１０】
2005293622.tif 000012
【図１１】
2005293622.tif 000013
【図１２】
2005293622.tif 000014