(58)【調査した分野】(Int.Cl.,DB名)
さらに、クリア信号がアクティブ状態になるとカウント値が初期化され、前記クリア信号が非アクティブ状態になると、前記テストクロック信号に同期してカウントを行って前記カウント値を出力する第1カウンタと、
デバッグモード信号が通常動作モードを表す場合、および、前記デバッグモード信号がテストモードを表し、かつ、前記カウント値が一定値となった場合にアクティブ状態となり、前記デバッグモード信号が前記テストモードを表し、かつ、前記カウント値が前記一定値ではない場合に非アクティブ状態となる前記クリア信号を生成するクリア信号生成回路とを備える請求項1に記載のテスト回路。
前記メモリテスト設定部は、前記クリア信号がアクティブ状態になると初期化され、前記クリア信号が非アクティブ状態になると、前記シリアルクロック入力信号に同期して、順次入力された一定ビット数の前記シリアルデータ入力信号を順次シフトして前記パラレルデータ入力信号に変換して保持し、前記テスト設定データ信号として、前記テスト対象のメモリのメモリアドレスを指定するテストアドレス信号、および、非アクティブ状態のリセット信号を設定するシフトレジスタを備える請求項2に記載のテスト回路。
さらに、前記カウント値に対応する1ビットだけが順次アクティブ状態となる一定ビット数のメモリデータビット選択信号を出力するデコーダを備える請求項3または4に記載のテスト回路。
前記メモリデータ出力部は、前記デバッグモード信号が前記通常動作モードを表す場合に、前記通常動作モード時の内部信号を前記テスト対象のメモリに入力し、前記デバッグモード信号が前記テストモードを表す場合に、前記テスト対象のメモリから前記パラレルメモリデータ出力信号が読み出されるように、前記テストアドレス信号および前記テストクロック信号を含むテスト信号を前記テスト対象のメモリに入力する入力切替回路と、
アクティブ状態となった前記メモリデータビット選択信号のビットに対応する前記パラレルメモリデータ出力信号のビットを前記シリアルメモリデータ出力信号として順次出力する出力切替回路とを備える請求項5に記載のテスト回路。
前記第1および第2の入出力ピンは、前記半導体装置の通常動作モード時の動作に影響を与えない入出力ピンに割り当てられている請求項1〜8のいずれか1項に記載のテスト回路。
【発明の概要】
【発明が解決しようとする課題】
【0010】
本発明の目的は、前記従来技術の問題点を解消し、半導体装置がプリント基板に実装されたままの状態で、少数の外部ピンから半導体装置内部のメモリを制御してテストすることができるテスト回路およびテスト方法を提供することにある。
【課題を解決するための手段】
【0011】
上記目的を達成するために、本発明は、半導体装置に搭載されたメモリのテストを行うテスト回路であって、
出力イネーブル信号が非アクティブ状態になると入力モードになり、第1および第2の入出力ピンから、それぞれ、シリアルデータ入力信号およびシリアルクロック入力信号を入力し、前記出力イネーブル信号がアクティブ状態になると出力モードになり、シリアルデータ出力信号およびシリアルクロック出力信号を、それぞれ、前記第1および第2の入出力ピンへ出力する入出力部と、
前記シリアルクロック入力信号に同期して、順次入力された一定ビット数の前記シリアルデータ入力信号をパラレルデータ入力信号に変換し、テスト設定データ信号として設定するメモリテスト設定部と、
一定周波数のテストクロック信号を生成するテストクロック発生部と、
前記テスト設定データ信号により指定されたテスト対象のメモリのメモリアドレスから前記テストクロック信号に同期して読み出されたパラレルメモリデータ出力信号をシリアルメモリデータ出力信号に変換するメモリデータ出力部と、
前記テストクロック信号に同期して、前記シリアルメモリデータ出力信号を前記シリアルデータ出力信号として順次出力し、かつ、前記テストクロック信号を前記シリアルクロック出力信号として順次出力するとともに、初期化されると非アクティブ状態となり、前記テスト設定データ信号が設定されると、前記テストクロック信号に同期してアクティブ状態となる前記出力イネーブル信号を出力する入出力制御部とを備えることを特徴とするテスト回路を提供するものである。
【0012】
さらに、クリア信号がアクティブ状態になるとカウント値が初期化され、前記クリア信号が非アクティブ状態になると、前記テストクロック信号に同期してカウントを行って前記カウント値を出力する第1カウンタと、
デバッグモード信号が通常動作モードを表す場合、および、前記デバッグモード信号がテストモードを表し、かつ、前記カウント値が一定値となった場合にアクティブ状態となり、前記デバッグモード信号が前記テストモードを表し、かつ、前記カウント値が前記一定値ではない場合に非アクティブ状態となる前記クリア信号を生成するクリア信号生成回路とを備えることが好ましい。
【0013】
また、前記メモリテスト設定部は、前記クリア信号がアクティブ状態になると初期化され、前記クリア信号が非アクティブ状態になると、前記シリアルクロック入力信号に同期して、順次入力された一定ビット数の前記シリアルデータ入力信号を順次シフトして前記パラレルデータ入力信号に変換して保持し、前記テスト設定データ信号として、前記テスト対象のメモリのメモリアドレスを指定するテストアドレス信号、および、非アクティブ状態のリセット信号を設定するシフトレジスタを備えることが好ましい。
【0014】
また、前記テストクロック発生部は、
前記デバッグモード信号が前記テストモードを表す場合に、一定周波数の発振クロックを生成するリングオシレータと、
前記リセット信号がアクティブ状態になると初期化され、前記リセット信号が非アクティブ状態になると、前記発振クロックに同期してカウントを行って前記テストクロック信号を生成する第2カウンタとを備えることが好ましい。
【0015】
前記メモリ出力制御部は、さらに、前記カウント値に対応する1ビットだけが順次アクティブ状態となる一定ビット数のメモリデータビット選択信号を出力するデコーダを備えることが好ましい。
【0016】
また、前記メモリデータ出力部は、前記デバッグモード信号が前記通常動作モードを表す場合に、前記通常動作モード時の内部信号を前記テスト対象のメモリに入力し、前記デバッグモード信号が前記テストモードを表す場合に、前記テスト対象のメモリから前記パラレルメモリデータ出力信号が読み出されるように、前記テストアドレス信号および前記テストクロック信号を含むテスト信号を前記テスト対象のメモリに入力する入力切替回路と、
アクティブ状態となった前記メモリデータビット選択信号のビットに対応する前記パラレルメモリデータ出力信号のビットを前記シリアルメモリデータ出力信号として順次出力する出力切替回路とを備えることが好ましい。
【0017】
また、前記入出力制御部は、
前記リセット信号がアクティブ状態になると初期化され、前記リセット信号が非アクティブ状態になると、前記テストクロック信号に同期して前記シリアルメモリデータ出力信号を保持し、前記シリアルデータ出力信号として出力する第1保持回路と、
前記リセット信号がアクティブ状態になると初期化されて非アクティブ状態となり、前記リセット信号が非アクティブ状態になると、前記テストクロック信号に同期してアクティブ状態となるシリアルクロック出力制御信号を保持し、前記シリアルクロック出力制御信号がアクティブ状態になると、前記テストクロック信号を前記シリアルクロック出力信号として出力する第2保持回路と、
前記リセット信号がアクティブ状態になると初期化されて非アクティブ状態となり、前記リセット信号が非アクティブ状態になると、前記テストクロック信号に同期してアクティブ状態となる前記出力イネーブル信号を保持して出力する第3保持回路とを備えることが好ましい。
【0018】
また、前記テスト回路は、複数の前記メモリデータ出力部を備え、
前記メモリテスト設定部のシフトレジスタは、前記テスト設定データ信号として、さらに、前記複数のメモリの中から前記テスト対象のメモリを指定するメモリ指定信号を設定するものであり、
前記入出力制御部は、さらに、前記複数のメモリデータ出力部の各々から出力されるシリアルメモリデータ出力信号の中から、前記メモリ指定信号により指定された前記テスト対象のメモリから出力されたシリアルメモリデータ出力信号を出力するマルチプレクサを備え、
前記入出力制御部の第1保持回路は、前記リセット信号が非アクティブ状態になると、前記テストクロック信号に同期して前記マルチプレクサから出力されたシリアルメモリデータ出力信号を保持し、前記シリアルデータ出力信号として出力するものであることが好ましい。
【0019】
また、前記第1および第2の入出力ピンは、前記半導体装置の通常動作モード時の動作に影響を与えない入出力ピンに割り当てられていることが好ましい。
【0020】
また、本発明は、半導体装置に搭載されたメモリのテストを行うテスト方法であって、
入出力制御部が、出力イネーブル信号を非アクティブ状態にして入出力部を入力モードにするステップと、
前記入出力部が、第1および第2の入出力ピンから、それぞれ、シリアルデータ入力信号およびシリアルクロック入力信号を入力するステップと、
メモリテスト設定部が、前記シリアルクロック入力信号に同期して、順次入力された一定ビット数の前記シリアルデータ入力信号をパラレルデータ入力信号に変換し、テスト設定データ信号として設定するステップと、
テストクロック発生部が、一定周波数のテストクロック信号を生成するステップと、
入出力制御部が、前記テスト設定データ信号が設定されると、前記テストクロック信号に同期して、前記出力イネーブル信号をアクティブ状態にして前記入出力部を出力モードにするステップと、
メモリデータ出力部が、前記テスト設定データ信号により指定されたテスト対象のメモリのメモリアドレスから前記テストクロック信号に同期して読み出されたパラレルメモリデータ出力信号をシリアルメモリデータ出力信号に変換するステップと、
入出力制御部が、前記テストクロック信号に同期して、前記シリアルメモリデータ出力信号をシリアルデータ出力信号として順次出力し、かつ、前記テストクロック信号をシリアルクロック出力信号として順次出力するステップと、
前記入出力部が、前記シリアルデータ出力信号および前記シリアルクロック出力信号を、それぞれ、前記第1および第2の入出力ピンへ出力するステップとを含むことを特徴とするテスト方法を提供する。
【発明の効果】
【0021】
本発明では、2つの外部ピンを確保することにより、半導体装置をプリント基板に実装したままの状態で、半導体装置に搭載されたメモリから読み出されたメモリデータを、外部ピンから順次出力することができる。そのため、本発明によれば、プリント基板から半導体装置を剥離する場合に生じる接合部分の破壊リスクを避けつつ、メモリデータがL(ローレベル)またはH(ハイレベル)にスタックしているか否か等の状態を外部で観測することができるようになる。
【発明を実施するための形態】
【0023】
以下に、添付の図面に示す好適実施形態に基づいて、本発明のテスト回路およびテスト方法を詳細に説明する。
【0024】
図1は、本発明のテスト回路の構成を表す一実施形態のブロック図である。同図に示すテスト回路10は、プリント基板に実装された半導体装置に搭載され、半導体装置がプリント基板に実装されたままの状態で、半導体装置に搭載されたメモリのテストを行うものであり、入出力部12と、メモリテスト設定部14と、テストクロック発生部16と、メモリ出力制御部18と、(p+1)個のメモリデータ出力部20[p:0]と、入出力制御部22とによって構成されている。
【0025】
DEBUG_MODEが、Hの場合に、入出力部12は、出力イネーブル信号ENLが非アクティブ状態になると入力モードとなり、シリアルデータSDAおよびシリアルクロックSCLの入出力ピン(第1および第2の入出力ピン)から、それぞれ、シリアルデータ入力信号SDIおよびシリアルクロック入力信号CLKを入力し、出力イネーブル信号ENLがアクティブ状態になると出力モードとなり、シリアルデータ出力信号SDOおよびシリアルクロック出力信号SCLKOを、それぞれ、シリアルデータSDAおよびシリアルクロックSCLの入出力ピンへ出力するものである。
【0026】
入出力部12は、
図2に示すように、シリアルデータSDAの入出力ピンに対応する第1入出力回路24Aと、シリアルクロックSCLの入出力ピンに対応する第2入出力回路24Bとを備えている。
【0027】
第1入出力回路24Aは、入力バッファ26Aおよび出力バッファ28Aからなる入出力バッファと、2つのマルチプレクサ32A,34Aとを備えている。
出力バッファ28Aの入力端子および反転出力イネーブル端子には、それぞれ、マルチプレクサ32A,34Aの出力信号が入力されている。出力バッファ28Aの出力信号は、シリアルデータSDAの入出力ピンに入力されている。
入力バッファ26Aには、シリアルデータSDAの入出力ピンからシリアルデータSDAが入力され、入力バッファ26Aからは、シリアルデータSDAに相当するシリアルデータ入力信号SDIが出力されている。
【0028】
同様に、第2入出力回路24Bは、入力バッファ26Bおよび出力バッファ28Bからなる入出力バッファと、2つのマルチプレクサ32B,34Bとを備えている。
出力バッファ28Bの入力端子および反転出力イネーブル端子には、それぞれ、マルチプレクサ32B,34Bの出力信号が入力されている。出力バッファ28Bの出力信号は、シリアルクロックSCLの入出力ピンに入力されている。
入力バッファ26Bには、シリアルクロックSCLの入出力ピンからシリアルクロックSCLが入力され、入力バッファ26Bからは、シリアルクロックSCLに相当するシリアルクロック入力信号CLKが出力されている。
【0029】
マルチプレクサ32A,34Aおよびマルチプレクサ32B,34Bの入力端子0には、それぞれ対応する通常動作モード時の内部信号(図示省略)が入力され、選択入力端子には、通常動作モードとテストモードとを切り替えるデバッグモード信号DEBUG_MODEが入力されている。また、マルチプレクサ32Aの入力端子1にはシリアルデータ出力信号SDOが、マルチプレクサ32Bの入力端子1にはシリアルクロック出力信号SCLKOが、マルチプレクサ34A,34Bの入力端子1には出力イネーブル信号ENLが、入出力制御部22からそれぞれ入力されている。
【0030】
シリアルデータ入力信号SDIおよびシリアルクロック入力信号CLKは、テスト設定データ信号を設定するために使用される信号であり、例えば、半導体装置の通常動作モード時の動作(通常動作)に影響を与えない外部ピンに割り当てることができる。半導体装置の通常動作モード時の動作に影響を与えない外部ピンには、例えば、余っていて通常動作中は使用していない外部ピン、通常動作中は動作しない(レベルが変化しない)外部ピン(例えば、半導体装置が動作を開始した直後、初期値を入力するためだけに使用され、初期値入力後は使用されなくなる外部ピン)などが含まれる。
【0031】
図2では、入出力ピンを使用しているが、半導体装置の通常動作モード時の動作に影響を与えない外部ピンの数に余裕がある場合には、入力ピン(外部ピン)と出力ピン(外部ピン)を組み合わせて使用することもできる。
【0032】
また、デバッグモード信号DEBUG_MODEは、半導体装置の内部信号であって、メモリ以外の回路のテストを行う場合にも使用されるものであり、例えば、通常動作中に使用されている外部ピンにより設定される。
【0033】
続いて、メモリテスト設定部14は、シリアルクロック入力信号CLKに同期して、順次入力された一定ビット数のシリアルデータ入力信号SDIをパラレルデータ入力信号に変換し、テスト設定データ信号として設定するものである。
メモリテスト設定部14は、
図3に示すように、OR回路36と、シフトレジスタ38とを備えている。
【0034】
OR回路36には、入出力部12からシリアルクロック入力信号CLKが、シフトレジスタ38の最終段のフリップフロップ(FF)44からリセット信号RSTNが入力されている。
【0035】
シフトレジスタ38は、メモリ出力制御部18から入力されたクリア信号CLRがアクティブ状態になると初期化され、クリア信号CLRが非アクティブ状態になると、シリアルクロック入力信号CLKに同期して、順次入力された一定ビット数のシリアルデータ入力信号SDIを順次シフトしてパラレルデータ入力信号に変換して保持し、テスト設定データ信号として、テスト対象のメモリのメモリアドレスを指定するテストアドレス信号ADR1[i:0]、複数のメモリの中からテスト対象のメモリを指定するメモリ指定信号ADR2[j:0]、および、非アクティブ状態のリセット信号RSTNを設定するものである。
【0036】
シフトレジスタ38は、テストアドレス信号ADR1[i:0]を保持する(i+1)段のFF40[i:0]と、メモリ指定信号ADR2[j:0]を保持する(j+1)段のFF42[j:0]と、リセット信号RSTNを保持する最終段のFF44とを直列に接続して構成されている。
【0037】
FF40[i:0]、FF42[j:0]、FF44のクロック入力端子にはOR回路36の出力信号CLKMが入力され、反転リセット入力端子Rには、メモリ出力制御部18からクリア信号CLRが入力されている。
【0038】
FF40[i:0]のうち、FF40[0]のデータ入力端子Dには、入出力部12からシリアルデータ入力信号SDIが入力されている。FF40[i:1]のデータ入力端子Dには、それぞれ、前段のFF40[i−1:0]のデータ出力端子Qからテストアドレス信号ADR1[i−1:0]が入力されている。FF40[i:0]のデータ出力端子Qからは、それぞれ、テストアドレス信号ADR1[i:0]が出力されている。
【0039】
FF42[j:0]のうち、FF42[0]のデータ入力端子Dには、前段のFF40[i]のデータ出力端子Qからテストアドレス信号ADR1[i]が入力されている。FF42[j:1]のデータ入力端子Dには、それぞれ、前段のFF42[j−1:0]のデータ出力端子Qからメモリ指定信号ADR2[j−1:0]が入力されている。FF42[j:0]のデータ出力端子Qからは、それぞれ、メモリ指定信号ADR2[j:0]が出力されている。
【0040】
最終段のFF44のデータ入力端子Dには、前段のFF42[j]のデータ出力端子Qからメモリ指定信号ADR2[j]が入力されている。FF44のデータ出力端子Qからは、リセット信号RSTNが出力されている。
【0041】
続いて、テストクロック発生部16は、一定周波数のテストクロック信号CLKOUTを生成するものである。
テストクロック発生部16は、
図4に示すように、リングオシレータ(Ring−OSC)46と、カウンタ48(第2カウンタ)とを備えている。
【0042】
リングオシレータ46は、デバッグモード信号DEBUG_MODEがテストモードを表す場合に、一定周波数の発振クロックを生成するものである。
リングオシレータ46のイネーブル入力端子ENには、デバッグモード信号DEBUG_MODEが入力され、発振クロック出力端子CLKからは、発振クロックが出力されている。
【0043】
カウンタ48は、リセット信号RSTNがアクティブ状態になると初期化され、リセット信号RSTNが非アクティブ状態になると、発振クロックに同期してカウントを行ってテストクロック信号CLKOUTを生成するものであり、直列に接続された(k+1)個のFF50[k:0]を備えている。
FF50[k:0]の反転リセット端子には、メモリテスト設定部14からリセット信号RSTNが入力されている。FF50[0]のクロック入力端子には、リングオシレータ46から発振クロックが入力されている。FF50[k−1:0]の反転データ出力端子QBからは、それぞれ、内部クロック信号CLK[k−1:0]が出力され、自分自身のデータ入力端子DおよびFF50[k:1]のクロック入力端子に入力されている。そして、FF50[k]の反転データ出力端子QBからは、内部クロック信号CLK[k]が出力されて自分自身のデータ入力端子Dに入力され、データ出力端子Qからは、テストクロック信号CLKOUTが出力されている。
【0044】
続いて、メモリ出力制御部18は、テストクロック信号CLKOUTに同期して、メモリデータビット選択信号SEL[m:0]を生成し、さらに、クリア信号CLRを生成するものである。
メモリ出力制御部18は、
図5に示すように、カウンタ52(第1カウンタ)と、クリア信号生成回路54と、デコーダ(Decoder)56とを備えている。
【0045】
カウンタ52は、クリア信号CLRがアクティブ状態になるとカウント値CNT[n:0]が初期化され、クリア信号CLRが非アクティブ状態になると、テストクロック信号CLKOUTに同期してカウントを行ってカウント値CNT[n:0]を出力するものであり、直列に接続された(n+1)個のFF58[n:0]を備えている。
【0046】
FF58[n:0]の反転リセット端子には、クリア信号生成回路54からクリア信号CLRが入力されている。FF58[0]の反転クロック入力端子には、テストクロック発生部16からテストクロック信号CLKOUTが入力されている。FF58[n−1:0]の反転データ出力端子QBからは、それぞれ、カウント値CNT[n−1:0]の反転信号が出力され、自分自身のデータ入力端子DおよびFF58[n:1]のクロック入力端子に入力されている。FF58[n]の反転データ出力端子QBからは、カウント値CNT[n]の反転信号が出力されて自分自身のデータ入力端子Dに入力されている。そして、FF58[n:0]のデータ出力端子Qからは、それぞれ、カウント値CNT[n:0]が出力されている。
【0047】
クリア信号生成回路54は、デバッグモード信号DEBUG_MODEが通常動作モードを表す場合、および、デバッグモード信号DEBUG_MODEがテストモードを表し、かつ、カウント値CNT[n:0]が一定値となった場合にアクティブ状態となり、デバッグモード信号DEBUG_MODEがテストモードを表し、かつ、カウント値CNT[n:0]が一定値ではない場合に非アクティブ状態となるクリア信号CLRを生成するものであり、(n−1)個のAND回路60[n−1:1]と、NAND回路62と、直列に接続された複数のバッファ回路64と、出力段のAND回路66とを備えている。
【0048】
AND回路60[n−1:1]のうち、AND回路60[1]には、カウンタ52のFF58[1:0]のデータ出力端子Qからカウント値CNT[1:0]が入力されている。AND回路60[n−1:2]には、それぞれ、AND回路60[n−2:1]の出力信号、および、FF58[n−1:2]のデータ出力端子Qからカウント値CNT[n−1:2]が入力されている。
NAND回路62には、AND回路60[n−1]の出力信号、および、FF58[n]のデータ出力端子Qからカウント値CNT[n]が入力されている。
複数のバッファ回路64の初段のバッファ回路64には、NAND回路62の出力信号が入力されている。
出力段のAND回路66には、デバッグモード信号DEBUG_MODE、および、複数のバッファ回路64の最終段のバッファ回路64の出力信号が入力され、AND回路66からは、クリア信号CLRが出力されている。
【0049】
デコーダ56は、カウント値CNT[n:0]に対応する1ビットだけが順次アクティブ状態となる一定ビット数のメモリデータビット選択信号SEL[m:0](ここで、m=2
(n+1)−1)を出力するものである。
デコーダ56のカウント値入力端子CNT[n:0]には、カウンタ52からカウント値CNT[n:0]が入力され、メモリデータビット選択信号出力端子SEL[m:0]からは、メモリデータビット選択信号SEL[m:0]が出力されている。
【0050】
続いて、メモリデータ出力部20[p:0]は、テスト設定データ信号により指定されたテスト対象のメモリのメモリアドレスからテストクロック信号CLKOUTに同期して読み出されたパラレルメモリデータ出力信号Q[x:0]をシリアルメモリデータ出力信号QOUT[p:0]に変換するものである。
例えば、メモリデータ出力部20[p]は、
図6に示すように、入力切替回路68と、出力切替回路70とを備えている。
【0051】
入力切替回路68は、デバッグモード信号DEBUG_MODEが通常動作モードを表す場合に、通常動作モード時の内部信号をテスト対象のメモリ76に入力し、デバッグモード信号DEBUG_MODEがテストモードを表す場合に、テスト対象のメモリ76からパラレルメモリデータ出力信号Q[x:0]が読み出されるように、テストアドレス信号ADR1[i:0]およびテストクロック信号CLKOUTを含むテスト信号をテスト対象のメモリ76に入力するものであり、4つのマルチプレクサ72A,72B,72C,72Dを備えている。
【0052】
マルチプレクサ72A,72B,72C,72Dの入力端子0には、それぞれ対応する通常動作モード時の内部信号(図示省略)が入力され、選択入力端子には、デバッグモード信号DEBUG_MODEが入力されている。マルチプレクサ72A,72B,72C,72Dの入力端子1には、メモリ76をテストするためのテスト信号が入力されている。つまり、マルチプレクサ72Aの入力端子1には、メモリテスト設定部14から、テストアドレス信号ADR1[i:0]のうちの、メモリ76のアドレス信号のビット数に対応するビット数のテストアドレス信号ADR1[y:0]が、メモリアドレス信号A[y:0]として入力され、マルチプレクサ72Dの入力端子1には、テストクロック信号CLKOUTが入力されている。また、テストモード時に、テスト対象のメモリ76からパラレルメモリデータ出力信号Q[x:0]が読み出されるように、マルチプレクサ72Bの入力端子1は電源に接続され、マルチプレクサ72Cの入力端子1はグランドに接続されている。
マルチプレクサ72A,72B,72C,72Dの出力信号は、それぞれ、メモリ76のアドレス入力端子A[y:0](y≦i)、ライトイネーブル信号入力端子WEN、チップセレクト入力端子CSN、クロック入力端子に入力されている。
また、メモリ76のデータ入力端子D[x:0]には、対応する通常動作モード時の内部信号(図示省略)が入力されている。
【0053】
ここで、メモリ76の種類は何ら限定されず、例えば、SRAM(スタティックRAM)、DRAM(ダイナミックRAM)等の各種のRAM(ランダムアクセスメモリ)、PROM(プログラマブルROM),EPROM(消去型プログラマブルROM)、フラッシュメモリ等の各種のROM(リードオンリーメモリ)であってもよい。
【0054】
出力切替回路70は、アクティブ状態となったメモリデータビット選択信号SEL[m:0]のビットに対応するパラレルメモリデータ出力信号Q[x:0]のビットをシリアルメモリデータ出力信号QOUT[p]として順次出力するものであり、メモリ76から出力されるパラレルメモリデータ出力信号Q[x:0]のビット数に相当する(x+1)個のマルチプレクサ74[x:0](ここで、m≧x)を備えている。
【0055】
マルチプレクサ74[x:0]のうち、マルチプレクサ74[x]の入力端子0はグランドに接続され、マルチプレクサ74[x−1:0]の入力端子0には、それぞれ、マルチプレクサ74[x:1]の出力信号が入力されている。マルチプレクサ74[x:0]の入力端子1には、それぞれ、メモリ76のデータ出力端子Q[x:0]からパラレルメモリデータ出力信号Q[x:0]が入力され、選択入力端子には、それぞれ、メモリ出力制御部18から、メモリデータビット選択信号SEL[m:0]のうち、パラレルメモリデータ出力信号Q[x:0]のビット数に対応するビット数のメモリデータビット選択信号SEL[x:0]が入力されている。マルチプレクサ74[0]からは、シリアルメモリデータ出力信号QOUT[p]が出力されている。
【0056】
他のメモリデータ出力部20[p−1:0]の構成も同じであり、メモリデータ出力部20[p:0]からは、それぞれ、シリアルメモリデータ出力信号QOUT[p:0]が出力されている。
【0057】
続いて、入出力制御部22は、テストクロック信号CLKOUTに同期してシリアルメモリデータ出力信号QOUTをシリアルデータ出力信号SDOとして順次出力し、テストクロック信号CLKOUTをシリアルクロック出力信号SCLKOとして順次出力するとともに、初期化されると非アクティブ状態となり、テスト設定データ信号が設定されると、テストクロック信号CLKOUTに同期してアクティブ状態となる出力イネーブル信号ENLを出力するものである。
【0058】
入出力制御部22は、
図7に示すように、マルチプレクサ78と、FF80A(第1保持回路)と、FF80B(第3保持回路)と、FF80CおよびOR回路82(第2保持回路)とを備えている。
【0059】
マルチプレクサ78は、複数のメモリデータ出力部20[p:0]の各々から出力されるシリアルメモリデータ出力信号QOUT[p:0]の中から、メモリ指定信号ADR2[j:0]により指定されたテスト対象のメモリ76から出力されたシリアルメモリデータ出力信号QOUTを出力するものである。
マルチプレクサ78の入力端子には、メモリデータ出力部20[p:0]からシリアルメモリデータ出力信号QOUT[p:0]が入力され、選択入力端子には、メモリテスト設定部14からメモリ指定信号ADR2[j:0]が入力されている。マルチプレクサ78からは、メモリデータ出力部20[p:0]から入力されるシリアルメモリデータ出力信号QOUT[p:0]の中から、メモリ指定信号ADR2[j:0]によって指定されるメモリデータ出力部20のシリアルメモリデータ出力信号QOUTが出力されている。
【0060】
FF80Aは、リセット信号RSTNがアクティブ状態になると初期化され、リセット信号RSTNが非アクティブ状態になると、テストクロック信号CLKOUTに同期して、マルチプレクサ78から出力されたシリアルメモリデータ出力信号QOUTを保持し、シリアルデータ出力信号SDOとして出力するものである。
【0061】
FF80Bは、リセット信号RSTNがアクティブ状態になると初期化されて非アクティブ状態となり、リセット信号RSTNが非アクティブ状態になると、テストクロック信号CLKOUTに同期してアクティブ状態となる出力イネーブル信号ENLを保持して出力するものである。
【0062】
FF80Cは、リセット信号RSTNがアクティブ状態になると初期化されて非アクティブ状態となり、リセット信号RSTNが非アクティブ状態になると、テストクロック信号に同期してアクティブ状態となるシリアルクロック出力制御信号SCLKO_preを保持するものである。OR回路82は、シリアルクロック出力制御信号SCLKO_preがアクティブ状態になると、テストクロック信号CLKOUTをシリアルクロック出力信号SCLKOとして出力するものである。
【0063】
FF80Aの反転クロック入力端子およびFF80B,80Cのクロック入力端子には、テストクロック発生部16からテストクロック信号CLKOUTが入力され、反転セット端子Sには、メモリテスト設定部14からリセット信号RSTNが入力されている。FF80Aのデータ入力端子Dには、マルチプレクサ78の出力信号が入力され、FF80B,80Cのデータ入力端子はグランドに接続されている。OR回路82には、FF80Cのデータ出力端子Qからシリアルクロック出力制御信号SCLKO_pre、および、テストクロック発生部16からテストクロック信号CLKOUTが入力されている。FF80A,80BおよびOR回路82からは、それぞれ、シリアルデータ出力信号SDO、出力イネーブル信号ENL、シリアルクロック出力信号SCLKOが出力されている。
【0064】
次に、
図8に示すフローチャートを参照しながら、テスト回路10の概略動作を説明する。
【0065】
プリント基板に実装された半導体装置が仕様通りに動作しない場合、デバッグモード信号DEBUG_MODEをLにして通常動作モードに設定し、通常動作モードにて不具合状態を再現する(ステップS1)。
【0066】
通常動作モードにて不具合の発生が再現された場合、続いて、デバッグモード信号DEBUG_MODEをHにしてテストモードに設定する(ステップS2)。
【0067】
デバッグモード信号DEBUG_MODEがテストモードを表すHになると、メモリ出力制御部18の、クリア信号CLRは非アクティブ状態のH(クリア解除)になる(ステップS3)。
【0068】
クリア信号CLRがHとなることで、メモリ出力制御部18のFF58[n:0]と、メモリテスト設定部14のFF40[i:0],42[j:0],44のクリアが解除される。しかし、メモリテスト設定部14のクリア信号CLRが解除されても、リセット信号RSTNは、Lを維持されるため、入出力制御部22の、出力イネーブル信号ENLは初期化されて非アクティブ状態のHであり、入出力部12は入力モードとなる。つまり、シリアルデータSDAおよびシリアルクロックSCLの入出力ピンは入力モードに固定される(ステップS4)。
【0069】
これにより、テスト回路10は、テストアドレス信号ADR1[i:0]、メモリ指定信号ADR2[j:0]、リセット信号RSTNを含むテスト設定データ信号が設定されるのを待機する状態となる(ステップS5)。
【0070】
続いて、テストを終了するか否かの判定を行う(ステップS6)。
【0071】
テストを続行する場合(ステップS6でNo)、続いて、テスト設定データ信号の入力があるか否かの判定を行う(ステップS7)。
【0072】
テスト設定データ信号の入力がない場合(ステップS7でNo)、ステップS5に戻り、テスト設定データ信号が入力されるのを待機する。
【0073】
テスト設定データ信号が入力される場合(ステップS7でYes)、入出力部12のシリアルデータSDAおよびシリアルクロックSCLの入出力ピンから、それぞれ、シリアルデータ入力信号SDIおよびシリアルクロック入力信号CLKが順次入力され、メモリテスト設定部14のテストアドレス信号ADR1[i:0]、メモリ指定信号ADR2[j:0]、リセット信号RSTNを含むテスト設定データ信号がシフトレジスタ38に設定される(書き込まれる)(ステップS8)。
【0074】
続いて、シフトレジスタ38の最上位ビット、つまり、リセット信号RSTNがH(1)に設定されたか否かの判定を行う(ステップS9)。
【0075】
リセット信号RSTNがHに設定されていない場合(ステップS9でNo)、ステップS8に戻り、テスト設定データ信号の設定が終了するのを待機する。
【0076】
リセット信号RSTNがHに設定された場合(ステップS9でYes)、テストクロック発生部16のテストクロック信号CLKOUTが動作を開始する(ステップS10)。
【0077】
入出力制御部22の出力イネーブル信号ENLは、テストクロック信号CLKOUTに同期してLになり、入出力部12は出力モードになる。つまり、シリアルデータSDAおよびシリアルクロックSCLの入出力ピンは出力モードに固定される(ステップS11)。
【0078】
続いて、テストアドレス信号ADR1[i:0]によって指定されるメモリデータ出力部20のメモリ76のメモリアドレスからパラレルメモリデータ出力信号Q[x:0]が読み出される。そして、メモリデータビット選択信号SEL[x:0]の順序で1ビットだけが順次アクティブ状態のHとなる度に、対応するパラレルメモリデータ出力信号Q[x:0]のビットが、シリアルメモリデータ出力信号QOUT[p:0]に変換される。
【0079】
続いて、シリアルメモリデータ出力信号QOUT[p:0]の中から、メモリ指定信号ADR2[j:0]によってメモリデータ出力部20のシリアルメモリデータ出力信号QOUTが一つ指定され、シリアルデータ出力信号SDOとして出力される。このシリアルデータ出力信号SDOは、入出力部12からシリアルデータSDAの入出力ピンから出力される(読み出される)(ステップS12)。
【0080】
また、テストクロック信号CLKOUTが、入出力制御部22のシリアルクロック出力信号SCLKOとして出力される。このシリアルクロック出力信号SCLKOは、入出力部12からシリアルクロックSCLの入出力ピンに出力される(読み出される)(ステップS12)。
【0081】
続いて、メモリ出力制御部18のカウンタ52のカウント値CNT[n:0]がカウントアップ(+1)され(ステップS13)、カウントアップされたカウント値CNT[n:0]に対応するメモリデータビット選択信号SEL[x:0]のビットがアクティブ状態のHとなる。
【0082】
続いて、カウント値CNT[n:0]が一定値、
図5の例では最大値であるオール1になったか否かの判定を行う(ステップS14)。
【0083】
カウント値CNT[n:0]がオール1になっていない場合(ステップS14でNo)、ステップS12に戻り、シリアルデータ出力信号SDOおよびシリアルクロック出力信号SCLKOの出力を続ける。
【0084】
カウント値CNT[n:0]がオール1になった場合(ステップS14でYes)、つまり、パラレルメモリデータ出力信号Q[x:0]の全てのビットに対応するシリアルメモリデータ出力信号QOUTの出力が終了した場合、クリア信号CLRはアクティブ状態のLになり(ステップS15)、テスト回路10は初期状態になる。
【0085】
続いて、ステップS2に戻り、上記の動作を繰り返し行う。つまり、ステップS5〜S7において、新たなテスト設定データ信号をシフトレジスタ38に設定し、テスト対象のメモリおよびメモリアドレスを変更してテストを続行する。
【0086】
テストを続行しない場合(ステップS6でYes)、テストを終了する。
【0087】
次に、テスト回路10の詳細動作を説明する。
【0088】
通常動作モード時には、デバッグモード信号DEBUG_MODEはLに設定される。
【0089】
デバッグモード信号DEBUG_MODEが通常動作モードを表すLに設定されると、
図9に示すように、メモリ出力制御部18のクリア信号生成回路54を構成する出力段のAND回路66から出力されるクリア信号CLRはアクティブ状態のLになる。クリア信号CLRがLになると、カウンタ52はリセット(初期化)されてカウント値CNT[n:0]は0、クリア信号生成回路54を構成する(n−1)個のAND回路60[n−1:1]の出力信号はオールL、従って、NAND回路62の出力信号はH、複数のバッファ回路64の出力信号もH、デコーダ56から出力されるメモリデータビット選択信号SEL[0]はアクティブ状態のH、その他のメモリデータビット選択信号SEL[m:1]は非アクティブ状態のLになる。
【0090】
また、クリア信号CLRがLになると、メモリテスト設定部14のシフトレジスタ38はリセット(初期化)され、テストアドレス信号ADR1[i:0]、メモリ指定信号ADR2[j:0]はオールL(オール0)、リセット信号RSTNはアクティブ状態のL(0)になる。従って、OR回路36は、入出力部12から入力されるシリアルクロック入力信号CLKを、出力信号CLKMとして出力することができる状態となる。
【0091】
また、デバッグモード信号DEBUG_MODEがLになると、テストクロック発生部16のリングオシレータ46は停止する。リセット信号RSTNはLになるから、カウンタ48を構成するFF50[k]〜[0]はリセット(初期化)されて内部クロック信号CLK[k:0]はオールH、テストクロック信号CLKOUTはLになる。つまり、テストクロック信号CLKOUTは動作しない。
【0092】
また、デバッグモード信号DEBUG_MODEがLになると、メモリデータ出力部20[p:0]の入力切替回路68を構成するマルチプレクサ72A,72B,72C,72Dからは、入力端子0に入力された信号、つまり、それぞれ対応する通常動作モード時の内部信号が出力されてメモリ76に入力される。メモリデータビット選択信号SEL[0]はH、その他のメモリデータビット選択信号SEL[m:1]はLになるから、出力切替回路70を構成するマルチプレクサ74[x:0]のうち、マルチプレクサ74[x:1]からは、入力端子0に入力された信号、つまり、Lが出力され、マルチプレクサ74[0]からは、入力端子1に入力された信号、つまり、パラレルメモリデータ出力信号Q[0]が、シリアルメモリデータ出力信号QOUT[p:0]として出力される。
【0093】
また、メモリ指定信号ADR2[j:0]はオールLであるから、入出力制御部22のマルチプレクサ78からは、メモリデータ出力部20[0]のシリアルメモリデータ出力信号QOUT[0]が出力される。リセット信号RSTNはLになるから、入出力制御部22を構成するFF80A,80B,80Cはセット(初期化)され、シリアルデータ出力信号SDOはH、シリアルクロック出力制御信号SCLKO_preは非アクティブ状態のH、OR回路82から出力されるシリアルクロック出力信号SCLKOもH、出力イネーブル信号ENLは非アクティブ状態のHになる。
【0094】
また、デバッグモード信号DEBUG_MODEがLになると、入出力部12のマルチプレクサ32A,34Aおよびマルチプレクサ32B,34Bからは、入力端子0に入力された信号、つまり、それぞれ対応する通常動作モード時の内部信号が出力される。
【0095】
一方、テストモード時には、デバッグモード信号DEBUG_MODEがHに設定される。
【0096】
メモリ出力制御部18のクリア信号生成回路54を構成する出力段のAND回路66の他方の入力端子はHであるから、デバッグモード信号DEBUG_MODEがテストモードを表すHになると、
図9に示すように、クリア信号CLRは非アクティブ状態のH(クリア解除)になる。クリア信号CLRがHになると、カウンタ52のリセットは解除され、テストクロック信号CLKOUTの立ち下がりに同期して、カウント値CNT[n:0]が順次カウントアップする状態となる。
【0097】
また、クリア信号CLRがHになると、メモリテスト設定部14のシフトレジスタ38のリセットが解除され、OR回路36の出力信号CLKMの立ち上がりに同期して、シフトレジスタ38がシフトする状態となる。
【0098】
また、デバッグモード信号DEBUG_MODEがHになると、テストクロック発生部16のリングオシレータ46は発振クロックの生成を開始する。なお、リセット信号RSTNが非アクティブ状態のHに設定されるまで、テストクロック発生部16のカウンタ48のリセットは解除されないため、テストクロック信号CLKOUTはLのままの状態である。
【0099】
また、デバッグモード信号DEBUG_MODEがHになると、メモリデータ出力部20[p:0]の入力切替回路68を構成するマルチプレクサ72A,72B,72C,72Dからは、入力端子1に入力された信号、つまり、マルチプレクサ72Aからはメモリアドレス信号A[y:0]が、マルチプレクサ72Dからはテストクロック信号CLKOUTが、マルチプレクサ72Bからはライトイネーブル信号WENとしてディスエーブル状態であるHが、マルチプレクサ72Cからはチップセレクト信号CSNとしてセレクト状態であるLが出力され、メモリ76の対応する入力端子に入力される。つまり、メモリ76は、テストクロック信号CLKOUTの立ち上がりに同期して、メモリアドレス信号A[y:0]によって指定されるメモリアドレスからパラレルメモリデータ出力信号Q[x:0]を読み出すことができる状態になる。
【0100】
また、デバッグモード信号DEBUG_MODEがHになると、入出力部12のマルチプレクサ32Aからはシリアルデータ出力信号SDOが、マルチプレクサ32Bからはシリアルクロック出力信号SCLKOが、マルチプレクサ34A,34Bからは出力イネーブル信号ENLが出力される。出力イネーブル信号ENLはHであるから、入出力部12は入力モードになり、シリアルデータSDAおよびシリアルクロックSCLの入出力ピンは入力モードに固定される。
【0101】
つまり、テスト回路10は、テストアドレス信号ADR1[i:0]、メモリ指定信号ADR2[j:0]、リセット信号RSTNを含むテスト設定データ信号が設定されるのを待機する状態となる。つまり、シリアルデータSDAおよびシリアルクロックSCLの入出力ピンから、それぞれ、シリアルデータ入力信号SDIおよびシリアルクロック入力信号CLKを入力することができる状態になる。
【0102】
続いて、テストアドレス信号ADR1[i:0]、メモリ指定信号ADR2[j:0]、リセット信号RSTNを含むテスト設定データ信号の設定が行われる。
【0103】
出力イネーブル信号ENLはHであるから、入出力部12の第1および第2入出力回路24A,24Bは入力モードになっている。この状態で、シリアルデータSDAおよびシリアルクロックSCLの入出力ピンから、それぞれ、シリアルデータSDAおよびシリアルクロックSCLが同期されて順次入力される。入力バッファ26A,26Bからは、シリアルデータSDAおよびシリアルクロックSCLに相当するシリアルデータ入力信号SDIおよびシリアルクロック入力信号CLKが順次出力される。
【0104】
メモリテスト設定部14のシフトレジスタ38は、シリアルクロック入力信号CLK、つまり、OR回路36の出力信号CLKMの立ち上がりに同期して、順次入力された一定ビット数のシリアルデータ入力信号SDIを順次シフトしてパラレルデータ入力信号に変換して保持する。これにより、
図10に示すように、テスト設定データ信号として、テストアドレス信号ADR1[i:0]、メモリ指定信号ADR2[j:0]、リセット信号RSTNがシフトレジスタ38に設定される。
【0105】
ここでは、
図11に示すように、8ビットのテストアドレス信号ADR1[7:0]としてa17〜a10、および、メモリ指定信号ADR2[7:0]としてa27〜a20を設定する場合を例に挙げて説明する。
シリアルデータ入力信号SDIは、リセット信号RSTN、メモリ指定信号ADR2[7:0]のa27〜a20、テストアドレス信号ADR1[7:0]のa17〜a10の順序で順次入力される。また、リセット信号RSTNには必ずH(1)が入力される。
【0106】
図12に示すように、まず、
図11に示すシフト0(初期値)の状態から、リセット信号RSTNのH(1)にあたる信号が、シリアルデータSDA,つまり、シリアルデータ入力信号SDIとして入力されると、シリアルクロックSCL、つまり、シリアルクロック入力信号CLK、つまり、OR回路36の出力信号CLKMの立ち上がりに同期して、シフトレジスタ38のFF40[0]に保持され、
図11に示すシフト1の状態になる。
【0107】
続いて、
図11に示すシフト1の状態から、シリアルデータ入力信号SDIとして、メモリ指定信号ADR2[7]のa27が入力されると、次のシリアルクロック入力信号CLKの立ち上がりに同期して、FF40[0]に保持されたリセット信号RSTNのH(1)が次段のFF40[1]へシフトされるのと同時に、メモリ指定信号ADR2[7]のa27はFF40[0]に保持され、
図11に示すシフト2の状態になる。
【0108】
これ以後同様に、
図11のシフト3〜16に示すように、シリアルデータ入力信号SDIが入力される度に、シリアルクロック入力信号CLKの立ち上がりに同期して、FF40[7:0]、および、FF42[7:0]のデータ出力端子Qから出力された信号が順次次段のFF40[7:1]、FF42[7:0]、および、最終段のFF44にシフトされて保持される。
【0109】
そして、
図11のシフト17に示すように、最終段のFF44にリセット信号RSTNのH(1)が設定される、つまり、テストアドレス信号ADR1[7:0]およびメモリ指定信号ADR2[7:0]が、それぞれ、FF40[7:0]、および、FF42[7:0]に設定されると、OR回路36の出力信号CLKMはHに固定されるため、これ以後、シリアルクロック入力信号CLKの変化に係わらずシフト動作は行われない。
【0110】
続いて、テストクロック発生部16では、
図13に示すように、リセット信号RSTNがHになると、カウンタ48は、リセットが解除され、リングオシレータ46から出力される発振クロックの立ち上がりに同期して動作する。
【0111】
ここでは、
図13に示すように、カウンタ48が4ビットのダウンカウンタであり、FF50[3:0]の反転データ出力端子QBから内部クロック信号CLK[3:0]が出力される場合を例に挙げて説明する。
【0112】
カウンタ48は、リセット信号RSTNがHになった後、発振クロックの立ち上がりに同期して、内部クロック信号CLK[3:0]がオールHの状態からダウンカウントを開始する。そして、内部クロック信号CLK[3:0]がオールLになると、その次の発振クロックの立ち上がりに同期して再びオールHとなり、これ以後、ダウンカウントを繰り返す。
テストクロック信号CLKOUTは、内部クロック信号CLK[3]の反転信号であり、Lの状態から、内部クロック信号CLK[3]の周期で発振する。
【0113】
続いて、メモリ出力制御部18では、テストクロック信号CLKOUTが発振を開始すると、カウンタ52は、テストクロック信号CLKOUTの立ち下がりに同期して動作する。
【0114】
図14に示すように、カウンタ52は、クリア信号CLRがHになった後、テストクロック信号CLKOUTの立ち下がりに同期して、カウント値CNT[n:0]が0の状態からアップカウントを開始する。
【0115】
カウント値CNT[n:0]が0の時、カウント値CNT[n:0]の0に対応するメモリデータビット選択信号SEL[0]のみがアクティブ状態のHであり、その他のメモリデータビット選択信号SEL[m:1]は非アクティブ状態のLとなっている。カウント値CNT[n:0]が1になると、カウント値CNT[n:0]の1に対応するメモリデータビット選択信号SEL[1]のみがHとなり、これ以後同様に、カウント値CNT[n:0]がアップカウントされる度に、カウント値CNT[n:0]に対応する1ビットのメモリデータビット選択信号SELのみが順次Hとなる。
【0116】
続いて、リセット信号RSTNがH、つまり、テスト設定データ信号のテストアドレス信号ADR1[i:0]およびメモリ指定信号ADR2[j:0]がメモリテスト設定部14のシフトレジスタ38に設定されると、テストアドレス信号ADR1[i:0]のうち、メモリ76のアドレス信号のビット数に対応するビット数のテストアドレス信号ADR1[y:0]が、メモリアドレス信号A[y:0]としてメモリデータ出力部20[p:0]に入力される。
【0117】
例えば、メモリデータ出力部20[0]では、入力切替回路68を構成するマルチプレクサ72Aからはメモリアドレス信号A[y:0]が、マルチプレクサ72Dからはテストクロック信号CLKOUTが、マルチプレクサ72Bからはライトイネーブル信号WENとしてディスエーブル状態であるHが、マルチプレクサ72Cからはチップセレクト信号CSNとしてセレクト状態であるLが出力され、メモリ76の対応する入力端子に入力される。従って、
図15に示すように、テストクロック信号CLKOUTの立ち上がりに同期して、メモリアドレス信号A[y:0]によって指定されるメモリアドレスからパラレルメモリデータ出力信号Q[x:0]が読み出される。
【0118】
メモリデータビット選択信号SEL[x:0]は、テストクロック信号CLKOUTの立ち下がりに同期して、メモリデータビット選択信号SEL[x:0]の順序で1ビットだけが順次アクティブ状態のHであるから、
図16に示すように、メモリデータビット選択信号SEL[0]だけがHになると、出力切替回路70を構成するマルチプレクサ74[x:1]からは、入力端子0に入力された信号、つまり、Lが出力され、マルチプレクサ74[0]からは、シリアルメモリデータ出力信号QOUT[0]として、入力端子1に入力された信号、つまり、パラレルメモリデータ出力信号Q[0]が出力される。
【0119】
続いて、メモリデータビット選択信号SEL[1]だけがHになると、マルチプレクサ74[x:2]からは、入力端子0に入力された信号、つまり、Lが出力され、マルチプレクサ74[1]からは、入力端子1に入力された信号、つまり、パラレルメモリデータ出力信号Q[1]が出力され、マルチプレクサ74[0]からは、シリアルメモリデータ出力信号QOUT[0]として、入力端子0に入力された信号、つまり、マルチプレクサ74[1]の出力信号であるパラレルメモリデータ出力信号Q[1]が出力される。
【0120】
これ以後も同様に動作する。つまり、メモリデータビット選択信号SEL[x:0]の順序で1ビットだけが順次Hとなる度に、シリアルメモリデータ出力信号QOUT[0]として、対応するパラレルメモリデータ出力信号Q[x:0]のビットが順次出力される。
他のメモリデータ出力部20[p:1]の動作も同様であり、メモリデータ出力部20[p:0]からは、それぞれ、シリアルメモリデータ出力信号QOUT[p:0]が順次出力される。
【0121】
続いて、入出力制御部22では、
図17に示すように、メモリデータ出力部20[p:0]のシリアルメモリデータ出力信号QOUT[p:0]の中から、メモリ指定信号ADR2[j:0]によって指定されるメモリデータ出力部20のシリアルメモリデータ出力信号QOUTがマルチプレクサ(MUX)78から出力される。
図17の例では、メモリデータ出力部20[0]のシリアルメモリデータ出力信号QOUT[0]がマルチプレクサ(MUX)78から出力されている。
【0122】
また、
図18に示すように、リセット信号RSTNがHになると、入出力制御部22を構成するFF80A,80B,80Cのセットが解除される。
これにより、出力イネーブル信号ENLは、テストクロック信号CLKOUTの立ち上がりに同期してアクティブ状態のLとなり、入出力部12の第1および第2入出力回路24A,24Bは出力モードとなる。この場合、出力バッファ28A,28Bから、それぞれ、シリアルデータ出力信号SDOおよびシリアルクロック出力信号SCLKOが、シリアルデータSDAおよびシリアルクロックSCLの入出力ピンに出力される状態となる。
【0123】
また、
図19に示すように、リセット信号RSTNがHになると、テストクロック信号CLKOUTの立ち下がりに同期して、マルチプレクサ78から出力されるシリアルメモリデータ出力信号QOUTが、シリアルデータ出力信号SDOとして順次出力される。このシリアルデータ出力信号SDOは、第1入出力回路24Aの出力バッファ28AからシリアルデータSDAの入出力ピンに順次出力される。
【0124】
また、シリアルクロック出力制御信号SCLKO_preは、テストクロック信号CLKOUTの立ち上がりに同期してアクティブ状態のLになり、OR回路82から、テストクロック信号CLKOUTが、シリアルクロック出力信号SCLKOとして順次出力される。このシリアルクロック出力信号SCLKOは、第2入出力回路24Bの出力バッファ28BからシリアルクロックSCLの入出力ピンに順次出力される。
【0125】
メモリ出力制御部18のカウンタ52のカウント値CNT[n:0]が一定値、
図5の例では最大値になると、
図20に示すように、クリア信号生成回路54を構成するAND回路60[n−1:1]の出力信号はオールH、従って、NAND回路62の出力信号はL、複数のバッファ回路64の出力信号もLになり、AND回路66から出力されるクリア信号CLRは再びLになる。
【0126】
クリア信号CLRがLになった場合の動作は、通常動作モードにおいて、クリア信号CLRがLになった場合の動作と同様である。つまり、テスト回路10は初期状態となり、次のテスト設定データ信号が設定されるのを待つ待機状態となる。
これ以後の動作は同じである。
【0127】
なお、
図20に示すように、クリア信号CLRがLとなり、メモリ出力制御部18のカウンタ52がリセットされて、カウント値CNT[n:0]が0になると、クリア信号生成回路54のAND回路60[n−1:1]の出力信号はオールL、NAND回路62の出力信号はH、複数のバッファ回路64の出力信号もHになり、AND回路66から出力されるクリア信号CLRはHに戻る。
【0128】
以上のように、テスト回路10では、2つの外部ピンを確保することにより、半導体装置をプリント基板に実装したままの状態で、半導体装置に搭載されたメモリ76から読み出されたメモリデータを、外部ピンから順次出力することができる。そのため、プリント基板から半導体装置を剥離する場合に生じる接合部分の破壊リスクを避けつつ、メモリデータがLまたはHにスタックしているか否か等の状態を外部で観測することができるようになる。
【0129】
なお、テスト回路を構成する入出力部、メモリテスト設定部、テストクロック発生部、メモリ出力制御部、メモリデータ出力部、入出力制御部の具体的な回路構成は何ら限定されず、同様の機能を実現する各種構成のものを使用することができる。
【0130】
本発明は、基本的に以上のようなものである。
以上、本発明について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。