(57)【要約】【課題】  クロック周波数を高くすることなく、高速にテストを行うことが可能なテスト回路及びテスト方法を提供すること。【解決手段】  本発明における半導体集積回路は、第１のクロックに同期して動作するメモリ回路と、当該メモリ回路のテストを行う組み込み自己試験（ＢＩＳＴ）回路とを備えた半導体集積回路であって、ＢＩＳＴ回路は、メモリ回路への入力テストデータとして第２のクロックに同期してテストデータを出力するテストデータ出力回路と、メモリ回路の出力データを第３のクロックに同期して取り込む入力回路と、第１のクロックの位相を変更して第２のクロックと第３のクロックとを生成する位相差変更回路とを備えたことを特徴とする半導体集積回路である。このような構成により、クロック周波数を高くすることなく、テストを高速に行うことや実際の動作に即したテストを行うことが可能となる。【選択図】図１
2007064648.tif 000002
【特許請求の範囲】
【請求項１】
第１のクロックに同期して動作するメモリ回路と、
当該メモリ回路のテストを行う組み込み自己試験（ＢＩＳＴ）回路とを備えた半導体集積回路であって、
前記ＢＩＳＴ回路は、前記メモリ回路への入力テストデータとして第２のクロックに同期してテストデータを出力するテストデータ出力回路と、
前記メモリ回路の出力データを第３のクロックに同期して取り込む入力回路と、
前記第１のクロックの位相を変更して前記第２のクロックと前記第３のクロックとを生成する位相差変更回路と、
を備えたことを特徴とする半導体集積回路。
【請求項２】
前記位相差変更回路は、前記第２のクロックと前記第３のクロックが互いに異なることを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記第１のクロックと前記第２のクロックとの位相差は、前記メモリ回路に対してデータを出力するユーザ回路と前記メモリ回路間のパス遅延時間と、前記出力回路と前記メモリ回路間のパス遅延時間とに基づいて設定されることを特徴とする請求項１に記載の半導体集積回路。
【請求項４】
前記第１のクロックと前記第３のクロックとの位相差は、前記メモリ回路からのデータを取り込むユーザ回路と前記メモリ回路間のパス遅延時間と、前記出力回路と前記メモリ回路間のパス遅延時間とに基づいて設定されることを特徴とする請求項１に記載の半導体集積回路。
【請求項５】
前記位相変更回路は、ＰＬＬ（Phase Locked Loop）またはＤＬＬ（Delay Locked Loop）で構成されることを特徴とする請求項１に記載の半導体集積回路。
【請求項６】
第１のクロックに同期して動作するメモリ回路のテスト方法であって、
前記第１のクロックの位相を変更して第２のクロックと第３のクロックとを生成し、
前記メモリ回路への入力テストデータとして第２のクロックに同期してテストデータを出力し、
前記メモリ回路の出力データを第３のクロックに同期して取り込むテスト方法。
【請求項７】
前記第２のクロックと前記第３のクロックは、互いに異なることを特徴とする請求項６に記載のテスト方法。
【請求項８】
前記第１のクロックと前記第２のクロックとの位相差は、前記メモリ回路に対してデータを出力するユーザ回路と前記メモリ回路間のパス遅延時間と、前記メモリ回路へテストデータを出力する回路と前記メモリ回路間のパス遅延時間とに基づいて設定されることを特徴とする請求項６に記載のテスト方法。
【請求項９】
前記第１のクロックと前記第３のクロックとの位相差は、前記メモリ回路からのデータを取り込むユーザ回路と前記メモリ回路間のパス遅延時間と、前記メモリ回路へテストデータを出力する回路と前記メモリ回路間のパス遅延時間とに基づいて設定されることを特徴とする請求項６に記載のテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路及びテスト方法に関するものであり、より詳細には、ＢＩＳＴ（Built In Self Test）回路を利用した半導体集積回路及びテスト方法に関する。
【背景技術】
【０００２】
ＲＡＭ（Random Access Memory）等の回路は、書き込み及び読み出しのテストを行うことにより動作不良を検出する必要がある。このテストを効率よく行うために、専用のＢＩＳＴ回路をＲＡＭに接続してテストを行うテスト方法が多く利用されている。
【０００３】
特許文献１に示す従来技術におけるＢＩＳＴ回路を用いたテスト方法について説明する。図６に示すようにＢＩＳＴ回路２１は、ＲＡＭ２２と接続されており、ＢＩＳＴ回路２１内にクロックを逓倍するＰＬＬ制御回路２３、高速テスト回路２４を備えている。
【０００４】
特許文献１に示す方法では、ＢＩＳＴ回路２１は、ＰＬＬ制御回路２３により入力したクロックを逓倍し、高速テスト回路２４に供給する。高速テスト回路２４は、ＰＬＬ制御回路２３により逓倍されたクロックを入力し、高速にテスト信号をＲＡＭ２２に出力する。このようにして、ＢＩＳＴ回路２１はＲＡＭ２２のテストを行う。
【０００５】
テストをより高速に行う方法として、ＢＩＳＴ回路のクロック周波数を高くすることが考えられるが、実際の動作よりもクロック周波数を高くすると、実際の動作と異なるクロック周波数となるため実際の動作に即したテストを行うことができない。
【０００６】
これに対して、クロックの位相を変更することにより見かけ上クロック周波数の高い動作テストを実現する方法が提案された（例えば、特許文献２など）。特許文献２に示す方法によると、データ入力時には位相制御回路により変更された位相のクロックの立ち上がりに応じてデータを入力し、データ出力時には位相変更前のクロックの立ち上がりに応じてデータを出力する。このようにして、見かけ上のクロック周波数を高くしている。
【特許文献１】特開２００４−１８５６９１号公報
【特許文献２】特開２００４−２１２３１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
このように、従来における回路テスト方法は、クロック周波数以上に高速なテストを行うことができないという問題点があった。また、実際の動作に即したテストを行うことができないという問題点があった。
【０００８】
また、特許文献２に示す方法は、フリップフロップ間のパス、あるいはＡＬＵ（Arithmetic and Logical Unit）やＲＡＭ等のクロックに同期しないパスの遅延値を検証することと実質同意である。すなわち、テスト対象がクロック同期のメモリには適用が困難である。
【０００９】
また、特許文献２に示す方法は、テスト対象部分の前後のフリップフロップの位相差を変更する方法であるため、メモリテスト時にメモリへのデータ書き込みとメモリからのデータ読み出しとを異なるタイミングでテストを行うことは困難である。
【００１０】
更に、特許文献２に示す方法は、ユーザ回路であるフリップフロップへの入力クロックライン上に直接、位相制御回路を埋め込んでいる。クロックスキュー等が発生すると、回路全体が誤動作することになるため、一般にクロックラインに回路を挿入することは避けるべきものである。従って、特許文献２の場合は、挿入した位相差制御回路によってクロックスキュー等が発生しないような対策が必須となってしまう。
【課題を解決するための手段】
【００１１】
本発明における半導体集積回路は、第１のクロックに同期して動作するメモリ回路と、当該メモリ回路のテストを行う組み込み自己試験（ＢＩＳＴ）回路とを備えた半導体集積回路であって、前記ＢＩＳＴ回路は、前記メモリ回路への入力テストデータとして第２のクロックに同期してテストデータを出力するテストデータ出力回路と、前記メモリ回路の出力データを第３のクロックに同期して取り込む入力回路と、前記第１のクロックの位相を変更して前記第２のクロックと前記第３のクロックとを生成する位相差変更回路とを備えたことを特徴とする半導体集積回路である。このような構成により、クロック周波数を高くすることなく、テストを高速に行うことや実際の動作に即したテストを行うことが可能となる。
【００１２】
本発明における回路テスト方法は、第１のクロックに同期して動作するメモリ回路のテスト方法であって、前記第１のクロックの位相を変更して第２のクロックと第３のクロックとを生成し、前記メモリ回路への入力テストデータとして第２のクロックに同期してテストデータを出力し、前記メモリ回路の出力データを第３のクロックに同期して取り込むテスト方法である。このようにすることにより、クロック周波数を高くすることなく、テストを高速に行うことや実際の動作に即したテストを行うことが可能となる。
【発明の効果】
【００１３】
本発明によれば、クロック周波数を高くすることなく、高速にテストを行うことが可能な半導体集積回路及びテスト方法を提供することが可能となる。
【発明を実施するための最良の形態】
【００１４】
発明の実施の形態１．
本発明における半導体集積回路の具体的構成及びテスト時の処理の流れについて説明する。ここでは、ＲＡＭのテストを行うＲＡＭ−ＢＩＳＴ回路を例に挙げて説明する。
【００１５】
図１は、本発明における半導体集積回路の構成を示すブロック図である。本発明における半導体集積回路は、ＲＡＭ−ＢＩＳＴ回路１、ＲＡＭ２、ユーザ回路３０、ユーザ回路３１、セレクタ３２を備える。ＲＡＭ−ＢＩＳＴ回路１は、ＲＡＭ２と接続し、ＲＡＭ２の動作テストを行うＲＡＭ−ＢＩＳＴ回路である。ＲＡＭ−ＢＩＳＴ回路１は、テストデータ出力回路１０、入力回路１１、位相変更回路１２、位相変更回路１３を備える。
【００１６】
テストデータ出力回路１０は、位相変更回路１２から第２のクロックであるテスト回路用クロックを入力し、入力したテスト回路用クロックに基づいてＲＡＭ２に対してテストデータを出力する回路である。図２（ａ）にテストデータ出力回路の一例を示す。図２（ａ）に示すようにテストデータ出力回路１０は、テストデータ生成回路１００、テストデータ出力回路１０１を備える。
【００１７】
テストデータ生成回路１００は、ＲＡＭ２に出力するためのテストデータを生成する。テストデータ出力回路１０１は、位相変更回路１２から第２のクロックであるテスト回路用クロックを入力し、テストデータ生成回路１００からテストデータを入力し、入力したテスト回路用クロックに基づいてセレクタ３２に対して入力したテストデータを出力する。テストデータ出力回路１０１は、従来のテストデータ出力回路をそのまま利用することが可能である。
【００１８】
入力回路１１は、位相変更回路１３から第３のクロックであるテスト回路用クロックを入力し、入力したテスト回路用クロックに基づいてＲＡＭ２からデータを入力する回路である。図２（ｂ）にテストデータ出力回路の一例を示す。図２（ｂ）に示すように入力回路１１は、入力回路１１０、データ比較回路１１１を備える。
【００１９】
入力回路１１０は、位相変更回路１３から第３のクロックであるテスト回路用クロックを入力し、入力したテスト回路用クロックに基づいてＲＡＭ２からデータを入力する。入力回路１１０は、入力したデータをデータ比較回路１１１に出力する。データ比較回路１１１は、入力回路１１０から入力したデータを比較することによりＲＡＭ２から出力されるデータが正しいか否かの判定を行う。データ比較回路１１１は、従来のテストデータ出力回路をそのまま利用することが可能である。
【００２０】
位相変更回路１２は、図１のＣｌｏｃｋ１に示す第１のクロックを入力し、入力した第１のクロックの位相の変更を行い、第２のクロックであるテスト回路用クロックとして出力する回路である。位相の変更方法については、ＤＬＬ（Delay Locked Loop）やＰＬＬ（Phase Locked Loop）等を用いた方法が考えられるが、方法については特に限定されない。位相を変更したテスト回路用クロックは、図１のＣｌｏｃｋ２に示す第２のクロックとしてテストデータ出力回路１０に出力される。
【００２１】
位相変更回路１３は、図１のＣｌｏｃｋ１に示す第１のクロックを入力し、入力した第１のクロックの位相の変更を行い、第３のクロックであるテスト回路用クロックとして出力する回路である。位相の変更方法については、ＤＬＬやＰＬＬ等を用いた方法が考えられるが、方法については特に限定されない。位相を変更したテスト回路用クロックは、図１のＣｌｏｃｋ３に示す第３のクロックとして入力回路１１に出力される。
【００２２】
位相変更回路について説明する。本実施形態では、位相を１８０度変更する。この場合、位相の変更を１８０度に限定する場合は、クロックのハイとローが正反対になるため、インバータ回路を用いて位相の変更を実現することが可能となる。
【００２３】
ＲＡＭ２は、被テスト回路であり、テスト回路１により行われるテストの対象となるメモリである。ここでのテストは、テストデータ出力回路１０からＲＡＭ２に対してデータを出力し、ＲＡＭ２から入力回路１１にデータを入力することにより行われる。ＲＡＭ２は図１のＣｌｏｃｋ１に示す第１のクロックを入力し、ＲＡＭ２の動作は図１のＣｌｏｃｋ１に示す第１のクロックに基づいて行われる。
【００２４】
ＲＡＭ２は、通常動作時はユーザ回路３０、３１と接続されており、ユーザ回路３０からＲＡＭ２に対してデータを出力し、ＲＡＭ２からユーザ回路３１にデータを入力することにより動作する。テスト時は、セレクタ３２によりユーザ回路３０ではなく、テストデータ出力回路１０からデータを入力する。
【００２５】
ユーザ回路３０は、テストを行わないときに使用される回路である。ユーザ回路３０はＲＡＭ２に対してデータを出力する。ユーザ回路３０の出力したデータはセレクタ３２を介してＲＡＭ２に出力される。
【００２６】
ユーザ回路３１は、テストを行わないときに使用される回路である。ユーザ回路３１は、ＲＡＭ２からデータを入力する。図１に示すユーザ回路３０、３１はＲＡＭ２に直接つながる部分であるフリップフロップ回路のみを記載している。
【００２７】
セレクタ３２は、ユーザ回路３０から出力されるデータと、テストデータ出力回路１０から出力されるデータからいずれか一方を選択し、選択したデータをＲＡＭ２に出力するためのセレクタである。セレクタ３２は、テスト時はテストデータ出力回路１０からのデータを、非テスト時は、ユーザ回路３０から出力されるデータを選択する。
【００２８】
続いて、図３に示す波形図を用いて、本発明におけるクロックの動作について説明する。図３に示す「ＲＡＭ２」は、ＲＡＭ２の動作クロックである被テスト回路用クロック、つまり第１のクロックであり、位相変更回路１０、１１に入力されるテスト回路用クロックも位相変更前は、第１のクロックである。
【００２９】
図３に示す「テストデータ出力回路１０クロック」は、位相変更回路１２により位相が変更されテストデータ出力回路１０に対して出力されたテスト回路用クロック、つまり第２のクロックである。テストデータ出力回路１０は、「テストデータ出力回路１０クロック」のクロックで動作する。
【００３０】
図３に示す「テストデータ出力回路１０データ出力」は、テストデータ出力回路１０よりデータが出力されるタイミングである。図３のテストデータ出力回路１０データ出力の×印で示すタイミングでテストデータ出力回路１０からセレクタ３２を経由して、ＲＡＭ２に対してデータが出力される。
【００３１】
図３に示す「入力回路１１クロック」は、位相変更回路１３により位相が変更され入力回路１１に対して出力されたテスト回路用クロック、つまり第３のクロックである。入力回路１１は、「入力回路１１クロック」のクロックで動作する。
【００３２】
図３に示す「入力回路１１データ入力」は、メモリ２から入力回路１１にデータが出力されるタイミングである。図３の入力回路１１データ入力の×印で示すタイミングで入力回路１１はＲＡＭ２からデータを入力する。
【００３３】
クロック動作が図３のようになる場合の、データの流れについて説明する。テストデータ出力回路１０は、ＲＡＭ２に対してテストデータを出力する。テストデータは、図３のテストデータ出力回路１０クロックに示す矢印の位置のクロックの立上りに合わせて出力される。その後、テストデータ出力回路１０から出力されるテストデータが変化する。セレクタ３２は、ユーザ回路３０ではなく、テストデータ出力回路１０からのデータを選択し、ＲＡＭ２に対して出力する。ＲＡＭ２は、セレクタ３２の選択したデータの入力を図３のＲＡＭ２クロックに示す矢印の位置のクロックの立上りに合わせて行う。
【００３４】
例えば、図３に示すｔ１のタイミングでテストデータがテストデータ出力回路１０からＲＡＭ２に対して出力されるとする。テストデータ出力回路１０から出力されたデータは、図３のテストデータ出力回路１０データ出力の×印で示すタイミングで変化する。実際にＲＡＭ２がこのデータを入力するのは、ｔ１より後にＲＡＭ２のクロックが立ち上がるタイミングになるので、図３に示すｔ２のタイミングとなる。
【００３５】
また、図３に示すｔ２のタイミングでＲＡＭ２から入力回路１１に対してデータが出力されるとする。ＲＡＭ２から出力されたデータは、入力回路１１データ入力の×印で示すタイミングで変化する。実際にＲＡＭ２から出力されたデータが入力回路１１に入力されるのは、ｔ２より後に入力回路１１のクロックが立ち上がるタイミングになるので、図３に示すｔ３のタイミングとなる。
【００３６】
このように、位相変更回路を用いて位相を変更した場合、データ書き込み時のテストデータ出力回路１０からＲＡＭ２へのセットアップタイムは、図３に示すｔ１２となり、ＲＡＭ２から入力回路１１へのセットアップタイムは、図３に示すｔ２３となる。
【００３７】
一方、位相変更回路を用いない場合のセットアップタイムはそれぞれ図４に示すｔ４５、ｔ５６となる。図３と図４を比較することにより、位相変更回路を用いて位相を変更することにより、セットアップタイムを短縮してＲＡＭのテストを高速に行うことが可能であることがわかる。
【００３８】
発明の実施の形態２．
本発明によれば、位相変更回路を用いて、ＲＡＭのテストを高速に行うだけでなく、ユーザフリップフロップ回路とＲＡＭ間のパス遅延などを考慮したセットアップタイムの調整を行いユーザフリップフロップ回路と同等の条件でテストを行うことが可能となる。
【００３９】
本発明の実施の形態２におけるテスト回路の構成は発明の実施の形態１と同様であり、ここでは説明を省略する。ただし、本発明の実施の形態２における位相変更回路１２、１３はＤＬＬではなく、ＰＬＬ回路を用いて詳細な位相の変更が可能であるものとする。
【００４０】
図５に示す波形図を用いて、本発明におけるクロックの動作について説明する。図３に示すＲＡＭＣｌｏｃｋは、ＲＡＭ２の動作クロックである被テスト回路用クロック、つまり第１のクロックであり、ユーザ回路３０、２１も入力されるテスト回路用クロックも位相変更前は、第１のクロックである。
【００４１】
図５に示す波形図は、ユーザ回路３０から出力されたデータをＲＡＭ２が入力可能になるまでのパス遅延時間が３ｎｓであることを示している。更に、ＲＡＭ２のセットアップタイムとして２ｎｓの時間がかかる。
【００４２】
一方、テストデータ出力回路１０から出力されたデータをＲＡＭ２が入力可能になるまでのパス遅延時間は５ｎｓである。更に、ＲＡＭ２がテストデータ出力回路１０から出力されたデータを実際に入力するのはＲＡＭ２のセットアップタイムとして２ｎｓの時間がかかる。
【００４３】
これらの遅延時間は、専用の装置等を用いて予め計測しておくことが可能である。計測結果が図３に示すような値となった場合、テストデータ出力回路１０に入力されるテスト回路クロックの位相を変更することにより、ユーザ回路３０から出力されたデータと、テストデータ出力回路１０から出力されたデータを、ＲＡＭ２がデータを入力するタイミングを一致させることが可能となる。
【００４４】
このとき、変更させる位相は、遅延時間の差分を計算し計算した差分により決定する。図５に示す例では、５ｎｓと３ｎｓの差分である２ｎｓに対応する位相変更を行う。つまり、テストデータ出力回路１０の立上りとユーザ回路３０の立上りの時間差が２ｎｓになるような位相変更を行う。
【００４５】
このようにして、実際のユーザ回路が動作させるユーザフリップフロップ回路とテスト回路が動作させるフリップフロップ回路のセットアップタイムの違いを考慮して位相を変更することにより、ＲＡＭに入力されるデータのタイミングを実際のユーザ回路に合わせたテストを行うことが可能となる。
【図面の簡単な説明】
【００４６】
【図１】本発明における半導体集積回路の構成例を示すブロック図である。
【図２】本発明におけるテストデータ出力回路及び入力回路の一例を示す図である。
【図３】本発明におけるクロックの状態を表す波形図である。
【図４】従来例におけるクロックの状態を表す波形図である。
【図５】本発明におけるクロックの状態を表す波形図である。
【図６】従来例におけるテスト回路の構成例を示すブロック図である。
【符号の説明】
【００４７】
１      ＲＡＭ−ＢＩＳＴ回路
２      ＲＡＭ
１０    テストデータ出力回路
１００  テストデータ生成回路
１０１  フリップフロップ
１１    入力回路
１１０  フリップフロップ
１１１  データ比較回路
１２    位相変更回路
１３    位相変更回路
２１    テスト回路
２２    ＲＡＭ
２３    ＰＬＬ制御回路
２４    高速テスト回路
３０    ユーザ回路
３１    ユーザ回路
３２    セレクタ
【図１】
2007064648.tif 000003
【図２】
2007064648.tif 000004
【図３】
2007064648.tif 000005
【図４】
2007064648.tif 000006
【図５】
2007064648.tif 000007
【図６】
2007064648.tif 000008