(57)【要約】【課題】効率よくテストを行うことが可能な半導体回路およびそのテスト方法を提供する。【解決手段】半導体回路のテスト方法は、まず、少なくとも１つの引数と、テスト対象の半導体回路のテストを行うためのテストプログラムとを含むテストパタンの基本フォーマットを生成し、テスト装置内に記憶する。次に、前記引数に所定の値を設定して、前記テストプログラムおよび前記所定の値が設定された引数を含むテストパタンを生成し、前記テスト対象の半導体回路に供給する。次に、前記テストプログラムを前記半導体回路内に設けられる記憶部の第１のアドレスに格納し、かつ、前記所定の値が設定された引数を前記記憶部の第２のアドレスに格納する。さらに、前記第２のアドレスに格納された引数を参照しつつ、前記第１のアドレスに格納された前記テストプログラムを実行する。【選択図】図４
2012033091.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの引数と、テスト対象の半導体回路のテストを行うためのテストプログラムとを含むテストパタンの基本フォーマットを生成し、テスト装置内に記憶する第１ステップと、
前記引数に所定の値を設定して、前記テストプログラムおよび前記所定の値が設定された引数を含むテストパタンを生成し、前記テスト対象の半導体回路に供給する第２ステップと、
前記テストプログラムを前記半導体回路内に設けられる記憶部の第１のアドレスに格納し、かつ、前記所定の値が設定された引数を前記記憶部の第２のアドレスに格納する第３ステップと、
前記第２のアドレスに格納された引数を参照しつつ、前記第１のアドレスに格納された前記テストプログラムを実行する第４ステップと、を備えることを特徴とする半導体回路のテスト方法。
【請求項２】
前記第４ステップの後、前記第２乃至第４ステップを、前記引数に設定する値を変えながら複数回行うことを特徴とする請求項１に記載の半導体回路のテスト方法。
【請求項３】
前記第２ステップでは、前記引数に複数通りの値を設定して、前記テスト対象の半導体回路に供給し、
前記第３ステップでは、前記複数通りの値が設定された前記引数を、前記記憶部のそれぞれ対応するアドレスに記憶し、
前記第４ステップでは、前記複数通りの値が設定された前記引数のうちの１つを参照しつつ、前記テストプログラムを実行することを特徴とする請求項１に記載の半導体回路のテスト方法。
【請求項４】
前記テストパタンはシリアルデータであり、
前記テストパタンは、前記テスト対象の半導体回路の１本の入力ピンを介して、前記テスト対象の半導体回路に供給されることを特徴とする請求項１乃至３のいずれかに記載の半導体回路のテスト方法。
【請求項５】
所定の値が設定された少なくとも１つの引数と、テストプログラムとを含むテストパタンが入力される入力ピンと、
前記テストパタンを記憶する記憶部と、
前記テストプログラムを前記記憶部の第１のアドレスに格納し、前記所定の値が設定された引数を前記記憶部の第２のアドレスに格納する制御部と、
前記第２のアドレスに格納された引数を参照しつつ、前記第１のアドレスに格納された前記テストプログラムを実行するテスト実行部と、を備えることを特徴とする半導体回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体回路およびそのテスト方法に関する。
【背景技術】
【０００２】
半導体回路のテストを行う場合、ＬＳＩテスタ内のテスタメモリに予めテストパタンを記憶しておき、ＬＳＩテスタから半導体回路にテストパタンを供給してテストを行うのが一般的である。複数のテストを行う場合は、テストの数だけテストパタンをテスタメモリに記憶しておかなければならない。
【０００３】
近年の半導体回路の機能は複雑化しており、必要なテスト数も増加しつつある。ところが、テスタメモリの容量は限られているため、全てのテストパタンをテスタメモリに記憶することができず、十分なテストが行えないという問題がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−１１６８０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
効率よくテストを行うことが可能な半導体回路およびそのテスト方法を提供する。
【課題を解決するための手段】
【０００６】
本実施形態によれば、半導体回路のテスト方法は、まず、少なくとも１つの引数と、テスト対象の半導体回路のテストを行うためのテストプログラムとを含むテストパタンの基本フォーマットを生成し、テスト装置内に記憶する。次に、前記引数に所定の値を設定して、前記テストプログラムおよび前記所定の値が設定された引数を含むテストパタンを生成し、前記テスト対象の半導体回路に供給する。次に、前記テストプログラムを前記半導体回路内に設けられる記憶部の第１のアドレスに格納し、かつ、前記所定の値が設定された引数を前記記憶部の第２のアドレスに格納する。さらに、前記第２のアドレスに格納された引数を参照しつつ、前記第１のアドレスに格納された前記テストプログラムを実行する。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態に係る半導体回路２０を含む半導体回路２０のテストシステムの概略構成図。
【図２】テストパタンの基本フォーマット１３の一例を示す図。
【図３】メインプログラム１４の構造の一例を示す図。
【図４】半導体回路２０のテスト手順の一例を示すフローチャート。
【図５】ＲＡＭ２３に記憶されるテストパタンの一例。
【図６】テストパタンの基本フォーマット１３の別の一例を示す図。
【図７】半導体回路２０のテスト手順の別の一例を示すフローチャート。
【図８】ＲＡＭ２３に記憶されるテストパタンの一例を示す図。
【発明を実施するための形態】
【０００８】
以下、半導体回路およびそのテスト方法の実施形態について、図面を参照しながら具体的に説明する。
【０００９】
（第１の実施形態）
図１は、第１の実施形態に係る半導体回路２０を含む半導体回路のテストシステムの概略構成図である。図１のテストシステムは、ＬＳＩテスタ（テスト装置）１０と、テスト対象の半導体回路２０とを備えている。ＬＳＩテスタ１０は、テストパタン生成部１１と、テスタメモリ１２とを備えている。また、半導体回路２０は、例えばＩＣカード用のＬＳＩであり、１本の入出力ピン２１と、制御部２２と、ＲＡＭ（記憶部）２３と、ＣＰＵ（テスト実行部）２４と、メモリ２５とを備えている。
【００１０】
ＬＳＩテスタ１０は半導体回路２０にテストパタンを供給し、半導体回路２０のテストを行うものである。本実施形態では、半導体回路２０内の複数ページからなるメモリ２５のテストを行う例を示す。より具体的には、メモリ２５のうちの１ページまたは全ページの所定アドレスに所定データを書き込み、同アドレスを読み出して、書き込んだデータと読み出したデータとが一致するか否かをテストする。
【００１１】
ＬＳＩテスタ１０内のテスタメモリ１２はテストパタンの基本フォーマット１３を記憶する。図２は、テストパタンの基本フォーマット１３の一例を示す図である。基本フォーマット１３は、テストプログラム１３１と、引数ａ〜引数ｃを含む引数１３２と、プログラム実行時間１３３と、出力期待値１３４とを有する。
【００１２】
テストプログラム１３１は半導体回路２０内のメモリ２５をテストするためのプログラムである。テストプログラム１３１には、引数１３２と同数のポインタ＊Ａｄｒ０〜＊Ａｄｒ２が含まれる。これらのポインタは後述する半導体回路２０のＲＡＭ２３のアドレスを示しており、テストプログラム１３１が実行される際には、ポインタで指定されたアドレスに格納された引数１３２が参照される。このように、本実施形態の基本フォーマット１３では、テストプログラム１３１とは異なる領域に引数１３２が設定される。
【００１３】
引数ａ〜引数ｃは、テストパタン生成部１１により、テストに応じて異なる値が設定される。引数ａは書き込みを行う先頭のアドレスを示し、引数ｂは書き込みを行うサイズ（ページ数）を示し、引数ｃは書き込むデータを示すものとする。
【００１４】
プログラム実行時間１３３は、テストに応じて予め算出された、テストに必要な時間である。例えば、メモリ２５のうちの１ページのみのテストを行う場合はプログラム実行時間１３３は短く設定されるし、全ページのテストを行う場合は長く設定される。出力期待値１３４は、テストを行った結果得られる出力の期待値である。本実施形態では、メモリ２５に書き込んだデータと読み出したデータとが一致するか否かをテストするため、出力期待値１３４は一致していることを示すＯＫコード値に設定される。
【００１５】
基本フォーマット１３に引数１３２等を設定したものがテストパタンである。本実施形態では、テスタメモリ１２に記憶されるのは１本の基本フォーマット１３のみであり、テストの数だけテストパタンを記憶する必要はない。
【００１６】
なお、図２の基本フォーマット１３は一例である。基本フォーマト１３では、テストプログラム１３１とは異なる領域に少なくとも１つの引数１３２が設定されればよく、他の部分はテストに応じて基本フォーマット１３は変更し得る。例えば、テスト内容に応じて引数１３２の数は任意でよいし、基本フォーマット１３は予め半導体回路２０に内蔵される、テストプログラム１３１とは異なるテストを行うための「モード設定」等をさらに有してもよい。
【００１７】
図１のＬＳＩテスタ１０内のテストパタン生成部１１はメインプログラム１４を実行し、基本フォーマット１３に含まれる引数ａ〜引数ｃ、プログラム実行時間１３３および出力期待値１３４に所定の値を設定してテストパタンを生成する。そして、テストパタン生成部１１は生成されたテストパタンをテスタメモリ１２に記憶することなく、半導体回路２０に供給する。
【００１８】
図３は、メインプログラム１４の構造の一例を示す図である。同図では、テスト１〜テスト４の４つのテストを行う例を示している。図示のように、テストパタン生成部１１がメインプログラム１４を実行すると、まずテスト１を実行するために、基本フォーマット１３の引数ａ、引数ｂおよび引数ｃにはそれぞれ、ａ１，ｂ１およびｃ１が設定される。図３には示していないが、プログラム実行時間１３３および出力期待値１３４も同時に設定される。メインプログラム１４は、テスタメモリ１２に記憶してもよいし、テスタメモリ１２とは別の記憶領域に記憶してもよい。メインプログラム１４にはテストプログラム１３１自体は含まれないので、それほど大きな記憶容量を必要としない。
【００１９】
ここで、基本フォーマット１３およびテストパタンは１ビットのデータを直列に並べたシリアルデータである。すなわち、これらはアドレスとデータがセットになっているわけではなく、シリアルデータの各ビットが、テストプログラム１３１、引数ａ〜引数ｃ、プログラム実行時間１３３および出力期待値１３４のいずれと対応するのかが予め定められている。
【００２０】
図１の半導体回路２０の入出力ピン２１には、ＬＳＩテスタ１０からテストパタンがシリアル入力される。制御部２２は、テスト用ＲＯＭプログラム２６を実行して、テストパタンに含まれるテストプログラム１３１を予め定めたＲＡＭ２３のアドレスＡｄｒ＿ｐｇｍ０〜Ａｄｒ＿ｐｇｍｎ（第１のアドレス）に格納し、引数ａ〜引数ｃをアドレスＡｄｒ０〜Ａｄｒ２（第２のアドレス）にそれぞれ格納する。ここで、テストプログラム１３１に含まれるポインタ＊Ａｄｒ０〜＊Ａｄｒ２は、ＲＡＭ２３のアドレスＡｄｒ０〜Ａｄｒ２にそれぞれ対応している。
【００２１】
上述のように、テストパタンはシリアルデータであり、テストパタンにおけるテストプラグラム１３１や引数１３２等のデータはアドレスと対応付けられているわけではない。また、テストパタンには、テストプログラム１３１とは異なる領域に引数１３２が設定されている。そのため、半導体回路２０は、シリアル入力されるテストパタンからテストプログラム１３１および引数ａ〜引数ｃをそれぞれ抽出し、ＲＡＭ２３の所定のアドレスに格納する機能を有する点が本実施形態の１つの特徴である。
【００２２】
ＣＰＵ２４はＲＡＭ２３に格納されたテストプログラム１３１を実行して、半導体回路２０のテストを行う。この時、テストプログラム１３１に含まれるポインタ＊Ａｄｒ０〜＊Ａｄｒ２に対応するＲＡＭ２３のアドレスＡｄｒ０〜Ａｄｒ２に格納された引数ａ〜引数ｃが参照される。テストプログラム１３１が実行され、テストパタン生成部１１によりテストパタンに設定されたプログラム実行時間１３３が経過すると、ＣＰＵ２４は書き込みデータと読み出しデータとを比較し、一致しているか否か示すコード値信号を入出力ピン２１から出力する。
【００２３】
なお、出力データとしては、書き込みデータと読み出しデータとが一致していたことを示すＯＫコード値のほか、不一致となった場合にはＮＧコード値が出力される。また、ＯＫコード値に加えてテストで最後に読み出したアドレスとデータを出力したり、ＮＧコード値に加えて最初に不一致となった読み出しアドレスと読み出しデータとを出力させたりするなど、テストの利便性を高めるためにテスト結果のパス／フェイル以外の情報も得られるようにしてもよい。
【００２４】
図４は、半導体回路２０のテスト手順の一例を示すフローチャートである。初めに、ＬＳＩテスタ１０の外部で、図２に示す基本フォーマット１３および図３に示すメインプログラム１４を生成し、ＬＳＩテスタ１０に記憶する（ステップＳ１）。
【００２５】
次に、テストパタン生成部１１はメインプログラム１４を実行し、テストパタンを生成する（ステップＳ２）。まずは、図３のテスト１を実行すべく、テストパタン生成部１１は、引数ａ、引数ｂおよび引数ｃにそれぞれ、ａ１，ｂ１およびｃ１を設定する。基本フォーマット１３は１ビットのシリアルデータであるため、テストパタン生成部１１は容易に引数ａ〜引数ｃに対応するビットに上記値を設定できる。そして、テストパタン生成部１１は、半導体回路２０の１本の入出力ピン２１を介して、生成されたテストパタンを半導体回路２０内の制御部２２へ供給する（ステップＳ３）。
【００２６】
テストパタンが供給された制御部２２はテスト用ＲＯＭプログラム２６を実行し、シリアルデータであるテストパタンからテストプログラム１３１を抽出してＲＡＭ２３のアドレスＡｄｒ＿ｐｇｍ０〜Ａｄｒ＿ｐｇｍｎに格納するとともに、テストパタンから引数ａ〜引数ｃを抽出してアドレスＡｄｒ０〜Ａｄｒ２に格納する（ステップＳ４）。図５は、ＲＡＭ２３に記憶されるテストパタンの一例を示す図である。同図に示すように、テストプログラム１３１および引数１３２は、それぞれ異なる領域に記憶される。
【００２７】
次に、ＣＰＵ２４はＲＡＭ２３に格納されたテストプログラム１３１を実行する（ステップＳ５）。より具体的には、テストプログラム１３１に含まれるポインタ＊Ａｄｒ０〜＊Ａｄｒ２にそれぞれ対応するＲＡＭ２３のアドレスＡｄｒ０，Ａｄｒ１およびＡｄｒ２には、ａ１，ｂ１およびｃ１がそれぞれ格納されているため、ＣＰＵ２４は、メモリ２５のａ１アドレスからｂ１アドレス分、データｃ１を書き込む。そして、ＣＰＵ２４は同ページの同アドレスに書き込まれたデータを読み出す。さらに、ＣＰＵ２４は書き込みデータが読み出しデータと一致しているか否かを示すコード値信号を入出力ピン２１から出力する。
【００２８】
以上で、図３に示すメインプログラム１４のテスト１が終了する。次に、まだ全てのテストを行っていないので（ステップＳ６のＮＯ）、テスト２を実行すべく、テストパタン生成部１１は、引数ａ、引数ｂおよび引数ｃにそれぞれ、ａ２，ｂ２およびｃ２を設定して、テストパタンを生成する（ステップＳ２）。以下、同様にステップＳ３〜Ｓ５にてテストを行う。これを繰り返し、テスト４を実行すると、全てのテストが行われたので（ステップＳ６のＹＥＳ）、半導体回路２０のテストを終了する。
【００２９】
このように、第１の実施形態では、テストプログラム１３１とは異なる領域に引数１３２を有するテストパタンの基本フォーマット１３を生成し、この基本フォーマット１３をテスタメモリ１２に記憶する。そして、テストを行う度に、基本フォーマット１３の引数１３２に異なる値を設定してテストパタンを生成し、テスタメモリ１２にテストパタンを記憶することなく、半導体回路２０に供給する。また、半導体回路２０は、供給されたテストパタンからテストプログラム１３１および引数１３２を抽出して、ＲＡＭ２３のそれぞれ異なるアドレスにこれらを格納できる。そのため、テスタメモリ１２は１本の基本フォーマット１３を記憶できればよく、限られたテスタメモリ１２の容量を用いて効率よくテストをできる。
【００３０】
（第２の実施形態）
上述した第１の実施形態は、テストを行う度にテストパタンを生成して半導体回路２０に供給するものであった。これに対し、以下に説明する第２の実施形態では、全てのテストパタンを半導体回路２０に供給した後にテストを行うものである。
【００３１】
本実施形態では、テストパタンの基本フォーマット１３が第１の実施形態とは異なる。図６は、本実施形態のテストパタンの基本フォーマット１３の一例を示す図である。同図の基本フォーマット１３は、図３に示す４つのテストを行うことを念頭に置いている。図２との違いは、テストプログラム１３１が、４組のポインタ＊Ａｄｒ１０〜＊Ａｄｒ１２，＊Ａｄｒ２０〜＊Ａｄｒ２２，＊Ａｄｒ３０〜＊Ａｄｒ３２，＊Ａｄｒ４０〜＊Ａｄｒ４２を含んでいることである。例えば、テスト１の実行時には、ポインタ＊Ａｄｒ１０〜＊Ａｄｒ１２が用いられる。
【００３２】
図７は、半導体回路２０のテスト手順の一例を示すフローチャートである。初めに、ＬＳＩテスタ１０の外部で、図６に示す基本フォーマット１３および図３に示すメインプログラム１４を生成し、ＬＳＩテスタ１０に記憶する（ステップＳ１１）。
【００３３】
次に、テストパタン生成部１１はメインプログラム１４を実行し、テストパタンを生成する（ステップＳ１２）。ここで、テストパタン生成部１１は、引数ａに図３のテスト１〜テスト４に対応するａ１〜ａ４の４つの値を設定する。より具体的には、ａ１〜ａ４をシリアルに連結して引数ａに設定する。引数ｂおよび引数ｃや、プログラム実行時間１３３、出力期待値１３４も同様である。
【００３４】
そして、テストパタン生成部１１は生成されたテストパタンを半導体回路２０の制御部２２に供給する（ステップＳ１３）。制御部２２はテスト用ＲＯＭプログラム２６を実行し、テストパタンからテストプログラム１３１を抽出してＲＡＭ２３のアドレスＡｄｒ＿ｐｇｍ０〜Ａｄｒ＿ｐｇｍｎに格納するとともに、テストパタンから引数ａ〜引数ｃを抽出してアドレスＡｄｒ１０〜Ａｄｒ１２，Ａｄｒ２０〜Ａｄｒ２２，Ａｄｒ３０〜Ａｄｒ３２，Ａｄｒ４０〜Ａｄｒ４２に格納する（ステップＳ１４）。
【００３５】
図８は、ＲＡＭ２３に記憶されるテストパタンの一例を示す図である。本実施形態では、テスト用ＲＯＭプログラム２６は、１つの引数につき４つの値が設定されることを念頭に生成されている。従って、引数ａには４つの値ａ１〜ａ４が設定されるが、制御部２２はこれらをそれぞれアドレスＡｄｒ１０，Ａｄｒ２０，Ａｄｒ３０，Ａｄｒ４０に格納する。他の引数ｂ，ｃについても同様である。
【００３６】
その後、ＣＰＵ２４はＲＡＭ２３に格納されたテストプログラム１３１を実行する（ステップＳ１５）。まずは、テスト１を実行するために、テストプログラム１３１はポインタ＊Ａｄｒ１０〜＊Ａｄｒ１２に対応するアドレスに格納される引数ａ１，ｂ１およびｃ１を参照する。そして、テスト１が終了すると、まだ全てのテストを行っていないので（ステップＳ１６のＮＯ）、テスト２を実行するために、テストプログラム１３１はポインタ＊Ａｄｒ２０〜＊Ａｄｒ２２に対応するアドレスに格納される引数ａ２，ｂ２およびｃ２を参照する。以下、テスト毎に異なるアドレスを参照しながら全てのテストを行う。
【００３７】
全てのテスト１〜テスト４が終了すると（ステップＳ１６のＹＥＳ）、半導体回路２０のテストは終了する。
【００３８】
このように、第２の実施形態では、１つの引数に複数の値を設定したテストパタンを生成するため、ＬＳＩテスタ１０から半導体回路２０へのテストパタンの転送が一回で済む。よって、第１の実施形態と同様に、効率よくテストを行えるとともに、テストに要する時間を短縮できる。
【００３９】
上記の記載に基づいて、当業者であれば、本発明の追加の効果や種々の変形を想到できるかもしれないが、本発明の態様は、上述した個々の実施形態には限定されるものではない。特許請求の範囲に規定された内容およびその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
【符号の説明】
【００４０】
１０  ＬＳＩテスタ
１３  基本フォーマット
１４  メインプログラム
２０  半導体回路
２１  入出力ピン
２２  制御部
２３  ＲＡＭ
２４  ＣＰＵ
【図１】
2012033091.tif 000003
【図２】
2012033091.tif 000004
【図３】
2012033091.tif 000005
【図４】
2012033091.tif 000006
【図５】
2012033091.tif 000007
【図６】
2012033091.tif 000008
【図７】
2012033091.tif 000009
【図８】
2012033091.tif 000010