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