(57)【要約】【課題】入力されるデータ信号のセットアップ及びホールド時間を調整する遅延回路における最適な遅延時間（遅延コード）を、半導体装置の実際の動作条件下において自動的に設定する。【解決手段】パッド１１から、ターゲットとなるデータ信号ＡＤＤ／ＣＭＤを遅延回路１３に入力し、遅延回路１３の遅延コードＣＯＤＥＴ＜２：０＞を変えて、遅延回路から出力される遅延信号の遅延時間を変化させる。そして、この遅延された信号をラッチ回路１４によりラッチし、遅延された信号ＰＡ０ＤＢとラッチされたデータ信号ＰＡ２Ｂとの一致または不一致を判定し、一致すると判定した場合に、この判定結果に基いて遅延コードＣＯＤＥＴ＜２：０＞を決定し、決定後の遅延コードにより遅延回路１３を動作させる。【選択図】図１
2011097255.tif 000002
【特許請求の範囲】
【請求項１】
データ信号を遅延コードにより可変に遅延させ、遅延された信号をラッチすると共に、遅延された信号とラッチされたデータ信号との一致または不一致を判定し、一致すると判定した場合に、該判定結果に基いて遅延コードを決定し、決定後の遅延コードにより遅延回路が動作する半導体装置。
【請求項２】
入力されるデータ信号を遅延コードに従い可変に遅延させる遅延回路と、
前記遅延回路により遅延された信号をラッチするラッチ回路と、
前記遅延された信号と前記ラッチ回路にラッチされたデータとの一致または不一致を判定する判定回路と、
を備え、
前記判定回路において一致すると判定された場合に、該判定結果に基いて遅延コードを決定し、決定後の遅延コードにより前記遅延回路が動作する
ことを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記遅延コードを、前記データ信号のセットアップ時間及びホールド時間のそれぞれに対応させて生成する遅延コード選択回路と、
前記判定回路の判定結果を基に、前記セットアップ時間に対応して決定される遅延コードを保持する第１のレジスタと、
前記判定回路の判定結果を基に、前記ホールド時間に対応して決定される遅延コードを保持する第２のレジスタと、
前記第１および第２のレジスタに保持された遅延コードの中間値を演算して、遅延回路で用いる遅延コードを決定する演算回路と、
をさらに備えることを特徴とする請求項２に記載の半導体装置。
【請求項４】
セットアップ時間に対応する遅延コードを決定するための第１のタイミング信号と、ホールド時間に対応する遅延コードを決定するための第２のタイミング信号とが選択的に入力されるように構成され、
内部クロック信号によりカウント動作を行うカウンタと、
前記タイミング信号を前記遅延コードに応じて遅延させた遅延信号を生成する遅延回路と、
前記カウンタのカウント値の信号を入力とし、該カウント値に応じて、前記第１のタイミング信号が入力される場合には前記遅延コードを順次に減少させ、前記第２のタイミング信号が入力される場合には前記遅延コードを順次に増加させ、該遅延コードを前記遅延回路に出力する遅延コード選択回路と、
前記遅延信号を前記内部クロック信号により取り込むラッチ回路と、
前記ラッチ回路によりラッチされた信号と前記遅延信号との一致または不一致を判定する判定回路と、
前記第１のタイミング信号を入力して、前記遅延信号の遅延時間を順次に減少させる場合において、前記判定回路において一致が検出されたときに、このときの遅延コードを保持する第１のレジスタと、
前記第２のタイミング信号を入力して、前記遅延信号の遅延時間を順次に増加させる場合において、前記判定回路において一致が検出されたときに、このときの遅延コードを保持する第２のレジスタと、
前記第１のレジスタ及び第２のレジスタの保持内容に対して、和の１／２を演算結果として出力する演算回路と、
を備えることを特徴とする請求項１に記載の半導体装置。
【請求項５】
データ信号のセットアップ及びホールド時間を調整する遅延回路における遅延コードの自動設定方法であって、
セットアップ時間に対応する遅延回路の遅延コードを決定するための第１のタイミング信号と、ホールド時間に対応する遅延コードを決定するための第２のタイミング信号とを選択的に入力し、
前記第１及び第２のタイミング信号に対して前記遅延コードを変化させ、内部でラッチが可能となるそれぞれの遅延コードの限界値を決定し、
前記第１のタイミング信号に対して決定される遅延コードと、前記第２のタイミング信号に対して決定される遅延コードの双方の中間値を最適な遅延コードとして遅延回路の遅延時間を設定する
ことを特徴とする遅延回路の遅延コード自動設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩ等の半導体装置において、入力データ信号のセットアップ及びホールド時間を調整する遅延回路における遅延コード（遅延時間）を自動設定することができる、半導体装置、および該半導体装置における遅延回路の遅延コード自動設定方法に関する。
【背景技術】
【０００２】
近時、半導体装置は、市場のニーズに伴い、動作周波数が高い製品が望まれるが、動作周波数が高くなるに従い、入力データ信号のセットアップタイム及びホールドタイムの規格も厳しくなっている。セットアップタイム、ホールドタイムの調整手段として、遅延調整回路等を用いて調整が行われる。例えば、複数の遅延素子とヒューズを用いて、セットアップ及びホールド時間を調整する機能を有する半導体記憶装置がある（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１４４０７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
アドレス、コマンド等の入力信号のセットアップ及びホールド時間のセンタリング（入力信号のセットアップに必要な遅延回路の遅延時間と、入力信号のホールドに必要な遅延時間との中間時間の設定）は、メタルヒューズによる一括調整が行われる。しかしながら、ピン間の特性のバラツキやプロセスのバラつきに応じて、最適に自動設定できないという問題があった。
【０００５】
また、半導体装置は、半導体チップ製造後にパッケージへ封入された後、実機に搭載されるが、周囲温度や供給される動作電圧が変わり得る状況下（実際の動作条件下）に置かれる。しかし、この状況下では、上記のように一括調整を行うことは困難であり、また、最適な遅延時間をある条件下で一義的に調整により求めても、動作条件は変化するので他の条件には対応できない。すなわち、従来の半導体装置においては、実際の動作条件下において、遅延回路における最適な遅延時間（遅延コード）を、自動的に設定することが出来ないという問題があった。
【課題を解決するための手段】
【０００６】
本発明の半導体装置は、データ信号を遅延コードにより可変に遅延させ、遅延された信号をラッチすると共に、遅延された信号とラッチされたデータ信号との一致または不一致を判定し、一致すると判定した場合に、該判定結果に基いて遅延コードを決定し、決定後の遅延コードにより遅延回路が動作する。
【０００７】
また、本発明の遅延回路の遅延コード自動設定方法は、データ信号のセットアップ及びホールド時間を調整する遅延回路における遅延コードの自動設定方法であって、セットアップ時間に対応する遅延回路の遅延コードを決定するための第１のタイミング信号と、ホールド時間に対応する遅延コードを決定するための第２のタイミング信号とを選択的に入力し、前記第１及び第２のタイミング信号に対して前記遅延コードを変化させ、内部でラッチが可能となるそれぞれの遅延コードの限界値を決定し、前記第１のタイミング信号に対して決定される遅延コードと、前記第２のタイミング信号に対して決定される遅延コードの双方の中間値を最適な遅延コードとして遅延回路の遅延時間を設定することを特徴とする。
【発明の効果】
【０００８】
本発明の半導体装置においては、ターゲットとなるデータ信号を遅延回路に入力するとともに、遅延回路の遅延コードを変えて遅延時間を変化させる。そして、遅延された信号をラッチし、遅延された信号とラッチされたデータ信号との一致または不一致を判定し、この判定結果に基いて、最適な遅延コードを決定する。
これにより、半導体装置の実際の動作条件下において、遅延回路における最適な遅延時間（遅延コード）を自動で設定することができ、変わり得る実際の動作条件に対応できる。
【０００９】
また、本発明の半導体装置における遅延回路の遅延コード自動設定方法においては、セットアップ及びホールドのターゲットとなるそれぞれのタイミング信号に対して、内部でラッチが可能となる遅延コードのそれぞれの限界値を探知し、双方の中間値をセンタリングの最適解として導き出す。
これにより、セットアップ及びホールドに対するそれぞれの遅延コードの限界値を探知し、双方の中間値を遅延コード（遅延時間）として設定できる。このため、半導体装置の実際の動作条件下において、遅延回路における最適な遅延コードを自動で設定することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態に係わる半導体装置における信号入力回路の構成を示す図である。
【図２】セットアップ時間に対する遅延コードの探知動作について説明するための図である。
【図３】ホールド時間に対する遅延コードの探知動作について説明するための図である。
【図４】遅延コード選択回路の動作表を示す図である。
【発明を実施するための形態】
【００１１】
本発明の半導体装置においては、入力されるデータ信号のセットアップ及びホールドに必要な遅延時間（遅延回路の遅延時間）を調べるために、ターゲットとなるデータ信号を遅延回路に入力するとともに、遅延回路の遅延コードを変えて遅延時間を変化させる。そして、タイミング信号の論理レベルを識別してラッチ（保持）可能な遅延コードを探知して、最適な遅延コードを決定する。
【００１２】
より具体的には、入力されるデータ信号のセットアップに必要な遅延時間（遅延回路の遅延時間）を調べるために、セットアップターゲットとなるタイミング信号を入力する。この場合に、遅延回路の遅延コードを順次に減少させて遅延時間を小さくして行き、タイミング信号の論理レベルを識別してラッチ可能な限界となる遅延コード（最大の遅延コード）を求める。
【００１３】
また、ホールドに必要な遅延時間を調べるために、ホールドターゲットとなるタイミング信号を入力する。この場合に、遅延回路の遅延コードを順次に増加させて遅延時間を大きくして行き、タイミング信号の論理レベルを識別してラッチ（保持）可能な限界となる遅延コード（最小の遅延コード）を求める。そして、最大の遅延コードと最小の遅延コードとを基に最適な遅延コードを決定し、遅延回路の遅延時間を自動的に設定する。
以下、本発明の実施の形態を、添付図面を参照して説明する。
【００１４】
図１は、本発明の実施の形態に係わる半導体装置における信号入力回路の例を示す図である。より正確には、入力信号のセットアップ及びホールドを行う際に必要となる遅延回路の遅延時間を最適に設定する自動センタリング回路を備える信号入力回路の構成例を示す図である。
【００１５】
図１に示す信号入力回路は、符号１で示す正規パスの回路の構成部分と、符号２で示す自動センタリング回路の構成部分とで構成される。
【００１６】
図１において、遅延回路１３は、パッド（ＰＡＤ）１１及びバッファ回路等で構成される入力初段回路１２を介して、データ信号ＡＤＤ／ＣＭＤが入力される。遅延回路１３は、データ信号ＡＤＤ／ＣＭＤを遅延し、信号ＰＡ０Ｂを、入力信号をホールドするラッチ回路１４と、タイミング調整回路２３に対して出力する。なお、後述するように、遅延回路１３は、データ信号ＡＤＤ／ＣＭＤを遅延させるとともに、Ｈレベル及びＬレベルの論理を反転させた信号ＰＡ０Ｂを出力する。
【００１７】
ナンド回路ＮＡＮＤ１の一方のゲートと、ノア回路ＮＯＲ１の一方のゲートには、ラッチ回路１４が出力する信号ＰＡ１Ｂが、入力される。また、ナンド回路ＮＡＮＤ１の他方のゲートと、ノア回路ＮＯＲ１の他方のゲートには、インバータ回路ＩＮＶ１の出力信号が入力される。
【００１８】
インバータ回路ＩＮＶ２は、ナンド回路ＮＡＮＤ１の出力信号の論理レベルを反転し、正規パスの信号を出力する。インバータ回路ＩＮＶ３は、ノア回路ＮＯＲ１の出力信号の論理レベルを反転し、信号ＰＡ２Ｂとして判定回路２４に向けて出力する。また、タイミング調整回路２３は、遅延回路１３から信号ＰＡ０Ｂが入力され、当該信号に所定の遅延時間を付与し、タイミングを調整した信号ＰＡ０ＤＢを生成して、判定回路２４に向けて出力する。
【００１９】
また、モード信号Ａは、自動センタリング（遅延コードの自動設定）を行うテストモードの際にアクティブ（Ｈレベル）となる信号である。バイナリカウンタ２１には、モード信号Ａと、半導体装置内の内部クロック信号ＩＮＴＣＬＫとが入力される。このバイナリカウンタ２１は、テストモードエントリにてＨレベルとなるモード信号Ａにより活性化され、内部クロック信号ＩＮＴＣＬＫによりカウントアップ動作する４ビットのバイナリカウンタで構成される。このバイナリカウンタ２１は、そのカウント値を４ビットのバイナリ信号ＣＯＮＴＴ＜３：０＞として遅延コード選択回路２２に出力する。ここで、「ＣＯＮＴＴ＜３：０＞＝＜Ｃ３，Ｃ２，Ｃ１，Ｃ０＞」であり、Ｃ３，Ｃ２，Ｃ１，Ｃ０は１（Ｈレベル）または０（Ｌレベル）の値である。なお、バイナリカウンタ２１以外の回路については、センタリングを行う各パッドに配置する必要がある。
【００２０】
遅延コード選択回路２２には、モード信号Ａと、バイナリカウンタ２１の出力信号ＣＯＮＴＴ＜３：０＞と、演算回路２７の出力信号ＲＥＳＵＬＴＴ＜２：０＞が入力される。この遅延コード選択回路２２は、バイナリカウンタ２１から入力される４ビットのカウント信号ＣＯＮＴＴ＜３：０＞を基に、３ビットの遅延コード（ＣＯＤＥＴ＜２：０＞）を生成して、遅延回路１３に出力する。ここで、遅延コードＣＯＤＥＴ＜２：０＞は、「ＣＯＤＥＴ＜２：０＞＝＜Ｄ２，Ｄ１，Ｄ０＞」であり、Ｄ２，Ｄ１，Ｄ０は１又は０の値である。また、遅延コード選択回路２２は、信号ＣＯＤＥＴ＜２：０＞と、次に説明する信号ＲＥＧＳＥＬＴを、レジスタＳ２５とレジスタＨ２６に出力する。
【００２１】
図４に、遅延コード選択回路２２の動作表を示す。図４に示すように、モード信号ＡがＨレベルであり、かつバイナリカウンタ２１のカウント値の最上位ビットの信号ＣＯＮＴＴ＜３＞がＬレベルである場合、遅延コード選択回路２２は、信号ＣＯＮＴＴ＜３：０＞の下位３ビット（ＣＯＮＴＴ＜２：０＞）の論理反転信号を、信号ＣＯＤＥＴ＜２：０＞として出力する。すなわち、「ＣＯＤＥＴ＜２：０＞＝／ＣＯＮＴＴ＜２：０＞」となる。ここで、符号「／」は論理反転信号であることを示す。また、この場合、遅延コード選択回路２２は、Ｌレベルの信号ＲＥＧＳＥＬＴを出力し、レジスタＳ２５を選択する。
【００２２】
また、モード信号ＡがＨレベルであり、かつバイナリカウンタ２１のカウント値の最上位ビットの信号ＣＯＮＴＴ＜３＞がＨレベルである場合、遅延コード選択回路２２は、信号ＣＯＮＴＴ＜３：０＞の下位３ビット（ＣＯＮＴＴ＜２：０＞）の信号を、信号ＣＯＤＥＴ＜２：０＞として出力する。すなわち、「ＣＯＤＥＴ＜２：０＞＝ＣＯＮＴＴ＜２：０＞」となる。また、この場合、遅延コード選択回路２２は、Ｈレベルの信号ＲＥＧＳＥＬＴを出力し、レジスタＨ２６を選択する。
【００２３】
また、モード信号ＡがＬレベルになると、遅延コード選択回路２２は、信号ＣＯＮＴＴ＜３＞の論理レベルとは無関係に、演算回路２７から入力される信号ＲＥＳＵＬＴ＜２：０＞を、信号ＣＯＤＥＴ＜２：０＞として遅延回路１３に出力する。また、この場合、遅延コード選択回路２２は、Ｌレベルの信号ＲＥＧＳＥＬＴを出力し、レジスタＳ２５を選択する。
【００２４】
遅延回路１３では、遅延コード（ＣＯＤＥＴ＜２：０＞）の値に従って８段階にデイレイ値（遅延時間）が変化する。遅延コード（ＣＯＤＥＴ＜２：０＞の数値が大の時はディレイ値が大きくなり、遅延コード（ＣＯＤＥＴ＜２：０＞）の数値が小の時はディレイ値が小さくなる。
【００２５】
判定回路２４は、信号ＰＡ２Ｂと、タイミング調整回路２３から出力される信号ＰＡ０ＤＢとの、一致または不一致を判定する回路である。すなわち、ラッチ回路１４にラッチされた信号ＰＡ１Ｂをモード信号Ａにより取り出した信号ＰＡ２Ｂと、タイミング調整回路２３から出力されるラッチ前の信号ＰＡ０ＤＢとの、一致または不一致を判定する回路である。この判定回路２４は、信号ＰＡ２Ｂと信号ＰＡ０ＤＢの論理レベルが一致する場合にＬレベルとなり、不一致の場合にＨレベルとなる判定結果信号ＪＤＧＴを、レジスタＳ２５とレジスタＨ２６に出力する。
【００２６】
レジスタＳ２５には、遅延コード選択回路２２から信号ＣＯＤＥＴ＜２：０＞と信号ＲＥＧＳＥＬＴと入力され、判定回路２４から信号ＪＤＧＴが入力され、また、内部クロック信号ＩＮＴＣＬＫが入力される。このレジスタＳ２５は、信号ＲＥＧＳＥＬＴがＬレベルのときにのみ活性化される。すなわち、レジスタＳ２５は、バイナリカウンタ２１のカウント値が「０〜７」の間（セットアップ時間のテスト時）に活性化される。
【００２７】
そして、レジスタＳ２５では、信号ＪＤＧＴを内部クロック信号ＩＮＴＣＬＫの立上がりエッジによりラッチし、このラッチした信号ＪＤＧＴがＨレベルからＬレベルに遷移した際の遅延コード（ＣＯＤＥＴ＜２：０＞）を保持する。そして、保持したＣＯＤＥＴ＜２：０＞を信号３ビットの信号ＲＥＧＳＴ＜２：０＞として、演算回路２７に出力する。ここで、「ＲＥＧＳＴ＜２：０＞＝＜Ｒ２，Ｒ１，Ｒ０＞」であり、Ｒ２，Ｒ１，Ｒ０はそれぞれ１又は０の値である。
【００２８】
レジスタＨ２６には、遅延コード選択回路２２から、信号ＣＯＤＥＴ＜２：０＞と信号ＲＥＧＳＥＬＴとが入力され、判定回路２４から信号ＪＤＧＴが入力され、また、内部クロック信号ＩＮＴＣＬＫが入力される。このレジスタＨ２６は、信号ＲＥＧＳＥＬＴがＨレベルのときにのみ活性化される。すなわち、レジスタＨ２６は、バイナリカウンタ２１のカウント値が「＃８〜＃Ｆ」の間（ホールド時間のテスト時）に活性化される。
【００２９】
そして、レジスタＨ２６では、信号ＪＤＧＴを内部クロック信号ＩＮＴＣＬＫの立上がりエッジによりラッチし、このラッチした信号ＪＤＧＴがＨレベルからＬレベルに遷移した際の遅延コード（ＣＯＤＥＴ＜２：０＞）を保持する。そして、保持したＣＯＤＥＴ＜２：０＞を３ビットの信号ＲＥＧＨＴ＜２：０＞として、演算回路２７に出力する。ここで、「ＲＥＧＨＴ＜２：０＞＝＜Ｈ２，Ｈ１，Ｈ０＞」であり、Ｈ２，Ｈ１，Ｈ０はそれぞれ１又は０の値である。
【００３０】
演算回路２７は、レジスタＳ２５から信号ＲＥＧＳＴ＜２：０＞が入力され、また、レジスタＨ２６から信号ＲＥＧＨＴ＜２：０＞が入力される。そして、レジスタＳ２５及びレジスタＨ２６の保持内容（ＲＥＧＳＴ＜２：０＞，ＲＥＧＨＴ＜２：０＞）に対して、その和の１／２を結果ＲＥＳＵＬＴＴ＜２：０＞として出力する。なお、ＲＥＧＳＴ＜２：０＞の内容と、ＲＥＧＨＴ＜２：０＞の内容の和が奇数の場合には、いずれかに近い方の値に繰り上げ、または繰り下げてＲＥＳＵＬＴＴ＜２：０＞を設定する。
【００３１】
［図１に示す信号入力回路の動作の説明］
次に、図２および図３に示すタイミングチャートを参照して、図１に示す信号入力回路の動作（自動センタリングの動作）について説明する。
【００３２】
（セットアップターゲットＴｓに対する遅延コードの探知動作についての説明）
最初に、セットアップターゲットＴｓのタイミングに対する遅延コード（遅延時間）の探知動作について説明する。図２は、セットアップターゲットＴｓに対する遅延コードの探知動作について説明するための図である。以下、図２（及び図１）を参照して、その動作について説明する。
【００３３】
動作モードを設定するため、図示しないＭＲＳ（モードレジスタセット）より本テストモード（自動センタリングモード）にエントリすると、時刻ｔ１において、モード信号Ａが活性（Ｈレベル）となる。モード信号ＡがＨレベルになると、内部クロック信号ＩＮＴＣＬＫにより、バイナリカウンタ２１がカウント動作を始める。バイナリカウンタ２１は、時刻ｔ２’以降、内部クロック信号ＩＮＴＣＬＫの立上がりエッジｕ１，ｕ２，ｕ３，…，ｕ８によりカウントアップ動作を行う。そして、バイナリカウンタ２１のカウント値の信号ＣＯＮＴＴ＜３：０＞が、＃０から＃７へと増加して行く。
【００３４】
なお、数値の前に付された符号＃は、１６進数を表わし、バイナリカウンタ２１が出力するカウント値の信号ＣＯＮＴＴ＜３：０＞、遅延コード選択回路２２が出力する遅延コードＣＯＤＥＴ＜２：０＞、レジスタＳ２５が出力する信号ＲＥＧＳＴ＜２：０＞、レジスタＨ２６が出力する信号ＲＥＧＨＴ＜２：０＞、および演算回路２７が出力する信号ＲＥＳＵＬＴＴ＜２：０＞が示す値を１６進数により示している。
【００３５】
そして、モード信号ＡがＨレベルとなった後の８サイクルの間、センタリングを行うパッド１１にセットアップターゲットＴｓのタイミングで１ショットパルス（ＡＤＤ／ＣＭＤ信号）を入力する。
【００３６】
遅延回路１３は、このＡＤＤ／ＣＭＤ信号が入力され、遅延された信号ＰＡ０Ｂを出力する。図に示すように、遅延回路１３は、ＡＤＤ／ＣＭＤ信号を遅延するとともに、論理が反転した信号ＰＡ０Ｂを出力する。すなわち、データ信号ＡＤＤ／ＣＭＤがＨレベルのとき、信号ＰＡ０ＢはＬレベルとなり、データ信号ＡＤＤ／ＣＭＤがＬレベルのとき、信号ＰＡ０ＢはＨレベルとなる。また、図において、矢付線（破線）Ｄが遅延回路１３による遅延部分を示し、符号Ｄ７〜Ｄ０で示す時間が、各遅延コード（ＣＯＤＥＴ＜２：０＞＝＃７〜＃０）に対応する遅延時間となる。
【００３７】
この場合、信号ＰＡ０Ｂの遅延時間は、バイナリカウンタ２１のカウント値（ＣＯＮＴＴ＜３：０＞）が増加するにつれて、Ｄ７，Ｄ６，…、Ｄ０へと次第に減少して行く。すなわち、モード信号ＡがＨレベルとなった後の８サイクルの間（時刻ｔ１〜ｔ３’の間）、バイナリカウンタ２１のカウント値の最上位ビットＣＯＮＴＴ＜３＞はＬレベルである（カウント値が＃０〜＃７であるため）。このため、遅延コード選択回路の出力ＣＯＤＥＴ＜２：０＞は、「ＣＯＤＥＴ＜２：０＞＝／ＣＯＮＴＴ＜２：０＞」となり、信号ＣＯＮＴＴ＜３：０＞が、＃０から＃７へとカウントアップするにつれて、信号ＣＯＤＥＴ＜２：０＞は、＃７〜＃０へとカウントダウンされた信号となる。
【００３８】
これにより、信号ＣＯＤＥＴ＜２：０＞を入力とする遅延回路１３で生成される信号ＰＡ０Ｂの遅延時間が、遅延時間Ｄ７〜遅延時間Ｄ０へと次第に減少して行くことになる。また、この信号ＰＡ０Ｂは、タイミング調整回路２３により、タイミング調整された信号ＰＡ０ＤＢとして出力される。なお、信号ＣＯＮＴＴ＜３＞がＬレベルである間は、レジスタＳ２５が選択される。
【００３９】
そして、ラッチ回路１４では、この信号ＰＡ０ＢのＨレベルの信号を、内部クロック信号ＩＮＴＣＬＫの立ち下がりエッジｆ１，ｆ２，ｆ３，…，ｆｎによりラッチしようとする。しかし、内部クロック信号ＩＮＴＣＬＫの立下りエッジｆ１，ｆ２，ｆ３のタイミングにおいては、信号ＰＡ０Ｂの遅延が大きすぎてＨレベルをラッチすることができず、立下りエッジｆ４以降のタイミングにおいて、信号ＰＡ０ＢのＨレベルのラッチが可能になる。
【００４０】
このため、時刻ｔａにおいて、信号ＰＡ０ＢのＨレベルがラッチ回路１４にラッチされ、信号ＰＡ２ＢがＬレベルからＨレベルに遷移する。また、この時のバイナリカウンタ２１のカウント値は＃４(遅延コード)となる。従って、セットアップターゲットＴｓに対して許容できる最大の遅延時間は、遅延時間Ｄ４であることが分かり、遅延回路１３の遅延時間（遅延コード）は、遅延時間Ｄ４（遅延コード＃４）以下でなければならないと判定できる。
【００４１】
一方、判定回路２４では、信号ＰＡ２Ｂと信号ＰＡ０ＤＢとを比較し、一致する場合には、Ｌレベルの信号ＪＤＧＴを出力し、不一致の場合は、Ｈレベルの信号ＪＤＧＴを出力する。
【００４２】
また、信号ＣＯＮＴＴ＜３＞がＬレベルであるため、レジスタＳ２５が活性化されており、レジスタＳ２５においては、内部クロック信号ＩＮＴＣＬＫの立ち上がりエッジｕ１，ｕ２，ｕ３，…,ｕ８で、信号ＪＤＧＴをラッチする。このレジスタＳ２５では、信号ＪＤＧＴのラッチ結果がＨレベルからＬレベル（Ｈ→Ｌ）に切り替る際の遅延コードＣＯＤＥＴ＜２：０＞をレジスタＳ２５内に保持する。
【００４３】
図２に示す例では、時刻ｔ３（立上りエッジｕ４）において、信号ＪＤＧＴのラッチ結果がＨレベルからＬレベル（Ｈ→Ｌ）に切り替ることが検出され、信号ＣＯＤＥＴ＜２：０＞の出力値＃４がレジスタＳ２５に保持される（図の矢付線ａを参照）。レジスタＳ２５は、保持した値＃４を信号ＲＥＳＵＳＴ＜２：０＞として、演算回路２７に出力する。なお、時刻ｔ３において、レジスタＨ２６の出力信号ＲＥＧＨＴ＜２：０＞の値は＃０であるため、演算回路２７の出力信号ＲＥＳＵＬＴ＜２：０＞は、＃２（４の１／２）となる。
【００４４】
上述した処理動作により、セットアップターゲットＴｓに対する最長の遅延時間に相当する遅延コード（ＣＯＤＥＴ＜２：０＞）が、数値＃４であることが判定される。これにより、遅延回路１３における遅延コードが＃４以下、すなわち、遅延時間Ｄ４以下でなければならないことが分かる。
【００４５】
（ホールドターゲットＴｈに対する遅延コードの探知動作についての説明）
続いて、図３を参照して、ホールドターゲットＴｈに対する遅延コード（遅延時間）の探知動作について説明する。なお、図３に示すタイミングチャートは、図２に示すタイミングチャートに引き続く部分を示している。
【００４６】
図３に示す、時刻ｔ４以降の９サイクル目からは、内部クロック信号ＩＮＴＣＬＫにより、バイナリカウンタ２１のカウント値の信号ＣＯＮＴＴ＜３：０＞が、内部クロック信号ＩＮＴＣＬＫの立ち上がりエッジｕ９，ｕ１０，ｕ１１，…，ｕ１６により、＃８から＃９，＃Ａ，＃Ｂ，…，＃Ｆへと増加して行く。また、パッド１１に、ホールドターゲットＴｈとなるタイミングでの１ショットパルス（ＡＤＤ／ＣＭＤ信号）が入力される。
【００４７】
遅延回路１３は、このＡＤＤ／ＣＭＤ信号が入力され、遅延された信号ＰＡ０Ｂを出力する。図に示すように、遅延回路１３は、ＡＤＤ／ＣＭＤ信号を遅延するとともに、論理が反転した信号ＰＡ０Ｂを出力する。図において、矢付線（破線）Ｄが遅延回路１３による遅延部分を示し、また、符号Ｄ０〜Ｄ７で示す遅延時間が、各遅延コード（ＣＯＤＥＴ＜２：０＞＝＃０〜＃７）に対応する遅延時間となる。この場合、信号ＰＡ０Ｂの遅延時間は、バイナリカウンタ２１のカウント値が増加するにつれて、Ｄ０，Ｄ１，…、Ｄ７へと次第に増加して行く。
【００４８】
一方、モード信号ＡがＨレベルとなった後の９サイクル目以降（時刻ｔ４以降）、バイナリカウンタ２１のカウント値の最上位ビットＣＯＮＴＴ＜３＞はＨレベルである（カウント値が＃８〜＃Ｆであるため）。このため、遅延コード選択回路の出力ＣＯＤＥＴ＜２：０＞は、「ＣＯＤＥＴ＜２：０＞＝ＣＯＮＴＴ＜２：０＞」となり、かつレジスタＨ２６が選択される。
【００４９】
従って、信号ＣＯＮＴＴ＜３：０＞が、＃８から＃Ｆへとカウントアップするにつれて、遅延コードＣＯＤＥＴ＜２：０＞は、＃０〜＃７へとカウントアップされた信号となる。これにより、信号ＣＯＤＥＴ＜２：０＞を入力とする遅延回路１３で生成される信号ＰＡ０Ｂは、遅延時間Ｄ０〜遅延時間Ｄ７へと次第に遅延時間が増加して行くことになる。また、この信号ＰＡ０Ｂは、タイミング調整回路２３により、タイミング調整された信号ＰＡ０ＤＢとして出力される。
【００５０】
そして、ラッチ回路１４では、この信号ＰＡ０ＢのＨレベルの信号を、内部クロック信号ＩＮＴＣＬＫの立ち下がりエッジｆ９，ｆ１０，ｆ１１，…，ｆ１６によりラッチしようとする。しかし、内部クロック信号ＩＮＴＣＬＫの立下りエッジｆ９，ｆ１０のタイミングにおいては、信号ＰＡ０Ｂの遅延量が少なくＨレベルをラッチすることができない。そして、時刻ｔ４’において、立下りエッジｆ１１により信号ＰＡ０ＢのＨレベルのラッチが可能になる。
【００５１】
このため、時刻ｔ４’において、信号ＰＡ０ＢのＨレベルがラッチ回路１４にラッチされ、信号ＰＡ２ＢがＬレベルからＨレベルに遷移する（図の矢付線ａを参照）。そして、この時の遅延コードＣＯＤＥＴ＜２：０＞は数値＃２となる。従って、ホールドターゲットＴｈに対して許容できる最短の遅延時間は、遅延時間Ｄ２であることが分かり、遅延回路１３の遅延時間は、遅延時間Ｄ２以上でなければならないと判定できる。すなわち、遅延コードは＃２以上でなければならない。
【００５２】
一方、判定回路２４では、信号ＰＡ２Ｂと信号ＰＡ０ＤＢとを比較し、一致する場合には、Ｌレベルの信号ＪＤＧＴを出力し、不一致の場合は、Ｈレベルの信号ＪＤＧＴを出力する。
【００５３】
また、信号ＣＯＮＴＴ＜３＞がＨレベルであるため、レジスタＨ２６が活性化されており、レジスタＨ２６において、内部クロック信号ＩＮＴＣＬＫの立ち上がりエッジｕ９,ｕ１０，ｕ１１，…，ｕ１６で、信号ＪＤＧＴをラッチする。このレジスタＨ２６では、この信号ＪＤＧＴのラッチ結果がＨレベルからＬレベル（Ｈ→Ｌ）に切り替る際の遅延コードＣＯＤＥＴ＜２：０＞をレジスタＨ２６内に保持する。図３に示す例では、時刻ｔ５において、立上りエッジｕ１１により、信号ＪＤＧＴのラッチ結果がＨレベルからＬレベル（Ｈ→Ｌ）に切り替ることが検出され、信号ＣＯＤＥＴ＜２：０＞の値＃２がレジスタＨ２６に保持される。
【００５４】
上述した処理により、ホールドターゲットＴｈに対する最小の遅延時間に相当する遅延コード（ＣＯＤＥＴ＜２：０＞）が、数値２であることが判定される。これにより、遅延回路１３における遅延コードが＃２以上、すなわち、遅延時間Ｄ２以上でなければならないことが分かる。
【００５５】
この時、演算回路２７の出力ＲＥＳＵＬＴＴ＜２：０＞には、ＲＥＧＳＴ＜２：０＞（値＃４）とＲＥＧＨＴ＜２：０＞（値＃２）の中間値となる＃３（＜０，１，１＞）が出力される。なお、ＲＥＧＳＴ＜２：０＞の内容と、ＲＥＧＨＴ＜２：０＞の内容の和が奇数の場合には、いずれかに近い方の値に繰り上げ、または繰り下げてＲＥＳＵＬＴＴ＜２：０＞を設定する。例えば、ＲＥＧＳＴ＜２：０＞が値＃４で、ＲＥＧＨＴ＜２：０＞が値＃３となる場合、中間値をＲＥＧＳＴ＜２：０＞に近い方へ繰り上げて、ＲＥＳＵＬＴＴ＜２：０＞を＃４とする。
【００５６】
その後、テストモードエントリから１６サイクル後の時刻ｔ６において、バイナリカウンタ２１のカウント値の最上位ビットＣＯＮＴＴ＜３＞がＨレベルからＬレベルに遷移するのを受けてモード信号Ａがリセットされる。この際に、遅延コード選択回路２２は、演算回路２７から出力される信号ＲＥＳＵＬＴＴ＜２：０＞（この例では、＃３）を入力とし、この信号ＲＥＳＵＬＴＴ＜２：０＞を保持して、遅延コード選択回路２２に出力する。すなわち、時刻ｔ６において、遅延コード選択回路２２から、出力信号ＣＯＤＥＴ＜２：０＞として、＃３が遅延回路１３に出力される。
【００５７】
遅延回路１３は、時刻ｔ６以降において（テストモードから抜け出た後）、最適な遅延コードが設定される。信号入力回路は、図１に符号１で示す正規パスの回路の構成部分において、データ信号ＡＤＤ／ＣＭＤがパッド１１に入力されると、遅延回路１３によりデータ信号ＡＤＤ／ＣＭＤを遅延した後、ラッチ回路１４でデータをラッチし、正規パスの信号を対応する内部回路へ出力する。
【００５８】
以上説明したように、本発明の半導体装置においては、テスト対象となる半導体装置の動作条件下にて、ターゲットなるデータ信号を入力して、セットアップ及びホールドの自動センタリングを行うことができる。
【００５９】
なお、上述した実施形態では、半導体装置の各パッド毎にセットアップ及びホールドのセンタリング（遅延コードの自動設定）を行う例について説明したが、これに限定されない。例えば、アドレス信号等の信号入力回路は、通常の場合、各入力信号（ビット単位の信号）に対して共通の回路構成（共通の回路特性）を有していることが多い。このため、１つのパッドに対してセンタリング（遅延コードの決定）を行い、他のパッドに繋がる遅延回路に対しても共通の遅延コードを設定する構成とすることもできる。
【００６０】
また、上述した実施形態においては、バイナリカウンタ２１を４ビットのカウンタとし、セットアップ及びホールドのそれぞれに対する遅延コードの探知のために、それぞれ８サイクルのＡＤＤ／ＣＭＤ信号を入力する例について説明したが、これに限定されない。例えば、３ビットのバイナリカウンタを使用して、セットアップ及びホールドのそれぞれに対する遅延コードの探知のために、それぞれ４サイクルのＡＤＤ／ＣＭＤ信号を入力する構成とすることができる。また、５ビットのバイナリカウンタを使用して、それぞれ１６サイクルのＡＤＤ／ＣＭＤ信号を入力する構成とすることもできる。
【００６１】
以上、本発明の実施形態について説明したが、ここで、本実施形態と本発明との対応関係について補足して説明しておく。
【００６２】
本発明における遅延回路は、図１に示す遅延回路１３が相当し、ラッチ回路はラッチ回路１４が相当し、判定回路は判定回路２４が相当し、カウンタはバイナリカウンタ２１が相当する。また、本発明における第１のレジスタは、レジスタＳ２５が相当し、第２のレジスタは、レジスタＨ２６が相当する。また、本発明におけるデータ信号はＡＤＤ／ＣＭＤ信号が相当し、第１のタイミング信号は、図２に示すセットアップターゲットＴｓの信号が相当し、第２のタイミング信号は、図３に示すホールドターゲットＴｈの信号が相当する。
【００６３】
また、本発明における遅延された信号は、遅延信号ＰＡ０Ｂが相当する（但し、判定回路２４で比較される場合は信号ＰＡ０ＤＢが相当する）。また、本発明における遅延コードは遅延コードＣＯＤＥＴ＜２：０＞が相当する。また、本発明におけるカウント値はカウント値ＣＯＮＴＴ＜３：０＞が相当する。また、本発明におけるラッチされた信号は、信号ＰＡ１Ｂをモード信号Ａにより取り出した信号ＰＡ２Ｂが相当する。また、本発明における内部クロック信号は、内部クロック信号ＩＮＴＣＬＫが相当する。
【００６４】
そして、本実施形態においては、データ信号ＡＤＤ／ＣＭＤを遅延コードＣＯＤＥＴ＜２：０＞により可変に遅延させ、遅延された信号をラッチすると共に、遅延された信号ＰＡ０ＤＢとラッチされたデータ信号ＰＡ２Ｂとの一致または不一致を判定し、一致すると判定した場合に、該判定結果に基いて遅延コードを決定し、決定後の遅延コードにより遅延回路１３が動作する。
この構成によれば、ターゲットとなるデータ信号ＡＤＤ／ＣＭＤを遅延回路１３に入力するとともに、遅延回路１３の遅延コードを変えて遅延時間を変化させる。そして、遅延された信号をラッチし、遅延された信号ＰＡ０ＤＢとラッチされたデータ信号ＰＡ２Ｂとの一致または不一致を判定し、この判定結果に基いて、最適な遅延コード（遅延時間）を決定する。
これにより、半導体装置の実際の動作条件下において、遅延回路１３における最適な遅延時間（遅延コード）を自動で設定することができる。
【００６５】
また、上記実施形態においては、入力されるデータ信号ＡＤＤ／ＣＭＤを遅延コードＣＯＤＥＴ＜２：０＞に従い可変に遅延させる遅延回路１３と、遅延回路１３により遅延された信号をラッチするラッチ回路１４と、遅延された信号ＰＡ０ＤＢとラッチ回路１４にラッチされたデータ信号ＰＡ２Ｂとの一致または不一致を判定する判定回路２４と、を備え、判定回路２４において一致すると判定された場合に、該判定結果に基いて遅延コードを決定し、決定後の遅延コードにより遅延回路１３が動作する。
この構成によれば、ターゲットとなるデータ信号ＡＤＤ／ＣＭＤを遅延回路１３に入力するとともに、遅延回路１３の遅延コードを変えて遅延時間を変化させる。そして、遅延された信号をラッチ回路１４によりラッチし、判定回路２４により、遅延された信号ＰＡ０ＤＢとラッチされたデータ信号ＰＡ２Ｂとの一致または不一致を判定し、この判定結果に基いて、最適な遅延コード（遅延時間）を決定する。
これにより、判定回路２４により、遅延された信号ＰＡ０ＤＢとラッチされたデータ信号ＰＡ２Ｂとの一致または不一致を判定することにより、最適な遅延コード（遅延時間）を決定することができる。このため、遅延回路１３における最適な遅延時間（遅延コード）を自動で設定することができる。
【００６６】
また、上記実施形態においては、遅延コードＣＯＤＥＴ＜２：０＞を、データ信号ＡＤＤ／ＣＭＤのセットアップ時間及びホールド時間のそれぞれに対応させて生成する遅延コード選択回路２２と、判定回路２４の判定結果を基に、セットアップ時間に対応して決定される遅延コードを保持するレジスタＳ２５と、判定回路２４の判定結果を基に、ホールド時間に対応して決定される遅延コードを保持するレジスタＨ２６と、レジスタＳ２５及びレジスタＨ２６に保持された遅延コードの中間値を演算して、遅延回路１３で用いる遅延コードを決定する演算回路２７と、をさらに備える。
この構成によれば、遅延コード選択回路２２が、遅延コードコードＣＯＤＥＴ＜２：０＞を、データ信号ＡＤＤ／ＣＭＤ信号のセットアップ時間及びホールド時間のそれぞれに対応して生成する。そして、判定回路２４の判定結果を基に、セットアップ時間に対応する（最大の）遅延コードをレジスタＳ２５に保持し、ホールド時間に対応する（最小の）遅延コードをレジスタＨ２６に保持する。そして、演算回路２７が、レジスタＳ２５及びレジスタＨ２６に保持された遅延コードの中間値を演算して、遅延回路１３で用いる遅延コードを決定する。
これにより、セットアップ及びホールド時間のそれぞれに対応する限界となる遅延コードを探知し、双方の遅延コードを基にして最適な遅延コード（遅延時間）を決定することができる。このため、遅延回路１３における最適な遅延時間（遅延コード）を自動で設定することができる。
【００６７】
また、上記実施形態においては、セットアップ時間に対応する遅延コードを決定するためのセットアップターゲットＴｓの信号と、ホールド時間に対応する遅延コードを決定するためのホールドターゲットＴｈの信号とが選択的に入力されるように構成され、内部クロック信号ＩＮＴＣＬＫによりカウント動作を行うバイナリカウンタ２１と、セットアップターゲットＴｓおよびホールドターゲットＴｈの信号を遅延コードに応じて遅延させた遅延信号ＰＡ０Ｂを生成する遅延回路１３と、バイナリカウンタ２１のカウント値ＣＯＮＴＴ＜３：０＞の信号を入力とし、該カウント値に応じて、セットアップターゲットＴｓの信号が入力される場合には遅延コードを順次に減少させ、ホールドターゲットＴｈの信号が入力される場合には遅延コードを順次に増加させ、該遅延コードを遅延回路１３に出力する遅延コード選択回路２２と、遅延信号を内部クロック信号により取り込むラッチ回路１４と、ラッチ回路１４によりラッチされた信号ＰＡ２Ｂと遅延信号ＰＡ０ＤＢとの一致または不一致を判定する判定回路２４と、セットアップターゲットＴｓの信号を入力して、遅延信号ＰＡ０Ｂの遅延時間を順次に減少させる場合において、判定回路２４において一致が検出されたときに、このときの遅延コードを保持するレジスタＳ２５と、ホールドターゲットＴｈの信号を入力して、遅延信号ＰＡ０Ｂの遅延時間を順次に増加させる場合において、判定回路２４において一致が検出されたときに、このときの遅延コードを保持するレジスタＨ２６と、レジスタＳ２５及びレジスタＨ２６のレジスタの保持内容に対して、和の１／２を演算結果として出力する演算回路２７と、を備える。
【００６８】
この構成によれば、セットアップターゲットとなる信号（セットアップターゲットＴｓ）と、ホールドターゲットとなる信号（ホールドターゲットＴｈ）とを、選択して入力する。また、遅延コード選択回路２２は、バイナリカウンタ２１のカウント値ＣＯＮＴＴ＜３：０＞に応じて、セットアップターゲットＴｓの信号が入力される場合には遅延コードを順次に減少させ、ホールドターゲットＴｈの信号が入力される場合には遅延コードを順次に増加させて遅延回路１３に出力する。そして、セットアップターゲットＴｓの信号を入力して、遅延信号ＰＡ０Ｂの遅延時間を順次に減少させる場合において、判定回路２４において一致が検出されたときに、このときの遅延コードをレジスタＳ２５に保持する。また、ホールドターゲットＴｈの信号を入力して、遅延信号ＰＡ０Ｂの遅延時間を順次に増加させる場合において、判定回路２４において一致が検出されたときに、このときの遅延コードをレジスタＨ２６に保持する。そして、演算回路２７は、レジスタＳ２５及びレジスタＨ２６の保持内容に対して、和の１／２を演算結果として出力する。
これにより、セットアップ及びホールドのそれぞれの遅延時間の限界値を探知し、双方の中間値をセンタリングの最適解として導き出すことができる。このため、半導体装置の実際の動作条件下において、遅延回路における最適な遅延時間を自動で設定することができる。
【００６９】
以上、本発明の実施の形態について説明したが、本発明の半導体装置は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【符号の説明】
【００７０】
１１…パッド、１２…入力初段回路、１３…遅延回路、１４…ラッチ回路、２１…バイナリカウンタ、２２…遅延コード選択回路、２３…タイミング調整回路、２４…判定回路、Ｓ２５…レジスタ、Ｈ２６…レジスタ、２７…演算回路、ＮＡＮＤ１…ナンド回路、ＮＯＲ１…ノア回路、ＩＮＶ１，ＩＮＶ２，ＩＮＶ３…インバータ回路
【図１】
2011097255.tif 000003
【図２】
2011097255.tif 000004
【図３】
2011097255.tif 000005
【図４】
2011097255.tif 000006