(57)【要約】【課題】  実動作のクロック周波数でのメモリブロックのテストを短時間で効率よく実行することができる集積回路を提供する。【解決手段】  集積回路１は、ＲＡＭマクロ２を含むメモリブロック１０と、複数のスキャンフリップフロップ（ＦＦ）を有する第１及び第２のスキャン回路７、８と、パラレルアクセスメモリＢＩＳＴ回路３とを有する。スキャン回路７は、メモリブロック１０へデータを出力可能な入力側スキャンＦＦ群９Ａを有し、スキャン回路８は、メモリブロック１０からデータを受け取り可能な出力側スキャンＦＦ群９Ｂを有する。第１のテストモードでは通常のスキャンテストが行われ、第２のテストモードでは、パラレルアクセスメモリＢＩＳＴ回路３からＢＩＳＴ信号がパラレルに出力され、セレクタ４がこのＢＩＳＴ信号を選択し、入力側スキャンＦＦ群９Ａに出力し、メモリブロック１０のテストを実行する。【選択図】  図１
2006073917.tif 000002
【特許請求の範囲】
【請求項１】
メモリマクロを含むメモリブロックと、
スキャンパスを構成する複数のスキャンセルを有するスキャン回路と、
ＢＩＳＴ信号を生成し、当該ＢＩＳＴ信号により前記メモリブロックをテストした結果信号を受け取り期待値と一致するか否かを判定するＢＩＳＴ回路とを有し、
前記複数のスキャンセルは、前記メモリブロックへデータを出力可能な入力側スキャンセル群と、前記メモリブロックからデータを受け取り可能な出力側スキャンセル群とを有し、
前記入力側スキャンセル群の各スキャンセルは、第１のテストモードでは前段のスキャンセルからのスキャンテスト信号を受け取り、第２のテストモードでは前記ＢＩＳＴ回路から前記ＢＩＳＴ信号をパラレルに受け取り、
前記出力側スキャンセル群の各スキャンセルは、前記第１のテストモードでは前段のスキャンセルからスキャンテスト信号を受け取り、前記第２のテストモードでは前記メモリブロックから前記結果信号を受け取る
ことを特徴とする集積回路。
【請求項２】
前記メモリブロックは、前記入力側スキャンセル群と前記メモリマクロとの間及び／又は前記メモリマクロと前記出力側スキャンセル群との間に設けられる組み合わせ回路を更に有する
ことを特徴とする請求項１記載の集積回路。
【請求項３】
前記第２のテストモードで前記ＢＩＳＴ信号を選択して前記入力側スキャンセル群の各スキャンセルに出力する第１のセレクタを有する
ことを特徴とする請求項１又は２に記載の集積回路。
【請求項４】
前記第１のセレクタは、前記入力側スキャンセル群の各スキャンセルの前段にそれぞれ設けられたｍ個のセレクタ群であって、各ｍ個のセレクタは、前記第１のテストモードでは前段のスキャンセルから送られる前記スキャンテスト信号を選択して後段のスキャンセルに出力し、前記第２のテストモードでは前記ＢＩＳＴ回路により生成された前記ＢＩＳＴ信号を選択して後段のスキャンセルに出力する
ことを特徴とする請求項３記載の集積回路。
【請求項５】
前記ＢＩＳＴ回路は、前記出力側スキャンセル群から前記結果信号をパラレルに受け取る
ことを特徴とする請求項１又は２に記載の集積回路。
【請求項６】
前記スキャン回路は、前記入力側スキャンセル群を有する第１のスキャン回路と、前記出力側スキャンセル群を有する第２のスキャン回路とを有する
ことを特徴とする請求項１又は２に記載の集積回路。
【請求項７】
前記第２のテストモードは、前記入力側スキャンセル群が実動作周波数のクロックに同期して前記ＢＩＳＴ信号を前記メモリブロックに出力し、前記出力側スキャンセル群が実動作周波数のクロックに同期して前記メモリブロックから前記結果信号を受け取る
ことを特徴とする請求項１記載の集積回路。
【請求項８】
前記スキャン回路は、前記入力側スキャンセル群を有する第１のスキャン回路と、前記出力側スキャンセル群を有する第２のスキャン回路とを有し、
前記第１のスキャン回路は、メモリマクロにテストデータを書き込むための書き込み用ＢＩＳＴ信号を前記入力側スキャンセル群に一旦格納し、実動作周波数のクロックに同期して前記メモリマクロへ前記書き込み用ＢＩＳＴ信号を出力し、前記メモリマクロから前記テストデータを読み出す読み出し用ＢＩＳＴ信号を一旦格納し、前記実動作周波数のクロックに同期して前記読み出し用ＢＩＳＴ信号を前記メモリマクロへ出力し、
前記第２のスキャン回路は、実動作周波数のクロックに同期して前記メモリマクロから読み出された前記テストデータを一旦格納し、前記ＢＩＳＴ回路へパラレルに出力する
ことを特徴とする請求項７記載の集積回路。
【請求項９】
前記メモリマクロの入力側に設けられる第２のセレクタを有し、
前記ＢＩＳＴ回路は、前記入力側スキャンセル群に出力する第１のＢＩＳＴ信号及び前記メモリマクロに出力する第２のＢＩＳＴ信号を生成し、
前記第２のセレクタは、前記第２のテストモードでは前記入力側スキャンセル群からのデータを選択して前記メモリマクロに出力し、第３のテストモードでは前記第２のＢＩＳＴ信号を選択して前記メモリマクロに出力する
ことを特徴とする請求項１記載の集積回路。
【請求項１０】
前記入力側スキャンセル群に第１のＢＩＳＴ信号を出力する第１のＢＩＳＴ回路と、
前記メモリマクロに第２のＢＩＳＴ信号を出力する第２のＢＩＳＴ回路と、
前記メモリマクロの入力側に設けられる第２のセレクタを有し、
前記第２のセレクタは、前記第２のテストモードでは前記入力側スキャンセル群からのデータを選択して前記メモリマクロに出力し、第３のテストモードでは前記第２のＢＩＳＴ回路からのデータを選択して前記メモリマクロに出力する
ことを特徴とする請求項１記載の集積回路。
【請求項１１】
前記第２のセレクタは、メモリマクロの入力端子に対応して設けられたｎ個のセレクタ群からなり、前記第２のＢＩＳＴ信号をパラレルに受け取る
ことを特徴とする請求項９又は請求項１０記載の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリマクロを搭載した集積回路に関し、特にスキャンテスト及びメモリマクロに対するＢＩＳＴ（Ｂｕｉｌｔ−Ｉｎ  Ｓｅｌｆ  Ｔｅｓｔ）を実行可能な集積回路に関する。
【背景技術】
【０００２】
大規模なディジタル論理回路のテスト技術として、複数のスキャンフリップフロップを直列に接続したスキャンチェーンを設け、当該スキャンチェーンにテストデータをシフトさせることにより論理回路モジュールのテストを行うスキャンパス方式のテスト技術が知られている。
【０００３】
例えば特許文献１にはスキャンチェーンを用いて論理回路モジュールをテストする基本的なスキャンテスト技術、及び外部からスキャンチェーンの途中にスキャンパタンを入力したり、スキャンチェーンの途中から出力を外部へ出したりすることによりテストを効率化する技術について記載されている。
【０００４】
また、このようなスキャンテストとＢＩＳＴとを組み合せた技術が特許文献２に記載されている。スキャンテストとＢＩＳＴとを組み合せることで、スキャンテストにより高速な実動作クロック周波数での動作の可否を確認することができると共に、ＢＩＳＴを用いてＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）マクロ（ＲＡＭ本体）２の各アドレスの書き込み及び読み出し動作テストを行うことができる。
【０００５】
図９は、スキャンテストとＢＩＳＴとを組み合せ可能な従来の集積回路の一例を示すブロック図である。図９に示すように、集積回路１０１は、メモリブロック１１０と、スキャン回路１０７、１０８と、パラレルアクセスメモリＢＩＳＴ回路１０３とを有する。
【０００６】
メモリブロック１１０は、ＲＡＭマクロ１０２と、ＲＡＭマクロ１０２の入力側に設けられた入力側組み合せ回路１０５と、ＲＡＭマクロ１０２の出力側に設けられた出力側組み合せ回路１０６と、ＢＩＳＴ信号か、入力側組み合わせ回路１０５からのテスト信号かを選択してＲＡＭマクロ１０２に出力するためのセレクタ群１１１とを有する。
【０００７】
ＲＡＭマクロ１０２は、データが格納されるメモリセルと、メモリセルへのデータの書き込み又は読み出しを制御する書き込み／読み出し制御部とを有し、書き込み時には書き込み先のアドレス、書き込み用データ及び書き込み制御信号が入力され、また、読み出し時には、読み出し先のアドレス及び読み出し制御信号が入力されることで、個別にデータの書き込み又は読み出しが可能なものである。
【０００８】
また、スキャン回路１０７、１０８は、複数のスキャンフリップフロップ１０９が直列に接続されたスキャンチェーンからなり、スキャンテストのためのテスト信号を前段のスキャンフリップフロップ１０９から後段のスキャンフリップフロップへシフト可能な回路である。パラレルアクセスメモリＢＩＳＴ１０３は、ＲＡＭマクロ１０２にＢＩＳＴ信号をパラレルに供給する。
【０００９】
この集積回路１０１は、スキャン回路１０７、１０８による、組み合せ回路１０５、１０６とは異なる図示されていない組み合せ回路をテストする第１のテストモードと、スキャン回路１０７、１０８を使用してＲＡＭマクロ１０２のテストを行う第２のテストモードと、パラレルアクセスメモリＢＩＳＴ回路によるＢＩＳＴを実行する第３のテストモードとを有する。
【００１０】
これらのテストを選択して実行するため、ＲＡＭマクロ１０２が有する複数の入力に対して設けられた複数のセレクタから構成されるセレクタ群１１１を備える。セレクタ群１１１は、第２のテストモードと第３のテストモードとで選択信号ＳＥＬにより切り替え制御され、第２のテストモードでは、組み合せ回路１０５からのテスト信号を選択してＲＡＭマクロ１０２に入力し、第３のテストモードでは、ＢＩＳＴ回路により生成されたＢＩＳＴ信号をＲＡＭマクロ１０２に入力する。
【００１１】
スキャン回路１０７は、スキャンテストのためのテスト信号を供給するためのスキャン入力端子（ＳＣＩＮ）１２１と、その結果を出力するためのスキャン出力端子（ＳＣＯＵＴ）１２２とを有し、また、スキャンチェーンを構成する複数のスキャンフリップフロップ１０９を有する。これら複数のスキャンフリップフロップ１０９のうち、所定のスキャンフリップフロップ１０９は、入力側組み合わせ回路１０５に接続される。またスキャン回路１０８も同様にスキャン入力端子（ＳＣＩＮ）１３１、スキャン出力端子（ＳＣＯＵＴ）１３２を有し、所定のスキャンフリップフロップ１０９は出力側組み合わせ回路１０６に接続される。
【００１２】
スキャン回路１０７、１０８を構成するスキャンフリップフロップ１０９は、スキャンテストの際は、テスト信号をシフト動作により前段のスキャンフリップフロップ１０９から後段のスキャンフリップフロップ１０９に順次シフトさせる。
【００１３】
パラレルアクセスメモリＢＩＳＴ回路１０３は、第３のテストモードでＲＡＭマクロ１０２に対するＢＩＳＴ信号を生成し、セレクタ群１１１を介してＲＡＭマクロ１０２にＢＩＳＴ信号をパラレルに出力する。ＢＩＳＴ信号がＲＡＭマクロ１０２からデータを読み出す読み出し命令を含む場合は、パラレルアクセスメモリＢＩＳＴ回路１０３から読み出された結果信号としてのテストデータをパラレルに受け取る。そして、このパラレルアクセスメモリＢＩＳＴ回路１０３は、読み出されたデータと期待値とを一致判定し、その一致判定結果を出力する。
【００１４】
次に、このように構成された集積回路１０１におけるテスト動作について説明する。上述したように、集積回路１０１は、第１〜第３のテストモードを有し、第１のテストモードでは、スキャンチェーンにテストデータをシフトさせることにより組み合せ回路１０５、１０６とは異なる図示しない組み合せ回路のテストを実行する。
【００１５】
第２のテストモードでは、セレクタ群１１１の選択信号入力ＳＥＬには、例えば論理「０」が入力され、セレクタ群１１１の各セレクタは組合せ回路１０５から受け取ったデータをＲＡＭマクロ１０２に出力するように設定される。
【００１６】
スキャンフリップフロップ１０９は、ＳＭＣ信号の論理によってシフトモードか、キャプチャモードかを切り替え制御される。先ず、シフトモードで保持しているデータを後段のスキャンフリップフロップ１０９へ出力し、所望のスキャンフリップフロップ１０９にデータをセットする。キャプチャモードでは、組み合わせ回路１０５にデータを出力し、ＲＡＭマクロ１０２にテストデータを書き込む。
【００１７】
同様にして、ＲＡＭマクロ１０２に書き込まれたテストデータを読み出す。読み出されたテストデータは、組み合せ回路１０６を介して結果信号とされ、スキャン出力端子（ＳＣＯＵＴ）１３２を介して集積回路外部に出力され。この結果信号と期待値とを照合し、一致する場合には、組み合わせ回路１０５、ＲＡＭマクロ１０２及び組み合わせ回路１０６を含むメモリブロック１１０のうちテストしたアドレスについては書き込み／読み出し動作が集積回路１０１の実動作周波数において正常に行われたと判断される。
【００１８】
また、第３のテストモードにおいては、セレクタ群１１１の選択信号入力ＳＥＬには、例えば論理「１」が入力されセレクタ群１１１の各セレクタはパラレルアクセスメモリＢＩＳＴ回路１０３からのＢＩＳＴ信号をＲＡＭマクロ１０２に出力するように設定される。
【００１９】
パラレルアクセスメモリＢＩＳＴ回路１０３を用いたＲＡＭマクロ１０２の動作テストでは、パラレルアクセスメモリＢＩＳＴ回路１０３により、テストデータの書き込み時には、書き込みアドレス、書き込みデータ（テストデータ）及び書き込み制御信号からなるＢＩＳＴ信号を生成し、テストデータの読み出し時には、読み出しアドレス及び読み出し制御信号からなるＢＩＳＴ信号を生成し、これらのＢＩＳＴ信号によりＲＡＭマクロ１０２のテストを実行する。
【００２０】
パラレルアクセスメモリＢＩＳＴ回路１０３を内蔵することにより、アドレス及びテストデータを集積回路１０１の内部で発生させ、期待値との比較も集積回路１０１の内部で行うことができる。またスキャン回路により集積回路１０１の実動作周波数のクロックを用いてメモリブロック１１０のテストを実行することができる。
【特許文献１】特開２０００−９８０６号公報
【特許文献２】特開２００４−２０６７５１号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】
しかしながら、特許文献２に記載された技術においては、パラレルアクセスメモリＢＩＳＴ回路を内蔵し、ＲＡＭマクロ１０２に対して書き込み／読み出し用ＢＩＳＴ信号を入力可能であるため、ＲＡＭマクロ単体の動作については全てのアドレスについてテスト可能となるものの、ＲＡＭマクロの前後に組み合わせ回路を含むメモリブロック１１０の動作を実動作のクロック周波数でテストするためには、一のアドレスのテスト毎に外部端子からスキャンチェーンを通じてスキャン回路１０７、スキャン回路１０８に所定の書き込み用コマンド又は読み出し用コマンドとなるデータを設定しなければならないため、長大なスキャンパタンが必要であった。よって、メモリブロックの多数のアドレスに対してスキャンテストをする場合にはテスト時間が長大となり実用的ではない。従って、実製品への適用においてはごく一部のアドレスについてテストするのみにとどめざるを得ず、故障検出率において妥協せざるを得ないという問題点がある。すなわち、ＲＡＭマクロ１０２とその前後に設けられた組み合わせ回路１０７、１０８とを含むメモリブロック１１０における経路のテストについては、長大なスキャンパタン及びテスト時間を要するため実用的な時間ではごく一部のアドレスについてしか実行することができない。
【００２２】
本発明は、このような問題点を解決するためになされたものであり、実動作のクロック周波数でのメモリブロックのテストを短時間で効率よく実行することができる集積回路を提供することを目的とする。
【課題を解決するための手段】
【００２３】
上述した目的を達成するために、本発明にかかる集積回路は、メモリマクロを含むメモリブロックと、スキャンパスを構成する複数のスキャンセルを有するスキャン回路と、ＢＩＳＴ信号を生成し、当該ＢＩＳＴ信号により前記メモリブロックをテストした結果信号を受け取り期待値と一致するか否かを判定するＢＩＳＴ回路とを有し、前記複数のスキャンセルは、前記メモリブロックへデータを出力可能な入力側スキャンセル群と、前記メモリブロックからデータを受け取り可能な出力側スキャンセル群とを有し、前記入力側スキャンセル群の各スキャンセルは、第１のテストモードでは前段のスキャンセルからのスキャンテスト信号を受け取り、第２のテストモードでは前記ＢＩＳＴ回路から前記ＢＩＳＴ信号をパラレルに受け取り、前記出力側スキャンセル群の各スキャンセルは、前記第１のテストモードでは前段のスキャンセルからスキャンテスト信号を受け取り、前記第２のテストモードでは前記メモリブロックから前記結果信号を受け取ることを特徴とする。
【００２４】
本発明においては、入力側スキャンセル群がＢＩＳＴ回路からＢＩＳＴ信号を受け取り、メモリマクロに対してＢＩＳＴを実行するため、スキャン回路を流用することによってスキャンセルを新たに設ける必要がなく、ＢＩＳＴ回路の設置による回路規模の増大を抑制することができ、実動作周波数でメモリマクロのテストを短時間で実行可能となる。
【００２５】
また、前記メモリブロックは、前記入力側スキャンセル群と前記メモリマクロとの間及び／又は前記メモリマクロと前記出力側スキャンセル群との間に設けられる組み合わせ回路を更に有することができ、メモリマクロの入力側又は出力側に組み合わせ回路を有する場合であってもＢＩＳＴ信号を使用して実動作周波数でメモリブロックのテストを実行することができる。
【００２６】
更に、前記第２のテストモードで前記ＢＩＳＴ信号を選択して前記入力側スキャンセル群の各スキャンセルに出力する第１のセレクタを有することができ、ＢＩＳＴ信号をパラレルに受け取り入力側スキャンセル群に選択出力し、入力側スキャンセル群を介してメモリブロックにＢＩＳＴ信号を供給することができる。
【００２７】
この場合、前記第１のセレクタは、前記入力側スキャンセル群の各スキャンセルの前段にそれぞれ設けられたｍ個（ｍは整数）のセレクタ群であって、各ｍ個のセレクタは、前記第１のテストモードでは前段のスキャンセルから送られる前記スキャンテスト信号を選択して後段のスキャンセルに出力し、前記第２のテストモードでは前記ＢＩＳＴ回路により生成された前記ＢＩＳＴ信号を選択して後段のスキャンセルに出力することができる。
【００２８】
また、前記ＢＩＳＴ回路は、前記出力側スキャンセル群から前記結果信号をパラレルに受け取ることができ、結果信号をパラレルに受け取ることでテスト時間を短縮化することができる。
【００２９】
更に、前記スキャン回路は、前記入力側スキャンセル群を有する第１のスキャン回路と、前記出力側スキャンセル群を有する第２のスキャン回路とを有することができる。
【００３０】
更にまた、前記第２のテストモードは、前記入力側スキャンセル群が実動作周波数のクロックに同期して前記ＢＩＳＴ信号を前記メモリブロックに出力し、前記出力側スキャンセル群が実動作周波数のクロックに同期して前記メモリブロックから前記結果信号を受け取ることができる。
【００３１】
また、前記スキャン回路は、前記入力側スキャンセル群を有する第１のスキャン回路と、前記出力側スキャンセル群を有する第２のスキャン回路とを有し、前記第１のスキャン回路は、メモリマクロにテストデータを書き込むための書き込み用ＢＩＳＴ信号を前記入力側スキャンセル群に一旦格納し、実動作周波数のクロックに同期して前記メモリマクロへ前記書き込み用ＢＩＳＴ信号を出力し、前記メモリマクロから前記テストデータを読み出す読み出し用ＢＩＳＴ信号を一旦格納し、前記実動作周波数のクロックに同期して前記読み出し用ＢＩＳＴ信号を前記メモリマクロへ出力し、前記第２のスキャン回路は、実動作周波数のクロックに同期して前記メモリマクロから読み出された前記テストデータを一旦格納し、前記ＢＩＳＴ回路へパラレルに出力することができる。
【００３２】
また、前記メモリマクロの入力側に設けられる第２のセレクタを有し、前記ＢＩＳＴ回路は、前記入力側スキャンセル群に出力する第１のＢＩＳＴ信号及び前記メモリマクロに出力する第２のＢＩＳＴ信号を生成し、前記第２のセレクタは、前記第２のテストモードでは前記入力側スキャンセル群からのデータを選択して前記メモリマクロに出力し、第３のテストモードでは前記第２のＢＩＳＴ信号を選択して前記メモリマクロに出力することができ、第２のＢＩＳＴ信号によりメモリマクロ単体のテストを実行することができる。
【００３３】
更に、前記入力側スキャンセル群に第１のＢＩＳＴ信号を出力する第１のＢＩＳＴ回路と、前記メモリマクロに第２のＢＩＳＴ信号を出力する第２のＢＩＳＴ回路と、前記メモリマクロの入力側に設けられる第２のセレクタを有し、前記第２のセレクタは、前記第２のテストモードでは前記入力側スキャンセル群からのデータを選択して前記メモリマクロに出力し、第３のテストモードでは前記第２のＢＩＳＴ回路からのデータを選択して前記メモリマクロに出力するものとしてもよい。
【００３４】
更にまた、前記第２のセレクタは、メモリマクロの入力端子に対応して設けられたｎ個（ｎは整数）のセレクタ群からなり、前記第２のＢＩＳＴ信号をパラレルに受け取ることができ、メモリマクロ単体のテストを短時間で実行可能となる。
【発明の効果】
【００３５】
本発明によれば、集積回路がＲＡＭマクロの前後又はそのいずれか一方に組み合わせ回路が設けられたメモリブロックを内蔵する場合においても実動作のクロック周波数でのメモリブロックのテストを短時間で効率よく実行することができる。
【発明を実施するための最良の形態】
【００３６】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、ＲＡＭマクロを搭載した集積回路に適用したものである。
【００３７】
実施の形態１．  
図１は、本発明の実施の形態１にかかる集積回路を示すブロック図である。図１に示すように、集積回路１は、メモリブロック１０と、パラレルアクセスメモリＢＩＳＴ回路３と、第１のスキャン回路７と、第２のスキャン回路８とを有する
【００３８】
メモリブロック１０は、メモリマクロの１例であるＲＡＭマクロ２に加え、ＲＡＭマクロ２の周辺に設けられた１又は複数の組み合わせ回路を有する。本実施の形態におけるメモリブロック１０は、第１のスキャン回路７とＲＡＭマクロ２の入力側との間に設けられる第１の組み合わせ回路５及びＲＡＭマクロ２の出力側と第２のスキャン回路８との間に設けられる第２の組み合わせ回路６を有するものとする。
【００３９】
本実施の形態における集積回路１は、通常動作モードに加えて、第１のテストモードと、第２のテストモードとを有し、第１のテストモードでは第１のスキャン回路７、第２のスキャン回路８により、集積回路１内の組み合せ回路５、６とは異なる図示しない組み合わせ回路のスキャンテストが実行される。また、第２のテストモードでは、パラレルアクセスメモリＢＩＳＴ回路３によりメモリブロック１０に対するＢＩＳＴが実行される。
【００４０】
第１のスキャン回路７及び第２のスキャン回路８は、複数のスキャンセルとしてのスキャンフリップフロップを直列に接続してスキャンパスを構成するスキャンチェーンからなる。第１のテストモードにおいて、第１のスキャン回路７には、スキャン入力端子（ＳＣＩＮ）２１を介してスキャンテスト用のテスト信号（スキャンテストパターン）が入力される。テスト結果はスキャン出力端子（ＳＣＯＵＴ）２２を介して出力される。また、第２のスキャン回路８にも同様に、スキャン入力端子（ＳＣＩＮ）３１を介してテスト信号が入力され、スキャン出力端子（ＳＣＯＵＴ）３２を介して出力され、これを観測することでスキャンテストを実行する。
【００４１】
なお、本実施の形態においては、入力側の第１のスキャン回路７と、出力側の第２のスキャン回路８とは異なるスキャンチェーンとして説明するが、スキャン入力端子２１からスキャン出力端子３１まで１つのスキャンチェーンとして設けられたものであってもよいことは勿論である。
【００４２】
また、第１のスキャン回路７を構成する複数のスキャンフリップフロップ９には、組み合わせ回路５に接続されるスキャンフリップフロップから構成される入力側スキャンフリップフロップ群９Ａが含まれる。また、第２のスキャン回路８を構成する複数のスキャンフリップフロップには、組み合わせ回路６と接続されるスキャンフリップフロップから構成される出力側スキャンフリップフロップ群９Ｂが含まれる。ここで、スキャン回路７を構成するスキャンフリップフロップ９のうち、入力側スキャンフリップフロップ群９Ａを構成するスキャンフリップフロップを他と区別するためスキャンフリップフロップ９ａということとする。また、スキャン回路８においても、複数のスキャンフリップフロップ９のうち、出力側スキャンフリップフロップ群９Ｂを構成するスキャンフリップフロップを他と区別するためスキャンフリップフロップ９ｂということとする。図１に示す例では、入力側スキャンフリップフロップ群９Ａは、４つのスキャンフリップフロップ９ａを有し、出力側スキャンフリップフロップ群９Ｂは、４つのスキャンフリップフロップ９ｂを有する。
【００４３】
そして、本実施の形態における集積回路１には、入力側スキャンフリップフロップ９Ａの各スキャンフリップフロップ９ａに対してそれぞれ設けられたｍ個（ｍは整数）、本実施の形態においてはｍ＝４のセレクタ４からなるセレクタ群が第１のセレクタとして設けられている。各セレクタ４には、制御信号として第１の選択信号ＳＥＬＡが入力され、その入力にはスキャン入力信号及びパラレルアクセス用のＢＩＳＴ信号が入力される。第１の選択信号ＳＥＬＡは、第１のテストモードと第２のテストモードとで論理レベルが異なる信号である。また、スキャン入力信号は、前段のスキャンフリップフロップ９又は９ａから入力される。また、ＢＩＳＴ信号は、パラレルアクセスメモリＢＩＳＴ回路３にて生成されたＲＡＭマクロ２をテストするテスト信号である。
【００４４】
各セレクタ４は、第１の選択信号ＳＥＬＡの論理レベルに応じて上記スキャン入力信号又はＢＩＳＴ信号を選択出力する。すなわち、各セレクタ４には、第１のテストモードでは、論理レベルが例えば「０」の第１の選択信号ＳＥＬＡが入力され、前段のスキャンフリップフロップ９又は９ａから送られるスキャン入力信号を選択して後段のスキャンフリップフロップ９ａに出力する。また、第２のテストモードでは、論理レベルが例えば「１」の第１の選択信号ＳＥＬＡが入力され、パラレルアクセスメモリＢＩＳＴ回路３からのＢＩＳＴ信号を選択して対応するスキャンフリップフロップ９ａに出力する。
【００４５】
次に、第１のスキャン回路７の入力側スキャンフリップフロップ群９Ａを構成するスキャンフリップフロップ９ａについて説明する。図２は、入力側スキャンフリップフロップ群９Ａの一部分の詳細を示す図である。スキャンフリップフロップ９ａは、通常のスキャンフリップフロップと同様に構成されたものである。すなわち、スキャンフリップフロップ９ａは、クロック入力端子ＣＫ、データ入力端子Ｄ、スキャン入力／ＢＩＳＴ入力端子ＳＩ／Ｂ、スキャン出力端子ＳＯ、出力端子Ｑ、及びスキャンモードコントロール（ＳＭＣ）端子を有し、シフトモードとキャプチャモードとを有する。また、出力側スキャンフリップフロップ９Ｂを構成するスキャンフリップフロップ９ｂもスキャンフリップフロップ９ａと同様の構成を有する。
【００４６】
クロック入力端子ＣＫには、クロックが入力される。データ入力端子Ｄには、通常動作の際にデータが入力される。スキャン入力／ＢＩＳＴ入力端子ＳＩ／Ｂには、第１のテストモードであって、シフトモードのときには、セレクタ４からテスト信号が入力され、第２のテストモードではセレクタ４からＢＩＳＴ信号が入力される。スキャン出力端子ＳＯ及び出力端子Ｑは、キャプチャモードにおいて保持しているデータをクロックＣＫのタイミングで出力する。ＳＭＣ信号は、保持しているデータをスキャン出力端子ＳＯから出力するシフトモード又は出力端子Ｑから出力するキャプチャモードを選択制御する信号である。なお、ＳＭＣ信号は、通常動作モードではキャプチャモードと同一の論理レベルとなる。
【００４７】
セレクタ４は、その出力が各スキャンフリップフロップ９ａのスキャン入力／ＢＩＳＴ入力端子ＳＩ／Ｂに接続され、一方の入力がスキャンフリップフロップ９ａのスキャンアウト端子ＳＯと接続され、他方の入力がパラレルアクセスメモリＢＩＳＴ回路３と接続されている。
【００４８】
また、スキャンフリップフロップ９ａは、データ出力端子Ｑが第１の組み合わせ回路５に接続され、スキャンフリップフロップ９ｂは、データ入力端子Ｄが第２の組み合わせ回路６と接続されている。スキャンフリップフロップ９、９ａ、９ｂは、シフトモードでは、前段のスキャンフリップフロップから後段のスキャンフリップフロップにデータをシフトさせる。一方、キャプチャモードでは、スキャンフリップフロップ９ａは、取り込んだデータをデータ出力端子Ｑから第１の組み合せ回路５に出力し、スキャンフリップフロップ９ｂは、データ入力端子Ｄから、第２の組み合わせ回路６からのデータが入力される。
【００４９】
パラレルアクセスメモリＢＩＳＴ回路３は、各セレクタ４と接続され、この各セレクタ４を介して入力側スキャンフリップフロップ群９ＡにＢＩＳＴ信号をパラレルに供給する。また、パラレルアクセスメモリＢＩＳＴ回路３は、第２のスキャン回路８の出力側スキャンフリップフロップ群９Ｂから、メモリブロック１０からの結果信号をパラレルで受け取る。なお、パラレルアクセスメモリＢＩＳＴ回路３は、第２のスキャン回路８のスキャンチェーンのうち、出力側スキャンフリップフロップ群９Ｂの出力又はそれより後段のスキャンフリップフロップ９の出力と接続し、結果信号をスキャンフリップフロップのシフト動作により、パラレルアクセスメモリＢＩＳＴ回路３へシリアルに入力するように構成してもよい。この場合は、パラレルアクセスＢＩＳＴ回路３にシリアル信号をパラレル信号に変換する変換器などを設ければよい。
【００５０】
このように構成された集積回路１は、第１のテストモードでは、公知のスキャンテストが実行される。つまり、スキャン回路７、スキャン回路８は、集積回路１のスキャン入力端子２１とスキャン出力端子２２との間、スキャン入力端子３１とスキャン出力端子３２との間に設けられるスキャンチェーンの一部として用いられる。
【００５１】
また、第２のテストモードでは、パラレルアクセスメモリＢＩＳＴ回路３がＲＡＭマクロ２のテスト対象のアドレスへの書き込み命令となるＢＩＳＴ信号を生成して出力する。このＢＩＳＴ信号はセレクタ４を介して入力側スキャンフリップフロップ群９Ａの各スキャンフリップフロップ９ａにパラレルに選択出力される。そして、このＢＩＳＴ信号が組み合わせ回路５を介してＲＡＭマクロ２へ出力され、ＲＡＭマクロ２のテストアドレスへテストデータが書き込まれる。次に、パラレルアクセスメモリＢＩＳＴ回路３は、上記テストアドレスと同一アドレスからの読み出し命令となるＢＩＳＴ信号を生成して出力する。このＢＩＳＴ信号もセレクタ４にて入力側スキャンフリップフロップ群９Ａへ選択出力される。そして、ＢＩＳＴ信号が組み合わせ回路５を介してＲＡＭマクロ２に出力され、これによりＲＡＭマクロ２を制御して上記テストアドレスからテストデータの読み出しを行う。読み出されたテストデータは組み合わせ回路６に出力され、論理演算され結果信号とされる。この結果信号は、第２のスキャン回路８から出力側スキャンフリップフロップ９Ｂに出力され、出力側スキャンフリップフロップ９ＢからパラレルアクセスメモリＢＩＳＴ回路３へパラレルに転送される。パラレルアクセスメモリＢＩＳＴ回路３は、読み出されたテストデータが出力側の組み合わせ回路６で論理演算された結果信号と、期待値とを比較して一致するか否かを判定する。
【００５２】
ここで、第２のテストモードでは、入力側スキャンフリップフロップ群９ＡにセットされたＢＩＳＴ信号を出力する間、ＲＡＭマクロ２からテストデータを読み出す間は、上述したキャプチャモードとされ、実動作周波数で取り込んだＢＩＳＴ信号を出力又は結果信号を取り込む動作を実行する。
【００５３】
次に、第２のテストモードにおけるパラレルアクセスメモリＢＩＳＴ回路３によるテスト方法について、図３及び図４を用いて詳細に説明する。図３は、集積回路１の第２のテストモードにおけるテスト方法を示すフローチャートである。また、図４は、第２のテストモードにおいて、スキャンフリップフロップ９ａに入力されるＳＭＣ信号、クロックＣＫを示す波形図である。第２のテストモード時には、セレクタ４に例えば論理が「１」の第１の選択信号ＳＥＬＡが入力され、パラレルアクセスメモリＢＩＳＴ回路３からのＢＩＳＴ信号を選択するよう設定される（ステップＳ１１）。
【００５４】
先ず、パラレルアクセスメモリＢＩＳＴ回路３は、書き込み命令となるＢＩＳＴ信号を生成する。この書き込み命令となるＢＩＳＴ信号は、パラレルアクセスメモリＢＩＳＴ回路３からパラレルに出力され、各セレクタ４がスキャン回路７内の入力側スキャンフリップフロップ群９ＡにこのＢＩＳＴ信号を選択出力する（ステップＳ１２）。ここで第２のテストモードでは、スキャンフリップフロップ９ａは、入力側スキャンフリップフロップ群９ＡにＢＩＳＴ信号をセットするまでの間は、図４（ａ）に示すように、ＳＭＣ信号を例えば論理「１」として上述したシフトモードとする。スキャンフリップフロップ９ａのスキャン入力／ＢＩＳＴ入力端子ＳＩ／Ｂからセレクタ４を介してＢＩＳＴ信号供給されるためである。なお、シフトモードでは、クロックＣＫの周波数は、集積回路の実動作周波数とは異なる周波数としてもよい。このシフトモードでは、クロックＣＫに同期してパラレルアクセスメモリＢＩＳＴ回路３からＢＩＳＴ信号が出力され、スキャン回路７の入力側スキャンフリップフロップ群９Ａに書き込み命令のＢＩＳＴ信号が格納される。
【００５５】
次に、図４（ａ）に示すようにＳＭＣ信号を、例えば論理「０」としてキャプチャモードとする。その後、集積回路１のクロックＣＫを実動作周波数で２クロックパルス供給する。最初のパルスの立ち上がりに同期して入力側スキャンフリップフロップ群９Ａから書き込み命令用ＢＩＳＴ信号が組み合せ回路５に出力される。このＢＩＳＴ信号は、組み合わせ回路５内で論理演算されて書き込みアドレス、書き込みデータ（テストデータ）及び書き込み制御信号からなる書き込み用コマンドに変換されＲＡＭマクロ２に供給され、テストデータの書き込みが行われる（ステップＳ１３）。
【００５６】
次に、パラレルアクセスメモリＢＩＳＴ回路３が読み出し命令を生成する。この際入力側スキャンフリップフロップ群９Ａは図４（ｂ）に示すように、シフトモードとされる。そして、パラレルアクセスメモリＢＩＳＴ回路３にて生成された読み出し命令はＢＩＳＴ信号としてステップＳ１２と同様、クロックＣＫに同期してパラレルに出力され、セレクタ４を介してスキャン回路７内の入力側スキャンフリップフロップ群９Ａにパラレルに転送される（ステップＳ１４）。
【００５７】
次に、図４（ｂ）に示すように、ＳＭＣ信号をキャプチャモードとし、集積回路１にクロックＣＫを実動作周波数で３クロックパルス供給する。最初のクロックパルスの立ち上がりに同期して入力側スキャンフリップフロップ群９Ａから読み出し命令用ＢＩＳＴ信号が組み合せ回路５に出力される。このＢＩＳＴ信号は、組み合わせ回路５内で論理演算されて読み出しアドレス及び読み出し制御信号からなる読み出し用コマンドに変換されてＲＡＭマクロ２に供給される。次のクロックパルスの立ち上がりに同期して、ステップＳ１３にて書き込まれたテストデータの読み出しが行われる。読み出されたテストデータは、組み合わせ回路６へ出力され、この組み合せ回路６にて論理演算がなされ、メモリブロック１０のテスト結果信号として３発目のクロックパルスの立ち下がりまでにスキャン回路８内の出力側スキャンフリップフロップ群９Ｂを構成するスキャンフリップフロップ９ｂに格納される（ステップＳ１５）。
【００５８】
次に、出力側スキャンフリップフロップ９Ｂの各スキャンフリップフロップ９ｂにクロックＣＫを供給することにより、メモリブロック１０から読み出されたテストデータが第２の組み合わせ回路６にて論理演算された結果信号が、スキャンフリップフロップ９ｂを順次シフトしてパラレルアクセスメモリＢＩＳＴ回路３へパラレルに送信される（ステップＳ１６）。
【００５９】
パラレルアクセスメモリＢＩＳＴ回路３は受け取った結果信号を期待値と比較し、一致しているか否かを判定する。一致している場合には一致判定信号を所定の論理レベル（例えば論理１）として出力する（ステップＳ１７）。ここで、判定信号は、例えば外部へ出力するようにしてもよく、又は一致しなかった場合にそのアドレスを集積回路１内に設けた図示しないレジスタに格納するようにしてもよい。
【００６０】
パラレルアクセスメモリＢＩＳＴ回路３は、予め設定されたすべてのテストアドレスについてテストが完了したか否かを判断し、設定されたテストアドレスが全てテストされた場合にはシリアクセスＢＩＳＴによるテストを終了する。この際、テストの終了を集積回路１の外部へ告知するようにしてもよい。テストアドレスのうち未テストのアドレスが有る場合には次のテストアドレスに対してステップＳ１２以降が実行される（ステップＳ１８）。なお、図４に示すＳＭＣ信号及びクロックＣＫは、入力側スキャンフリップフロップ群９Ａに供給される信号として説明したが、これを出力側スキャンフリップフロップ９Ｂへ供給する信号と共用することも可能である。この場合、図４（ｂ）において、ＳＭＣ信号をキャプチャモードとしてクロックＣＫを実動作周波数で３クロックパルス供給した後、キャプチャモードとしたまま、第２の組み合わせ回路６からの結果信号を出力するためのクロックＣＫを供給すればよい。この結果信号を出力するためのクロックＣＫの周波数は、集積回路の実動作周波数とは異なる周波数としてもよい。
【００６１】
以上に述べたように、本実施の形態においては、パラレルアクセスメモリＢＩＳＴ回路３がＲＡＭマクロ２に対する書き込み又は読み出し用コマンドとなるパラレルにＢＩＳＴ信号を生成している。このパラレルのＢＩＳＴ信号は、スキャンフリップフロップ群９Ａを構成する各スキャンフリップフロップ９ａに対してそれぞれ設けられた各セレクタ４により、各スキャンフリップフロップ９ａに選択出力可能となっている。そして、入力側スキャンフリップフロップ群９ＡがＢＩＳＴ信号を一旦格納した後、組み合せ回路５を介してＢＩＳＴ信号を出力する。これにより、メモリブロック１０内のＲＡＭマクロ２へテストデータを書き込む動作を実動作周波数のクロックに同期して実行することができると共に、スキャンフリップフロップを流用することによってフリップフロップを新たに設ける必要がなく、ＢＩＳＴ回路の設置による回路規模の増大を抑制することができる。
【００６２】
また、ＲＡＭマクロ２に対する読み出し命令となるＢＩＳＴ信号を同じく入力側スキャンフリップフロップ群に一旦格納した後、組み合せ回路５を介してメモリブロック１０内のＲＡＭマクロ２にＢＩＳＴ信号を出力するので、ＲＡＭマクロ２から書き込んだテストデータを読み出す動作を実動作周波数のクロックに同期して行うことができる。
【００６３】
そして、出力側スキャンフリップフロップ群９Ｂは、一旦格納した結果信号をパラレルアクセスメモリＢＩＳＴ回路３にパラレルに転送し、パラレルアクセスメモリＢＩＳＴ回路３にて期待値との一致判定を行うことで、メモリブロック１０がＲＡＭマクロ２の前後に組み合わせ回路を有する場合においても、集積回路１が実動作周波数で正常に動作するか否かのテスト（transaction test）を実行することができる。
【００６４】
すなわち、従来のテスト方法では、ＲＡＭマクロ周辺の組み合わせ回路をシステム動作周波数でテストするにはスキャン回路７、８を使用して長大なスキャンパタンが必要であり、外部から長大なスキャンパタンを長時間かけて入力してスキャンフリップフロップ９ａの設定を行わなければならなかったため、テスト時間も長大となり、故障検出率を上げることが困難であった。これに対し、本実施の形態においては、パラレルアクセスメモリＢＩＳＴ回路３からのＢＩＳＴ信号を、セレクタ４を介して入力側スキャンフリップフロップ群９Ａにパラレル入力、設定することができる。すなわち、入力側スキャンフリップフロップ群９Ａの各スキャンフリップフロップ９ａにパラレル出力可能なセレクタ４を設けることにより、スキャンフリップフロップ群９Ａにメモリブロック１０をテストするためのデータを、スキャン入力端子２１を介してではなく直接入力することができるため、入力側スキャンフリップフロップ群９Ａに対して、メモリブロック１０をテストするためのデータを極めて短時間で入力、設定することができる。これにより、メモリブロック１０に含まれる、ＲＡＭマクロ２周辺に設けられた組み合せ回路５、６において、セットアップタイムやホールドタイムの制約が満たされているかを高速システム動作周波数（実動作周波数）でテストすることができる。
【００６５】
また、パラレルアクセスメモリＢＩＳＴ回路３により、ＲＡＭマクロ２への書き込み命令／読み出し命令となるＢＩＳＴ信号の生成、及び期待値との一致判定等を自動的に行うので、組み合わせ回路５、６の故障検出を含む実動作のクロック周波数でのメモリブロック１０の動作テストを短時間で効率よく行うことができる。
【００６６】
更に、ＢＩＳＴ信号を使用するため、長大なテストベクタも不要であり、セレクタ４を入力スキャンフリップフロップ群９Ａの直前に挿入することで、テスト時間を従来に比較して飛躍的に短縮することができる。
【００６７】
なお、本実施の形態においては、メモリブロック１０のＲＡＭマクロの前段及び後段に組み合せ回路を有するものとして説明したが、前段又は後段の一方のみに組み合わせ回路を有する場合、又は入力側スキャンフリップフロップ９ＡとＲＡＭマクロ２の入力とが接続され、ＲＡＭマクロ２の出力と出力側スキャンフリップフロップ９Ｂとが接続されているような場合においても本発明を適用することができ、同様にメモリブロック１０の実動作周波数での動作テストを高効率化することができる。
【００６８】
また、パラレルアクセスメモリＢＩＳＴ回路３は、乱数発生器を用いてアドレス及びデータを生成することができる他、例えばアドレスを最小のアドレスから昇順に生成又は最大のアドレスから降順に生成してもよい。また、その他の予め定められたアルゴリズムに従ってアドレスを生成するようにしてもよく、更に複数のアドレス生成パタンから選択できるようにしてもよい。
【００６９】
また、データ生成についても、例えばマーチングテストに適したように生成してもよく、チェッカーボードテストに適したように生成してもよい。又は、その他の予め定められたアルゴリズムに従ってデータを生成するようにしてもよく、更に複数のデータ生成パタンから選択できるようにしてもよい。
【００７０】
また、パラレルアクセスメモリＢＩＳＴ回路３により、ＲＡＭマクロ２の一のアドレス毎にテストデータを書き込み、読み出し、期待値との一致判定を行うように構成してもよく、全てのテストアドレスに対して書き込んだ後に一のアドレス毎に読み出し、期待値との一致判定を行うようにしてもよい。又はいずれかを選択できるようにしてもよい。
【００７１】
更に、本実施の形態においては、書き込み又は読み出し用のコマンドを入力するために１クロック、ＲＡＭマクロ２にアクセス又はアクセスしてテストデータを書き込みするために１クロック、ＲＡＭマクロ２からデータを読み出すために１クロックとして説明したが、ＲＡＭマクロ２がＤＲＡＭなどであって、書き込み又は読み出し制御用のコマンドを入力するために１クロック以上を必要とする場合は、入力側スキャンフリップフロップ群９Ａの各スキャンフリップフロップ９ａの出力に、必要な個数のフリップフロップを設けておき、これらを使用してＲＡＭマクロ２に対して書き込み用又は読み出し用のコマンドを出力するようにしてもよい。
【００７２】
次に、本実施の形態における変形例について説明する。図５は、図１に示す実施の形態２１の変形例を示す集積回路４１を示すブロック図である。なお、図５に示す本変形例及び後述する図７、図８に示す他の実施の形態において、図１に示す実施の形態１と同一の構成要素には同一の符号を付してその詳細な説明は省略する。
【００７３】
図５に示すように、本変形例の集積回路４１は、複数のセレクタ４の替わりに、複数のセレクタ４４を有する。セレクタ４４も、セレクタ４と同様、入力側スキャンフリップフロップ群９Ａを構成する各スキャンフリップフロップ９ａに対して設けられる。ここで、各セレクタ４４の出力は、各スキャンフリップフロップ９ａのデータ入力端子Ｄと接続されている。各セレクタ４４の一方の入力にはパラレルアクセスメモリＢＩＳＴ回路４３からＢＩＳＴ信号がパラレルに供給され、他方の入力には、通常モードにおいてデータが入力される。このセレクタ４４には、テストモードと通常モードとを切り替え制御する選択信号ＳＥＬＣが入力され、第２のテストモードでは、ＢＩＳＴ信号を選択してスキャンフリップフロップ９ａに出力する。また、スキャンフリップフロップ９ａは、第２のテストモードの間は、図６に示すようにキャプチャモードとされる。
【００７４】
そして、入力側スキャンフリップフロップ群９Ａの各スキャンフリップフロップ９ａは、最初の１クロックパルスの立ち上がりに同期してセレクタ４４を介して入力されるＢＩＳＴ信号を格納する（図６（ａ）の期間ｔ１）。そして、２クロックパルス目の立ち上がりに同期して入力側スキャンフリップフロップ群９Ａから書き込み命令用ＢＩＳＴ信号が組み合せ回路５に出力され、組み合わせ回路５内で論理演算され書き込み用コマンドに変換されＲＡＭマクロ２に供給され、テストデータの書き込みが行われる（図６（ａ）の期間ｔ２）。
【００７５】
その後、書き込んだテストデータをＲＡＭマクロ２から読み出す。この場合、図６（ｂ）に示すように、ＳＭＣ信号をキャプチャモードとしたまま、集積回路１にクロックＣＫを実動作周波数で５クロックパルス供給する。最初のクロックパルスの立ち上がりに同期してセレクタ４４を介して入力されたＢＩＳＴ信号をスキャンフリップフロップ９ａに格納する（図６（ｂ）の期間ｔ３）。そして、２発目のクロックパルス目の立ち上がりに同期して、入力側スキャンフリップフロップ群９Ａから読み出し命令用ＢＩＳＴ信号が組み合せ回路５に出力される。このＢＩＳＴ信号は、組み合わせ回路５内で論理演算され読み出し用コマンドに変換されてＲＡＭマクロ２に供給される。次いで、次のクロックパルスの立ち上がりに同期して、上述のようにして書き込まれたテストデータの読み出しが行われる。読み出されたテストデータは、組み合わせ回路６へ出力され、この組み合せ回路６にて論理演算がなされ、メモリブロック１０のテスト結果信号として４発目のクロックパルスの立ち下がりまでにスキャン回路８内の出力側スキャンフリップフロップ群９Ｂを構成するスキャンフリップフロップ９ｂに格納される（図６（ｂ）の期間ｔ４）。そして、５発目のクロックパルスの立ち上がりに同期して、取り込んだ結果信号をパラレルアクセスＢＩＳＴ回路３に出力する（図６（ｂ）の期間ｔ５）。なお、上述したように、図６（ａ）に示すクロックＣＫの１発目、図６（ｂ）に示すクロックＣＫの１発目及び５発目のクロックＣＫは、実動作周波数とは異なる周波数のクロックパルスＣＫであってもよい。
【００７６】
このように構成された本変形例においても上述の実施の形態と同様の効果を奏し、入力側スキャンフリップフロップ群９Ａに直接ＢＩＳＴ信号をパラレルに入力し設定することができるので、メモリブロック１０の実動作周波数でのテストを高速化することができる。
【００７７】
実施の形態２．  
図７は、本発明の実施の形態２にかかる集積回路を示すブロック図である。本実施の形態における集積回路５１は、図１の構成に加えて、第２のＢＩＳＴ回路としてのパラレルアクセスメモリＢＩＳＴ回路５３及びセレクタ群５４とを更に備え、第１及び第２のテストモードに加え、図９に示す従来の集積回路１０１と同様、パラレルアクセスメモリＢＩＳＴ回路によるＲＡＭマクロ２単体の動作テストを行う第３のテストモードを設けたものである。
【００７８】
図７において、セレクタ群５４はＲＡＭマクロ２のｎ（ｎは正整数）個の入力端子に対応して設けられたｎ個のセレクタからなり、第２の選択信号ＳＥＬＢにより、第２のテストモードと第３のテストモードとで選択出力する信号を切り替える。すなわち、第２のテストモードでは、第２の選択信号ＳＥＬＢを例えば論理「０」に設定することにより、第１のスキャン回路７から出力されるＢＩＳＴ信号が組み合せ回路５にて論理演算されたｎ個の信号を選択してＲＡＭマクロ２へ出力する。第３のテストモードでは第２の選択信号ＳＥＬＢを論理「１」に設定することにより、パラレルアクセスメモリＢＩＳＴ５３にて生成されたｎ個のＢＩＳＴ信号を前記ＲＡＭマクロ２へ出力する。
【００７９】
パラレルアクセスメモリＢＩＳＴ回路５３は第３のテストモードではＢＩＳＴ信号を生成してセレクタ群５４にパラレル出力する。セレクタ群５４はこれをＲＡＭマクロ２に選択出力して、指定のアドレスにテストデータを書込み、これを読み出させる。パラレルアクセスメモリＢＩＳＴ回路５３は、読み出されたテストデータのパラレル出力を受け取り、それぞれの期待値と照合して一致判定する。
【００８０】
ここで、パラレルアクセスメモリＢＩＳＴ回路５３にて生成されるＢＩＳＴ信号は、書き込み時では書き込みアドレス、書き込みデータ（テストデータ）、書き込み制御信号からなる書き込み用コマンドであり、読み出し時では読み出しアドレス、読み出し制御信号からなる読み出し用コマンドである。
【００８１】
一方、実施の形態１と同様のパラレルアクセスメモリＢＩＳＴ回路３にて生成されるＢＩＳＴ信号は、組み合わせ回路５にて論理演算されて書き込み／読み出し用コマンドとされるＢＩＳＴ信号である。また、パラレルアクセスメモリＢＩＳＴ回路３には、読み出されたテストデータが組み合わせ回路６にて論理演算されたものが結果信号として入力されるため、テストデータが論理演算された値を期待値とし、結果信号と一致判定される。
【００８２】
本実施例における第１のテストモード及び第２のテストモードでの動作は上述の実施の形態１の動作と同様である。また、第３のテストモードの動作は図９に示す従来の集積回路１０１におけるパラレルアクセスメモリＢＩＳＴ回路によるＲＡＭマクロの動作テストと同様である。
【００８３】
すなわち、パラレルアクセスメモリＢＩＳＴ回路５３を用いたＲＡＭマクロ２の動作テストでは、パラレルアクセスメモリＢＩＳＴ回路５３により書き込みアドレス、書き込みデータ（テストデータ）及び書き込み制御信号からなるＢＩＳＴ信号を所定の手順により生成する。
【００８４】
このＢＩＳＴ信号がクロックＣＫに同期してパラレルアクセスメモリＢＩＳＴ回路５３からセレクタ群５４の各セレクタを介してＲＡＭマクロ２にパラレル入力されＲＡＭマクロ２の書き込みアドレスにテストデータの書き込みが行われる。
【００８５】
その後、書き込んだテストデータを読み出し、読み出したテストデータと期待値との一致判定を行う。このために、パラレルアクセスメモリＢＩＳＴ回路３により、再び所定の手順にて読み出しアドレス及び読み出し制御信号からなるＢＩＳＴ信号を生成する。そして、クロックに同期してセレクタ群５４の各セレクタを介してＲＡＭマクロ２に入力する。これによりＲＡＭマクロ２から、指定された読み出しアドレスのテストデータが読み出され、パラレルアクセスメモリＢＩＳＴ回路５３へパラレル出力される。
【００８６】
読み出されたテストデータはパラレルアクセスメモリＢＩＳＴ回路５３内で期待値と照合され、一致する場合にはパラレルアクセスメモリＢＩＳＴ回路５３はＲＡＭマクロ１０２における書き込み／読み出し動作が正常に行われたと判断する。
【００８７】
本実施の形態においては、第２のテストモードと第３のテストモードとを使い分けることでメモリブロック１０のテストを更に効率よく行うことができる。例えば、第３のテストモードにて、パラレルアクセスメモリＢＩＳＴ回路５３によりＲＡＭマクロ２の全アドレスの書き込み／読み出し動作テストを行い、第２のテストモードにて、パラレルアクセスメモリＢＩＳＴ回路３により組み合わせ回路５、組み合わせ回路６の論理演算動作及びメモリブロック１０全体におけるクリティカルパスの実動作クロック周波数でのテストを行うことで、実施の形態１と比較して故障検出率を殆ど低下させずに更に効率よく短時間でテストすることが可能となる。
【００８８】
実施の形態３．  
次に、本発明の実施の形態３について説明する。上述の実施の形態１及び実施の形態２における第２のテストモードでは、入力側スキャンフリップフロップ群９Ａを介してＢＩＳＴ信号を供給し、出力側スキャンフリップフロップ群９Ｂを介して結果信号を受け取ることでメモリブロックの実動作周波数でのテストを実現する。ここで、メモリブロック１０の実動作周波数でのテストは、入力側スキャンフリップフロップ群９Ａ及び出力側スキャンフリップフロップ群９Ｂを介してテスト信号をやり取りすることができれば可能である。そこで、本実施の形態においては、実施の形態１及び実施の形態２において設けたパラレルアクセスメモリＢＩＳＴ回路３の代わりにシリアルアクセスメモリＢＩＳＴ回路６３を設け、入力側スキャンフリップフロップ群９Ａに対してＢＩＳＴ信号をシリアルに供給するものである。
【００８９】
図８は、本発明の実施の形態３にかかる集積回路６１を示すブロック図である。集積回路６１は、ＢＩＳＴ信号をシリアルに出力するシリアルアクセスメモリＢＩＳＴ回路６３を有する。そして、入力側スキャンフリップフロップ群９Ａの前段以前に、このＢＩＳＴ信号を選択して入力側スキャンフリップフロップ群９Ａへ選択出力するためのセレクタ６４を有している。すなわち、セレクタ６４は、第１の選択信号ＳＥＬＡにより、第１のテストモードでは、前段のスキャンフリップフロップ９からのスキャンテスト信号を後段のスキャンフリップフロップ９又は９ａに選択出力する。一方、第２のテストモードでは、シリアルアクセスメモリＢＩＳＴ回路６３からのＢＩＳＴ信号をスキャンフリップフロップ９又は９ａに選択出力する。
【００９０】
この集積回路６１は、実施の形態１におけるパラレルアクセスメモリＢＩＳＴ回路３をシリアルアクセスメモリＢＩＳＴ回路６３に置き換えたものであって、ＢＩＳＴ信号がシリアルで出力され、結果信号をシリアルで受け取ること以外は、実施の形態１と同様に動作する。すなわち、スキャンフリップフロップ９ａは、第１のテストモードでは、受け取ったスキャンテスト信号を後段のスキャンフリップフロップ９ａにシフト転送する。第２のテストモードでは、実動作周波数のクロック信号に同期して組み合わせ回路５にＢＩＳＴ信号を出力する。ＢＩＳＴ信号が組み合わせ回路５にて所定の論理演算がなされ、書き込み又は読み出し用コマンドとされ、ＲＡＭマクロ２のテストを実行する。読み出し用コマンドの場合は、組み合わせ回路６を介してスキャンフリップフロップ９ｂに結果信号が出力され、これがシリアルアクセスメモリＢＩＳＴ回路６３へシリアルに転送され、期待値と一致判定される。
【００９１】
本実施の形態においては、実施の形態１と同様の効果を奏し、スキャンチェーンの途中にセレクタ６４を設けることにより、スキャンフリップフロップ群９Ａにメモリブロック１０をテストするためのデータを、スキャン入力端子２１を介してではなく、スキャンチェーンの途中から入力することができるため、入力側スキャンフリップフロップ群９Ａに対して、メモリブロック１０をテストするためのデータを極めて短時間で入力、設定することができる。
【００９２】
また、実施の形態２の如く、組み合わせ回路５とＲＡＭマクロ２との間にセレクタ群を設け、ＲＡＭマクロ２単体のＢＩＳＴを行うパラレルアクセスメモリＢＩＳＴ回路を設け、第３のテストモードとして実行可能に構成してもよい。これにより、ＲＡＭマクロ２単体のＢＩＳＴを高速に実行し、また、メモリブロック２に対し、実動作周波数でのテストが可能となる。更に、これらのテストを組み合せることで、ＲＡＭマクロ２の故障であるか、組み合わせ回路５、６の故障であるかを発見することも可能である。
【００９３】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、本実施の形態においては、メモリブロックのメモリマクロは、ＲＡＭマクロとして説明したが、このＲＡＭマクロはＳＲＡＭマクロ、ＤＲＡＭマクロ、不揮発性ＲＡＭマクロの何れであってもよい。また、読み出し専用のＲＯＭ等であってもよい。
【００９４】
また、本実施の形態において、スキャンフリップフロップは、シフトモードではクロック端子から実動作よりも周波数の低いスキャンクロックが入力され、キャプチャモードでは上記クロック端子から実動作周波数のクロックが入力するように構成されているものとしたが、スキャンフリップフロップがスキャンクロック端子と通常動作用のクロック端子を有し、シフトモードではスキャンクロック端子からクロックを受けて動作し、キャプチャモードでは通常動作用のクロック端子からクロックを受けて動作するものに代替することも可能である。
【００９５】
更に、スキャンフリップフロップは、図２においてスキャンアウト端子ＳＯとデータ出力端子Ｑとを１個の端子で兼用してもよい。
【００９６】
更にまた、図７に示すパラレルアクセスメモリＢＩＳＴ回路３とパラレルアクセスメモリＢＩＳＴ回路５３とを兼用し、外部からのテストモード信号により、テスト機能を切り換えるようにしてもよい。この場合、外部からのテストモードの指定により書き込み／読み出し用コマンドのパラレルＢＩＳＴ信号を出力するか、組み合せ回路５にて論理演算されて書き込み／読み出し用コマンドとなるパラレルＢＩＳＴ信号で出力するかを切り換え可能なＢＩＳＴ回路として構成すればよい。
【００９７】
また、例えば、集積回路が複数のＲＡＭマクロを有する場合などにおいては、パラレルアクセスメモリＢＩＳＴ回路３とシリアルアクセスメモリＢＩＳＴ回路６３とを組み合せて使用するようにしてもよい。
【図面の簡単な説明】
【００９８】
【図１】本発明の実施の形態１にかかる集積回路を示すブロック図である。
【図２】スキャンチェーンの一部分の詳細を示す図である。
【図３】本発明の実施の形態１にかかる集積回路の第２のテストモードにおけるテスト方法を示すフローチャートである。
【図４】本発明の実施の形態１にかかる集積回路に対して、第２のテストモードでスキャンフリップフロップに入力されるＳＭＣ信号、クロックＣＫを示す波形図である。
【図５】本発明の実施の形態１における集積回路の変形例を示すブロック図である。
【図６】本発明の実施の形態１にかかる集積回路の変形例において、第２のテストモードでの、スキャンフリップフロップに入力されるＳＭＣ信号、クロックＣＫを示す波形図である。
【図７】本発明の実施の形態２にかかる集積回路を示すブロック図である。
【図８】本発明の実施の形態３にかかるスキャンチェーンの一部分の詳細を示す図である。
【図９】従来の半導体装置を示すブロック図である。
【符号の説明】
【００９９】
３，４３  パラレルアクセスメモリＢＩＳＴ回路
４，４４，６４  セレクタ
５，６  組み合せ回路  ７，８  スキャン回路  
９，９ａ，９ｂ  スキャンフリップフロップ  
９Ａ  入力側スキャンフリップフロップ群  
９Ｂ  出力側スキャンフリップフロップ群  
１０  メモリブロック
２２，３２  スキャン出力端子  ２１，３１  スキャン入力端子  
５３  パラレルアクセスメモリＢＩＳＴ回路  
５４  セレクタ群
６３  シリアルアクセスＢＩＳＴ回路  
【図１】
2006073917.tif 000003
【図２】
2006073917.tif 000004
【図３】
2006073917.tif 000005
【図４】
2006073917.tif 000006
【図５】
2006073917.tif 000007
【図６】
2006073917.tif 000008
【図７】
2006073917.tif 000009
【図８】
2006073917.tif 000010
【図９】
2006073917.tif 000011