(57)【要約】【課題】メモリマクロを含む半導体集積回路装置の遅延故障を確実に検出できないという問題があった。【解決手段】メモリマクロを備える半導体集積回路装置１であり、スキャンモード制御信号（ＳＭＣ）に応じて、入力データ信号の値とスキャンテスト値とのいずれかを、動作クロックに従って保持する入力データ保持部２２−０〜２２−ｋと、テストモード制御信号（ＴＥＮ）に応じて、入力データ保持部２２−０〜２２−ｋが保持する値とメモリセル部が記憶するデータ値とのいずれかを、複数の入力データ保持部が動作する位相とは異なる位相に従って保持する出力データ保持部４１−０〜４１−ｋと、を備える。入力データ保持部２２−０〜２２−ｋと、出力データ保持部４１−０〜４１−ｋとは、入力データ保持部２２−０を先端として交互に直列に接続され、複数の出力データ保持部の一つが保持する値は、スキャンテスト値として後段の入力データ保持部へ伝送される。【選択図】図１
2011058847.tif 000002
【特許請求の範囲】
【請求項１】
メモリマクロを備える半導体集積回路装置であって、
メモリセル部と、
スキャンモード制御信号に応じて、入力データ信号の値とスキャンテスト値とのいずれかを、動作クロックに従って保持する複数の入力データ保持部と、
テストモード制御信号に応じて、前記複数の入力データ保持部の一つが保持する値と前記メモリセル部が記憶するデータ値とのいずれかを、前記複数の入力データ保持部が動作する位相とは異なる位相に従って保持する複数の出力データ保持部と、を備え、
前記複数の入力データ保持部と、前記複数の出力データ保持部とは、前記複数の入力データ保持部の一つを先端として交互に直列に接続され、
前記複数の出力データ保持部の一つが保持する値は、前記スキャンテスト値として後段の前記入力データ保持部へ伝送される半導体集積回路装置。
【請求項２】
前記スキャンモード制御信号がスキャン・シフト動作に設定された場合、前記複数の入力データ保持部は、前記スキャンテスト値を保持し、
前記スキャンモード制御信号がスキャン・シフト動作以外に設定された場合、前記複数の入力データ保持部は、前記入力データ信号の値を保持することを特徴とする請求項１記載の半導体集積回路装置。
【請求項３】
前記テストモード制御信号が試験モードに設定された場合、前記複数の出力データ保持部は、前記入力データ保持部が保持する値を保持し、
前記テストモード制御信号が通常モードに設定された場合、前記複数の出力データ保持部は、前記メモリセル部が記憶するデータ値を保持することを特徴とする請求項１または２記載の半導体集積回路装置。
【請求項４】
前記複数の入力データ保持部は、
前記スキャンモード制御信号に応じて、前記入力データ信号の値とスキャンテスト値とのいずれかを選択する入力セレクタと、
前記入力セレクタが選択した値を、前記動作クロックに従って保持する入力ラッチと、を備え、
前記複数の出力データ保持部は、
前記テストモード制御信号に応じて、前記入力ラッチが保持する値と、前記データ値とのいずれかを選択する出力セレクタと、
前記出力セレクタが選択した値を、前記入力ラッチが動作する位相とは異なる位相に従って保持する出力ラッチと、を備えることを特徴とする請求項１乃至３のいずれか一項に記載の半導体集積回路装置。
【請求項５】
前記入力ラッチが保持する値は、後段の前記出力データ保持部が有する前記出力セレクタに伝送され、
前記出力ラッチが保持する値は、後段の前記入力データ保持部が有する前記入力セレクタに伝送されることを特徴とする請求項４記載の半導体集積回路装置。
【請求項６】
前記入力ラッチは、前記メモリセル部へ保持する値を出力し、
前記出力セレクタは、前記メモリセル部から前記データ値が入力されることを特徴とする請求項４または５記載の半導体集積回路装置。
【請求項７】
前記複数の入力データ保持部は、前記動作クロックの正位相と逆位相とのいずれかを用い、
前記複数の出力データ保持部は、前記動作クロックの正位相と逆位相のうち、前記複数の入力データ保持部とは異なる位相を用いることを特徴とする請求項１乃至６のいずれか一項に記載の半導体集積回路装置。
【請求項８】
前記複数の出力データ保持部は、前記複数の入力データ保持部が用いるクロックと、同一周波数であって、位相差を有するクロックを用いることを特徴とする請求項１乃至６のいずれか一項に記載の半導体集積回路装置。
【請求項９】
先端の前記入力データ保持部は、スキャンテスト値の入力端子に接続され、
前記テストモード制御信号が試験モードであり、かつ、前記スキャンモード制御信号がスキャン・シフト動作状態である場合、前記複数の入力データ保持部と、前記複数の出力データ保持部とは、データ選択機能付Ｄタイプ・フリップ・フロップからなるスキャンチェーンを形成することを特徴とする請求項１乃至８のいずれか一項に記載の半導体集積回路装置。
【請求項１０】
前記スキャンモード制御信号に応じて、メモリ制御信号の値とスキャンテスト値とのいずれかを選択するマスタセレクタと、
前記マスタセレクタが選択した値を、前記動作クロックに従って保持するマスタラッチと、
前記マスタラッチが保持する値を、前記マスタラッチが動作する位相とは異なる位相に従って保持するスレーブラッチと、を含む複数の制御値保持部を、さらに備え、
前記複数の制御値保持部は、直列に接続され、
前記複数の制御値保持部の一つの前記スレーブラッチが保持する値は、後段の前記制御値保持部の前記マスタセレクタへ前記スキャンテスト値として伝送され、
終端の前記制御値保持部のスレーブラッチが保持する値は、前記先端の入力データ保持部へ、前記スキャンテスト値として伝送されることを特徴とする請求項１乃至８のいずれか一項に記載の半導体集積回路装置。
【請求項１１】
先端の前記制御値保持部は、スキャンテスト値の入力端子に接続され、
前記テストモード制御信号が試験モードであり、かつ、前記スキャンモード制御信号がスキャン・シフト動作状態である場合、前記複数の制御値保持部、前記複数の入力データ保持部、及び前記複数の出力データ保持部は、データ選択機能付Ｄタイプ・フリップ・フロップからなるスキャンチェーンを形成することを特徴とする請求項８記載の半導体集積回路装置。
【請求項１２】
前記マスタラッチは、前記複数の入力データ保持部と同じクロックを用い、
前記スレーブラッチは、前記複数の出力データ保持部と同じクロックを用いることを特徴とする請求項１０または１１記載の半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリマクロを含む半導体集積回路装置に関し、特に、メモリマクロを含む半導体集積回路装置の遅延故障を検出に関する。
【背景技術】
【０００２】
従来から、半導体集積回路装置では、品質試験として、縮退故障検出試験（スキャン）と遅延故障検出試験（ディレイスキャン）とが実施されている。縮退故障検出試験は、半導体集積回路内の断線やショートを検出する。例えば、特許文献１には、縮退故障検出試験を実施する半導体集積回路の一例が開示されている。
【０００３】
また、遅延故障検出試験は、半導体集積回路内の遅延故障を検出する。半導体集積回路内に遅延故障が存在していた場合、当該半導体集積回路を実際の製品に組み込んだ時に、動作エラーが発生する。近年、半導体集積回路のプロセスの微細化、及びその動作の高速化が行われている。このため、半導体集積回路内の遅延故障が発生する割合が急速に高まりつつある。このため、遅延故障の検出が必須のものとなっている。
特に、ＲＡＭ（Random Access Memory）マクロを含む半導体集積回路では、ＲＡＭマクロの搭載数が増加している。これに伴い、ＲＡＭ周辺回路の遅延故障の効率的かつ確実な除去の必要性が高まっている。
【０００４】
特許文献２には、メモリが内蔵されたＬＳＩ（Large Scale Integration）において、メモリの入力への経路またはメモリの出力からの経路の遅延故障を検出する半導体集積回路が開示されている。
【０００５】
図７は、特許文献２に開示された半導体集積回路の構成例を示すブロック図である。図７の回路は、スキャンＦＦ９０１ａ〜９０１ｍ、セレクタ９０２ａ〜９０２ｅ、遅延調整回路９０３ａ〜９０３ｅ、組合せ回路９１０ａ〜９１０ｃ、メモリ９１１、及びＢＩＳＴ（Built-in Self Test）９１２とから構成されている。組合せ回路９１０ａは、その入力がスキャンＦＦ９０１ａ〜９０１ｄと接続し、その出力は各セレクタ９０２ａ〜９０２ｄにおける入力の１つに接続している。セレクタ９０２ａ〜９０２ｄの他の入力には、ＢＩＳＴ９１２からのデータ出力が接続している。セレクタ９０２ａ〜９０２ｄの出力はメモリ９１１に接続し、また遅延調整回路９０３ａ〜９０３ｄに接続している。遅延調整回路９０３ａ〜９０３ｄは、スキャンＦＦ９０１ｅ〜９０１ｈの入力に接続している。組合せ回路９１０ｂの出力は、スキャンＦＦ９０１ｋに接続している。スキャンＦＦ９０１ｋの出力は遅延調整回路９０３ｅに接続している。遅延調整回路９０３ｅの出力はセレクタ９０２ｅの入力の１つに接続している。メモリ９１１のデータ出力はセレクタ９０２ｅの他の入力に接続している。セレクタ９０２ｅの出力は組合せ回路９１０ｃに接続している。組合せ回路９１０ｃの出力はスキャンＦＦ９０１ｍに接続している。また、セレクタ９０２ｅの出力はＢＩＳＴ９１２にも接続している。
【０００６】
スキャンＦＦ９０１ａ〜９０１ｍはスキャンパスを構成しており、スキャンテスト時は通常入力端子Ｄから値を取りこみ、スキャン・シフト時はテスト入力端子ＳＩからデータを取りこみ、テスト出力端子ＳＯＵＴからデータを出力する構成になっている。セレクタ９０２ａ〜９０２ｄは、メモリ検査制御信号が"Ｈ"の場合に、テスト入力として、ＢＩＳＴ９１２の出力データを選択する。また、メモリ検査制御信号が"Ｌ"の場合には、通常動作として他方の入力を選択する。セレクタ９０２ｅは、テストモード信号が"Ｈ"の場合にスキャンＦＦ９０１ｋの出力を選択し、テストモード信号が"Ｌ"の場合にはメモリの出力データを選択する。
【０００７】
スキャンＦＦ９０１ａから組合せ回路９１０ａを通りメモリ９１１のＡＤＲ端子へ至る経路上のパスディレイテストを行う場合は、まずメモリ検査制御信号を"Ｌ"に設定し、スキャン・シフト動作によりスキャンＦＦ９０１ａ〜９０１ｄおよび組合せ回路９１０ａの入力に初期値を設定し、テスト対象経路の初期化を行う。次に、スキャンＦＦ９０１ａ〜９０１ｄおよび組合せ回路９１０ａの入力に最終値を設定し、テスト対象経路の活性化を行う。
【０００８】
活性化後の値をメモリのクロック周期と同じタイミングでスキャンＦＦ９０１ｅに取りこむ。スキャンＦＦ９０１ｅの値をスキャン・シフト動作により出力端子にシフトさせ、期待値と比較することによりテストを行う。
【０００９】
メモリ９１１のＤＯＵＴから組合せ回路９１０ｃを通りスキャンＦＦ９０１ｍへ至る経路上のパスディレイテストを行う場合は、まずテストモード制御信号を"Ｈ"に設定し、スキャン・シフト動作によりスキャンＦＦ９０１ｋおよび組合せ回路９１０ｃの入力に初期値を設定し、テスト対象経路の初期化を行う。次に、スキャンＦＦ９０１ｋおよび組合せ回路９１０ｃの入力に最終値を設定し、テスト対象経路の活性化を行う。
【００１０】
活性化後の値を実動作時のクロック周期と同じタイミングでスキャンＦＦ９０１ｍに取りこむ。スキャンＦＦ９０１ｍの値をスキャン・シフト動作により出力端子にシフトさせ、期待値と比較することによりテストを行う。
【００１１】
上述したように、特許文献２の半導体集積回路では、スキャンＦＦ９０１ａから組合せ回路９１０ａを通りメモリ９１１のＡＤＲ端子へ至る経路上のパスディレイテストを行う場合、組合せ回路９１０ａから伝送される値をスキャンＦＦ９０１ｅに取りこむ。従って、セレクタ９０２ａからＡＤＲ端子までの信号線のうち、スキャンＦＦ９０１ｅへ分岐するポイントからＡＤＲ端子までの経路について遅延故障を検出することができない。上記ＡＤＲ端子の場合と同様に、ＤＩＮ、ＷＥ、ＣＳの各端子もＦＦ９０１ｆ〜９０１ｈへ分岐点以降の遅延故障を検出することができない。また、メモリ９１１のＤＯＵＴから組合せ回路９１０ｃを通りスキャンＦＦ９０１ｍへ至る経路上のパスディレイテストを行う場合、ＤＯＵＴからセレクタ９０２ｅまでの経路について遅延故障を検出することができない。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開平４−４８４９３号公報
【特許文献２】特開２００６−４５０９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
遅延故障の試験では、入力データがメモリマクロ内へ入力されること、また、メモリマクロから出力データが出力されることを確認する必要がある。しかしながら、特許文献２の半導体集積回路では、上述したように、一部の経路について遅延故障を検出することができない。
このように、メモリマクロを含む半導体集積回路装置の遅延故障を確実に検出できないため、品質を向上させることができないという問題があった。
【課題を解決するための手段】
【００１４】
本発明に係る半導体集積回路装置の一態様は、メモリマクロを備える半導体集積回路装置であって、メモリセル部と、スキャンモード制御信号に応じて、入力データ信号の値とスキャンテスト値とのいずれかを、動作クロックに従って保持する複数の入力データ保持部と、テストモード制御信号に応じて、前記複数の入力データ保持部の一つが保持する値と前記メモリセル部が記憶するデータ値とのいずれかを、前記複数の入力データ保持部が動作する位相とは異なる位相に従って保持する複数の出力データ保持部と、を備え、前記複数の入力データ保持部と、前記複数の出力データ保持部とは、前記複数の入力データ保持部の一つを先端として交互に直列に接続され、前記複数の出力データ保持部の一つが保持する値は、前記スキャンテスト値として後段の前記入力データ保持部へ伝送される。入力データ保持部と出力データ保持部とを交互に直列に接続することにより、スキャンチェーンを形成する。従って、メモリマクロ内に保持する値を外部から設定することができる。また、メモリマクロ内に保持する値を取り出すことができる。これにより、メモリマクロの前段及び後段の遅延故障の検出をメモリセル部の直前（入力データ保持部）及び直後（出力データ保持部）に保持する値を用いて検出することが可能になる。従って、遅延故障の検出の精度を上げることができる。これは、半導体集積回路の品質を向上させることにつながる。
【発明の効果】
【００１５】
本発明によれば、メモリマクロを含む半導体集積回路装置の遅延故障を確実に検出し、品質を向上させることが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態１に係る半導体集積回路装置に備えるメモリマクロの構成例を示すブロック図である。
【図２】図１のＳＲＡＭ１を用いて、遅延故障を試験する構成を備える半導体集積回路装置を模式的に示す図である。
【図３】実施形態１におけるＳＲＡＭの後段のロジックコーンの遅延故障を試験する動作例を示すフローチャートである。
【図４】本発明の実施形態２に係る半導体集積回路装置に備えるメモリマクロの構成例を示すブロック図である。
【図５】タイミング生成回路を有するＳＲＡＭを備える半導体集積回路装置を模式的に示す図である。
【図６】図５のＳＲＡＭで用いるクロックの一例を示すタイミングチャートである。
【図７】特許文献２に開示された半導体集積回路の構成例を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
【００１８】
以下の実施形態では、クロック同期式ＲＡＭマクロであるＳＲＡＭ（Static Random Access Memory）を、メモリの一例として説明する。しかしながら、本発明は、当該ＳＲＡＭに限られることはない。メモリセル部の入力側と出力側とにデータを保持するラッチを備えるメモリマクロに適用することが可能である。具体的には、入力側に、メモリセル部へ書き込むデータを保持するラッチ（入力側ラッチ）を備え、出力側に、メモリセル部から読み出したデータを保持するラッチ（出力側ラッチ）を備えるメモリマクロを備える半導体集積回路装置に、本発明を適用することができる。
【００１９】
（実施形態１）
図１は、本発明の実施形態１に係る半導体集積回路装置に備えるメモリマクロの構成例を示すブロック図である。本実施形態では、メモリマクロは、一例として、クロック同期式ＲＡＭマクロであるＳＲＡＭ１の場合を示す。ＳＲＡＭ１は、入力部２、メモリセル部（ＲＡＭ）３、及び出力部４を備える。
【００２０】
入力部２は、メモリ制御信号及び入力データ信号の値を保持する。入力部２は、保持する値を用いて、メモリセル部３にデータを書き込む。また、入力部２は、入力データ信号の値に替えて、スキャンテスト値を保持することもある。スキャンテスト値は、テスト用データであり、スキャン・シフト動作状態のときに設定される。
メモリセル部３は、入力部２に保持される値に応じて書き込まれるデータを保持する記憶領域である。また、メモリ制御信号の値に応じて、保持するデータを読み出し、出力部４へ出力する。
出力部４は、メモリセル部３から読み出した出力データを保持する。また、出力部４は、出力データ値に替えて、入力部２が保持する値を保持することもある。
【００２１】
入力部２は、複数のラッチ（マスタラッチ）２１−０〜２１−ｍ（ｍ＞０の整数）、及び複数の入力データ保持部２２−０〜２２−ｋ（ｋ≧０の整数）を備える。
ラッチ２１−０〜２１−ｍは、メモリ制御信号の値（制御値）を保持する。図１では、メモリ制御信号として、"ＣＳ"、"ＷＥ"、"Ａｊ"を一例として示している。メモリ制御信号の入力端子それぞれを、"ＣＳ入力端子"、"ＷＥ入力端子"、"Ａｊ端子"という。また、"Ａｊ"は、アドレス信号である。実際には複数のアドレス信号Ａ０〜Ａｊ（ｊ＞０の整数）が入力されるが、説明を簡略化するためここでは代表として"Ａｊ"を示している。また、メモリ制御信号の数、種類についても、図１は一例と示したものであり、これに限られるわけではない。また、図１では、ラッチ２１−０〜２１−ｍをメモリ制御信号の値を保持する回路の一例として示したが、これ以外の回路を用いてもかまわない。
【００２２】
入力データ保持部２２−０〜２２−ｋは、スキャンモード制御信号（以降適宜、「ＳＭＣ」という）に応じて、入力データ信号の値とスキャンテスト値とのいずれかを、動作クロックの逆位相に従って保持する。入力データ保持部２２−０〜２２−ｋは、入力データ信号（ＤＩ０〜ＤＯｋ）それぞれに対応させて備えられる。
【００２３】
入力データ保持部２２−０〜２２−ｋは、スキャンモード制御信号がスキャン・シフト動作に設定された場合（例えば、ＳＭＣ＝１）、スキャンテスト値を保持する。スキャンモード制御信号がスキャン・シフト動作以外に設定された場合（例えば、ＳＭＣ＝０）、入力データ保持部２２−０〜２２−ｋは、入力データ信号の値を保持する。
【００２４】
入力データ保持部２２−０〜２２−ｋは、入力セレクタ（入力データセレクタ、選択回路、または、ＳＥＬ１ともいう）２２１及び入力ラッチ（入力データラッチ、または、ＤＩＬともいう）２２２を備える。図１では、入力データ保持部２２−０内の構成を示しているが、入力データ保持部２２−１〜２２−ｋも同様の構成を備える。
入力セレクタ２２１は、スキャンモード制御信号に応じて、入力データ信号の値とスキャンテスト値とのいずれかを選択する。入力セレクタ２２１は、ＳＭＣの入力端子ＳＭＣと接続され、ＳＭＣを選択信号として入力する。
【００２５】
入力データ保持部２２−０〜２２−ｋにおいて、入力セレクタ２２１の一方の入力端子Ｄは、それぞれ対応する入力データ信号（ＤＩ０〜ＤＯｋ）の入力端子（ＤＩ０入力端子、・・・、ＤＩｋ入力端子）と接続される。これにより、入力データ信号は、ＤＩ０入力端子〜ＤＩｋ入力端子から、それぞれに対応する入力データ保持部２２−０〜２２−ｋの入力セレクタ２２１の一方の端子Ｄへ入力される。
【００２６】
また、入力データ保持部２２−０の入力セレクタ２２１の他方の入力端子ＳＩは、スキャンテスト値（ＳＩＮ）を入力するＳＩＮ入力端子と接続される。スキャンテスト値は、ＳＩＮ入力端子から入力データ保持部２２−０の入力セレクタ２２１の入力端子ＳＩへ入力される。また、入力データ保持部２２−１〜２２−ｋの入力セレクタ２２１の他方の入力端子ＳＩは、出力部４の出力信号（後述する、複数の出力データ保持部４１−０〜４１−（ｋ−１）の一つ）と接続される。これにより、入力データ保持部２２−１〜２２−ｋの入力セレクタ２２１では、スキャンテスト値として、出力部４から出力される値が入力される。
入力セレクタ２２１の出力は、入力ラッチ２２２へ入力される。
【００２７】
入力ラッチ２２２は、入力セレクタ２２１が選択した値を、動作クロックの逆位相に従って保持する。入力ラッチ２２２の出力ＱＭＢは、それぞれ対応するメモリセル部３のビットに入力されるともに、出力部４へ伝送される。
【００２８】
出力部４は、複数の出力データ保持部４１−０〜４１−ｋを備える。
出力データ保持部４１−０〜４１−ｋは、テストモード制御信号（以降適宜、「ＴＥＮ」という）に応じて、入力ラッチ２２２が保持する値（入力保持値）とメモリセル部３が記憶するデータ値（出力データ値）とのいずれかを、動作クロックの正位相に従って保持する。
【００２９】
テストモード制御信号が試験モード（テストモード）に設定された場合（例えば、ＴＥＮ＝１）、出力データ保持部４１−０〜４１−ｋは、前段の入力データ保持部２２−０〜２２−ｋが保持する値を、動作クロックＣＬＫの正位相に従って保持する。スキャンモード制御信号が通常モードに設定された場合、出力データ保持部４１−０〜４１−ｋは、メモリセル部３が記憶するデータ値を保持する。
【００３０】
出力データ保持部４１−０〜４１−ｋは、出力セレクタ（出力データセレクタ、または、ＳＥＬ２ともいう）４１１及び出力ラッチ（出力データラッチ、または、ＤＯＬともいう）４１２を備える。図１では、出力データ保持部４１−０内の構成を示しているが、出力データ保持部４１−１〜４１−ｋも同様の構成を備える。
出力セレクタ４１１は、ＴＥＮに応じて、複数の入力データ保持部２２−０〜２２−ｋの一つが保持する値と、メモリセル部３が記憶するデータ値とのいずれかを選択する。出力セレクタ４１１は、ＴＥＮの入力端子ＴＥＮと接続され、ＴＥＮを選択信号として入力する。
【００３１】
出力データ保持部４１−０〜４１−ｋにおいて、出力セレクタ４１１の一方の入力端子は、それぞれ対応するメモリセル部３の各ビットと接続される。メモリセル部３からのデータ値は、それぞれ対応する出力データ保持部４１−０〜４１−ｋの出力セレクタ４１１へ入力される。言い換えると、メモリセル部３から出力されるデータが出力データ値として、当該一方の入力端子へ入力される。
【００３２】
また、出力セレクタ４１１の他方の入力端子は、複数の入力データ保持部２２−０〜２２−ｋの一つの入力ラッチ２２２と接続される。言い換えると、入力ラッチ２２２の出力信号ＱＭＢは、複数の出力データ保持部４１−０〜４１−ｋの一つの出力セレクタ４１１の当該他方の入力端子へ入力される。
【００３３】
出力ラッチ４１２は、出力セレクタ４１１が選択した値を、動作クロックの正位相に従って保持する。出力データ保持部４１−０〜４１−ｋの出力ラッチ４１２は、それぞれ対応する出力端子ＤＯ０〜ＤＯｋへ接続される。また、出力データ保持部４１−０〜４１−（ｋ−１）の出力ラッチ４１２は、複数の入力データ保持部２２−１〜２２−ｋの一つの入力セレクタ２２１の他方の入力端子ＳＩへ接続される。出力データ保持部４１−ｋの出力ラッチ４１２は、スキャンテスト値のＳＯＴ出力端子へ接続される。これにより、出力ラッチ４１２が出力する出力信号Ｑは、それぞれ対応するＤＯ０出力端子、・・・、ＤＯｋ出力端子と、入力セレクタ２２１またはスキャンテスト値のＳＯＴ出力端子へ出力される。
【００３４】
動作クロック（以下適宜、「ＣＬＫ」という）はＣＬＫ入力端子から入力部２及び出力部４の各構成要素（具体的には、ラッチ２１−０〜２１−２、各入力ラッチ２２２及び各出力ラッチ４１２）へ供給される。
【００３５】
複数の入力データ保持部２２−０〜２２−ｋと、複数の出力データ保持部４１−０〜４１−ｋとは、入力データ保持部２２−０を先端（初段）として交互に直列に接続される。例えば、出力データ保持部４１−０が保持する値（出力保持値）は、スキャンテスト値として後段の入力データ保持部２２−１（一つ後に接続された入力データ保持部）へ伝送される。複数の入力データ保持部２２−０〜２２−ｋの一つと、後段となる、複数の出力データ保持部４１−０〜４１−ｋの一つとの組み合わせにより、ＴＥＮの値が"１"の場合には、データ選択機能付Ｄタイプ・フリップ・フロップ（当該組み合わせの構成を以下"ＭＦＦ１"という）としての機能を実現する。例えば、入力データ保持部２２−０と出力データ保持部４１−０との組み合わせを一つのＭＦＦ１ということができる。図１では一つのＭＦＦ１を点線で囲んでいる。ＭＦＦ１は、ＴＥＮの値が"１"の場合には、スキャンフリップフロップを形成する。図１では、ｋ＋１個のＭＦＦ１−０〜ＭＦＦ１−ｋが形成されている。
【００３６】
また、ＭＦＦ１−０〜ＭＦＦ１−ｋは、データ選択機能付Ｄタイプ・フリップ・フロップからなるスキャンチェーンを形成している。従って、テストモード制御信号が試験モードであり、かつ、スキャンモード制御信号がスキャン・シフト動作状態である場合、スキャンチェーンとして機能する。
【００３７】
次に、図２を用いて、図１のＳＲＡＭ１を用いて遅延故障を試験する構成例を説明する。図２は、図１のＳＲＡＭ１を用いて、遅延故障を試験する構成を備える半導体集積回路装置を模式的に示す図である。図２に示す半導体集積回路装置では、ＳＲＡＭ１と、組合せ回路６１、６２、フリップ・フロップ（F/F）６３、６４、セレクタ６５、６６を備える。セレクタ６５、６６は、一般的には選択回路またはセレクタで構成される。ＳＲＡＭ１は、図１と同様の構成を有しているが、図２では、入力データ保持部２２−０の入力セレクタ２２１及び入力ラッチ２２２（ＤＩＬ）と、出力データ保持部４１−０の出力セレクタ４１１及び出力ラッチ４１２（ＤＯＬ）とを代表として示している。
【００３８】
セレクタ６５は、フリップ・フロップ６３へ入力する値を選択する。セレクタ６６は、フリップ・フロップ６４へ入力する値を選択する。動作クロックＣＬＫは、フリップ・フロップ６３、６４、入力ラッチ２２２、及び出力ラッチ４１２ともに共通である。
【００３９】
遅延故障の試験では、ロジックコーン単位に遅延故障が発生するか否かを試験する。一つのロジックコーンは、組合せ回路の前段に配置されるフリップ・フロップの入力端子から、組合せ回路の後段に配置されるフリップ・フロップの入力端子までとなる。
例えば、図２では、ＳＲＡＭ１の前段のロジックコーンの遅延故障を試験する場合、フリップ・フロップ６３から入力ラッチ２２２までを試験する。また、ＳＲＡＭ１の後段のロジックコーンの遅延故障を試験する場合、出力ラッチ４１２からフリップ・フロップ６４までを試験する。
【００４０】
フリップ・フロップ６３から組合せ回路６１を通りＳＲＡＭ１のＤＩ端子へ至る経路上の遅延故障試験を行う場合、例えば、試験モード（ＴＥＮ＝１）に設定後、スキャン・シフト動作状態（ＳＭＣ＝１）に設定し、スキャン・シフト動作により、フリップ・フロップ６３の入力及びＭＦＦ１−０〜ＭＦＦ１−ｋの入力に所望の値を設定する。次に、スキャン・キャプチャ動作状態（ＳＭＣ＝０）に設定し、通常動作用の動作クロックまたは当該動作クロック同等以下の周期のクロックを用いテスト対象経路の活性化（Ｌａｕｎｃｈ、Ｃａｐｔｕｒｅ）を行う。その後、スキャン・シフト動作状態（ＳＭＣ＝１）に設定し、入力ラッチ２２２が保持する値を取り出す（スキャン・アウト）。 
【００４１】
前段のロジックコーンにおいて、ＳＲＡＭ１内の入力ラッチ２２２を接続する配線（経路）を含めて遅延故障を検出することが可能となる。また、入力ラッチ２２２が保持する値を確認することができる。このため、前段のロジックコーンの遅延故障を確実に検出することができる。
【００４２】
図２に示す半導体集積回路装置では、出力ラッチ４１２から出力される値を用いて、ＳＲＡＭ１の後段のロジックコーンの遅延故障を試験することが可能となる。すなわち、出力ラッチ４１２を接続する配線を含めて試験をすることが可能となる。この試験の詳細については、図３を用いて説明する。
【００４３】
図３は、ＳＲＡＭの後段のロジックコーンの遅延故障を試験する動作例を示すフローチャートである。一例として、ＳＲＡＭ１とフリップ・フロップ６４間において、フリップ・フロップ６４の入力値を"０"から"１"へ変化させたときの試験を行う場合の動作を説明する。
【００４４】
フリップ・フロップ６４は、ＳＲＡＭ１の後段に配置され、ＳＲＡＭ１から出力される値を保持する。なお、図２では、ＳＲＡＭ１内のＭＦＦ１を一つ表しているに過ぎないが、ＳＲＡＭ１は、図１に示すように、ｋ＋１個のＭＦＦ１を備える。また、例えば前段のフリップ・フロップ６３、後段のフリップ・フロップ６４、及びセレクタ６５、６６も、ｋ＋１個備えられ、それぞれｋ＋１個のフリップ・フロップによってスキャンチェーンが形成されていることを前提とする。また、ここでは、ＴＥＮが"１"のとき試験モードであるとする。また、ＳＭＣが"１"のときスキャン・シフト動作状態であるとする。
【００４５】
まず、ＴＥＮを１に設定して、ＳＲＡＭ１を試験モードに設定する（Ｓ１１）。また、ＳＭＣを１に設定して、スキャン・シフト動作状態に設定する（Ｓ１２）。
【００４６】
続いて、試験用のデータを設定する（Ｓ１３）。ここでは、まずＤ３端子が「０」になるようにＭＦＦ１−０〜ＭＦＦ１−ｋの保持値を設定する。次に、Ｄ３端子が「１」へ変化するように、入力データ信号（ＤＩ０〜ＤＩｋ）の値を設定する。ここでは、ＭＦＦ１−０と入力データ信号ＤＩ０からＭＦＦ１−ｋと入力データ信号ＤＩｋまで順番に繰り返す（Ｓ１４）。
【００４７】
ＭＦＦ１−０〜ＭＦＦ１−ｋのデータ設定は次のように実施される。ＳＩＮよりスキャンテスト値として、データ"０"を入力する。入力データ保持部２２−０において、入力セレクタ２２１がＳＭＣの値に応じて、スキャンテスト値を選択する。ＣＬＫの逆位相に従って、入力ラッチ２２２が入力セレクタ２２１から出力されるスキャンテスト値"０"を保持し、続いて、ＴＥＮに応じて、出力データ保持部４１−１の出力セレクタ４１１が入力ラッチ２２２からの出力信号の値"０"（入力保持値）を選択する。ＣＬＫの正位相に従って、出力ラッチ４１２が出力セレクタ４１１から出力される値"０"を保持する。
【００４８】
試験用のデータの設定が終了すると（Ｓ１４でＹＥＳ）、ＳＭＣを"０"に設定し、スキャン・キャプチャ動作状態に設定する（Ｓ１５）。続いて、Ｌａｕｎｃｈを行い、フリップ・フロップ６４が"０"を取り込むのと同時にＭＦＦ１−０〜ＭＦＦ１−ｋが入力端子ＤＩ０〜ＤＩｋから入力される入力データ信号（ＤＩ０〜ＤＩｋ）の値を取り込む（Ｓ１６）。これにより、ＭＦＦ１−０〜ＭＦＦ１−ｋ（出力ラッチ４１２）が保持する値が、フリップ・フロップ６４の入力端子Ｄ３が"０"になる値から、"１"になる値に変更されたことになる。次に、Ｃａｐｔｕｒｅを行い、フリップ・フロップ６４に"１"を保持させる（Ｓ１７）。この時のＬａｕｎｃｈからＣａｐｔｕｒｅまでの時間は、通常動作用の動作クロックの周期と同等またはそれ以下の周期である。
【００４９】
ＳＭＣを"１"に設定し、スキャン・シフト動作状態に設定する（Ｓ１８）。スキャン・アウトを行い、試験結果を判定する（Ｓ１９）。ここでは、ＳＲＡＭ１の後段に配置されたフリップ・フロップ６４のスキャンチェーンについて、スキャン・アウトを行い、遅延故障が生じているか否かを判定する。
【００５０】
以上説明したように、本実施形態のＳＲＡＭ１を用いることによって、メモリマクロとその前後段のロジックコーンの遅延故障の試験の品質を向上させることができる。具体的には、メモリマクロの前段または後段のロジックコーンの遅延故障の試験では、メモリマクロ内の入力データ保持部２２−０〜２２−ｋの入力端子までの経路と出力データ保持部４１−０〜４１−ｋの出力端子以降の経路も含めた試験が可能となる。すなわち、通常動作時と全く同一の経路において試験が可能となる。これにより、メモリマクロへ入力するデータ信号が確実に伝達されていることが確認できる。また、メモリマクロから出力されるデータ信号が確実に伝達されることが確認できる。例えば、特許文献２では、メモリマクロ内の経路については、遅延故障検出試験を実現できなかったことから、特許文献２に開示された技術より試験の品質を向上させることができる。
【００５１】
また、本実施形態では、メモリマクロ内に既存であるラッチ（入力ラッチ、出力ラッチ）を用いて次のような構成を備える。入力ラッチと出力ラッチとは同一の動作クロックを用い、出力ラッチは、動作クロックの正位相で動作し、入力ラッチは、当該動作クロックの逆位相で動作する。
・メモリマクロのデータ入力信号に対応するデータ入力ラッチ（ＤＩＬ）の入力に接続され、データ入力ラッチ"ＤＩＬ"の入力を選択信号"ＳＭＣ"により選択する入力セレクタ（選択回路ＳＥＬ１）。
・メモリマクロのデータ出力信号に対応する出力ラッチ（ＤＯＬ）の入力に接続され、出力ラッチの入力を選択信号"ＴＥＮ"により選択する出力セレクタ（選択回路ＳＥＬ２）。
・入力セレクタの入力は、一方をメモリマクロの入力端子ＤＩ０〜ＤＩｋ（入力データ信号ＤＩ０〜ＤＩｋを入力）に接続し、他方をスキャンテスト値（ＳＩＮ）の入力端子ＳＩＮまたは出力ラッチの出力と接続する信号線。
・出力セレクタの入力は、一方をメモリセルの出力端子ＤＯ０〜ＤＯｋと接続し、他方を入力ラッチの出力と接続する信号線。
【００５２】
上記構成を用いることにより、入力セレクタ２２１、入力ラッチ２２２、出力セレクタ４１１、出力ラッチ４１２とは、選択信号"ＴＥＮ"によりデータ選択機能付Ｄタイプ・フリップ・フロップとして動作可能とする。
【００５３】
この構成では、既存のラッチを用いることにより、追加する回路数を少なくすることができる。具体的には、図１の構成では、入力セレクタ２２１と出力セレクタ４１１、並びに配線を追加することによって、遅延故障を試験する構成を形成することを可能とする。これは、特許文献２に比べて、追加する回路が少なくなっている。従って、半導体集積回路装置のチップ面積を小さくすることが可能となる。また、半導体集積回路装置の製造コストを削減することができる。
【００５４】
さらに、メモリマクロ内に、スキャンチェーンを形成することによって、試験用のデータの設定を容易にする。具体的には、ＭＦＦ１に保持するデータを入力端子ＳＩＮから入力するスキャンテスト値（ＳＩＮ）によって設定することが可能になる。また、メモリマクロ内にスキャンチェーンを形成したことによって、試験結果を容易に取り出すこと可能になる。これにより、試験に要する時間を削減することができる。特に、スキャン信号を用いてＭＦＦ１内に試験用のデータを設定することが可能になったことにより、メモリマクロの前段のフリップ・フロップを用いて試験用のデータを設定する必要がなくなる。このため、試験用のデータの生成が容易になると共に、データ生成に要する時間を削減することが可能になる。
【００５５】
（実施形態２）
本実施形態では、メモリ制御信号を入力するラッチ２１−０〜２１−２についても、スキャンチェーンを形成する一態様を説明する。
図４は、本発明の実施形態２に係る半導体集積回路装置に備えるメモリマクロの構成例を示すブロック図である。ＳＲＡＭ６は、図１の入力部２にかえて、ラッチ２１−０〜２１−ｍへ回路が追加された制御値保持部５１−０〜５１−ｍを有する入力部５を備える。入力データ保持部２２−０の接続関係を除いて、その他の構成は図１と同様である。
制御値保持部５１−０〜５１−ｍは、マスタセレクタ（ＳＥＬ１）５１１、マスタラッチ（ＭＬ）５１２、及びスレーブラッチ（ＳＬ）５１３を備える。図４では、制御値保持部５１−０内の構成を示しているが、制御値保持部５１−１〜５１−ｍも同様の構成を備える。
【００５６】
マスタセレクタ５１１は、スキャンモード制御信号に応じて、メモリ制御信号の値とスキャンテスト値とのいずれかを選択する。マスタセレクタ５１１は、ＳＭＣの入力端子ＳＭＣと接続され、ＳＭＣを選択信号として入力する。
【００５７】
制御値保持部５１−０〜５１−ｍにおいて、マスタセレクタ５１１の一方の入力端子Ｄは、それぞれ対応するメモリ制御信号の入力端子（ＣＳ入力端子、ＷＥ入力端子、Ａｊ入力端子）と接続される。ＣＳ、ＷＥ、Ａｊのメモリ制御信号は、それぞれＣＳ入力端子、ＷＥ入力端子、Ａｊ入力端子から、対応するマスタセレクタ５１１の一方の端子Ｄへ入力される。
【００５８】
また、制御値保持部５１−０のマスタセレクタ５１１の他方の入力端子ＳＩは、スキャンテスト値（ＳＩＮ）を入力するＳＩＮ入力端子と接続される。スキャンテスト値は、ＳＩＮ入力端子から制御値保持部５１−０のマスタセレクタ５１１の入力端子ＳＩへ入力される。また、制御値保持部５１−１〜５１−ｍの、マスタセレクタ５１１の他方の入力端子ＳＩは、スレーブラッチ５１３の出力信号と接続される。制御値保持部５１−１〜５１−ｍのマスタセレクタ５１１では、スキャンテスト値として、スレーブラッチ５１３から出力される値が入力される。
マスタセレクタ５１１の出力は、マスタラッチ５１２へ入力される。
【００５９】
マスタラッチ５１２は、マスタセレクタ５１１が選択した値を、動作クロックの逆位相に従って保持する。マスタラッチ５１２の出力ＱＭＢは、メモリセル部３の各々対応する端子に入力されるとともに、スレーブラッチ５１３へ入力される。
スレーブラッチ５１３は、マスタラッチが保持する値を、動作クロックの正位相に従って保持する。スレーブラッチ５１３の出力Ｑは、後段の制御値保持部のマスタセレクタ５１１のＳＩ端子へ接続される。
【００６０】
制御値保持部５１−０〜５１−ｍは、このような構成をとることにより、データ選択機能付Ｄタイプ・フリップ・フロップ（以下、適宜、「制御値保持部」を"ＭＦＦ２"ともいう）としての機能を実現する。図４では、ｍ＋１個のＭＦＦ２−０〜ＭＦＦ２−ｍと、ｋ＋１個のＭＦＦ１−０〜ＭＦＦ１−ｋが形成されている。
【００６１】
また、制御値保持部５１−０〜５１−ｍは、直列に接続される。複数の制御値保持部５１−０〜５１−（ｍ−１）の一つのスレーブラッチ５１３が保持する値は、後段の制御値保持部５１−１〜５１−ｍのマスタセレクタ５１１へスキャンテスト値として入力される。
さらに、終端の制御値保持部５１−ｍのスレーブラッチ５１３が保持する値は、先端の入力データ保持部２２−０へ、スキャンテスト値として入力される。
この接続により、制御値保持部５１−０〜５１−ｍ、入力データ保持部２２−０〜２２−ｋ、及び出力データ保持部４１−０〜４１−ｋは、データ選択機能付Ｄタイプ・フリップ・フロップからなるスキャンチェーンを形成する。従って、テストモード制御信号が試験モードであり、かつ、スキャンモード制御信号がスキャン・シフト動作状態である場合、スキャンチェーン（多段階シフトレジスタ）として機能する。従って、メモリマクロとその前段及び後段のロジックコーン上の遅延故障をディレイスキャンで検出することを可能とする。
【００６２】
本実施形態のＳＲＡＭ６は、実施形態1で示した図２と同様に、遅延故障を試験する構成を形成する。実施形態１のＳＲＡＭ１に加え、ＳＲＡＭ６では、前段のロジックコーンから出力されるメモリ制御信号の値を確認することができる。従って、ＳＲＡＭ６の前段のロジックコーンについて、メモリ制御信号の入力端子までに生じる遅延故障を検出することが可能になる。
さらに、メモリ制御信号の値を所望の値に設定することができる。例えば、所望のメモリ制御信号及びデータ信号の値をＳＩＮ入力端子から入力し、各ラッチに保持させ、試験することが可能となる。
このように、本実施形態によれば、実施形態１と同様の効果に加え、前段のロジックコーンのうち、メモリ制御信号に関するロジックコーンの遅延故障の試験品質を向上させることができる。
【００６３】
（その他の実施形態）
上記各実施形態では、ＳＲＡＭを一例として説明したが、これに限られることはない。ＳＲＡＭ以外のＲＡＭ、あるいは、ＲＯＭ（Read Only Memory）であっても、メモリセル部の入力側と出力側とにデータを保持するラッチを備えるメモリマクロであれば、本発明を適用することができる。
【００６４】
また、上記各実施形態では、入力データ保持部とマスタラッチとは、動作クロックの逆位相に従って値を保持し、出力データ保持部とスレーブラッチとは、動作クロックの正位相に従って値をラッチする場合を一例として説明した。動作クロックの位相は、これに限定されるものではなく、一方（入力データ保持部、マスタラッチ）が用いる動作クロックの位相と、他方（出力データ保持部、スレーブラッチ）の位相が相互に逆になっていればよい。従って、一方が動作クロックの正位相を用いた場合、他方が動作クロックの逆位相を用いればよい。
【００６５】
さらに、上記各実施形態では、動作クロックＣＬＫの正位相と逆位相とを用いる場合を説明した。これに限らず、複数の出力データ保持部が複数の入力データ保持部が動作する位相とは異なる位相のクロックを用いればよい。例えば、動作クロックの位相をずらして、相互に異なる位相を有するクロックを用いてもよい。図５にタイミング生成回路（タイミング生成部）を有するＳＲＡＭを備える半導体集積回路装置を示す。ＳＲＡＭ７は、タイミング生成回路７１を備える。タイミング生成回路７１は、動作クロックＣＬＫに基づいて、相互に位相の異なるクロックＣＫＳ、ＣＫＭを生成する。
【００６６】
図６に動作クロックＣＬＫとクロックＣＫＳ、ＣＫＭの一例を示す。動作クロックＣＬＫとクロックＣＫＳ、ＣＫＭとは、周波数は同一である。ここで、クロックＣＫＳ、ＣＫＭとは、互いにハイレベルである期間とロウレベルである期間とは異なっていてもよい。このように、入力データ保持部（入力ラッチ）が用いるクロックと、出力データ保持部（出力ラッチ）が用いるクロックとは、同一周波数であって、位相差を有する関係であればよい。
なお、マスタラッチが用いるクロックとスレーブラッチが用いるクロックについても同様である。
【００６７】
図５では、図１に示すＳＲＡＭ１へタイミング生成回路７１を適用したＳＲＡＭ７を示しているが、図４に示すＳＲＡＭ６へタイミング生成回路７１を適用することも可能である。この場合、入力ラッチ２２２とマスタラッチ５１２とが同じクロックＣＫＭを用い、出力ラッチ４１２とスレーブラッチ５１３とが同じクロックＣＫＳを用いるように構成すればよい。すなわち、入力データ保持部２２−０〜２２−ｋと制御値保持部５１−０〜５１−ｍのマスタラッチ５１２とが同じクロックＣＫＭを用い、出力データ保持部４１−０〜４１−ｋと制御値保持部５１−０〜５１−ｍのスレーブラッチ５１３とが同じクロックＣＫＳを用いるように構成すればよい。
【００６８】
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
【符号の説明】
【００６９】
１、６、７  ＳＲＡＭ
２、５  入力部
３  メモリセル部
４  出力部
２１−０〜２１−ｍ  ラッチ
２２−０〜２２−ｋ  入力データ保持部
４１−０〜４１−ｋ  出力データ保持部
５１−０〜５１−ｍ  制御値保持部
２２１  入力セレクタ
６１、６２  組合せ回路
６３、６４  フリップ・フロッ
６５、６６  セレクタ
７１  タイミング生成回路
２２２  入力ラッチ
４１１  出力セレクタ
４１２  出力ラッチ
５１１  マスタセレクタ
５１２  マスタラッチ
５１３  スレーブラッチ
【図１】
2011058847.tif 000003
【図２】
2011058847.tif 000004
【図３】
2011058847.tif 000005
【図４】
2011058847.tif 000006
【図５】
2011058847.tif 000007
【図６】
2011058847.tif 000008
【図７】
2011058847.tif 000009