(57)【要約】【課題】  マルチサイクルパスを含む半導体集積回路において、データの出し側のFF1に対してクロックイネーブル信号を用いて、データをホールドしてテストを行う場合に、FF1の出力値が伝播されるすべての経路がマルチサイクルの状態でテストが行われ、本来シングルサイクルパスであった経路に対する実動作速度テストができなかった。【解決手段】  マルチサイクルテストステップと、シングルサイクルテストステップとを設けて、マルチサイクルテストステップ時には、データの出し側のFF1に対してクロックイネーブル信号を用いて、データをホールドしてマルチサイクルパスのテストを行い、シングルサイクルテストステップ時に、マルチサイクルパスに関してはデータをキャプチャさせない構成をとってテストを行う。【選択図】  図１
2005201821.tif 000002
【特許請求の範囲】
【請求項１】
マルチサイクルパスを含む半導体集積回路のテスト方法であって、
前記半導体集積回路は、
クロック信号のエッジで動作し、データ入力とデータ出力を持つスキャン可能な第１の記憶素子と、
前記第1の記憶素子のデータ出力から、システムクロックレートの1サイクルより長いマルチサイクルで動作する論理回路中のパスを通ったデータをデータ入力として受け取り、前記クロック信号のエッジで動作し、データ出力からデータを出力する少なくとも１個以上のスキャン可能な第２の記憶素子と、
前記第１の記憶素子の出力から、前記システムクロックレートの１サイクルで動作する論理回路中のシングルサイクルパスを通ったデータをデータ入力として受け取り、前記クロック信号のエッジで動作し、データ出力からデータを出力する少なくとも１個以上のスキャン可能な第３の記憶素子とを備え、
前記テスト方法は、
マルチサイクルテストステップと、
シングルサイクルテストステップとを備え、
前記マルチサイクルテストステップは、
前記第１，２，３の記憶素子のデータ入力と、他の前記スキャン可能な記憶素子のデータ出力を接続してスキャンチェーンを構成し、前記スキャンチェーン中の全ての前記スキャン可能な記憶素子に対して、テストクロックレートで検査パターンをシリアルにシフト入力するスキャンステップと、
前記第１の記憶素子に対して、前記第１の記憶素子のデータ出力から、前記第２の記憶素子のデータ入力までのマルチサイクル数と同一またはそれ以上のサイクル数の間、キャプチャ動作の前または前記スキャンステップ中にデータをホールドするマルチサイクルホールドステップと、
前記第１，２，３の記憶素子のデータ入力を、前記論理回路に接続し、前記論理回路に対する前記検査パターンの応答を、前記記憶素子のデータ入力から取り込むマルチサイクルキャプチャステップと、
前記第１，２，３の記憶素子のデータ入力と、他の前記スキャン可能な記憶素子のデータ出力を接続してスキャンチェーンを構成し、前記記憶素子からデータをシフトアウトするシフトアウトステップとを備え、
前記シングルサイクルテストステップは、
前記スキャンステップと、
前記第１，２，３の記憶素子のデータ入力を、前記論理回路に接続し、前記第２の記憶素子については、データをホールドし、前記第２の記憶素子を除く記憶素子については、前記論理回路に対する前記検査パターンの応答を、前記記憶素子のデータ入力から取り込むシングルサイクルキャプチャステップと、
前記シフトアウトステップとを備える、
ことを特徴とする半導体集積回路のテスト方法。
【請求項２】
マルチサイクルパスを含む半導体集積回路のテスト方法であって、
前記半導体集積回路は、
クロック信号のエッジで動作し、データ入力とデータ出力を持つスキャン可能な第１の記憶素子と、
前記第１の記憶素子のデータ出力から、システムクロックレートの１サイクルより長いマルチサイクルで動作する論理回路中のパスを通ったデータをデータ入力として受け取り、前記第１の記憶素子と同一のクロックのエッジで動作し、データ出力からデータを出力する少なくとも1個以上のスキャン可能な第２の記憶素子と、
前記第１の記憶素子の出力から、前記システムクロックレートの１サイクルで動作する論理回路中のシングルサイクルパスを通ったデータをデータ入力として受け取り、前記第１の記憶素子と同一のクロックのエッジで動作し、データ出力からデータを出力する少なくとも１個以上のスキャン可能な第３の記憶素子とを備え、
前記テスト方法は、
マルチサイクルテストステップと、
シングルサイクルテストステップとを備え、
前記マルチサイクルテストステップは、
前記第１，２，３の記憶素子のデータ入力と、他の前記記憶素子のデータ出力を接続してスキャンチェーンを構成し、前記スキャンチェーン中の全ての前記記憶素子に対して、テストクロックレートで検査パターンをシリアルにシフト入力するスキャンステップと、
前記第１の記憶素子に対して、前記第１の記憶素子のデータ出力から、前記第２の記憶素子のデータ入力までのマルチサイクル数と同一またはそれ以上のサイクル数の間、キャプチャ動作の前または前記スキャンステップ中にデータをホールドするマルチサイクルホールドステップと、
前記第１，２，３の記憶素子のデータ入力を、前記論理回路に接続し、前記論理回路に対する前記検査パターンの応答を、前記記憶素子のデータ入力から取り込むマルチサイクルキャプチャステップと、
前記第１，２，３の記憶素子のデータ入力と、他の前記記憶素子のデータ出力を接続してスキャンチェーンを構成し、前記記憶素子からデータをシフトアウトするシフトアウトステップとを備え、
前記シングルサイクルテストステップは、
前記スキャンステップと、
前記第１，２，３の記憶素子のデータ入力を、前記論理回路に接続し、前記第２の記憶素子については、あらかじめ決められた固定値を前記記憶素子のデータ入力から取り込み、前記第２の記憶素子を除く前記記憶素子については、前記論理回路に対する前記検査パターンの応答を、データ入力から取り込むシングルサイクルキャプチャステップと、
前記シフトアウトステップとを備える、
ことを特徴とする半導体集積回路のテスト方法。
【請求項３】
マルチサイクルパスを含む半導体集積回路のテスト方法であって、
前記半導体集積回路は、
クロック信号のエッジで動作し、データ入力とデータ出力を持つスキャン可能な第１の記憶素子と、
前記第１の記憶素子のデータ出力から、システムクロックレートの１サイクルより長いマルチサイクルで動作する論理回路中のパスを通ったデータをデータ入力として受け取り、前記第１の記憶素子と同一のクロックのエッジで動作し、データ出力からデータを出力する少なくとも１個以上のスキャン可能な第２の記憶素子と、
前記第１の記憶素子の出力から、前記システムクロックレートの１サイクルで動作する論理回路中のシングルサイクルパスを通ったデータをデータ入力として受け取り、前記第１の記憶素子と同一のクロックのエッジで動作し、データ出力からデータを出力する少なくとも１個以上のスキャン可能な第３の記憶素子とを備え、
前記テスト方法は、
マルチサイクルテストステップと、
シングルサイクルテストステップとを備え、
前記マルチサイクルテストステップは、
前記第１，２，３の記憶素子のデータ入力と、他の前記記憶素子のデータ出力を接続してスキャンチェーンを構成し、前記スキャンチェーン中の全ての前記記憶素子に対して、テストクロックレートで検査パターンをシリアルにシフト入力するスキャンステップと、
前記第１の記憶素子に対して、前記第１の記憶素子のデータ出力から、前記第２の記憶素子のデータ入力までのマルチサイクル数と同一またはそれ以上のサイクル数の間、キャプチャ動作の前または前記スキャンステップ中にデータをホールドするマルチサイクルホールドステップと、
前記第１，２，３の記憶素子のデータ入力を、前記論理回路に接続し、前記論理回路に対する前記検査パターンの応答を、前記記憶素子のデータ入力から取り込むマルチサイクルキャプチャステップと、
前記第１，２，３の記憶素子のデータ入力と、他の前記記憶素子のデータ出力を接続してスキャンチェーンを構成し、前記記憶素子からデータをシフトアウトするシフトアウトステップとを備え、
前記シングルサイクルテストステップは、
前記スキャンステップと、
前記第２の記憶素子のデータ入力を、他の前記記憶素子のデータ出力と接続し、前記第２の記憶素子を除く前記記憶素子のデータ入力を前記論理回路に接続し、前記第２の記憶素子については、前記第２の記憶素子と同一のスキャンチェーン接続された直前の前記記憶素子のデータ出力を取り込み、前記第２の記憶素子を除く前記記憶素子については、前記論理回路に対する前記検査パターンの応答を、前記記憶素子のデータ入力から取り込むシングルサイクルキャプチャステップと、
前記シフトアウトステップとを備える、
ことを特徴とする半導体集積回路のテスト方法。
【請求項４】
請求項１から請求項３のいずれか１つにおいて、
前記第1の記憶素子に対するスキャンチェーンを、他のスキャンチェーンと別に構成する、
ことを特徴とする半導体集積回路のテスト方法。
【請求項５】
請求項１から請求項３のいずれか１つにおいて、
前記シフトアウトステップ中にテストパターンをシフト入力する、
ことを特徴とする半導体集積回路のテスト方法。
【請求項６】
請求項１から請求項３のいずれか１つに記載のテスト方法を必要な回数だけ繰り替えす、
ことを特徴とする半導体集積回路のテスト方法。
【請求項７】
マルチサイクルパスを含む半導体集積回路であって、
クロック信号のエッジで動作し、データ入力とデータ出力を持つスキャン可能な第１の記憶素子と、
前記第１の記憶素子のデータ出力から、システムクロックレートの1サイクルより長いマルチサイクルで動作する論理回路中のパスを通ったデータをデータ入力として受け取り、前記第１の記憶素子と同一のクロックのエッジで動作し、データ出力からデータを出力する少なくとも１個以上のスキャン可能な第２の記憶素子と、
前記第１の記憶素子の出力から、前記システムクロックレートの１サイクルで動作する論理回路中のシングルサイクルパスを通ったデータをデータ入力として受け取り、前記第１の記憶素子と同一のクロックのエッジで動作し、データ出力からデータを出力する少なくとも１個以上のスキャン可能な第３の記憶素子とを備え、
前記半導体集積回路は、
マルチサイクルテストモードと、
シングルサイクルテストモードとを有し、
前記マルチサイクルテストモードでは、
スキャンモード，マルチサイクルホールドモード，マルチサイクルキャプチャモード，シフトアウトモードを選択的に実行し、
前記シングルサイクルテストモードでは、
前記スキャンモード，シングルサイクルキャプチャモード，前記シフトアウトモードを選択的に実行し、
前記スキャンモードでは、
前記第１，２，３の記憶素子のデータ入力と、他の前記記憶素子のデータ出力を接続してスキャンチェーンを構成し、前記スキャンチェーン中の全ての前記記憶素子に対して、テストクロックレートで検査パターンをシリアルにシフト入力し、
前記マルチサイクルホールドモードでは、
前記第１の記憶素子に対して、前記第１の記憶素子のデータ出力から、前記第２の記憶素子のデータ入力までのマルチサイクル数と同一またはそれ以上のサイクル数の間、キャプチャ動作の前または前記スキャンステップ中にデータをホールドし、
前記マルチサイクルキャプチャモードでは、
前記第１，２，３の記憶素子のデータ入力を、前記論理回路に接続し、前記論理回路に対する前記検査パターンの応答を、データ入力から取り込み、
前記シフトアウトモードでは、
前記第１，２，３の記憶素子のデータ入力と、他の前記記憶素子のデータ出力を接続してスキャンチェーンを構成し、前記記憶素子からデータをシフトアウトし、前記記憶素子に取り込んだ出力応答を解析し、
前記シングルサイクルキャプチャモードでは、
前記第１，２，３の記憶素子のデータ入力を、前記論理回路に接続し、前記第２の記憶素子については、データをホールドし、前記第２の記憶素子を除く前記記憶素子については、前記論理回路に対する前記検査パターンの応答を、データ入力から取り込む、
ことを特徴とする半導体集積回路。
【請求項８】
請求項７において、
前記スキャン可能な記憶素子を前記モードのうち特定の1つのモードを構成するための前記スキャン可能な記憶素子の値をホールドするクロックイネーブル信号を生成するクロックイネーブル信号生成部と、
前記スキャン可能な記憶素子をスキャンモードにするスキャンイネーブル信号とを生成するスキャンイネーブル信号生成部と、
マルチサイクルテストモードとシングルサイクルテストモードを選択するマルチサイクルテストイネーブル信号とを生成するマルチサイクルテストイネーブル信号生成部とをさらに備える、
ことを特徴とする半導体集積回路。
【請求項９】
請求項７において、
前記テストパターン生成のために擬似ランダムパターン生成器(PRPG)を用いる、
ことを特徴とする半導体集積回路。
【請求項１０】
請求項７において、
前記出力応答を解析するために圧縮器(MISR)を用いる、
ことを特徴とする半導体集積回路。
【請求項１１】
請求項７または請求項９において、
前記マルチサイクルテストモードとシングルサイクルテストモードを選択するマルチサイクルテストイネーブル信号に、前記擬似ランダムパターン生成器が生成する信号を用いる、
ことを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組込み自己テストによる半導体集積回路のテスト、特に、マルチサイクルパスを持つ回路のテストに関する。
【背景技術】
【０００２】
従来のマルチサイクルパスを含む半導体集積回路のテストでは、スキャンフリップフロップ（以下「ＳＦＦ」と表記）に対して、クロックイネーブル信号によってＳＦＦの値をホールドさせて、ホールドされた値を取り込むことによって行われている。マルチサイクルパスを含む半導体集積回路およびそのテスト方法については、特許文献１に掲載しているものがある。
【０００３】
図８は従来のマルチサイクルパスを含む半導体集積回路であり、図９はその波形図である。ここでは図７（ａ）〜（ｃ）に示すようなＳＦＦを用いてキャプチャとホールドとシフトの動作を実現している。例えば図７（ａ）のＳＦＦ７００では、データフリップフロップ（以下「ＤＦＦ」と表記）７１０のデータ入力Ｄに接続されるセレクタ７２０と、このセレクタ７２０に接続されたセレクタ７３０とを持つ。ＤＦＦ７１０はクロック入力ＣＫとデータ出力Ｑを持つ。セレクタ７２０は、入力データｄまたはセレクタ７３０の出力信号７３３をスキャンイネーブル信号ｓｅに応じて選択する。セレクタ７３０は、スキャン入力信号ｓｉまたはＤＦＦ７１０の出力信号７１３をクロックイネーブル信号ｃｅに応じて選択する。クロックイネーブル信号ｃｅの値によって、ＤＦＦ７１０がシフトされるかホールドされるかが決められる。クロックイネーブル信号ｃｅを用いてＳＦＦの値をホールドさせることで、テスト時のＳＦＦの動作を実動作でのクロックレートよりも落とすことができる。また、図７（ｂ），（ｃ）に示すようなＳＦＦ７４０，７５０であっても、図７（ａ）に示すＳＦＦ７００と同様の動作を実現することができる。なお、図７（ｄ）は、図７（ａ）〜（ｃ）に示したＳＦＦを表し、図７（ｅ）は、クロックイネーブル信号を持たないＳＦＦを表す。
【０００４】
以下、従来のマルチサイクルパスを含む半導体集積回路の動作およびそのテスト方法について、図８の回路図と図９の波形図を参照しながら説明する。
【０００５】
図８の１１は第１のＳＦＦであり、１１のデータ出力ｑから論理回路４０を通って第２のＳＦＦ２２のデータ入力ｄまでに到達し、１１のデータ出力ｑから論理回路４０を通って第３のＳＦＦ３１のデータ入力ｄまでに到達する経路が存在している。１００はＢＩＳＴコントローラであり、その内部にコントローラ１０２を持つ。また、１０３はスキャンイネーブル生成部であって、ＳＦＦ１１の端子ｓｅにスキャンイネーブル信号ｓｅ１を入力し、ＳＦＦ２２および３１の端子ｓｅにスキャンイネーブル信号ｓｅ２を入力する。１０４はクロックイネーブル生成部であって、ＳＦＦ１１の端子ｃｅにクロックイネーブル信号ｃｅ１を入力する。１０５はランダムパターン生成部（ＰＲＰＧ）であり、ＳＦＦ１１のスキャン入力ｓｉへ信号ｓｉ１を入力し、ＳＦＦ２２のスキャン入力ｓｉへ信号ｓｉ２を入力する。１０６はデータ圧縮器（ＭＩＳＲ）であり、ＳＦＦ１１および３１の出力ｑが入力ｓｏ１およびｓｏ２として入力される。
【０００６】
ＳＦＦ１１の動作は、図9の波形に示すように信号ｃｅ１の値に応じて、シフトとホールドが行われる。この例では、クロックイネーブル信号ｃｅ１がクロック信号ｃｋの1レート毎にLowとHighが変わるためシフト後の1クロックサイクルの間データがホールドされる。また、ＳＦＦ２２，３１はクロックイネーブル信号ｃｅを持っていないので、ホールドされない。ＳＦＦ１１については、時刻ｔ０においてシフトが行われ、その次の時刻ｔ１ではホールド状態になり、さらに次の時刻ｔ２でキャプチャ動作が行われる。そのために時刻ｔ０におけるシフト動作が最終のシフトとなる。ＳＦＦ２２，３１については、時刻ｔ０においてシフトが行われ、その次の時刻ｔ１はホールドが行われずにシフトされ、さらに次の時刻ｔ２でキャプチャ動作が行われる。そのために時刻ｔ１におけるシフトが最後のシフトとなる。キャプチャ直前のＳＦＦ１１の出力ｑの値が時刻ｔ０で保持され、ＳＦＦ１１から論理回路４０を通ってそのデータを受け取るＳＦＦ２２，３１では、時刻ｔ０から２クロック後の時刻ｔ２でキャプチャ動作が行われるため、ＳＦＦ１１から論理回路４０を通ってそのデータを受け取るＳＦＦ２２，３１までの経路がマルチサイクルのタイミングで検査が行われる。クロックイネーブル信号ｃｅおよびスキャンイネーブル信号ｓｅを用いて、ＳＦＦ１１をシフト中およびキャプチャの直前にホールドさせることで、最後のシフト動作からキャプチャ動作までの区間を１クロックサイクルより長くしている。
【特許文献１】米国特許第６，１４５，１０５号公報（図３ｃ、図４、図５ｄ）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記のようにクロックイネーブル信号によって、ＳＦＦ１１の値がホールドされることで、ＳＦＦ１１の出力ｑから論理回路４０を通ってデータを受け取るＳＦＦ２２および３１のデータ入力ｄまでの経路は、すべてマルチサイクルのタイミングでデータがキャプチャされる。そのため、ＳＦＦ１１のデータ出力ｑから論理回路４０を通ってデータを受け取るＳＦＦ２２および３１までの経路の中で、通常動作においてマルチサイクルでない（シングルサイクルの）パスであっても、それらのパスは全てマルチサイクルのタイミングでデータがキャプチャされる。例えば、ＳＦＦ１１のデータ出力ｑから論理回路４０を通ってＳＦＦ２２の入力ｄでデータを受け取るまでの経路がマルチサイクルであって、ＳＦＦ１１のデータ出力ｑから論理回路４０を通ってＳＦＦ３１の入力ｄでデータを受け取るまでの経路がシングルサイクルである場合には、通常動作においてシングルサイクルであるＳＦＦ１１のデータ出力ｑから論理回路４０を通ってＳＦＦ３１の入力ｄでデータを受け取るまでの経路に対してもマルチサイクルのタイミングでしかテストが行われなくなってしまう。そのため、マルチサイクルパスについては実使用状態でテスト可能であるが、通常動作でシングルサイクルで動作する経路に対しては実動作速度検査ができなくなる。
【０００８】
本発明は以上の問題点を解決するためになされたものであり、その目的は、通常動作におけるマルチサイクルパスとシングルサイクルパスを含む論理回路に対して、マルチサイクルパスに対してはマルチサイクルでの実動作検査を行い、シングルサイクルパスに対してはシングルサイクルでの実動作検査を行うことができる半導体集積回路およびその検査方法を提供することである。
【課題を解決するための手段】
【０００９】
本発明による半導体集積回路のテスト方法は、マルチサイクルパスを含む半導体集積回路のテスト方法である。前記半導体集積回路は、クロック信号のエッジで動作し、データ入力とデータ出力を持つスキャン可能な第１の記憶素子と、前記第1の記憶素子のデータ出力から、システムクロックレートの1サイクルより長いマルチサイクルで動作する論理回路中のパスを通ったデータをデータ入力として受け取り、前記クロック信号のエッジで動作し、データ出力からデータを出力する少なくとも１個以上のスキャン可能な第２の記憶素子と、前記第１の記憶素子の出力から、前記システムクロックレートの１サイクルで動作する論理回路中のシングルサイクルパスを通ったデータをデータ入力として受け取り、前記クロック信号のエッジで動作し、データ出力からデータを出力する少なくとも１個以上のスキャン可能な第３の記憶素子とを備える。前記テスト方法は、マルチサイクルテストステップと、シングルサイクルテストステップとを備える。前記マルチサイクルテストステップは、前記第１，２，３の記憶素子のデータ入力と、他の前記スキャン可能な記憶素子のデータ出力を接続してスキャンチェーンを構成し、前記スキャンチェーン中の全ての前記スキャン可能な記憶素子に対して、テストクロックレートで検査パターンをシリアルにシフト入力するスキャンステップと、前記第１の記憶素子に対して、前記第１の記憶素子のデータ出力から、前記第２の記憶素子のデータ入力までのマルチサイクル数と同一またはそれ以上のサイクル数の間、キャプチャ動作の前または前記スキャンステップ中にデータをホールドするマルチサイクルホールドステップと、前記第１，２，３の記憶素子のデータ入力を、前記論理回路に接続し、前記論理回路に対する前記検査パターンの応答を、前記記憶素子のデータ入力から取り込むマルチサイクルキャプチャステップと、前記第１，２，３の記憶素子のデータ入力と、他の前記スキャン可能な記憶素子のデータ出力を接続してスキャンチェーンを構成し、前記記憶素子からデータをシフトアウトするシフトアウトステップとを備える。前記シングルサイクルテストステップは、前記スキャンステップと、前記第１，２，３の記憶素子のデータ入力を、前記論理回路に接続し、前記第２の記憶素子については、データをホールドし、前記第２の記憶素子を除く記憶素子については、前記論理回路に対する前記検査パターンの応答を、前記記憶素子のデータ入力から取り込むシングルサイクルキャプチャステップと、前記シフトアウトステップとを備える。
【００１０】
本発明による半導体集積回路のもう１つのテスト方法は、マルチサイクルパスを含む半導体集積回路のテスト方法である。前記半導体集積回路は、クロック信号のエッジで動作し、データ入力とデータ出力を持つスキャン可能な第１の記憶素子と、前記第１の記憶素子のデータ出力から、システムクロックレートの１サイクルより長いマルチサイクルで動作する論理回路中のパスを通ったデータをデータ入力として受け取り、前記第１の記憶素子と同一のクロックのエッジで動作し、データ出力からデータを出力する少なくとも1個以上のスキャン可能な第２の記憶素子と、前記第１の記憶素子の出力から、前記システムクロックレートの１サイクルで動作する論理回路中のシングルサイクルパスを通ったデータをデータ入力として受け取り、前記第１の記憶素子と同一のクロックのエッジで動作し、データ出力からデータを出力する少なくとも１個以上のスキャン可能な第３の記憶素子とを備える。前記テスト方法は、マルチサイクルテストステップと、シングルサイクルテストステップとを備える。前記マルチサイクルテストステップは、前記第１，２，３の記憶素子のデータ入力と、他の前記記憶素子のデータ出力を接続してスキャンチェーンを構成し、前記スキャンチェーン中の全ての前記記憶素子に対して、テストクロックレートで検査パターンをシリアルにシフト入力するスキャンステップと、前記第１の記憶素子に対して、前記第１の記憶素子のデータ出力から、前記第２の記憶素子のデータ入力までのマルチサイクル数と同一またはそれ以上のサイクル数の間、キャプチャ動作の前または前記スキャンステップ中にデータをホールドするマルチサイクルホールドステップと、前記第１，２，３の記憶素子のデータ入力を、前記論理回路に接続し、前記論理回路に対する前記検査パターンの応答を、前記記憶素子のデータ入力から取り込むマルチサイクルキャプチャステップと、前記第１，２，３の記憶素子のデータ入力と、他の前記記憶素子のデータ出力を接続してスキャンチェーンを構成し、前記記憶素子からデータをシフトアウトするシフトアウトステップとを備える。前記シングルサイクルテストステップは、前記スキャンステップと、前記第１，２，３の記憶素子のデータ入力を、前記論理回路に接続し、前記第２の記憶素子については、あらかじめ決められた固定値を前記記憶素子のデータ入力から取り込み、前記第２の記憶素子を除く前記記憶素子については、前記論理回路に対する前記検査パターンの応答を、データ入力から取り込むシングルサイクルキャプチャステップと、前記シフトアウトステップとを備える。
【００１１】
本発明による半導体集積回路のさらにもう１つのテスト方法は、マルチサイクルパスを含む半導体集積回路のテスト方法である。前記半導体集積回路は、クロック信号のエッジで動作し、データ入力とデータ出力を持つスキャン可能な第１の記憶素子と、前記第１の記憶素子のデータ出力から、システムクロックレートの１サイクルより長いマルチサイクルで動作する論理回路中のパスを通ったデータをデータ入力として受け取り、前記第１の記憶素子と同一のクロックのエッジで動作し、データ出力からデータを出力する少なくとも１個以上のスキャン可能な第２の記憶素子と、前記第１の記憶素子の出力から、前記システムクロックレートの１サイクルで動作する論理回路中のシングルサイクルパスを通ったデータをデータ入力として受け取り、前記第１の記憶素子と同一のクロックのエッジで動作し、データ出力からデータを出力する少なくとも１個以上のスキャン可能な第３の記憶素子とを備える。前記テスト方法は、マルチサイクルテストステップと、シングルサイクルテストステップとを備える。前記マルチサイクルテストステップは、前記第１，２，３の記憶素子のデータ入力と、他の前記記憶素子のデータ出力を接続してスキャンチェーンを構成し、前記スキャンチェーン中の全ての前記記憶素子に対して、テストクロックレートで検査パターンをシリアルにシフト入力するスキャンステップと、前記第１の記憶素子に対して、前記第１の記憶素子のデータ出力から、前記第２の記憶素子のデータ入力までのマルチサイクル数と同一またはそれ以上のサイクル数の間、キャプチャ動作の前または前記スキャンステップ中にデータをホールドするマルチサイクルホールドステップと、前記第１，２，３の記憶素子のデータ入力を、前記論理回路に接続し、前記論理回路に対する前記検査パターンの応答を、前記記憶素子のデータ入力から取り込むマルチサイクルキャプチャステップと、前記第１，２，３の記憶素子のデータ入力と、他の前記記憶素子のデータ出力を接続してスキャンチェーンを構成し、前記記憶素子からデータをシフトアウトするシフトアウトステップとを備える。前記シングルサイクルテストステップは、前記スキャンステップと、前記第２の記憶素子のデータ入力を、他の前記記憶素子のデータ出力と接続し、前記第２の記憶素子を除く前記記憶素子のデータ入力を前記論理回路に接続し、前記第２の記憶素子については、前記第２の記憶素子と同一のスキャンチェーン接続された直前の前記記憶素子のデータ出力を取り込み、前記第２の記憶素子を除く前記記憶素子については、前記論理回路に対する前記検査パターンの応答を、前記記憶素子のデータ入力から取り込むシングルサイクルキャプチャステップと、前記シフトアウトステップとを備える。
【００１２】
上記テスト方法において、前記第1の記憶素子に対するスキャンチェーンを、他のスキャンチェーンと別に構成することが好ましい。
【００１３】
上記テスト方法において、前記シフトアウトステップ中にテストパターンをシフト入力することが好ましい。
【００１４】
上記テスト方法を必要な回数だけ繰り替えすことが好ましい。
【００１５】
本発明による半導体集積回路は、マルチサイクルパスを含む半導体集積回路であって、クロック信号のエッジで動作し、データ入力とデータ出力を持つスキャン可能な第１の記憶素子と、前記第１の記憶素子のデータ出力から、システムクロックレートの1サイクルより長いマルチサイクルで動作する論理回路中のパスを通ったデータをデータ入力として受け取り、前記第１の記憶素子と同一のクロックのエッジで動作し、データ出力からデータを出力する少なくとも１個以上のスキャン可能な第２の記憶素子と、前記第１の記憶素子の出力から、前記システムクロックレートの１サイクルで動作する論理回路中のシングルサイクルパスを通ったデータをデータ入力として受け取り、前記第１の記憶素子と同一のクロックのエッジで動作し、データ出力からデータを出力する少なくとも１個以上のスキャン可能な第３の記憶素子とを備える。前記半導体集積回路は、マルチサイクルテストモードと、シングルサイクルテストモードとを有する。前記マルチサイクルテストモードでは、スキャンモード，マルチサイクルホールドモード，マルチサイクルキャプチャモード，シフトアウトモードを選択的に実行する。前記シングルサイクルテストモードでは、前記スキャンモード，シングルサイクルキャプチャモード，前記シフトアウトモードを選択的に実行する。前記スキャンモードでは、前記第１，２，３の記憶素子のデータ入力と、他の前記記憶素子のデータ出力を接続してスキャンチェーンを構成し、前記スキャンチェーン中の全ての前記記憶素子に対して、テストクロックレートで検査パターンをシリアルにシフト入力する。前記マルチサイクルホールドモードでは、前記第１の記憶素子に対して、前記第１の記憶素子のデータ出力から、前記第２の記憶素子のデータ入力までのマルチサイクル数と同一またはそれ以上のサイクル数の間、キャプチャ動作の前または前記スキャンステップ中にデータをホールドする。前記マルチサイクルキャプチャモードでは、前記第１，２，３の記憶素子のデータ入力を、前記論理回路に接続し、前記論理回路に対する前記検査パターンの応答を、データ入力から取り込む。前記シフトアウトモードでは、前記第１，２，３の記憶素子のデータ入力と、他の前記記憶素子のデータ出力を接続してスキャンチェーンを構成し、前記記憶素子からデータをシフトアウトし、前記記憶素子に取り込んだ出力応答を解析する。前記シングルサイクルキャプチャモードでは、前記第１，２，３の記憶素子のデータ入力を、前記論理回路に接続し、前記第２の記憶素子については、データをホールドし、前記第２の記憶素子を除く前記記憶素子については、前記論理回路に対する前記検査パターンの応答を、データ入力から取り込む。
【００１６】
上記半導体集積回路において、前記スキャン可能な記憶素子を前記モードのうち特定の1つのモードを構成するための前記スキャン可能な記憶素子の値をホールドするクロックイネーブル信号を生成するクロックイネーブル信号生成部と、前記スキャン可能な記憶素子をスキャンモードにするスキャンイネーブル信号とを生成するスキャンイネーブル信号生成部と、マルチサイクルテストモードとシングルサイクルテストモードを選択するマルチサイクルテストイネーブル信号とを生成するマルチサイクルテストイネーブル信号生成部とをさらに備えることが好ましい。
【００１７】
上記半導体集積回路において、前記テストパターン生成のために擬似ランダムパターン生成器(PRPG)を用いることが好ましい。
【００１８】
上記半導体集積回路において、前記出力応答を解析するために圧縮器(MISR)を用いることが好ましい。
【００１９】
上記半導体集積回路において、前記マルチサイクルテストモードとシングルサイクルテストモードを選択するマルチサイクルテストイネーブル信号に、前記擬似ランダムパターン生成器が生成する信号を用いることが好ましい。
【発明の効果】
【００２０】
本発明によって、マルチサイクルパスを含む半導体集積回路のテストにおいて、マルチサイクルテストステップと、シングルサイクルテストステップとを設け、マルチサイクルテストステップでは、マルチサイクルパスおよびシングルサイクルパスに対してマルチサイクルでテスト行い、シングルサイクルテストステップでは、シングルサイクルパスに対してはシングルサイクルでテストを行い、マルチサイクルパスについてはキャプチャ時にデータが取り込まれないようにすることで、マルチサイクルパスを含む半導体集積回路を実動作の状態でテストを行うことが可能となる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態について図面を参照しつつ説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【００２２】
図１は、本発明の実施形態による半導体集積回路の概略構成を示すブロック図である。      
【００２３】
１１はスキャン可能な第１の記憶素子であって本実施の形態では図７（ａ）に記載の回路７００を用い、２１はスキャン可能な第２の記憶素子であって本実施の形態では図７（ｂ）に記載の回路７４０を用い、３１はスキャン可能な第３の記憶素子であって本実施の形態では図７（ｅ）に記載の回路を用いて説明する。
【００２４】
４０は論理回路であって、第１の記憶素子１１のデータ出力ｑから論理回路４０を通って第２の記憶素子２１のデータ入力ｄへの経路は、そのデータ転送に、システムクロックの２レート分必要なマルチサイクルパスである。また、第１の記憶素子１１のデータ出力ｑから論理回路４０を通って第３の記憶素子３１のデータ入力ｄへの経路は、そのデータ転送に、システムクロックの1レート分必要なシングルサイクルパスである。
【００２５】
１００はＢＩＳＴコントローラであり、１０１はテストアクセスポート（ＴＡＰ）であり、１０２は制御部である。
【００２６】
スキャンイネーブル生成部１０３は、第１の記憶素子１１のスキャンイネーブル信号ｓｅ１（１１４）と、第２および第３の記憶素子２１および３１のスキャンイネーブル信号ｓｅ２（１１５）とを生成する。与えられるスキャンイネーブル信号ｓｅ１，ｓｅ２の値に応じて記憶素子１１，２１，３１はスキャン入力ｓｉまたはデータ入力ｄを選択的に取り込む。
【００２７】
クロックイネーブル生成部１０４は、第１の記憶素子１１のクロックイネーブル信号ｃｅ１（１１３）を生成する。第１の記憶素子１１は、スキャンイネーブル信号ｓｅ１（１１１）がアクティブの時にクロックイネーブル信号ｃｅ１（１１３）の値に応じてホールド状態（データ出力からの値を取り込む）とシフト状態（スキャン入力ｓｉに与えられるスキャン入力信号ｓｉ１を取り込む）とを切り換える。本実施形態では、第１の記憶素子１１から第２の記憶素子２１までの経路が２サイクルのマルチサイクルなので、クロックイネーブル信号ｃｅ１（１１３）は、システムクロックと同一の周期であるクロック信号ｃｋの立ち上がりの２回のうち１回がアクティブになるように生成される。
【００２８】
１０５はランダムパターン発生器（ＰＲＰＧ）であり、第１の記憶素子１１で構成される第１のスキャンチェーンのスキャン入力に信号ｓｉ１（１１４）を入力し、第２の記憶素子２１と第３の記憶素子３１で構成される第２のスキャンチェーンのスキャン入力に信号ｓｉ２（１１５）を入力する。
【００２９】
１０６は圧縮器（ＭＩＳＲ）であり、第１および第２のスキャンチェーンのスキャンアウト出力１１６および１１７を端子ｓｏ１およびｓｏ２から取り込む。
【００３０】
１０７はマルチサイクルテストイネーブル生成部であり、マルチサイクルテストモードとシングルサイクルテストモードとを識別する信号を生成する。ここではマルチサイクルテスト時に「０」、シングルサイクルテスト時に「１」となるｍｃｔｅ信号を生成する。
【００３１】
５０はＯＲ回路であり、ｍｃｔｅ信号１１８とｃｅ１信号１１３を入力とし、その出力を第１の記憶素子１１のｃｅ端子への入力とする。
【００３２】
６０はインバータであり、ｍｃｔｅ信号１１８の反転値を、第２の記憶素子２１のｃｅ端子への入力とする。
【００３３】
図２は図１の半導体集積回路をテストする時の波形図である。以下マルチサイクルパスを含む半導体集積回路のテスト方法について図１、図２を参照しつつ説明する。
【００３４】
１１、２１、３１の動作状態の「S」はスキャンステップ、「H」はホールドステップ、「C」はキャプチャステップを表す。ｍｃｔｅ信号がＬｏｗの区間がマルチサイクルテストステップであり、Ｈｉｇｈの区間がシングルサイクルテストステップである。
【００３５】
＜マルチサイクルテストステップ＞
マルチサイクルテストステップ中の時刻ｔｍ０では、信号ｓｅ１，ｓｅ２がHighで信号ｃｅ１がHighであるため、第１の記憶素子１１はシフトステップ、第２の記憶素子２１はシフトステップ、第３の記憶素子３１はシフトステップとなり、スキャン入力からの値がスキャン入力データとしてシフトされる。
【００３６】
マルチサイクルテストステップ中の時刻ｔｍ１では、信号ｓｅ１，ｓｅ２がHighで、信号ｃｅ１がLowであるため、第1の記憶素子１１はホールドステップ、第２の記憶素子２１はシフトステップ、第３の記憶素子３１はシフトステップとなり、時刻ｔｍ０でシフトされた第1の記憶素子１１の値がホールドされ、記憶素子２１および３１はスキャン入力からの値がスキャン入力データとしてシフトされる。
【００３７】
マルチサイクルテストステップ中の時刻ｔｍ２では、信号ｓｅ１，ｓｅ２がLowで、信号ｃｅ１がHighであるため、第１の記憶素子１１はキャプチャステップ、第２の記憶素子２１はキャプチャステップ、第３の記憶素子３１はキャプチャステップとなり、データ入力からの値を取り込む。
【００３８】
第２のスキャン可能な記憶素子２１では、時刻ｔｍ０で値が確定した第１の記憶素子１１の値を、その２クロック後の時刻ｔｍ２で取り込むため、実動作での２サイクルのマルチサイクルと同一のタイミングでデータを取り込むことができる。
【００３９】
第３の記憶素子３１では、時刻ｔｍ０で値が確定した第１の記憶素子１１の値を、その２クロック後のｔｍ０で取り込むため、実動作での1サイクルのシングルサイクルとは異なるタイミングでデータを取り込むことになる。
【００４０】
マルチサイクルテストステップ中の時刻ｔｍ３では、信号ｓｅ１，ｓｅ２がHighで、信号ｃｅ１がLowであるため、第1の記憶素子１１はホールドステップ、第２の記憶素子２１はシフトステップ、第３の記憶素子３１はシフトステップとなり、時刻ｔｍ２でキャプチャされた第１の記憶素子１１の値はホールドされ、記憶素子２１および３１は時刻ｔｍ２でキャプチャした値をシフトアウトする。
【００４１】
＜シングルサイクルテストステップ＞
シングルサイクルテストステップ中の時刻ｔｓ０では、信号ｓｅ１，ｓｅ２がHighで、信号ｃｅ１がHighであるため、第1の記憶素子１１はシフトステップ、第２の記憶素子２１はシフトステップ、第３の記憶素子３１はシフトステップとなり、スキャン入力からの値がスキャン入力データとしてシフトされる。
【００４２】
シングルサイクルテストステップ中の時刻ｔｓ１では、信号ｓｅ１，ｓｅ２がHighで、信号ｃｅ１がLowであるが、信号ｍｃｔｅがHighのために第1の記憶素子１１のce入力にはHighが入力される。そのため第1の記憶素子１１はシフトステップ、第２の記憶素子２１はシフトステップ、第３の記憶素子３１はシフトステップとなり、スキャン入力からの値がスキャン入力データとしてシフトされる。
【００４３】
シングルサイクルテストステップ中の時刻ｔｓ２では、信号ｓｅ１，ｓｅ２がLowで、信号ｃｅ１がHighであるが、信号ｍｃｔｅがHighのために第２の記憶素子２１のce入力にはLowが入力される。そのため第1の記憶素子１１はキャプチャステップ、第２の記憶素子２１はホールドステップ、第３の記憶素子３１はキャプチャステップとなり、第１および第３の記憶素子１１および３１は、そのデータ入力から値を取り込み、第２の記憶素子２１はデータをホールドする。
【００４４】
第２の記憶素子２１では、時刻ｔｓ１で値が確定した第１の記憶素子１１の値を、その１クロック後の時刻ｔｓ２で取り込むと、実動作では２サイクルのマルチサイクルのために、正しくデータが取り込めないが、データをホールドすることで、第1の記憶素子１１の値を取り込まないようにする。
【００４５】
第３の記憶素子３１では、時刻ｔｓ１で値が確定した第１の記憶素子１１の値を、その１クロック後の時刻ｔｓ２で取り込むため、実動作での1サイクルのシングルサイクルと同一のタイミングでデータを取り込むことができる。
【００４６】
シングルサイクルテストステップ中の時刻ｔｓ３では、信号ｓｅ１，ｓｅ２がHighで、信号ｃｅ１がLowであるため、第１の記憶素子１１はシフトステップ、第２の記憶素子２１はシフトステップ、第３の記憶素子３１はシフトステップであり、時刻ｔｓ２でキャプチャした値をシフトアウトする。
【００４７】
以上のように本発明の実施形態によれば、マルチサイクルを含む半導体集積回路のテストにおいて、マルチサイクルテストステップとシングルサイクルステップを設け、マルチサイクルステップ時には、ホールドステップを用いてデータをホールドさせてマルチサイクルでテストを行い、シングルサイクルステップ時には、ホールドステップを用いず、シングルサイクルパスでは実動作でのテストを行い、マルチサイクルパスではキャプチャ動作時にデータを受け取るフリップフロップをホールドさせることで、シングルサイクルパスとマルチサイクルパスをそれぞれ実動作状態でテストを行うことが可能となる。
【００４８】
なお、本実施の形態では信号ｍｃｔｅがLowの区間がマルチサイクルテストステップ、Highの区間がシングルサイクルテストステップとして説明したが、OR回路５０およびインバータ回路６０を変更し、信号ｍｃｔｅがHighの区間がマルチサイクルテストステップ、Lowの区間がシングルサイクルテストステップとしても本実施の形態と同様の効果を得ることができる。
【００４９】
また、本実施の形態では、第２の記憶素子２１として図７（ｂ）の回路を用いたが、これに代えて図７（ｅ）のＳＦＦを用いた第２の記憶素子２２を用いてもよい。この場合の半導体集積回路の構成を図３に示す。さらに、この回路では、図１に示したインバータ回路６０に代えてＯＲ回路７０を設けている。ＯＲ回路７０は、論理回路４０からの出力と信号ｍｔｃｅとのＯＲを第２の記憶素子（ＳＦＦ）２２の入力ｄに出力する。図３に示した半導体集積回路では、図４に示すようにシングルサイクルテストステップのキャプチャステップでは、論理回路４０から出力値とmcte信号値を入力とするＯＲ回路７０の出力値をＳＦＦ２２のｄ入力から取り込むことで、ＳＦＦ２２には固定値が取り込まれる。これによっても本実施の形態と同様の効果を得ることができる。
【００５０】
また、図７（ｂ）の回路を用いた第２の記憶素子２１に代えて図７（ｅ）のＳＦＦを用いた第２の記憶素子２２を用いた半導体集積回路のもう１つの例を図５に示す。この回路では、図１に示したインバータ回路６０に代えてＯＲ回路８０を設けている。ＯＲ回路８０は、スキャンイネーブル信号ｓｅ２と信号ｍｔｃｅとのＯＲを第２の記憶素子（ＳＦＦ）２２の入力ｓｅに出力する。図４に示した半導体集積回路では、図５に示すようにシングルサイクルテストステップのキャプチャステップでは、スキャンイネーブル信号ｓｅ２と信号ｍｃｔｅを入力とするＯＲ回路８０の出力値をＳＦＦ２２のスキャンイネーブル信号ｓｅとすることで、図６に示すように時刻ｔｓ２において、第２の記憶素子（ＳＦＦ）２２はキャプチャを行わずにシフトを行うため、シングルサイクルテストステップのキャプチャステップで、第１の記憶素子１１の出力を１サイクル後に受け取ることがなく、本実施の形態と同様の効果を得ることができる。
【００５１】
また、本実施の形態では、マルチサイクルテストイネーブル生成部の値を用いて、マルチサイクルテストステップとシングルサイクルステップを作り出したが、ランダムパターン発生器（PRPG）の値を用いることでも本実施の形態と同様の効果を得ることができる。
【図面の簡単な説明】
【００５２】
【図１】本発明の実施形態による半導体集積回路の構成を示すブロック図である。
【図２】図1に示した半導体集積回路の波形図である。
【図３】図１に示した半導体集積回路の変形例の構成を示すブロック図である。
【図４】図３に示した半導体集積回路の波形図である。
【図５】図１に示した半導体集積回路の変形例の構成を示すブロック図である。
【図６】図５に示した半導体集積回路の波形図である。
【図７】シフトとキャプチャとホールド状態を持つFF回路を示す図である。
【図８】従来の半導体集積回路の構成を示すブロック図である。
【図９】図８に示した半導体集積回路の波形図である。
【符号の説明】
【００５３】
１１  スキャン可能な第１の記憶素子
２１  スキャン可能な第２の記憶素子
３１  スキャン可能な第３の記憶素子
４０  論理回路
５０  ＯＲ回路
６０  インバータ
１００  ＢＩＳＴコントローラ
１０１  テストアクセスポート（ＴＡＰ）
１０２  制御部
１０３  スキャンイネーブル生成部
１０４  クロックイネーブル生成部
１０５  ランダムパターン発生器（ＰＲＰＧ）
１０６  圧縮器（ＭＩＳＲ）
１０７  マルチサイクルテストイネーブル生成部
【図１】
2005201821.tif 000003
【図２】
2005201821.tif 000004
【図３】
2005201821.tif 000005
【図４】
2005201821.tif 000006
【図５】
2005201821.tif 000007
【図６】
2005201821.tif 000008
【図７】
2005201821.tif 000009
【図８】
2005201821.tif 000010
【図９】
2005201821.tif 000011