(57)【特許請求の範囲】
【請求項１】
外部データ入力端子に供給される入力データ信号を受けるデータ入力部と、
前記データ入力部で受けた入力データ信号を保持する記憶部と、
出力要求信号に応答してタイミング信号を生成するタイミング生成部と、
前記記憶部に保持された入力データ信号を前記タイミング信号に同期して出力データ信号として出力するデータ出力部と、
前記データ入力部で受けた入力データ信号を前記タイミング信号に同期して出力するテスト出力制御部と、
通常動作モード中に、前記データ出力部からの出力データ信号を外部データ出力端子に出力し、テストモード中に、前記テスト出力制御部からの入力データ信号を前記外部データ出力端子に出力するデータセレクタと
を備えていることを特徴とする半導体集積回路。
【請求項２】
請求項１記載の半導体集積回路において、
前記外部データ出力端子から出力される出力データ信号を受けて動作し、ユーザ出力信号を生成する出力ユーザロジック回路と、
前記ユーザ出力信号を受ける出力レジスタと、
前記出力レジスタに接続されたスキャンパスと、
前記テストモード中に、前記出力レジスタに保持されたユーザ出力信号をスキャンパスを介して受け、受けた信号を期待値と比較するテスト制御部と
を備えていることを特徴とする半導体集積回路。
【請求項３】
請求項２記載の半導体集積回路において、
前記外部データ入力端子に供給する入力データ信号を保持する入力レジスタと、
前記入力レジスタに接続されたスキャンパスと
を備え、
前記テスト制御部は、テスト用の入力データ信号をスキャンパスを介して前記入力レジスタに設定し、スキャンパスを介して受ける前記出力レジスタからのユーザ出力信号を期待値と比較することを特徴とする半導体集積回路。
【請求項４】
請求項１ないし請求項３のいずれか１項記載の半導体集積回路において、
前記データ出力部は、前記記憶部からの出力データ信号を増幅し、保持するリードアンプであることを特徴とする半導体集積回路。
【請求項５】
請求項１ないし請求項３のいずれか１項記載の半導体集積回路において、
前記データ出力部は、前記記憶部からの出力データ信号を出力するデータ出力バッファであることを特徴とする半導体集積回路。
【請求項６】
請求項１ないし請求項５のいずれか１項記載の半導体集積回路において、
前記データ出力部から前記セレクタまで出力データ信号を伝達する通常信号線と、
前記テスト出力制御部から前記セレクタまで入力データ信号を伝達し、前記通常信号線と負荷が等しいテスト信号線と
を備えていることを特徴とする半導体集積回路。
【請求項７】
請求項１記載の半導体集積回路において、
テスト入力信号を保持する入力レジスタと、
前記入力レジスタに接続されたスキャンパスと、
前記入力レジスタからの前記テスト入力信号を受けて動作し、入力データ信号を生成し、生成した入力データ信号を前記外部データ入力端子に出力する入力ユーザロジック回路と、
前記データ入力部に設けられ、前記入力データ信号を保持する保持部と、
前記保持部に接続されたスキャンパスと、
前記外部データ出力端子から出力される出力データ信号を受けて動作し、ユーザ出力信号を生成する出力ユーザロジック回路と、
前記ユーザ出力信号を保持する出力レジスタと、
前記出力レジスタに接続されたスキャンパスと、
前記テストモード中に、テスト入力信号をスキャンパスを介して前記入力レジスタおよび前記保持部に設定し、前記入力ユーザロジック回路、前記記憶部および前記出力ユーザロジック回路を動作し、前記保持部に保持された入力データ信号および前記出力レジスタに保持されたユーザ出力信号をスキャンパスを介して受け、受けた信号を期待値と比較するテスト制御部とを備えていることを特徴とする半導体集積回路。
【請求項８】
請求項１ないし請求項７のいずれか１項記載の半導体集積回路において、
前記データ入力部は、入力データ信号をクロック信号に同期して受け、
前記記憶部は、前記出力要求信号に応答して動作を開始した後、クロック信号に非同期で出力データ信号をデータ出力部に出力し、
前記タイミング生成部は、前記出力要求信号を遅延させ前記タイミング信号として出力する遅延回路を有することを特徴とする半導体集積回路。
【請求項９】
外部データ入力端子に供給される入力データ信号を受けるデータ入力部と、前記データ入力部で受けた入力データ信号を保持する記憶部と、出力要求信号に応答してタイミング信号を生成するタイミング生成部と、前記記憶部に保持された入力データ信号を前記タイミング信号に同期して出力データ信号として出力するデータ出力部とを有する機能ブロックと、
外部データ出力端子からの出力データ信号を受けて動作する出力ユーザロジック回路と
を備えた半導体集積回路のテスト方法であって、
前記データ出力部からの出力データ信号をマスクし、
前記データ入力部で受けた入力データ信号を前記タイミング信号に同期して前記外部データ出力端子に出力し、
前記出力ユーザロジック回路から出力されるユーザ出力信号を期待値と比較することで、前記出力ユーザロジック回路の不良を検出することを特徴とする半導体集積回路のテスト方法。
【請求項１０】
請求項９記載の半導体集積回路のテスト方法において、
前記半導体集積回路は、
スキャンパスに接続された入力レジスタからの信号を受けて動作し、生成した入力データ信号を前記外部データ入力端子に出力する入力ユーザロジック回路と、前記データ入力部に設けられ、スキャンパスに接続され、入力データ信号を保持する保持部と、スキャンパスに接続され、前記出力ユーザロジック回路からのユーザ出力信号を保持する出力レジスタとを備え、
テスト入力信号をスキャンパスを介して前記入力レジスタおよび前記保持部に設定し、
前記入力レジスタに設定された前記テスト入力信号に応じて前記入力ユーザロジック回路を動作し、
前記保持部に設定されたテスト入力信号に応じて前記記憶部を動作し、
前記外部データ出力端子から出力される出力データ信号に応じて前記出力ユーザロジック回路を動作し、
前記入力ユーザロジック回路から出力される入力データ信号を前記保持部に保持し、
前記出力ユーザロジック回路から出力されるユーザ出力信号を前記出力レジスタに保持し、
前記保持部に保持された入力データ信号および前記出力レジスタに保持されたユーザ出力信号を期待値と比較することで、前記入力ユーザロジック回路および前記出力ユーザロジック回路の不良を検出することを特徴とする半導体集積回路のテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テスト機能を有する半導体集積回路に関する。
【背景技術】
【０００２】
近年、トランジスタ等の素子構造が微細化され、１つのチップに搭載される回路規模が増加している。これに伴い、システムの機能を１つのチップで実現するシステムＬＳＩが開発されている。一般に、システムＬＳＩは、メモリやコントローラ等の機能ブロック（ハードマクロ）と、ユーザ独自の機能を実現するために機能ブロックに接続されるユーザブロック（ユーザロジック）とを有している。
【０００３】
論理ゲートの数が増加するに伴い、システムＬＳＩのテスト時間は長くなり、テストコストは増加する。テストコストを削減するために、様々なテスト手法が提案されている（例えば、特許文献１参照）。例えば、ユーザが独自に設計したユーザブロックをテストするために（縮退故障の検出）、デイジーチェーン接続されたフリップフロップを用いるスキャンパステストが提案されている。メモリマクロ等の機能ブロックをテストするために、システムＬＳＩにＢＩＳＴ（Ｂｕｉｌｔ−Ｉｎ  Ｓｅｌｆ  Ｔｅｓｔ）回路を搭載する手法が提案されている。このように、ユーザブロックのテストと機能ブロックのテストは、互いに独立して効率化が図られている。
【特許文献１】特開２００６−４５０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
機能ブロックの入力側および出力側にユーザブロックがそれぞれ接続されるとき、チップ全体の動作タイミングを正しく評価するためには、機能ブロックの遅延時間（処理時間）を考慮して出力側のユーザブロックをテストする必要がある。このためには、機能ブロックからの出力信号をテストパターンとして出力側のユーザブロックに供給しなくてはならない。しかしながら、機能ブロックからテストパターンを出力させるためには、入力側のユーザブロックを介して機能ブロックに複雑なテストパターンを供給しなくてはならない。この結果、テストパターンの数が増加し、テストコストが増加するという問題がある。
【０００５】
本発明の目的は、機能ブロックの出力を受けて動作する回路のテストを簡易なテストパターンを用いて実施し、テストコストを削減することである。
【課題を解決するための手段】
【０００６】
データ入力部は、外部データ入力端子に供給される入力データ信号を受ける。記憶部は、データ入力部で受けた入力データ信号を保持する。タイミング生成部は、出力要求信号に応答してタイミング信号を生成する。データ出力部は、記憶部に保持された入力データ信号をタイミング信号に同期して出力データ信号として出力する。テスト出力制御部は、データ入力部で受けた入力データ信号をタイミング信号に同期して出力する。データセレクタは、通常動作モード中に、データ出力部からの出力データ信号を外部データ出力端子に出力し、テストモード中に、テスト出力制御部からの入力データ信号を外部データ出力端子に出力する。
【発明の効果】
【０００７】
テストモード中に、外部データ入力端子で受けた入力データ信号を、実際の記憶部の動作タイミングに合わせて、出力データ信号として外部データ出力端子に出力できる。少ない入力信号と簡易な回路を用いて、メモリセルにデータを書き込むことなく出力データ信号を生成できるため、簡易なテストパターンを用いて、出力データ信号を生成できる。この結果、出力データ信号を受けて動作する回路のテストを簡易なテストパターンを用いて実施でき、テストコストを削減できる。
【発明を実施するための最良の形態】
【０００８】
以下、実施形態を図面を用いて説明する。図中、太線で示した信号線は、複数本を有している。また、太線が接続されているブロックの一部は、複数の回路を有している。信号が伝達される信号線には、信号名と同じ符号を使用する。信号が伝達される信号線には、信号名と同じ符号を使用する。先頭に”／”の付く信号は、負論理を示している。図中の二重の四角印は、外部端子を示している。外部端子は、例えば、ハードマクロの端子、半導体チップ上のパッド、あるいは半導体チップが収納されるパッケージのリードである。外部端子を介して供給される信号には、端子名と同じ符号を使用する。
【０００９】
図１は、一実施形態におけるメモリマクロＭＭを示している。例えば、メモリマクロＭＭは、ハードマクロ（機能ブロック）として設計される。メモリマクロＭＭは、図２に示すように、ユーザロジック部ＵＬ１、ＵＬ２等ともに、システムＳＹＳ（半導体集積回路チップ）に搭載される。メモリマクロＭＭは、アドレス選択部１０、コマンドデコーダ１２、タイミング生成部１４、データ入力バッファ１６、フリップフロップＦ／Ｆ、データセレクタＤＳＥＬおよびメモリコアＣＯＲＥを有している。
【００１０】
アドレス選択部１０は、入力アドレス信号ＩＡをタイミング信号ＲＡＳに同期して受け、内部アドレス信号ＡＤＤとしてメモリコアＣＯＲＥに出力する。アドレス選択部１０は、アドレス信号ＩＡのデコード機能（アドレスデコーダ）を有していてもよい。このとき、内部アドレス信号は、アドレスデコード信号である。アドレスデコーダは、メモリコアＣＯＲＥに設けてもよい。また、アドレス選択部１０は、クロック信号ＣＫに同期して動作するアドレスバッファを介して入力アドレス信号ＩＡを受けてもよい。
【００１１】
コマンドデコーダ１２は、クロック信号ＣＫに同期してライトイネーブル信号／ＷＥを受け、タイミング信号ＲＡＳに同期してアクティブ信号ＡＣＴＰおよび読み書き制御信号ＲＷＰを出力する。すなわち、メモリマクロＭＭは、クロック信号ＣＬＫのサイクル毎に書き込み動作または読み出し動作を実行する。アクティブ信号ＡＣＴＰは、高レベルのパルス信号である。読み書き制御信号ＲＷＰは、書き込みコマンドに応答して高レベルに変化し、読み出しコマンドに応答して低レベルに変化する。
【００１２】
なお、メモリマクロＭＭに図示しないクロックイネーブル信号ＣＫＥを供給し、コマンドデコーダ１２を、図示しないクロックイネーブル信号ＣＫＥが高レベルの間のみ動作してもよい。このとき、コマンドデコーダ１２は、クロックイネーブル信号ＣＫＥが低レベル間、タイミング信号ＲＡＳ、アクティブ信号ＡＣＴＰおよび読み書き制御信号ＲＷＰの出力を停止する。具体的には、これ等信号ＲＡＳ、ＡＣＴＰ、ＲＷＰは、クロックイネーブル信号ＣＫＥが低レベル間、低レベルに保持される。メモリマクロＭＭは、クロックイネーブル信号ＣＫＥが高レベルの間に、クロック信号ＣＬＫのサイクル毎に書き込み動作または読み出し動作を実行する。メモリマクロＭＭは、クロックイネーブル信号ＣＫＥが低レベルの間に、スタンバイ状態に設定され、書き込み動作および読み出し動作の実行を禁止する。
【００１３】
タイミング生成部１４は、入力データラッチ信号ＩＤＬＡＴまたは出力データラッチ信号ＯＤＬＡＴ（タイミング信号）を出力するための遅延回路ＩＤＬＹ、ＯＤＬＹを有している。遅延回路ＩＤＬＹ、ＯＤＬＹを示す四角枠の長さは、相対的な遅延時間の長さを示している。遅延回路ＩＤＬＹは、ライトイネーブル信号／ＷＥが低レベルのときに、アクティブ信号ＡＣＴＰを所定時間遅延させ、入力データラッチ信号ＩＤＬＡＴとして出力する。遅延回路ＯＤＬＹは、ライトイネーブル信号／ＷＥが高レベルのときに、アクティブ信号ＡＣＴＰを所定時間遅延させ、出力データラッチ信号ＯＤＬＡＴとして出力する。高レベルのアクティブ信号ＡＣＴＶおよび低レベルのライトイネーブル信号／ＷＥは、書き込みコマンド（入力要求信号）を示す。高レベルのアクティブ信号ＡＣＴＶおよび高レベルのライトイネーブル信号／ＷＥは、読み出しコマンド（出力要求信号）を示す。また、タイミング生成部１４は、アクティブ信号ＡＣＴＰおよび読み書き制御信号ＲＷＰに応じて、メモリセルアレイＡＲＹを動作するための動作制御信号ＯＰＣＮＴ（ワード線の活性化信号やビット線のプリチャージ停止信号）を出力する。
【００１４】
データ入力バッファ１６（データ入力部）は、クロック信号ＣＬＫに同期して外部データ入力端子ＩＤで入力データ信号ＩＤ（書き込みデータ）を受け、受けた信号を内部入力データ信号ＤＩＮとして出力する。
【００１５】
フリップフロップＦ／Ｆ（テスト出力制御部）は、データ入力バッファ１６で受けた内部入力データ信号ＤＩＮの論理レベルを出力データラッチ信号ＯＤＬＡＴに同期してラッチし、テスト出力データ信号ＴＤＯＵＴとして出力する。フリップフロップＦ／Ｆは、複数ビットを有する内部入力データ信号ＤＩＮの少なくとも１ビットをラッチする。なお、フリップフロップＦ／Ｆは、テストモード中のみ、出力データラッチ信号ＯＤＬＡＴに応答して動作してもよい。通常動作モード中に出力データラッチ信号ＯＤＬＡＴの入力を禁止することで、通常動作モード中の消費電力を削減できる。
【００１６】
データセレクタＤＳＥＬは、バイパスモード信号ＢＰが低レベル（”０”）のとき（通常動作モード）、リードアンプＲＡからの出力データ信号ＤＯＵＴ（読み出しデータ）を外部データ出力端子ＯＤに出力する。データセレクタＤＳＥＬは、バイパスモード信号ＢＰが高レベル（”１”）のとき（テストモード）、フリップフロップＦ／Ｆからのテスト出力データ信号ＴＤＯＵＴ（＝内部入力データ信号ＤＩＮ）を外部データ出力端子ＯＤに出力する。バイパスモード信号ＢＰは、後述するバイパステストを実施するときに高レベルに設定される。なお、データセレクタＤＳＥＬは、フリップフロップＦ／Ｆが内部入力データ信号ＤＩＮの１ビットのみを受けるとき、対応する出力データ信号ＤＯＵＴの１ビットとテスト出力データ信号ＴＤＯＵＴ（１ビット）を受けて動作する。このとき、出力データ信号ＤＯＵＴの他のビットは、データセレクタＤＳＥＬを介することなく外部データ出力端子ＯＤに直接出力される。
【００１７】
メモリコアＣＯＲＥは、メモリセルアレイＡＲＹ（記憶部）、ライトアンプＷＡおよびリードアンプＲＡを有している。メモリセルアレイＡＲＹは、マトリックス状に配置され、入力データ信号ＩＤを保持する複数のメモリセルＭＣを有している。例えば、メモリセルＭＣはラッチを有しており、メモリセルアレイＡＲＹはＳＲＡＭとして動作する。図示していないが、メモリセルアレイＡＲＹは、例えば、図の横方向に並ぶメモリセルＭＣの各列に接続されたワード線と、図の縦方向に並ぶメモリセルＭＣの各列に接続されたビット線とを有している。なお、メモリセルアレイＡＲＹの端（図の上側または下側）に、ビット線を介してメモリセルＭＣから読み出されるデータ信号を増幅するためのセンスアンプを形成してもよい。
【００１８】
メモリセルアレイＡＲＹは、読み出しコマンドに応答してタイミング制御部１４から出力される動作制御信号ＯＰＣＮＴにより動作を開始する。具体的には、メモリセルアレイＡＲＹは、動作制御信号ＯＰＣＮＴに応答してビット線のプリチャージを停止し、アドレス信号ＡＤＤにより選択されるワード線を活性化し、活性化されたワード線に接続されたメモリセルＭＣに保持されているデータをビット線に出力する。ビット線に出力されたデータ信号は、リードアンプＲＡに伝達される。メモリセルアレイＡＲＹは、動作制御信号ＯＰＣＮＴに応じて、クロック信号ＣＬＫに非同期で動作する。このため、読み出しコマンドからリードアンプＲＡが読み出しデータを出力するまでの動作は、クロック信号ＣＬＫに非同期で実施される。
【００１９】
ライトアンプＷＡは、入力データラッチ信号ＩＤＬＡＴに同期して内部入力データ信号ＤＩＮの論理レベルをラッチし、ラッチした信号をメモリセルＭＣに書き込む。リードアンプＲＡ（データ出力部）は、メモリセルＭＣから読み出される出力データ信号を増幅し、増幅した信号の論理レベルを出力データラッチ信号ＯＤＬＡＴに同期してラッチして保持し、保持している信号を出力データ信号ＤＯＵＴとして出力する。メモリセルアレイＡＲＹがセンスアンプを有するとき、センスアンプは、メモリセルＭＣからビット線に読み出されたデータ信号の電圧値を増幅し、リードアンプＲＡは、データ信号を負荷の大きい出力データ信号線ＤＯＵＴに出力するために、センスアンプからのデータ信号の信号量（駆動能力）を増幅する。
【００２０】
この実施形態では、例えば、フリップフロップＦ／ＦからデータセレクタＤＳＥＬまで出力データ信号ＴＤＯＵＴ（＝入力データ信号ＤＩＮ）を伝達する出力データ信号線ＴＤＯＵＴ（テスト信号線）の負荷は、リードアンプＲＡからデータセレクタＤＳＥＬまで出力データ信号ＤＯＵＴを伝達する出力データ信号線ＤＯＵＴ（通常信号線）の負荷と等しく設計されている。例えば、信号線ＴＤＯＵＴ、ＤＯＵＴは同じ構造を有しており、それらの配線長は互いに等しい。これにより、テスト出力データ信号ＴＤＯＵＴのデータセレクタＤＳＥＬへの到達タイミングを、出力データ信号ＤＯＵＴのデータセレクタＤＳＥＬへの到達タイミングと同じにできる。したがって、図５および図６に示すように、ユーザモード（通常動作モード）とロジックテストモードとで、メモリマクロＭＭのアクセス時間ＴＡ（動作タイミング）を等しくできる。すなわち、簡易なテストパターンで、メモリマクロＭＭを擬似的に動作できる。
【００２１】
図２は、図１に示したメモリマクロＭＭが搭載されるシステムＳＹＳの例を示している。例えば、システムＳＹＳは、システムオンチップＳＯＣ（システムＬＳＩ）として１つのチップ（半導体集積回路）内に形成される。システムＳＹＳは、ユーザロジック部ＵＬ１、ＵＬ２（ユーザブロック）、メモリマクロＭＭ、メモリテスト部ＭＴＳＴおよびテスト制御部ＴＣＮＴを有している。図２は、発明の最小構成を示している。ＳＯＣは、図２に示した以外に、ＣＰＵや、ＤＭＡＣ、メモリコントローラ等の他のハードマクロを有してもよい。
【００２２】
ユーザロジック部ＵＬ１、ＵＬ２は、ユーザが独自に設計する論理回路である。ユーザロジック部ＵＬ１、ＵＬ２は、デイジーチェーン接続された複数のスキャンレジスタ（Ｘを付けた四角印）を有している。スキャンレジスタは、フリップフロップを含む。フリップフロップは、スキャンパスＳＰ１に接続され、テストモード中にテスト制御部ＴＣＮＴから出力されるシリアルテストデータを順次に転送する。なお、フリップフロップは、ユーザにより設計されたユーザ回路を流用してもよく、ユーザロジック部ＵＬ１、ＵＬ２にテスト回路として挿入してもよい。
【００２３】
メモリテスト部ＭＴＳＴは、メモリマクロＭＭをテストするための制御回路（図３のＰＡＴＧ、ＣＨＫ）と、ユーザロジック部ＵＬ１、ＵＬ２をテストするためにデイジーチェーン接続された複数のスキャンレジスタ（Ｘを付けた四角印）を有している。スキャンレジスタのフリップフロップは、スキャンパスＳＰ２に接続され、テストモード中にテスト制御部ＴＣＮＴから出力されるシリアルテストデータを順次に転送する。なお、スキャンパスＳＰ１、ＳＰ２は、直列に接続されてもよい。
【００２４】
テスト制御部ＴＣＮＴは、ユーザロジック部ＵＬ１、ＵＬ２をテストするための制御回路を有する。例えば、テスト制御部ＴＣＮＴは、ユーザロジック部ＵＬ１、ＵＬ２をテストするためのロジックテストモード中に、図３に示す出力レジスタＲＥＧ４−ＲＥＧ６に保持された信号／ＷＥ、ＩＡ、ＩＤ等をスキャンパスＳＰ２を介して受け、受けた信号を期待値と比較することで、ユーザロジック部ＵＬ１の不良を検出する。また、テスト制御部ＴＣＮＴは、ロジックテストモード中に、テスト用の入力データ信号をスキャンパスＳＰ１を介して図３に示す入力レジスタＲＥＧ１−ＲＥＧ３に設定する。テスト制御部ＴＣＮＴは、ロジックテストモード中に、図３に示す出力レジスタＲＥＧ８に保持されたユーザ出力信号ＯＤ０をスキャンパスＳＰ１を介して受け、受けた信号を期待値と比較することで、ユーザロジック部ＵＬ２の不良を検出する。なお、テスト制御部ＴＣＮＴは、ロジックテストモード中に、図３に示すレジスタＲＥＧ７に保持されたデータ出力信号ＯＤをスキャンパスＳＰ２を介して受けることで、メモリマクロＭＭの不良を検出できる。
【００２５】
この例では、バイパスモード信号ＢＰは、ＳＯＣの外部から供給される。バイパスモード信号ＢＰは、ＳＯＣのテスト時のみ使用される。具体的には、バイパスモード信号ＢＰは、ＬＳＩテスタなどのテストシステムや、ＳＯＣとともにシステムＳＹＳに搭載される機能ブロック（マクロ）のテスト制御回路から出力される。ＳＯＣのテストは、ＳＯＣの製造工程で実施される。そして、良品を選別することで、ＳＯＣが製造される。なお、ＳＯＣのテストは、ＳＯＣがシステムＳＹＳに搭載された後にシステムＳＹＳ上で実施されてもよい。テストの完了後、バイパスモード端子ＢＰは、例えば、システム基板上で接地線に接続される。
【００２６】
図３は、図２に示したシステムＳＹＳの要部の詳細を示している。ユーザロジック部ＵＬ１は、スキャンパスＳＰ１に接続されたスキャンレジスタＲＥＧ１−ＲＥＧ３、セレクタＳ１−Ｓ３およびユーザロジック回路Ｌ１−Ｌ３（入力ユーザロジック回路）を有している。図では、レジスタＲＥＧ１−ＲＥＧ３とスキャンパスＳＰ１との接続を簡略化して記載しているが、実際には、レジスタＲＥＧ１−ＲＥＧ３は、メモリテスト部ＭＴＳＴのレジスタＲＥＧ４−ＲＥＧ６と同様に、スキャンパスＳＰ１を介して直列に接続されている。レジスタＲＥＧ１−ＲＥＧ３は、レジスタＲＥＧ４−ＲＥＧ６（図４）と同様に、スキャンマルチプレクサとフリップフロップとを有している。
【００２７】
レジスタＲＥＧ１−ＲＥＧ３（入力レジスタ）は、ユーザロジック回路Ｌ１−Ｌ３のテスト時にテスト入力信号（テストパターン）を保持するために使用される。具体的には、ロジックテストモード中、レジスタＲＥＧ１は、ユーザロジック回路Ｌ１を用いてライトイネーブル信号／ＷＥを生成するために制御信号ＷＥ０の論理を保持し、出力するテスト回路として動作する。レジスタＲＥＧ２は、ユーザロジック回路Ｌ２を用いてアドレス信号ＩＡを生成するために制御信号ＩＡ０の論理を保持し、出力するテスト回路として動作する。レジスタＲＥＧ３は、ユーザロジック回路Ｌ３を用いてデータ信号ＩＤを生成するために制御信号ＩＤ０の論理を保持し、出力するテスト回路として動作する。例えば、ユーザロジック回路Ｌ３は、ロジックテストモード中に、レジスタＲＥＧ３からのテスト入力信号（ＩＤ０）を受けて動作し、入力データ信号ＩＤを生成し、生成した入力データ信号ＩＤをセレクタＳ６を介して外部データ入力端子ＩＤに出力する。
【００２８】
なお、レジスタＲＥＧ１−ＲＥＧ３に保持している論理をユーザロジック回路Ｌ１−Ｌ３を介することなく、メモリマクロＭＭの外部入力端子に直接供給してもよい。このとき、レジスタＲＥＧ１−ＲＥＧ３に保持される信号値をメモリマクロＭＭに直接供給し、ユーザロジック回路Ｌ４をテストできる。セレクタＳ１−Ｓ３は、ロジックテストモード中にレジスタＲＥＧ１−ＲＥＧ３の出力を選択し、通常動作モード中に図示しない別の回路の出力を選択する。また、ユーザロジック回路Ｌ１−Ｌ３は、レジスタＲＥＧ１−３からの信号ＷＥ０、ＩＡ０、ＩＤ０以外の信号を受けてもよい。
【００２９】
メモリテスト部ＭＴＳＴ（ＢＩＳＴ回路）は、パターン生成回路ＰＡＴＧ、セレクタＳ４−Ｓ７、スキャンレジスタＲＥＧ４−ＲＥＧ７およびチェック回路ＣＨＫを有している。パターン生成回路ＰＡＴＧは、メモリマクロＭＭをテストするためのテストパターンを生成する。具体的には、パターン生成回路ＰＡＴＧは、マクロテストモード中に、ライトイネーブル信号／ＷＥ、アドレス信号ＩＡおよび書き込みデータ信号ＩＤをテストパターンとして生成する。
【００３０】
セレクタＳ４−Ｓ７は、通常動作モード中またはロジックテストモード中に、ユーザロジック部ＵＬ１からの信号をメモリマクロＭＭに供給する。セレクタＳ１−Ｓ４は、メモリマクロＭＭをテストするためのマクロテストモード中に、パターン生成回路ＰＡＴＧからのテストパターンをメモリマクロＭＭに供給する。
【００３１】
レジスタＲＥＧ４−ＲＥＧ７は、スキャンパスＳＰ２に接続されている。レジスタＲＥＧ４−ＲＥＧ６は、ロジックテストモード中に、ユーザロジック部ＵＬ１およびユーザロジック回路Ｌ１に接続された信号線の不良を検出するためにユーザロジック部ＵＬ１からの出力信号を保持する。レジスタＲＥＧ７は、ロジックテストモード中に、ユーザロジック部ＵＬ２に供給する入力テストパターンを保持し、マクロテストモード中に、メモリマクロＭＭからの読み出しデータ信号を保持する。レジスタＲＥＧ４−ＲＥＧ７に保持された情報は、スキャンパスＳＰ２を介してテスト制御部ＴＣＮＴに転送され、期待値と比較される。また、レジスタＲＥＧ７に設定される入力テストパターンは、スキャンパスＳＰ２を介してテスト制御部ＴＣＮＴから転送される。
【００３２】
なお、ユーザロジック回路Ｌ１からメモリマクロＭＭまでの信号線の長さと、ユーザロジック回路Ｌ１からレジスタＲＥＧ４までの信号線の長さは互いに等しく設計されている。ユーザロジック回路Ｌ２からメモリマクロＭＭまでの信号線の長さと、ユーザロジック回路Ｌ２からレジスタＲＥＧ５までの信号線の長さは互いに等しく設計されている。同様に、ユーザロジック回路Ｌ３からメモリマクロＭＭまでの信号線の長さと、ユーザロジック回路Ｌ３からレジスタＲＥＧ６までの信号線の長さは互いに等しく設計されている。これにより、レジスタＲＥＧ４−ＲＥＧ６は、ユーザロジック回路Ｌ１−Ｌ３から出力される信号を、メモリマクロＭＭの受信タイミングと同じタイミングで受信できる。
【００３３】
チェック回路ＣＨＫは、マクロテストモード中に、メモリマクロＭＭの不良を検出するために、レジスタＲＥＧ７に保持されたメモリマクロＭＭからの読み出しデータＯＤを期待値と比較する。比較結果は、専用の端子を介してシステムＳＹＳの外部に通知され、あるいは、テスト制御部ＴＣＮＴを介してシステムＳＹＳの外部に通知される。
【００３４】
ユーザロジック部ＵＬ２は、ユーザロジック回路Ｌ４（出力ユーザロジック回路）と、スキャンパスＳＰ１に接続されたスキャンレジスタＲＥＧ８（出力レジスタ）とを有している。ユーザロジック回路Ｌ４は、メモリマクロＭＭの外部データ出力端子ＯＤから出力される出力データ信号ＯＤを受けて動作し、ユーザ出力信号ＯＤ０を生成する。なお、ユーザロジック回路Ｌ４は、出力データ信号ＯＤ以外の信号を受けてもよい。レジスタＲＥＧ８は、ロジックテストモード中に、ユーザロジック部ＵＬ２およびユーザロジック回路Ｌ２に接続された信号線の不良を検出するためにユーザロジック部ＵＬ２からのユーザ出力信号ＯＤ０を保持する。レジスタＲＥＧ８に保持された情報は、スキャンパスＳＰ１を介してテスト制御部ＴＣＮＴに転送され、期待値と比較される。
【００３５】
なお、以降の説明では、各ユーザロジック回路Ｌ１−Ｌ３の伝搬遅延時間をＩＰＡＴＨと称し、メモリマクロＭＭのアクセス時間をＭＰＡＴＨと称し、ユーザロジック回路Ｌ４の伝搬遅延時間をＯＰＡＴＨと称する。実際には、ユーザロジック回路Ｌ１−Ｌ３の伝搬遅延時間は互いに異なるが、ここでは、互いに等しいとして説明する。ＩＰＡＴＨは、レジスタＲＥＧ１−ＲＥＧ３の出力からメモリマクロＭＭの入力までの信号の伝搬遅延時間にほぼ等しい。ＯＰＡＴＨは、メモリマクロＭＭの出力からレジスタＲＥＧ８の入力までの信号の伝搬遅延時間にほぼ等しい。
【００３６】
図４は、図３に示したレジスタＲＥＧ４−ＲＥＧ６の詳細を示している。各レジスタＲＥＧ（ＲＥＧ４−６）は、スキャンマルチプレクサＳＭ（ＳＭ４−６）と、フリップフロップＦ／Ｆ（Ｆ／Ｆ４−Ｆ／Ｆ６）とを有している。スキャンマルチプレクサＳＭは、フリップフロップＦ／Ｆ４−６に保持された情報を、スキャンパスＳＰ２を介してテスト制御部ＴＣＮＴに転送するときに、スキャンパスＳＰ２を選択し、それ以外では、図３に示したセレクタＳ１−Ｓ３の出力を選択する。フリップフロップＦ／Ｆは、スキャンマルチプレクサＳＭからの出力信号の論理レベルをクロック信号ＣＫの立ち上がりエッジに同期してラッチし、ラッチした信号を出力する。
【００３７】
図５は、図１に示したメモリマクロＭＭの通常動作モードでの動作を示している。通常動作モードでは、システムＳＹＳの機能を実現するためにメモリマクロＭＭがアクセスされる。通常動作モード中、バイパスモード信号ＢＰは、低レベルＬに固定される。
【００３８】
この例では、書き込みコマンドＷＲ１および読み出しコマンドＲＤ１、ＲＤ２が順次にメモリマクロＭＭに供給される。コマンドデコーダ１２は、クロック信号ＣＫの立ち上がりエッジでライトイネーブル信号／ＷＥが低レベルのときに書き込みコマンドＷＲ１を認識し、クロック信号ＣＫの立ち上がりエッジでライトイネーブル信号／ＷＥが高レベルのときに読み出しコマンドＲＤ１またはＲＤ２を認識する。コマンドデコーダ１２は、書き込みコマンドまたは読み出しコマンドを受ける毎にアクティブ信号ＡＣＴＰ（パルス信号）を出力する（図５（ａ、ｂ、ｃ））。
【００３９】
書き込みコマンドＷＲ１とともに、アドレス信号Ａ１および書き込みデータＤ１がメモリマクロＭＭに供給される（図５（ｄ））。データ入力バッファ１６は、書き込みデータＤ１を内部入力データ信号ＤＩＮとしてライトアンプＷＡに出力する（図５（ｅ））。タイミング生成部１４は、アクティブ信号ＡＣＴＰに同期して入力データラッチ信号ＩＤＬＡＴ（パルス信号）を出力する（図５（ｆ））。ライトアンプＷＡは、入力データラッチ信号ＩＤＬＡＴに同期してデータ信号ＤＩＮを受け、メモリセルにデータを書き込む。
【００４０】
次に、読み出しコマンドＲＤ１とともにアドレス信号Ａ１がメモリマクロＭＭに供給される（図５（ｇ））。このとき、データ入力バッファ１６は、不定のデータ信号ＤＸを出力する（図５（ｈ））。アドレス信号Ａ１は、書き込みコマンドＷＲ１とともに供給された値と同じである。タイミング生成部１４は、アクティブ信号ＡＣＴＰに同期して出力データラッチ信号ＯＤＬＡＴ（パルス信号）を出力する（図５（ｉ））。リードアンプＲＡは、出力データラッチ信号ＯＤＬＡＴに同期してメモリセルＭＣからのデータ信号Ｄ１の論理レベルをラッチし、出力データ信号ＤＯＵＴとして出力する（図５（ｊ））。
【００４１】
図１に示したフリップフロップＦ／Ｆは、出力データラッチ信号ＯＤＬＡＴに同期して不定のデータ信号ＤＸの論理レベルをラッチし、テスト出力データ信号ＴＤＯＵＴとして出力する（図５（ｋ））。バイパスモード信号ＢＰが低レベルのため、データセレクタＤＳＥＬは、メモリコアＣＯＲＥからの読み出しデータＤ１をデータ出力端子ＯＤに出力する（図５（ｌ））。読み出しコマンドＲＤ１から読み出しデータＤ１が出力されるまでの読み出しアクセス時間はＴＡである。この後、読み出しコマンドＲＤ２とともにアドレス信号Ａ２がメモリマクロＭＭに供給され、次の読み出し動作が実行される。
【００４２】
図６は、ユーザロジック回路Ｌ４をテストするためのロジックテストモードでのメモリマクロＭＭの動作を示している。この例においても、図５と同様に、書き込みコマンドＷＲ１および読み出しコマンドＲＤ１、ＲＤ２が順次にメモリマクロＭＭに供給される。但し、アドレス信号ＩＡは高レベルＨまたは低レベルＬのどちらでもよい（図６（ａ））。なお、上述したように、ロジックテストモード中、コマンドＷＲ１、ＲＤ１、ＲＤ２は、レジスタＲＥＧ１−ＲＥＧ３に設定された値に基づいて、ユーザロジック回路Ｌ１−Ｌ３を介して供給される。
【００４３】
データ信号ＩＤは、書き込みコマンドＷＲ１に同期して供給されない。このため、書き込みコマンドＷＲ１に同期して不定の書き込みデータ信号ＩＤがメモリマクロＭＭに書き込まれる（図６（ｂ））。なお、書き込みコマンドＷＲ１は、メモリマクロＭＭに供給しなくてもよい。すなわち、読み出しコマンドＲＤ１を最初にメモリマクロＭＭに供給してもよい。あるいは、書き込みコマンドＷＲ１に同期してアドレス信号ＩＡおよびデータ信号ＩＤをメモリマクロＭＭに供給し、所定のメモリセルＭＣにデータを書いてもよい。
【００４４】
次に、データ信号ＩＤが、読み出しコマンドＲＤ１に同期してメモリマクロＭＭに供給される（図６（ｃ））。メモリセルアレイＡＲＹは、読み出しコマンドＲＤ１に応答して読み出し動作を実行する。リードアンプＲＡは、出力データラッチ信号ＯＤＬＡＴに同期して出力データ信号ＤＯＵＴを出力する（図６（ｄ））。但し、アドレス信号ＩＡが読み出しコマンドＲＤ１に同期して供給されないため、出力データ信号ＤＯＵＴは不定な値ＤＸである。図１に示したフリップフロップＦ／Ｆは、出力データラッチ信号ＯＤＬＡＴに同期してデータ入力バッファ１６からのデータ信号Ｄ１の論理レベルをラッチし、テスト出力データ信号ＴＤＯＵＴとして出力する（図６（ｅ））。テスト出力データ信号ＴＤＯＵＴの出力タイミングは、図５で述べたリードアンプＲＡからの出力データ信号の出力タイミングと同じである。
【００４５】
バイパスモード信号ＢＰが高レベルのため、データセレクタＤＳＥＬは、テスト出力データ信号ＴＤＯＵＴ（Ｄ１）をデータ出力端子ＯＤに出力する（図６（ｆ））。すなわち、リードアンプＲＡからの出力データ信号ＤＯＵＴは、データセレクタＤＳＥＬによりマスクされる。
【００４６】
出力データ信号線ＤＯＵＴとテスト出力データ信号線ＴＤＯＵＴとが同じ長さのため、読み出しコマンドＲＤ１から読み出しデータＤ１が出力されるまでの読み出しアクセス時間は、図５と同じＴＡである。すなわち、ロジックテストモードにおいてバイパスモード信号ＢＰが高レベルのとき、通常動作モードと同じ遅延時間でメモリマクロＭＭから読み出しデータ信号Ｄ１が出力される。このため、複雑なテストパターンを用いることなく、通常動作モードと同じタイミングでテストパターンをユーザロジック部ＵＬ２に供給できる。
【００４７】
図７は、図３に示したシステムＳＹＳの通常動作モードでの動作を示している。図中の四角枠で囲んだ書き込みコマンドＷＲ１および読み出しコマンドＲＤ１は、ユーザロジック回路Ｌ１が、書き込みコマンドＷＲ１または読み出しコマンドＲＤ１の元になる制御信号ＷＥ０を受けるタイミングを示している。この例では、書き込みコマンドＷＲ１および読み出しコマンドＲＤ１が順次にメモリマクロＭＭに供給される（図７（ａ、ｂ））。書き込みコマンドＷＲ１および読み出しコマンドＲＤ１に応答するメモリマクロＭＭの動作は、図５と同じである。
【００４８】
まず、ユーザロジック回路Ｌ１は、１番目のクロック信号ＣＫの立ち上がりエッジに同期して制御信号ＷＥ０を受け（図７（ｃ））、ユーザロジック回路Ｌ１の論理に応じた遅延時間ＩＰＡＴＨ後にライトイネーブル信号／ＷＥを低レベルに変化する（図７（ｄ））。同様に、ユーザロジック回路Ｌ３は、１番目のクロック信号ＣＫの立ち上がりエッジに同期して制御信号ＩＤ０を受け（図７（ｅ））、ユーザロジック回路Ｌ３の論理に応じた遅延時間ＩＰＡＴＨ後に入力データ信号ＩＤを高レベルに変化する（図７（ｆ））。
【００４９】
遅延時間ＩＰＡＴＨは、クロック信号ＣＫの１周期より短く設計されている。このため、ライトイネーブル信号／ＷＥおよび入力データ信号ＩＤは、２番目のクロック信号ＣＫの立ち上がりエッジに対して、セットアップ時間ＴＳ１の余裕を持ってメモリマクロＭＭに供給される（図７（ｇ））。そして、メモリマクロＭＭの書き込み動作が実行される。
【００５０】
次に、ユーザロジック回路Ｌ１は、２番目のクロック信号ＣＫの立ち上がりエッジに同期して制御信号ＷＥ０を受け（図７（ｈ））、ユーザロジック回路Ｌ１の論理に応じてライトイネーブル信号／ＷＥを高レベルに変化する（図７（ｉ））。高レベルのライトイネーブル信号／ＷＥは、３番目のクロック信号ＣＫの立ち上がりエッジに対して、セットアップ時間ＴＳ１の余裕を持ってメモリマクロＭＭに供給される（図７（ｊ））。そして、メモリマクロＭＭの読み出し動作が実行される。
【００５１】
メモリマクロＭＭは、アクセス時間ＴＡ後に、出力データ信号ＯＤを出力する（図７（ｋ））。ユーザロジック回路Ｌ４は、出力データ信号ＯＤを受け、ユーザロジック回路Ｌ４の論理に応じた遅延時間ＯＰＡＴＨ後に制御信号ＯＤ０を出力する（図７（ｌ））。アクセス時間ＴＡと遅延時間ＯＰＡＴＨの和は、クロック信号ＣＫの１周期より短く設計されている。このため、制御信号ＯＤ０は、４番目のクロック信号ＣＫの立ち上がりエッジに対して、セットアップ時間ＴＳ２の余裕を持ってユーザロジック回路Ｌ４から次のユーザロジック回路に出力される。そして、ユーザロジック回路Ｌ４の出力に接続された図示しないユーザロジック回路は、４番目のクロック信号ＣＫの立ち上がりエッジに同期して制御信号ＯＤ０を受けて動作する。
【００５２】
図８は、図３に示したユーザロジック部ＵＬ１をテストするときの動作の概要を示している。テストは、ロジックテストモード中に実施される。ロジックテストモードでは、スキャンパスＳＰ１を用いてレジスタＲＥＧ１、ＲＥＧ３がセットされ、セレクタＳ１、Ｓ３は、レジスタＲＥＧ１、ＲＥＧ３の出力を選択する。ユーザロジック部ＵＬ１のテストでは、メモリマクロＭＭはアクセスされないため、バイパスモード信号ＢＰは、高レベルＨまたは低レベルＬでよい。
【００５３】
テストが開始されると、ユーザロジック回路Ｌ１は、１番目のクロック信号ＣＫの立ち上がりエッジに同期してレジスタＲＥＧ１からの制御信号ＷＥ０を受け（図８（ａ））、ユーザロジック回路Ｌ１の論理に応じた遅延時間ＩＰＡＴＨ後にライトイネーブル信号／ＷＥを、例えば低レベルに変化する（図８（ｂ））。同様に、ユーザロジック回路Ｌ３は、１番目のクロック信号ＣＫの立ち上がりエッジに同期して制御信号ＩＤ０を受け（図８（ｃ））、ユーザロジック回路Ｌ３の論理に応じた遅延時間ＩＰＡＴＨ後に入力データ信号ＩＤを、例えば高レベルに変化する（図８（ｄ））。
【００５４】
ユーザロジック部ＵＬ１が正常に動作するとき、ライトイネーブル信号／ＷＥおよび入力データ信号ＩＤは、２番目のクロック信号ＣＫの立ち上がりエッジに対して、セットアップ時間ＴＳ１の余裕を持ってレジスタＲＥＧ４、ＲＥＧ６に供給される。ライトイネーブル信号／ＷＥおよび入力データ信号ＩＤの論理レベルは、２番目のクロック信号ＣＫの立ち上がりエッジに同期してレジスタＲＥＧ４、ＲＥＧ６にそれぞれラッチされる（図８（ｅ、ｆ））。レジスタＲＥＧ４、ＲＥＧ６にラッチされるタイミングは、ライトイネーブル信号／ＷＥおよび入力データ信号ＩＤがメモリマクロＭＭのコマンドデコーダ１２およびデータ入力バッファ１６にラッチされるタイミングと同じである。この後、レジスタＲＥＧ４、ＲＥＧ６に保持されている情報は、スキャンパスＳＰ２を用いてテスト制御部ＴＣＮＴにより読み出され、期待値と比較される。
【００５５】
上述したように、ユーザロジック回路Ｌ１からメモリマクロＭＭまでの信号線の長さと、ユーザロジック回路Ｌ１からレジスタＲＥＧ４までの信号線の長さは互いに等しく設計されている。同様に、ユーザロジック回路Ｌ３からメモリマクロＭＭまでの信号線の長さと、ユーザロジック回路Ｌ３からレジスタＲＥＧ６までの信号線の長さは互いに等しく設計されている。したがって、図８に示したテストにより、ユーザロジック部ＵＬ１からの出力信号が正常なタイミングでメモリマクロＭＭに供給されるか否かをテストできる。すなわち、ユーザロジック部ＵＬ１の動作タイミングを評価できる。あるいは、ユーザロジック部ＵＬ１のスタック故障を検出できる。
【００５６】
なお、入力アドレス信号ＩＡを出力するユーザロジック回路Ｌ２のテストも、ユーザロジック回路Ｌ１、Ｌ３と同様に実施できる。また、ユーザロジック回路Ｌ１のテスト時に、ライトイネーブル信号／ＷＥを高レベルに変化させてもよい。ユーザロジック回路Ｌ２のテスト時に、入力データ信号ＩＤを低レベルに変化させてもよい。
【００５７】
図９は、図３に示したユーザロジック部ＵＬ２をテストするときの動作の概要を示している。テストは、ロジックテストモード中に実施される。このロジックテストモードでは、ユーザロジック部ＵＬ１を用いてメモリマクロＭＭにテスト信号が供給され、メモリマクロＭＭから出力される出力データ信号ＯＤがユーザロジック部ＵＬ２に供給される。バイパスモード信号ＢＰは、高レベルＨに設定される。
【００５８】
まず、スキャンパスＳＰ１を用いてレジスタＲＥＧ１、ＲＥＧ３がセットされる。セレクタＳ１、Ｓ３は、レジスタＲＥＧ１、ＲＥＧ３の出力をそれぞれ選択する。ユーザロジック回路Ｌ１は、１番目のクロック信号ＣＫの立ち上がりエッジに同期してレジスタＲＥＧ１からの制御信号ＷＥ０を受け（図９（ａ））、遅延時間ＩＰＡＴＨ後にライトイネーブル信号／ＷＥを、例えば高レベルに変化する（図９（ｂ））。同様に、ユーザロジック回路Ｌ３は、１番目のクロック信号ＣＫの立ち上がりエッジに同期して制御信号ＩＤ０を受け（図９（ｃ））、遅延時間ＩＰＡＴＨ後に入力データ信号ＩＤを、例えば高レベルに変化する（図９（ｄ））。
【００５９】
メモリマクロＭＭは、２番目のクロック信号ＣＫの立ち上がりエッジに同期して高レベルのライトイネーブル信号／ＷＥおよび高レベルの入力データ信号ＩＤを受ける（図９（ｅ、ｆ））。すなわち、読み出しコマンドＲＤ１が、入力データ信号ＩＤとともにメモリマクロＭＭに供給される。バイパスモード信号ＢＰが高レベルのため、図６に示したように、読み出しアクセス時間ＴＡ後に、読み出しコマンドＲＤ１とともに受けた入力データ信号ＩＤが出力データ信号ＯＤとして出力される（図９（ｇ））。
【００６０】
出力データ信号ＯＤは、ユーザロジック回路Ｌ４（出力ユーザロジック回路）に供給され、ユーザロジック回路Ｌ４の論理に応じた遅延時間ＯＰＡＴＨ後にユーザロジック回路Ｌ４から制御信号ＯＤ０が出力される（図９（ｈ））。ユーザロジック回路Ｌ４が正常に動作するとき、制御信号ＯＤ０は、３番目のクロック信号ＣＫの立ち上がりエッジに対して、セットアップ時間ＴＳ２の余裕を持ってレジスタＲＥＧ８に供給される。
【００６１】
レジスタＲＥＧ８は、３番目のクロック信号ＣＫの立ち上がりエッジに同期して制御信号ＯＤ０の論理レベルをラッチする。この後、スキャンパスＳＰ１を用いてレジスタＲＥＧ８に保持されている情報は、テスト制御部ＴＣＮＴにより読み出され、期待値と比較される。そして、レジスタＲＥＧ８から読み出された情報が期待値と異なるとき、ユーザロジック回路Ｌ４の不良（スタック故障あるいはタイミングマージン不良）が検出される。
【００６２】
このように、本実施形態では、簡易なテストパターンと簡易なテスト回路（図１に示したＦ／ＦおよびＤＳＥＬ）を用いて、メモリマクロＭＭの動作タイミングを含めたユーザロジック回路Ｌ４のトランジションディレイテストを実施できる。さらに、テストパターンが簡易なため、ロジック回路の故障検出テストに一般的に使用されるＡＴＰＧ（Ａｕｔｏｍａｔｉｃ  Ｔｅｓｔ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｉｏｎ）手法を用いてテストパターンを生成できる。この結果、テストコストを削減できる。
【００６３】
図１０は、図１に示したメモリマクロＭＭの動作テストの概要を示している。メモリマクロＭＭの動作テストは、パターン生成回路ＰＡＴＧおよびチェック回路ＣＨＫを用いてマクロテストモード中に実施される。
【００６４】
パターン生成回路ＰＡＴＧは、例えば、１番目のクロック信号ＣＫの立ち下がりエッジに同期して、例えば、低レベルのライトイネーブル信号ＷＥ０（書き込みコマンドＷＲ１）、書き込みアドレス信号ＩＡ０（Ａ１）および書き込みデータ信号ＩＤ０（Ｄ１）を出力する（図１０（ａ、ｂ、ｃ））。信号ＷＥ０、ＩＡ０およびＩＤ０は、セレクタＳ４−Ｓ６を介してライトイネーブル信号／ＷＥ、アドレス信号ＩＤ（Ａ１）および入力データ信号ＩＤ（Ｄ１）としてメモリマクロＭＭに供給される（図１０（ｄ、ｅ、ｆ））。
【００６５】
パターン生成回路ＰＡＴＧとメモリマクロＭＭとの間には、論理回路等の遅延素子がないため、ライトイネーブル信号／ＷＥは、１番目のクロック信号ＣＫの立ち上がりエッジに対して十分なセットアップ時間ＴＳ３を有する。メモリマクロＭＭは、２番目のクロック信号ＣＫの立ち上がりエッジに同期して低レベルのライトイネーブル信号／ＷＥを受け、書き込み動作を実行する（図１０（ｇ））。
【００６６】
次に、パターン生成回路ＰＡＴＧは、例えば、２番目のクロック信号ＣＫの立ち下がりエッジに同期して、例えば、高レベルのライトイネーブル信号ＷＥ０（読み出しコマンドＲＤ１）および読み出しアドレス信号ＩＡ０（Ａ１）を出力する（図１０（ｈ、ｉ））。メモリマクロＭＭは、３番目のクロック信号ＣＫの立ち上がりエッジに同期して高レベルのライトイネーブル信号／ＷＥを受け、読み出し動作を実行する（図１０（ｊ））。そして、アクセス時間ＴＡ後に出力データ信号ＯＤ（読み出しデータ）を出力する（図１０（ｋ））。
【００６７】
レジスタＲＥＧ７は、３番目のクロック信号ＣＫの立ち上がりエッジに同期して出力データ信号ＯＤをラッチする（図１０（ｌ））。メモリマクロＭＭとレジスタＲＥＧ７との間には、論理回路等の遅延素子がないため、出力データ信号ＯＤは、３番目のクロック信号ＣＫの立ち上がりエッジに対して十分なセットアップ時間ＴＳ４を有する。レジスタＲＥＧ７にラッチされた信号は、チェック回路ＣＨＫに供給される。すなわち、スキャンパスＳＰ１、ＳＰ２は使用されない。そして、チェック回路ＣＨＫは、出力データ信号ＯＤの論理レベルを期待値と比較し、メモリマクロＭＭが不良か否かを検出する。このように、メモリマクロＭＭの動作テストは、ユーザロジック回路Ｌ１−Ｌ４を用いることなく、専用のテスト回路（ＰＡＴＧおよびＣＨＫ）を用いて実施されるため、テスト時間を短くできる。
【００６８】
図１１は、図１が提案される前のメモリマクロＭＭを示している。図１１のメモリマクロＭＭは公知でない。図１１では、図１のメモリマクロＭＭからフリップフロップＦ／Ｆ、データセレクタＤＳＥＬおよびバイパスモード端子ＢＰを削除している。その他の構成は、図１と同じである。システムＳＹＳの構成は、図２および図３と同じである。
【００６９】
図１２は、図１１に示したメモリマクロＭＭを有するシステムにおいて、ユーザロジック部ＵＬ２をテストするときの動作の概要を示している。テストは、ロジックテストモード中に実施される。ロジックテストモードでは、スキャンパスＳＰ２を用いてレジスタＲＥＧ７がセットされ、セレクタＳ４は、レジスタＲＥＧ７の出力を選択する。このテストでは、メモリマクロＭＭはアクセスされないため、バイパスモード信号ＢＰは、高レベルＨまたは低レベルＬでよい。
【００７０】
ユーザロジック回路Ｌ４は、１番目のクロック信号ＣＫの立ち上がりエッジに同期してレジスタＲＥＧ７からの制御信号ＤＭＹを受け（図１２（ａ））、ユーザロジック回路Ｌ４の論理に応じた遅延時間ＯＰＡＴＨ後に制御信号ＯＤ０を、例えば高レベルに変化する（図１２（ｂ））。図１１に示した例では、１番目のクロック信号ＣＫのクロックサイクル中に、メモリマクロＭＭのアクセス時間ＴＡが含まれない。このため、レジスタＲＥＧ８は、２番目のクロック信号ＣＫの立ち上がりエッジに対して、セットアップ時間ＴＳ５を持って制御信号ＯＤ０をラッチする。セットアップ時間ＴＳ３は、図９に示したセットアップ時間ＴＳ２に比べて大幅に余裕がある。この結果、ユーザロジック回路Ｌ４のスタック故障は検出できるが、ロジック回路Ｌ４の動作タイミングは評価できない。
【００７１】
以上、この実施形態では、テストモード中に、メモリマクロＭＭのデータ入力端子ＩＤで受けた入力データ信号ＩＤを、実際のメモリセルアレイＡＲＹの動作タイミングに合わせて、出力データ信号ＯＤとしてデータ出力端子データＯＤに出力できる。少ない入力信号と簡易なテスト回路（Ｆ／ＦおよびＤＳＥＬ）を用いてメモリマクロＭＭを擬似的に動作でき、メモリセルＭＣにデータを書き込むことなく出力データ信号ＯＤを生成できる。
【００７２】
したがって、出力データ信号ＯＤを受けて動作するユーザロジック回路Ｌ４のテストを簡易なテストパターンを用いて実施できる。換言すれば、メモリマクロＭＭの動作タイミングを含めたユーザロジック回路Ｌ４のタイミングテストを、簡易なテストパターンを用いて実施できる。この結果、テストコストを削減できる。クロック信号ＣＫに非同期で動作するメモリセルアレイＡＲＹの動作タイミングを、簡易なテスト回路（Ｆ／ＦおよびＤＳＥＬ）により実現できる。
【００７３】
メモリマクロＭＭに供給する入力データ信号ＩＤをスキャンパスＳＰ１を介してレジスタＲＥＧ３に保持し、ユーザロジック回路Ｌ４から出力されレジスタＲＥＧ８に保持されるユーザ出力信号ＯＤ０をスキャンパスＳＰ１を介してテスト制御部ＴＣＮＴに転送することで、メモリマクロＭＭの動作タイミングを含めたユーザロジック回路Ｌ４のタイミングテストを簡易に実施でき、テストコストを削減できる。特に、レジスタＲＥＧ３とメモリマクロＭＭの間にユーザロジック回路Ｌ３が挿入されるときにも、メモリマクロＭＭの動作タイミングを含めたユーザロジック回路Ｌ４の動作テストを、簡易なテストパターンを用いて実施できる。
【００７４】
図１３は、別の実施形態におけるメモリマクロＭＭの例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。メモリマクロＭＭを除く構成は、上述した実施形態と同じである。すなわち、メモリマクロＭＭは、図２および図３に示したシステムＳＹＳに搭載される。
【００７５】
メモリマクロＭＭは、図１に示したタイミング生成部１４の代わりにタイミング生成部１４Ａを有している。また、リードアンプＲＡとデータセレクタＤＳＥＬの間にデータ出力バッファ１８Ａ（データ出力部）が配置されている。メモリマクロＭＭのその他の構成は、図１と同じである。
【００７６】
テスト出力データ信号線ＴＤＯＵＴの負荷は、データ出力バッファ１８Ａの出力に接続された出力データ信号線ＤＯＵＴ１の負荷と等しく設計されている。例えば、信号線ＴＤＯＵＴ、ＤＯＵＴ１は同じ構造を有しており、それらの配線長は互いに等しい。これにより、フリップフロップＦ／Ｆからのテスト出力データ信号ＴＤＯＵＴの出力タイミングを、データ出力バッファ１８Ａからの出力データ信号ＤＯＵＴ１の出力タイミングと同じにできる。したがって、上述した実施形態と同様に、通常動作モードとロジックテストモードとで、メモリマクロＭＭのアクセス時間ＴＡを等しくでき、簡易なテストパターンで、メモリマクロＭＭを擬似的に動作できる。
【００７７】
一般に、データ出力バッファ１８Ａからデータ出力端子ＯＤに配線される信号線（ＤＯＵＴ１）の長さは、リードアンプＲＡからデータ出力バッファ１８Ａに配線される出力データ信号線ＤＯＵＴの長さより短い。また、データ出力端子ＯＤが複数ビットを有するときに、各信号線（ＤＯＵＴ１）の長さのばらつきは、各出力データ信号線ＤＯＵＴの長さのばらつきより小さい。これは、メモリセルアレイＡＲＹおよびリードアンプＲＡの図の横方向の長さが長いためである。したがって、この実施形態では、テスト出力データ信号線ＴＤＯＵＴの長さを、図１に比べて短くできる。この結果、テスト出力データ信号線ＴＤＯＵＴの配線領域を少なくでき、メモリマクロＭＭのサイズを小さくできる。また、各出力データ信号線ＤＯＵＴに対するテスト出力データ信号線ＴＤＯＵＴの負荷のばらつきを最小限にできるため、テスト出力データ信号線ＴＤＯＵＴが複数ビットを有するときに、バイパスモード信号ＢＰが高レベルに設定されるロジックテストモードにおいて、読み出しアクセス時間ＴＡを、通常動作モード中の読み出しアクセス時間ＴＡに高い精度で合わせることができる。
【００７８】
タイミング生成部１４Ａは、図１に示したタイミング生成部１４に出力データイネーブル端子ＯＤＥＮを出力する機能を加えている。遅延回路ＥＮＤＤＬＹは、ライトイネーブル信号／ＷＥが高レベルのときに、アクティブ信号ＡＣＴＰの立ち上がりエッジから所定時間後に、出力データイネーブル端子ＯＤＥＮを高レベルに変化する。遅延回路ＥＮＤＬＹの遅延時間は、遅延回路ＯＤＬＹの遅延時間よりわずかに長い。また、遅延回路ＥＮＤＬＹは、出力データイネーブル端子ＯＤＥＮの高レベル期間を所定の期間（約１クロックサイクル）保持する。
【００７９】
データ出力バッファ１８Ａは、出力データイネーブル信号ＯＤＥＮの高レベル中にリードアンプＲＡからの出力データ信号ＤＯＵＴを出力データ信号ＤＯＵＴ１として出力する。この実施形態では、フリップフロップＦ／Ｆは、出力データラッチ信号ＯＤＬＡＴではなく、出力データイネーブル端子ＯＤＥＮの出力に同期して入力データ信号ＤＩＮの論理レベルをラッチし、テスト出力データ信号ＴＤＯＵＴとして出力する。
【００８０】
図１４は、図１３に示したメモリマクロＭＭにおいて、ユーザロジック回路Ｌ４をテストするためのロジックテストモードでのメモリマクロＭＭの動作を示している。この実施形態では、テスト出力データ信号ＴＤＯＵＴおよび出力データ信号ＯＤは、出力データイネーブル信号ＯＤＥＮの立ち上がりエッジに同期して出力される。その他の動作は、図６と同じである。図１３に示した出力データ信号線ＤＯＵＴ１とテスト出力データ信号線ＴＤＯＵＴとが同じ長さのため、読み出しコマンドＲＤ１から読み出しデータＤ１が出力されるまでの読み出しアクセス時間は、図５および図６と同じＴＡである。
【００８１】
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。さらに、この実施形態では、テスト出力データ信号線ＴＤＯＵＴの配線領域を少なくでき、メモリマクロＭＭのサイズを小さくできる。また、テスト出力データ信号線ＴＤＯＵＴが複数ビットを有するときに、バイパスモード信号ＢＰが高レベルに設定されるテストモードにおいて、読み出しアクセス時間ＴＡを、通常動作モード中の読み出しアクセス時間ＴＡに高い精度で合わせることができる。この結果、メモリマクロＭＭの実際の動作と同じタイミングマージンを用いて、ユーザロジック回路Ｌ４のテストを実施できる。
【００８２】
図１５は、別の実施形態におけるシステムＳＹＳの要部の詳細を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、システムＳＹＳは、図３に示したレジスタＲＥＧ４−ＲＥＧ６の代わりにレジスタＲＥＧ１１−ＲＥＧ１３を有している。レジスタＲＥＧ１１−ＲＥＧ１３は、メモリマクロＭＭ内に形成されている。レジスタＲＥＧ１１−ＲＥＧ１３の構造は、レジスタＲＥＧ４−ＲＥＧ６（図４）と同じである。システムＳＹＳのその他の構成は、メモリマクロＭＭにスキャンパスＳＰ２用の外部端子が形成されることを除き、図２および図３と同じである。
【００８３】
図１６は、図１５に示したメモリマクロＭＭの詳細を示している。メモリマクロＭＭは、図１に示したコマンドデコーダ１２の代わりにコマンドデコーダ１２Ｂを有している。また、レジスタＲＥＧ１３がデータ入力バッファの機能を有するため、図１のデータ入力バッファ１６は削除されている。その他の構成は、レジスタＲＥＧ１１−ＲＥＧ１３が形成されることを除き、図１と同じである。なお、メモリマクロＭＭの主要部の構成は、図１でなく、図１３でもよい。すなわち、データ出力バッファ１８Ａを設けてもよい。
【００８４】
各レジスタＲＥＧ（ＲＥＧ１１−１３）は、スキャンマルチプレクサＳＭ（ＳＭ１１−１３）と、フリップフロップＦ／Ｆ（Ｆ／Ｆ１１−１３）を有している。レジスタＲＥＧ１１−ＲＥＧ１３の動作は、図４で説明したレジスタＲＥＧ４−ＲＥＧ６の動作と同じである。レジスタＲＥＧ１３のフリップフロップＦ／Ｆ１３は、スキャンパスＳＰ２に接続され、入力データ信号ＩＤを保持する保持部として動作する。
【００８５】
コマンドデコーダ１２Ｂの機能は、クロック信号ＣＫに非同期で動作することを除き、図１のコマンドデコーダ１２の機能と同じである。この実施形態では、レジスタＲＥＧ１１がライトイネーブル信号／ＷＥをクロック信号ＣＫに同期してラッチする。このため、コマンドデコーダ１２Ｂは、クロック信号ＣＫに非同期で動作する必要がある。換言すれば、図１に示したコマンドデコーダ１２の機能は、レジスタＲＥＧ１１とコマンドデコーダ１２Ｂにより実現されている。
【００８６】
図１７は、図１５に示したユーザロジック部ＵＬ１、ＵＬ２をテストするときの動作の概要を示している。この実施形態では、図９と同じテストが実施される間にユーザロジック部ＵＬ１のテストが実施できる。バイパスモード信号ＢＰは、高レベルに設定される。このため、読み出し動作時にフリップフロップＦ／Ｆを用いて入力データ信号ＤＩＮの論理レベルが、出力データ信号ＯＤとしてデータ出力端子ＯＤに直接出力される。信号ＳＭの高レベル期間は、スキャンマルチプレクサＳＭがスキャンパスＳＰ１、ＳＰ２を選択する期間（スキャンシフト期間ＳＳ１、ＳＳ２）である。信号ＳＭの低レベル期間は、スキャンマルチプレクサＳＭがユーザロジック部ＵＬ１、ＵＬ２に接続された信号線を選択する期間（テスト期間ＴＥＳＴ）である。
【００８７】
まず、スキャンシフト期間ＳＳ１では、スキャンパスＳＰ１、ＳＰ２を用いて、ユーザロジック部ＵＬ１をテストするための入力パターン（テスト入力信号）がレジスタ１−ＲＥＧ３に順次に設定され、ユーザロジック部ＵＬ２をテストするための入力パターン（テスト入力信号）がレジスタＲＥＧ１１−ＲＥＧ１３（フリップフロップＦ／Ｆ１１−Ｆ／Ｆ１３）に順次に設定される。
【００８８】
次に、テスト制御部ＴＣＮＴにより信号ＳＭが低レベルに設定され、レジスタＲＥＧ１−ＲＥＧ３、ＲＥＧ１１−ＲＥＧ１３に設定されたテストパターンは、ユーザロジック回路Ｌ１−Ｌ３、メモリマクロＭＭおよびユーザロジック回路Ｌ４に供給される。これにより、ユーザロジック回路Ｌ１−Ｌ３は、レジスタＲＥＧ１−ＲＥＧ３に設定された入力パターンに応じて動作する。メモリマクロＭＭは、ＲＥＧ１１−ＲＥＧ１３に設定された入力パターンに応じて動作する。ユーザロジック回路Ｌ４は、メモリマクロＭＭのデータ出力端子ＯＤから出力される出力データ信号ＯＤに応じて動作する。
【００８９】
レジスタＲＥＧ１１−ＲＥＧ１３は、４番目のクロック信号ＣＫの立ち上がりエッジに同期して、ユーザロジック回路Ｌ１−Ｌ３からの出力信号をラッチする。レジスタＲＥＧ７は、メモリマクロＭＭからの出力信号をラッチし、レジスタＲＥＧ８は、ユーザロジック回路Ｌ４からの出力信号をラッチする。
【００９０】
この後、テスト制御部ＴＣＮＴにより信号ＳＭが高レベルに設定される。図中に太枠で示したレジスタＲＥＧ１１−１３、ＲＥＧ８に保持された情報は、スキャンパスＳＰ２を介してテスト制御部ＴＣＮＴに転送され、期待値と比較される。そして、レジスタＲＥＧ１１−１３から読み出された情報が期待値と異なるとき、ユーザロジック回路Ｌ１−Ｌ３の不良（スタック故障あるいはタイミングマージン不良）が検出される。レジスタＲＥＧ８から読み出された情報が期待値と異なるとき、ユーザロジック回路Ｌ４の不良（スタック故障あるいはタイミングマージン不良）が検出される。これにより、ユーザロジック部ＵＬ１、ＵＬ２のテストを１クロックサイクルで同時に実施できる。
【００９１】
なお、レジスタＲＥＧ７に保持された情報を、スキャンパスＳＰ２を介してテスト制御部ＴＣＮＴに転送し、期待値と比較することにより、ユーザロジック部ＵＬ２のテストで発生した不良の原因が、メモリマクロＭＭにあるのかユーザロジック回路Ｌ４にあるのかを区別できる。
【００９２】
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。さらに、この実施形態では、ユーザロジック部ＵＬ１、ＵＬ２のテストを１クロックサイクルで同時に実施できる。特に、ユーザロジック回路Ｌ４をテストするためのテストパターン（テスト入力信号）を、ユーザロジック回路Ｌ１−Ｌ３を介して供給することなく、スキャンパスＳＰ２を用いてレジスタＲＥＧ１１−１３に設定できる。このため、ユーザロジック回路Ｌ４のテストを簡易なテストパターンを用いて実施できる。換言すれば、ロジック回路の故障検出テストに一般的に使用されるＡＴＰＧ（Ａｕｔｏｍａｔｉｃ  Ｔｅｓｔ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｉｏｎ）手法を用いてテストパターンを生成できる。この結果、テストコストを削減できる。
【００９３】
なお、上述した実施形態では、読み出しコマンドから所定時間後にメモリセルＭＣに保持されたデータ信号を出力するメモリマクロＭＭにテスト回路（Ｆ／ＦおよびＤＳＥＬ）を設け、テスト回路を利用してユーザロジック部ＵＬ２をテストする例について述べた。しかし、例えば、読み出しコマンドから所定時間後に保持しているデータ信号を出力する他の機能マクロ（ＣＰＵマクロやＭＰＥＧマクロ等のデータ処理マクロ）にテスト回路（Ｆ／ＦおよびＤＳＥＬ）を設け、このテスト回路を利用してユーザロジック部ＵＬ２をテストしてもよい。
【００９４】
以上の詳細な説明により、実施形態の特徴点及び利点は明らかになるであろう。これは、特許請求の範囲がその精神及び権利範囲を逸脱しない範囲で前述のような実施形態の特徴点及び利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良及び変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物及び均等物に拠ることも可能である。
【図面の簡単な説明】
【００９５】
【図１】一実施形態におけるメモリマクロを示している。
【図２】図１に示したメモリマクロが搭載されるシステムの例を示している。
【図３】図２に示したシステムの要部の詳細を示している。
【図４】図３に示したレジスタＲＥＧ４−ＲＥＧ６の詳細を示している。
【図５】図１に示したメモリマクロの通常動作モードでの動作を示している。
【図６】ユーザロジック回路Ｌ４をテストするためのロジックテストモードでのメモリマクロの動作を示している。
【図７】図３に示したシステムの通常動作モードでの動作を示している。
【図８】図３に示したユーザロジック部ＵＬ１をテストするときの動作の概要を示している。
【図９】図３に示したユーザロジック部ＵＬ２をテストするときの動作の概要を示している。
【図１０】図１に示したメモリマクロの動作テストの概要を示している。
【図１１】図１が提案される前のメモリマクロを示している。
【図１２】図１１に示したメモリマクロを有するシステムにおいて、ユーザロジック部ＵＬ２をテストするときの動作の概要を示している。
【図１３】別の実施形態におけるメモリマクロの例を示している。
【図１４】図１３に示したメモリマクロにおいて、ユーザロジック回路Ｌ４をテストするためのロジックテストモードでのメモリマクロＭＭの動作を示している。
【図１５】別の実施形態におけるシステムの要部の詳細を示している。
【図１６】図１５に示したメモリマクロの詳細を示している。
【図１７】図１５に示したユーザロジック部ＵＬ２をテストするときの動作の概要を示している。
【符号の説明】
【００９６】
１０‥アドレス選択部；１２、１２Ｂ‥コマンドデコーダ；１４、１４Ａ‥タイミング生成部；１６‥データ入力バッファ；１８Ａ‥データ出力バッファ；ＡＲＹ‥メモリセルアレイ；ＢＰ‥バイパスモード信号；ＣＨＫ‥チェック回路；ＣＯＲＥ‥メモリコア；ＤＳＥＬ‥データセレクタ；Ｆ／Ｆ‥フリップフロップ；ＭＣ‥メモリセル；ＭＭ‥メモリマクロ；ＭＴＳＴ‥メモリテスト部；ＰＡＴＧ‥パターン生成回路；ＲＡ‥リードアンプ；ＳＰ１、ＳＰ２‥スキャンパス；ＳＹＳ‥システム；ＴＣＮＴ‥テスト制御部；ＵＬ１、ＵＬ２‥ユーザロジック部；ＷＡ‥ライトアンプ
【図１】
0005194890.tif 000002
【図２】
0005194890.tif 000003
【図３】
0005194890.tif 000004
【図４】
0005194890.tif 000005
【図５】
0005194890.tif 000006
【図６】
0005194890.tif 000007
【図７】
0005194890.tif 000008
【図８】
0005194890.tif 000009
【図９】
0005194890.tif 000010
【図１０】
0005194890.tif 000011
【図１１】
0005194890.tif 000012
【図１２】
0005194890.tif 000013
【図１３】
0005194890.tif 000014
【図１４】
0005194890.tif 000015
【図１５】
0005194890.tif 000016
【図１６】
0005194890.tif 000017
【図１７】
0005194890.tif 000018