(57)【要約】【課題】ＲＡＭを備える半導体集積回路のスキャンテストに要する総時間を短縮すること。【解決手段】半導体集積回路１は、ＲＡＭ１０と、第１論理回路１００と、第２論理回路２００と、初期化回路２０とを備える。ＲＡＭ１０の初期化において、初期化回路２０は、ＲＡＭ１０中の各メモリ領域に関して、アドレスを示す初期化アドレス信号ＡＤＤＩ及び初期値データＤＩを生成する。初期値データＤＩは、初期化アドレス信号ＡＤＤＩに依存する。ＲＡＭ１０は、初期化アドレス信号ＡＤＤＩで指定されるメモリ領域に初期値データＤＩを書き込む。初期化後のスキャンテストにおいて、第１論理回路１００は、テストパタンＰＡＴに応じてアドレス信号ＡＤＤを生成し、そのアドレス信号ＡＤＤをＲＡＭ１０に出力する。ＲＡＭ１０は、アドレス信号ＡＤＤで指定されるメモリ領域から初期値データＤＩを読み出し、読み出された初期値データＤＩを第２論理回路２００に出力する。【選択図】図１
2009289336.tif 000002
【特許請求の範囲】
【請求項１】
ＲＡＭと、
前記ＲＡＭにアドレス信号を供給する第１論理回路と、
前記ＲＡＭから読み出しデータを受け取る第２論理回路と、
初期化回路と
を備え、
前記ＲＡＭの初期化において、
前記初期化回路は、前記ＲＡＭ中の各メモリ領域に関して、アドレスを示す初期化アドレス信号及び前記初期化アドレス信号に依存する初期値データを生成し、
前記ＲＡＭは、前記初期化アドレス信号で指定されるメモリ領域に前記初期値データを書き込み、
前記初期化の後のスキャンテストにおいて、
前記第１論理回路は、テストパタンに応じてアドレス信号を生成し、前記生成されたアドレス信号を前記ＲＡＭに出力し、
前記ＲＡＭは、前記生成されたアドレス信号で指定されるメモリ領域から前記初期値データを読み出し、前記読み出された初期値データを前記第２論理回路に出力する
半導体集積回路。
【請求項２】
請求項１に記載の半導体集積回路であって、
前記初期値データは、前記初期化アドレス信号と同じである
半導体集積回路。
【請求項３】
請求項１に記載の半導体集積回路であって、
前記初期化回路は、前記初期化アドレス信号の所定数のビットを用いて論理演算を行うことにより、前記初期値データを生成する
半導体集積回路。
【請求項４】
請求項１に記載の半導体集積回路であって、
前記初期化回路は、前記初期化アドレス信号に追加ビットを追加することにより、前記初期値データを生成する
半導体集積回路。
【請求項５】
請求項４に記載の半導体集積回路であって、
前記追加ビットの値は固定されている
半導体集積回路。
【請求項６】
請求項４に記載の半導体集積回路であって、
前記初期化回路は、前記初期化アドレス信号の所定数のビットを用いることにより前記追加ビットを生成する
半導体集積回路。
【請求項７】
ＲＡＭを備える半導体集積回路のテスト方法であって、
前記ＲＡＭ中の各メモリ領域に初期値データを書き込むことと、
ここで、前記初期値データは、前記初期値データが書き込まれるメモリ領域のアドレスに依存しており、
前記初期値データの書き込みの後に、前記半導体集積回路のスキャンテストを実行することと
を含み、
前記スキャンテストは、
テストパタンに応じてアドレス信号を生成することと、
前記生成されたアドレス信号を、通常動作時の入力パスを通して前記ＲＡＭに入力することと、
前記入力されたアドレス信号で指定されるメモリ領域から前記初期値データを読み出すことと、
前記読み出された初期値データを、前記ＲＡＭから通常動作時の出力パスに出力することと
を含む
半導体集積回路のテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＡＭ（Random Access Memory）を備える半導体集積回路及びそのテスト方法に関する。
【背景技術】
【０００２】
半導体集積回路のテスト容易化設計（DFT: Design For Testability）の一手法として、スキャン設計が知られている。スキャン設計によれば、設計回路内のフリップフロップの全て又は一部が、スキャンフリップフロップに置き換えられる。スキャンテスト時には、スキャンフリップフロップ同士が接続され、多段のスキャンフリップフロップからなるスキャンチェーンが構成される。そのスキャンチェーンを通してテストパタンを入力及び出力することにより、スキャンテストが行なわれる。テストパタンは、ＡＴＰＧ（Automatic Test Pattern Generator）によってあらかじめ自動的に生成される。
【０００３】
一般に、スキャンテストにより検出され得る故障は、論理回路部における縮退故障や遅延故障である。しかしながら、論理回路部の他にＲＡＭを備える半導体集積回路の場合、ＲＡＭのインターフェース（入力端子、出力端子）につながるパスの遅延故障を検出することも望まれる。この場合、ＲＡＭのインターフェースに関して、実動作速度テスト（at-speed test）を行うことが必要である。そのような技術が、特許文献１及び特許文献２に開示されている。
【０００４】
特許文献１には、第１の記憶素子と第２の記憶素子との間に設けられたメモリを有する半導体集積回路を検査する方法が記載されている。まず、各メモリ領域に初期値が書き込まれ、メモリが初期化される。この初期値は、ユーザによって、検査の観点から有効なものにあらかじめ決定される。そして、メモリは、アドレスの入力に応答してその初期値を出力するような「組み合わせ回路」でモデル化される。ＡＴＰＧは、メモリをその組み合わせ回路（モデル）とみなすことにより、スキャンテスト用のテストパタンを生成する。メモリの初期化の後、スキャンシフト動作により、第１の記憶素子に上記テストパタンが与えられる。次に、第１の記憶素子に与えられたテストパタンに応じたメモリアクセス信号が、通常動作で使用されるパスを通してメモリ回路に与えられる。そのメモリアクセス信号に応答してメモリから出力される値は、通常動作で使用されるパスを通して第２の記憶素子に取り込まれる。そして、第２の記憶素子に取り込まれた値は、スキャンシフト動作により読み出される。
【０００５】
特許文献２には、半導体集積回路のテスト方法が記載されている。まず、メモリＢＩＳＴ回路が、ＲＡＭの故障テストを行う。故障テストの合格の後、メモリＢＩＳＴ回路は、ユーザによって予め決定された所望のメモリ用テストパタンをＲＡＭに書き込む。その一方で、スキャンチェーンを用いることにより、ロジック用テストパタンのシフトインが行われる。このロジック用テストパタンは、ＡＴＰＧがＲＡＭを「ＲＯＭ（Read Only Memory）」とみなすことにより生成する。シフトインの後、ロジック用テストパタンと組み合わせ論理回路によって、読み出し命令信号が生成される。ＲＡＭは、読み出し命令信号に応答してデータを読み出し、読み出しデータを出力する。読み出しデータと組み合わせ論理回路によって生成されるテスト結果は、スキャンチェーンを通して出力される。
【０００６】
【特許文献１】特開２００５−２３５３６８号公報
【特許文献２】特開２００７−１７２３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本願発明者は次の点に着目した。上述の関連技術によれば、スキャンテストの前に、予め決定されている初期値がＲＡＭに書き込まれ、ＲＡＭの初期化が行われる。しかしながら、ＲＡＭの規模が大きくなるにつれ、検査の観点から有効な初期値を決定することは困難になる。つまり、初期値の決定に要する時間が増大し、且つ、ユーザの負担も重くなる。また、ＲＡＭの規模が大きくなり、初期値が複雑になると、その分ＲＡＭのモデルも複雑になる。よって、ＡＴＰＧがテストパタンを生成するために要する時間も増大し、テストパタンの数も増加してしまう。このように、初期値の決定やテストパタンの生成を含め、テストに要する総時間が増大する。
【課題を解決するための手段】
【０００８】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を用いて、［課題を解決するための手段］を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【０００９】
本発明の一実施の形態において、半導体集積回路（１）が提供される。その半導体集積回路（１）は、ＲＡＭ（１０）と、ＲＡＭ（１０）にアドレス信号（ＡＤＤ）を供給する第１論理回路（１００）と、ＲＡＭ（１０）から読み出しデータ（ＤＲ）を受け取る第２論理回路（２００）と、初期化回路（２０）と、を備える。ＲＡＭ（１０）の初期化において、初期化回路（２０）は、ＲＡＭ（１０）中の各メモリ領域に関して、アドレスを示す初期化アドレス信号（ＡＤＤＩ）及び初期値データ（ＤＩ）を生成する。この初期値データ（ＤＩ）は、初期化アドレス信号（ＡＤＤＩ）に依存する。ＲＡＭ（１０）は、初期化アドレス信号（ＡＤＤＩ）で指定されるメモリ領域に初期値データ（ＤＩ）を書き込む。初期化後のスキャンテストにおいて、第１論理回路（１００）は、テストパタン（ＰＡＴ）に応じてアドレス信号（ＡＤＤ）を生成し、生成されたアドレス信号（ＡＤＤ）をＲＡＭ（１０）に出力する。ＲＡＭ（１０）は、そのアドレス信号（ＡＤＤ）で指定されるメモリ領域から初期値データ（ＤＩ）を読み出し、読み出された初期値データ（ＤＩ）を第２論理回路（２００）に出力する。
【００１０】
本発明の一実施の形態において、ＲＡＭ（１０）を備える半導体集積回路（１）のテスト方法が提供される。まず、ＲＡＭ（１０）中の各メモリ領域に初期値データ（ＤＩ）が書き込まれる。初期値データ（ＤＩ）は、当該初期値データ（ＤＩ）が書き込まれるメモリ領域のアドレス（ＡＤＤＩ）に依存している。その後、半導体集積回路（１）のスキャンテストが実施される。このスキャンテストでは、テストパタン（ＰＡＴ）に応じてアドレス信号（ＡＤＤ）が生成され、そのアドレス信号（ＡＤＤ）が、通常動作時の入力パスを通してＲＡＭ（１０）に入力される。ＲＡＭ（１０）では、入力されたアドレス信号（ＡＤＤ）で指定されるメモリ領域から初期値データ（ＤＩ）が読み出される。読み出された初期値データ（ＤＩ）は、ＲＡＭ（１０）から通常動作時の出力パスに出力される。
【発明の効果】
【００１１】
本発明によれば、ＲＡＭの初期化で用いられる初期値は簡単に決定される。また、ＲＡＭは、単純な回路でモデル化され得る。従って、ＡＴＰＧがテストパタンを生成するために要する時間が短縮され、また、テストパタンの数も抑えられる。結果として、初期値の決定やテストパタンの生成を含め、テストに要する総時間が短縮される。
【発明を実施するための最良の形態】
【００１２】
添付図面を参照して、本発明の実施の形態に係る半導体集積回路及びそのテスト方法を説明する。
【００１３】
１．回路構成及び動作
図１は、本発明の実施の形態に係る半導体集積回路１の構成を示すブロック図である。半導体集積回路１は、ＲＡＭ１０、初期化回路２０、セレクタ３０、４０、制御回路５０、第１論理回路１００、及び第２論理回路２００を備えている。
【００１４】
ＲＡＭ１０は、メモリセルアレイ１１、書き込み回路１２、読み出し回路１３、データ入力端子ＩＮ、アドレス入力端子ＡＩＮ、及びデータ出力端子ＯＵＴを有している。メモリセルアレイ１１は、アレイ状に配置された複数のメモリセルから構成され、データを記憶するメモリ領域として機能する。メモリセルアレイ１１中のアクセス対象のメモリ領域は、当該メモリ領域のアドレスを示すアドレス信号によって指定される。
【００１５】
アドレス信号は、アドレス入力端子ＡＩＮを通してＲＡＭ１０に入力される。入力されたアドレス信号は、書き込み回路１２及び読み出し回路１３に送られる。書き込みデータは、データ入力端子ＩＮを通してＲＡＭ１０に入力され、書き込み回路１２に送られる。書き込み回路１２は、アドレス信号で指定されるメモリ領域に書き込みデータを書き込むことができる。一方、読み出し回路１３は、アドレス信号で指定されるメモリ領域から記録データを読み出すことができる。読み出された記録データは、読み出しデータＤＲとしてデータ出力端子ＯＵＴから出力される。尚、ＲＡＭ１０は、クロック信号ＣＬＫに基づいて動作する。
【００１６】
第１論理回路１００は、セレクタ３０を介して、ＲＡＭ１０のアドレス入力端子ＡＩＮに接続されている。この第１論理回路１００は、アクセス対象のメモリ領域を指定するアドレス信号ＡＤＤをＲＡＭ１０に供給する回路である。具体的には、通常動作時あるいはスキャンテスト時、第１論理回路１００は、アドレス信号ＡＤＤを生成し、出力する。そのアドレス信号ＡＤＤは、セレクタ３０を通して、ＲＡＭ１０のアドレス入力端子ＡＩＮに入力される。尚、第１論理回路１００は、クロック信号ＣＬＫに基づいて動作する。
【００１７】
第２論理回路２００は、ＲＡＭ１０のデータ出力端子ＯＵＴに接続されている。通常動作時あるいはスキャンテスト時、この第２論理回路２００は、ＲＡＭ１０のデータ出力端子ＯＵＴから出力される読み出しデータＤＲを受け取る。尚、第２論理回路２００は、クロック信号ＣＬＫに基づいて動作する。
【００１８】
初期化回路２０は、スキャンテストの前にＲＡＭ１０を初期化するために設けられている。図１において、初期化回路２０は、セレクタ３０を介してアドレス入力端子ＡＩＮに接続され、セレクタ４０を介してデータ入力端子ＩＮに接続されている。この初期化回路２０は、ＲＡＭ１０の初期化用のアドレス信号ＡＤＤＩ及び初期値データＤＩを生成し、出力する。初期化アドレス信号ＡＤＤＩは、ＲＡＭ１０中で初期値データＤＩが書き込まれるメモリ領域のアドレスを示す。初期化アドレス信号ＡＤＤＩは、セレクタ３０を通して、ＲＡＭ１０のアドレス入力端子ＡＩＮに入力される。一方、初期値データＤＩは、セレクタ４０を通して、ＲＡＭ１０のデータ入力端子ＩＮに入力される。
【００１９】
セレクタ３０は、セレクト信号ＳＥＬに応じて、第１論理回路１００から出力されるアドレス信号ＡＤＤあるいは初期化回路２０から出力される初期化アドレス信号ＡＤＤＩのいずれか一方を選択する。そして、セレクタ３０は、選択された一方のアドレス信号を、ＲＡＭ１０のアドレス入力端子ＡＩＮに出力する。
【００２０】
セレクタ４０は、セレクト信号ＳＥＬに応じて、所定の論理回路（図示されない）から出力される書き込みデータＤＷあるいは初期化回路２０から出力される初期値データＤＩのいずれか一方を選択する。そして、セレクタ４０は、選択された一方のデータを、ＲＡＭ１０のデータ入力端子ＩＮに出力する。
【００２１】
制御回路５０は、各回路の動作を制御するための回路である。例えば、制御回路５０は、ＲＡＭ１０の動作モードを指定するモード信号ＭＯＤ、初期化回路２０を活性化する初期化イネーブル信号ＥＮ、セレクタ３０、４０を制御するためのセレクト信号ＳＥＬ等を出力する。
【００２２】
以下、図１で示された半導体集積回路１の通常動作及びスキャンテストを説明する。
【００２３】
（通常動作）
通常動作時、制御回路５０は、セレクタ３０、４０の各々が初期化回路２０以外からの出力を選択するように、セレクト信号ＳＥＬを設定する。モード信号ＭＯＤは、ＲＡＭ１０の動作に応じて適宜設定される。
【００２４】
第１論理回路１００は、アドレス信号ＡＤＤを生成し、生成されたアドレス信号ＡＤＤをＲＡＭ１０に対して出力する。セレクタ３０は、第１論理回路１００から出力されたアドレス信号ＡＤＤを、ＲＡＭ１０のアドレス入力端子ＡＩＮに送る。また、セレクタ４０は、所定の論理回路（図示されない）から受け取った書き込みデータＤＷを、ＲＡＭ１０のデータ入力端子ＩＮに送る。書き込み回路１２は、アドレス信号ＡＤＤで指定されるメモリ領域に書き込みデータＤＷを書き込む。あるいは、読み出し回路１３は、アドレス信号ＡＤＤで指定されるメモリ領域から記録データを読み出す。読み出された記録データは、読み出しデータＤＲとしてデータ出力端子ＯＵＴから出力される。第２論理回路２００は、ＲＡＭ１０から出力された読み出しデータＤＲを受け取る。
【００２５】
このように、第１論理回路１００からＲＡＭ１０のアドレス入力端子ＡＩＮへのパスは、通常動作時に用いられる「アドレス入力パス」である。また、ＲＡＭ１０のデータ出力端子ＯＵＴから第２論理回路２００へのパスは、通常動作時に用いられる「データ出力パス」である。アドレス入力パス及びデータ出力パスは、ＲＡＭ１０のインターフェース（ＡＩＮ、ＯＵＴ）につながっており、且つ、通常動作時に用いられる。
【００２６】
本実施の形態の１つの目的は、これらアドレス入力パス及びデータ出力パスの遅延故障を、スキャンテストにより直接検出することである。この場合、ＲＡＭ１０のインターフェースに関して、実動作速度テストを行うことが必要である。そのために、スキャンテストの開始前にＲＡＭ１０の初期化が行なわれる。
【００２７】
（ＲＡＭの初期化）
ＲＡＭ１０の初期化において、制御回路５０は初期化イネーブル信号ＥＮを“Enable”に設定し、これにより初期化回路２０は活性化される。また、制御回路５０は、セレクタ３０、４０の各々が初期化回路２０からの出力を選択するように、セレクト信号ＳＥＬを設定する。更に、制御回路５０は、モード信号ＭＯＤを“書き込みモード”に設定する。
【００２８】
初期化回路２０は、ＲＡＭ１０中の各メモリ領域に関して、初期化アドレス信号ＡＤＤＩ及び初期値データＤＩを生成する。後に詳しく説明されるように、本実施の形態によれば、あるメモリ領域に書き込まれる初期値データＤＩは、当該メモリ領域を指定する初期化アドレス信号ＡＤＤＩに依存する。すなわち、初期値データＤＩは、初期化アドレス信号ＡＤＤＩに基づいて生成される。このような初期値データＤＩと初期化アドレス信号ＡＤＤＩとの依存関係は、ある関数ｆを用いて「ＤＩ＝ｆ（ＡＤＤＩ）」と表される。
【００２９】
セレクタ３０は、初期化回路２０から出力された初期化アドレス信号ＡＤＤＩを、ＲＡＭ１０のアドレス入力端子ＡＩＮに送る。また、セレクタ４０は、初期化回路２０によって生成された初期値データＤＩを、ＲＡＭ１０のデータ入力端子ＩＮに出力する。ＲＡＭ１０の書き込み回路１２は、初期化アドレス信号ＡＤＤＩで指定されるメモリ領域に、初期値データＤＩを書き込む。全てのメモリ領域に初期値データＤＩがそれぞれ書き込まれると、ＲＡＭ１０の初期化は終了する。制御回路５０は、初期化イネーブル信号ＥＮを“Disable”に設定する。
【００３０】
（スキャンテスト）
ＲＡＭ１０の初期化の後に、スキャンテストが始まる。スキャンテスト時、半導体集積回路１の内部でスキャンチェーンＳＣが構成される。このスキャンチェーンＳＣは一般的なものと同様である。例えば、第１論理回路１００や第２論理回路２００は、スキャンフリップフロップを含んでおり、スキャンチェーンＳＣに組み込まれる。このスキャンチェーンＳＣを通して、スキャンテスト用のテストパタンＰＡＴが入力される。テストパタンＰＡＴは、半導体集積回路１の構成を考慮して、ＡＴＰＧによってあらかじめ作成されている。
【００３１】
スキャンテスト時、制御回路５０は、セレクタ３０、４０の各々が初期化回路２０以外からの出力を選択するように、セレクト信号ＳＥＬを設定する。更に、制御回路５０は、モード信号ＭＯＤを“読み出しモード”に設定する。すなわち、ＲＡＭ１０は、読み出しモードに固定される。また、ＲＡＭ１０は、通常動作時のクロック信号ＣＬＫに基づいて動作する。
【００３２】
第１論理回路１００は、テストパタンＰＡＴに応じてアドレス信号ＡＤＤを生成し、生成されたアドレス信号ＡＤＤをＲＡＭ１０に対して出力する。セレクタ３０は、第１論理回路１００から出力されたアドレス信号ＡＤＤを、ＲＡＭ１０のアドレス入力端子ＡＩＮに送る。このように、アドレス信号ＡＤＤは、通常動作時に用いられる「アドレス入力パス」を通して、ＲＡＭ１０に入力される。ＲＡＭ１０の読み出し回路１３は、アドレス信号ＡＤＤで指定されるメモリ領域から、上記初期化で設定された初期値データＤＩを読み出す。読み出された初期値データＤＩは、読み出しデータＤＲとしてデータ出力端子ＯＵＴから出力される。第２論理回路２００は、ＲＡＭ１０から出力された読み出しデータＤＲ（初期値データＤＩ）を受け取る。このように、読み出された初期値データＤＩは、通常動作時に用いられる「データ出力パス」を通して、ＲＡＭ１０から第２論理回路２００に送られる。
【００３３】
その後、スキャンチェーンＳＣ上のデータパタンは、外部に出力される。テスト装置は、入力されたテストパタンＰＡＴから期待される出力パタンと、実際に出力された出力パタンとを比較することにより、縮退故障あるいは遅延故障といった故障を検出することができる。本実施の形態では、ＲＡＭ１０のインターフェースにつながるアドレス入力パス及びデータ出力パスに関して、実動作速度テストが実現されている。従って、それらアドレス入力パス及びデータ出力パスの遅延故障を、スキャンテストにより直接検出することが可能である。
【００３４】
２．初期化の例
上述の通り、本実施の形態によれば、ＲＡＭ１０が特有な方法で初期化される。すなわち、あるメモリ領域の初期値データＤＩは、当該メモリ領域を指定する初期化アドレス信号ＡＤＤＩに依存するように設定される（ＤＩ＝ｆ（ＡＤＤＩ））。以下、ＲＡＭ１０の初期化の様々な例を説明する。
【００３５】
２−１．第１の例
図２は、ＲＡＭ１０の初期化の第１の例を概略的に示している。初期化回路２０は、初期化アドレス信号ＡＤＤＩを生成するアドレス生成回路２１を有している。アドレス生成回路２１は、例えば、クロック信号ＣＬＫに基づいてアドレスを発生するアドレスカウンタである。アドレス生成回路２１は、ＲＡＭ１０中の各メモリ領域を指定する初期化アドレス信号ＡＤＤＩを順番に生成する。生成された初期化アドレス信号ＡＤＤＩは、ＲＡＭ１０のアドレス入力端子ＡＩＮに出力される。更に、初期化アドレス信号ＡＤＤＩは、初期値データＤＩとして、ＲＡＭ１０のデータ入力端子ＩＮに出力される。すなわち、本例において、初期値データＤＩは、初期化アドレス信号ＡＤＤＩと同じである（ＤＩ＝ＡＤＤＩ）。
【００３６】
簡単のため、アドレスビット数とデータビット数が共に同じ２ビットである場合を考える。アドレスは（Ａ０，Ａ１）で表され、初期値は（Ｑ０，Ｑ１）で表されるとする。本例では、初期値データＤＩは初期化アドレス信号ＡＤＤＩと同じである（Ｑ０＝Ａ０，Ｑ１＝Ａ１）。従って、図２に示されるように、ＲＡＭ１０中の各メモリ領域には、アドレスと同じ初期値が書き込まれる。
【００３７】
図３を参照して、スキャンテストにおけるＲＡＭ１０の動作を説明する。第１論理回路１００によって生成されたアドレス信号ＡＤＤは、アドレス入力パスＰｉｎを通してＲＡＭ１０に入力される。ＲＡＭ１０は、クロック信号ＣＬＫに基づいて、アドレス信号ＡＤＤで指定されるメモリ領域から初期値データＤＩを読み出す。読み出された初期値データＤＩは、データ出力パスＰｏｕｔを通して第２論理回路２００に出力される。これにより、通常動作時に用いられるアドレス入力パスＰｉｎ及びデータ出力パスＰｏｕｔの遅延故障が検出され得る。
【００３８】
ここで、本例では、初期値（Ｑ０，Ｑ１）がアドレス（Ａ０，Ａ１）と同じであることに留意されたい。つまり、ＲＡＭ１０は、アドレス信号ＡＤＤを受け取り、そのアドレス信号ＡＤＤと同じ初期値データＤＩを出力する。この動作は、クロック信号ＣＬＫに基づいてアドレス信号ＡＤＤをラッチし、アドレス信号ＡＤＤを出力するフリップフロップの動作と等価である。すなわち、本例の手法で初期化されたＲＡＭ１０は、スキャンテストにおいて、フリップフロップと同等に動作する。
【００３９】
図３には、スキャンテストにおけるＲＡＭ１０の等価モデルが示されている。本例では、ＲＡＭ１０は、２つのフリップフロップでモデル化され得る。１つ目のフリップフロップは、アドレス信号ＡＤＤのビットＡ０を受け取り、そのビットＡ０（＝初期値データＤＩのビットＱ０）を出力する。２つ目のフリップフロップは、アドレス信号ＡＤＤのビットＡ１を受け取り、そのビットＡ１（＝初期値データのビットＱ１）を出力する。尚、２つのフリップフロップは、クロック信号ＣＬＫに基づいて動作する。
【００４０】
テストパタンＰＡＴを作成する際、ＡＴＰＧは、ＲＡＭ１０を図３で示された等価モデルで置き換える。つまり、ＡＴＰＧは、ＲＡＭ１０をフリップフロップとみなすことにより、テストパタンＰＡＴを作成することができる。ＲＡＭ１０を単純なフリップフロップとみなすことができるため、ＡＴＰＧがテストパタンＰＡＴを生成するために要する時間が短縮される。また、テストパタンＰＡＴの数も抑えられる。
【００４１】
また、スキャンテスト時、ＲＡＭ１０に入力されるアドレス信号ＡＤＤが変化すると、ＲＡＭ１０から出力されるデータ（初期値データＤＩ）も必ず変化する。それは、初期値がアドレスと同じだからである。遅延故障が発生していない限り、アドレス遷移に応じたデータ出力の変化が検出されるはずである。逆に言えば、アドレス遷移に応じたデータ出力の変化が検出されなければ、アドレス入力パスＰｉｎやデータ出力パスＰｏｕｔにおいて遅延故障が発生していると考えられる。このように、本例によれば、アドレス入力パスＰｉｎやデータ出力パスＰｏｕｔの遅延故障の検出率が向上する。本例において用いられる初期値は、スキャンテストの観点から非常に有効であると言える。
【００４２】
更に、ユーザは、スキャンテストの観点から有効な初期値を、試行錯誤により決定する必要はない。それは、初期値はアドレスと同じであり、自動的（機械的）に決定されるからである。ＲＡＭ１０の規模がどれだけ大きくなっても、初期値はアドレスに基づいて自動的に決定される。従って、初期値の決定に要する時間が大幅に短縮され、且つ、ユーザの負担も軽減される。本実施の形態のように、初期化回路２０に、初期値データＤＩを機械的に生成させることも可能となる。
【００４３】
以上に説明されたように、本例によれば、ＲＡＭ１０の初期化で用いられる初期値は簡単に決定される。その初期値を用いたスキャンテストにより、遅延故障の検出率が向上する。更に、ＲＡＭ１０は、単純な回路でモデル化され得る。従って、ＡＴＰＧがテストパタンＰＡＴを作成するために要する時間が短縮され、また、テストパタンＰＡＴの数も抑えられる。結果として、初期値の決定やテストパタンＰＡＴの生成を含め、テストに要する総時間が短縮される。
【００４４】
２−２．第２の例
図４は、ＲＡＭ１０の初期化の第２の例を概略的に示している。第１の例と重複する説明は適宜省略される。第２の例では、アドレスビット数がデータビット数よりも多い場合を考える。例えば、アドレスは（Ａ０，Ａ１）で表され、初期値は（Ｑ０）で表されるとする。
【００４５】
この場合、初期値Ｑ０を、アドレスビットＡ０，Ａ１の論理演算により生成することができる。そのために、初期化回路２０は、図４に示されるように、アドレス生成回路２１に加えて論理ゲート２２を有している。論理ゲート２２は、例えばＥＸＯＲ回路である。ＥＸＯＲ回路は、アドレスビットＡ０，Ａ１の排他的論理和を初期値Ｑ０として出力する。この場合も、初期値データＤＩ（Ｑ０）は、初期化アドレス信号ＡＤＤＩ（Ａ０，Ａ１）に基づいて生成されており、初期化アドレス信号ＡＤＤＩ（Ａ０，Ａ１）に依存していると言える。このようにして生成された初期値データＤＩが、ＲＡＭ１０のデータ入力端子ＩＮに出力される。図４に示されるように、ＲＡＭ１０中の各メモリ領域には、アドレス（Ａ０，Ａ１）に依存する初期値Ｑ０＝ｆ（Ａ０，Ａ１）が書き込まれる。
【００４６】
図５を参照して、スキャンテストにおけるＲＡＭ１０の等価モデルを説明する。スキャンテストにおいて、ＲＡＭ１０は、アドレス信号ＡＤＤ（Ａ０，Ａ１）を受け取り、初期値データＤＩ（Ｑ０）を出力する。出力される初期値Ｑ０は、アドレスビットＡ０，Ａ１の論理演算により得られる値である。従って、図５に示されるように、ＲＡＭ１０は、上述の論理ゲート２２とフリップフロップでモデル化され得る。論理ゲート２２は、アドレス信号ＡＤＤ（Ａ０，Ａ１）を受け取り、論理演算結果（Ｑ０）をフリップフロップに出力する。フリップフロップは、論理演算結果（Ｑ０）を受け取り、その論理演算結果（Ｑ０）を出力する。尚、フリップフロップは、クロック信号ＣＬＫに基づいて動作する。
【００４７】
テストパタンＰＡＴを作成する際、ＡＴＰＧは、ＲＡＭ１０を図５で示された等価モデルで置き換える。ＲＡＭ１０を単純な回路（論理ゲート＋フリップフロップ）とみなすことができるため、ＡＴＰＧがテストパタンＰＡＴを生成するために要する時間が短縮される。また、テストパタンＰＡＴの数も抑えられる。更に、初期値は、アドレスに基づいて自動的（機械的）に決定される。従って、初期値の決定に要する時間が大幅に短縮され、且つ、ユーザの負担も軽減される。このように、本例の初期化によっても、第１の例と同様の効果が得られる。
【００４８】
尚、図４及び図５で示された例では、初期化アドレス信号ＡＤＤＩの全てのビットの論理演算により初期値データＤＩが生成されているが、それに限られない。任意のアドレスビット数及びデータビット数を考えた場合、初期化アドレス信号ＡＤＤＩの所定数のビットが論理演算に用いられるとよい。すなわち、初期化回路２０は、初期化アドレス信号ＡＤＤＩの所定数のビットを用いて論理演算を行うことにより、初期化アドレス信号ＡＤＤＩに依存する初期値データＤＩを生成する。
【００４９】
２−３．第３の例
図６は、ＲＡＭ１０の初期化の第３の例を概略的に示している。第１の例と重複する説明は適宜省略される。第３の例では、アドレスビット数がデータビット数よりも少ない場合を考える。この場合、初期化回路２０は、初期化アドレス信号ＡＤＤＩに「追加ビット」を追加することにより、初期値データＤＩを生成する。
【００５０】
例として、アドレスが（Ａ０，Ａ１）で表され、初期値が（Ｑ０，Ｑ１，Ｑ２）で表される場合を考える。この場合、初期化回路２０は、アドレスビットＡ０を初期値のビットＱ０として用い、アドレスビットＡ１を初期値のビットＱ１として用いる。更に、初期化回路２０は、追加ビットＱ２を追加する。例えば、追加ビットＱ２の値は、“０”または“１”に固定されている。図６の例では、固定ビット“０”が追加ビットＱ２として用いられる。この場合も、初期値データＤＩ（Ｑ０，Ｑ１，Ｑ２）は、初期化アドレス信号ＡＤＤＩ（Ａ０，Ａ１）に基づいて生成されており、初期化アドレス信号ＡＤＤＩ（Ａ０，Ａ１）に依存していると言える。このようにして生成された初期値データＤＩが、ＲＡＭ１０のデータ入力端子ＩＮに出力される。図６に示されるように、ＲＡＭ１０中の各メモリ領域には、アドレス（Ａ０，Ａ１）に依存する初期値（Ｑ０，Ｑ１，Ｑ２）＝ｆ（Ａ０，Ａ１）が書き込まれる。
【００５１】
図７を参照して、スキャンテストにおけるＲＡＭ１０の等価モデルを説明する。スキャンテストにおいて、ＲＡＭ１０は、アドレス信号ＡＤＤ（Ａ０，Ａ１）を受け取り、初期値データＤＩ（Ｑ０，Ｑ１，Ｑ２）を出力する。ビットＱ０、Ｑ１は、アドレスビットＡ０、Ａ１のそれぞれと同じであり、ビットＱ２は固定ビットである。従って、図７に示されるように、ＲＡＭ１０は、２つのフリップフロップと固定データ出力でモデル化され得る。テストパタンＰＡＴを作成する際、ＡＴＰＧは、ＲＡＭ１０を図７で示された等価モデルで置き換える。本例の初期化によっても、第１の例と同様の効果が得られることは明らかである。
【００５２】
２−４．第４の例
図８は、ＲＡＭ１０の初期化の第４の例を概略的に示している。第４の例は、前述の第３の例と比較して、追加ビットＱ２の生成方法が異なっている。第３の例と重複する説明は適宜省略される。本例において、追加ビットＱ２は、アドレスビットＡ０，Ａ１の論理演算により生成される。そのために、初期化回路２０は、図８に示されるように、論理ゲート２２を有している。論理ゲート２２は、例えばＥＸＯＲ回路である。ＥＸＯＲ回路は、アドレスビットＡ０，Ａ１の排他的論理和を追加ビットＱ２として出力する。この場合も、初期値データＤＩ（Ｑ０，Ｑ１，Ｑ２）は、初期化アドレス信号ＡＤＤＩ（Ａ０，Ａ１）に基づいて生成されており、初期化アドレス信号ＡＤＤＩ（Ａ０，Ａ１）に依存していると言える。
【００５３】
図９を参照して、スキャンテストにおけるＲＡＭ１０の等価モデルを説明する。本例の場合、ＲＡＭ１０は、上述の論理ゲート２２と３つのフリップフロップでモデル化され得る。テストパタンＰＡＴを作成する際、ＡＴＰＧは、ＲＡＭ１０を図９で示された等価モデルで置き換える。本例の初期化によっても、第１の例と同様の効果が得られることは明らかである。
【００５４】
尚、図８及び図９で示された例では、初期化アドレス信号ＡＤＤＩの全てのビットの論理演算により追加ビットＱ２が生成されているが、それに限られない。任意のアドレスビット数及びデータビット数を考えた場合、初期化回路２０は、初期化アドレス信号ＡＤＤＩの所定数のビットを用いた論理演算により、必要な数の追加ビットを生成する。
【００５５】
２−５．第５の例
図１０は、ＲＡＭ１０の初期化の第５の例を概略的に示している。第５の例は、前述の第３の例と比較して、追加ビットＱ２の生成方法が異なっている。第３の例と重複する説明は適宜省略される。本例において、追加ビットＱ２は、アドレスビットＡ０，Ａ１のいずれかと同じである。例えば、図１０に示されるように、アドレスビットＡ１が、初期値のビットＱ１だけでなく追加ビットＱ２としても用いられる。この場合も、初期値データＤＩ（Ｑ０，Ｑ１，Ｑ２）は、初期化アドレス信号ＡＤＤＩ（Ａ０，Ａ１）に基づいて生成されており、初期化アドレス信号ＡＤＤＩ（Ａ０，Ａ１）に依存していると言える。
【００５６】
図１１を参照して、スキャンテストにおけるＲＡＭ１０の等価モデルを説明する。本例の場合、ＲＡＭ１０は、３つのフリップフロップでモデル化され得る。テストパタンＰＡＴを作成する際、ＡＴＰＧは、ＲＡＭ１０を図１１で示された等価モデルで置き換える。本例の初期化によっても、第１の例と同様の効果が得られることは明らかである。
【００５７】
尚、図１０及び図１１で示された例では、初期化アドレス信号ＡＤＤＩのあるビットＡ１が追加ビットＱ２として用いられているが、それに限られない。任意のアドレスビット数及びデータビット数を考えた場合、初期化回路２０は、初期化アドレス信号ＡＤＤＩの所定数のビットを用いることにより、必要な数の追加ビットを生成する。
【００５８】
２−６．第６の例
図１２は、ＲＡＭ１０の初期化の第６の例を概略的に示している。初期値データＤＩは、初期化アドレス信号ＡＤＤＩに依存していればよい。任意のアドレスビット数及びデータビット数を考えた場合、初期化回路２０は、初期化アドレス信号ＡＤＤＩの所定数のビットを用いて論理演算を行うことにより、初期化アドレス信号ＡＤＤＩに依存する初期値データＤＩを生成することができる。
【００５９】
２−７．その他の例
初期化アドレス信号ＡＤＤＩは、半導体集積回路１の内部で生成する必要は必ずしもなく、外部から与えられてもよい。例えば、図１３に示される回路構成の場合、初期化アドレス信号ＡＤＤＩは、外部入力端子ＥＴを通してシフトレジスタ２５に供給される。シフトレジスタ２５から出力される初期化アドレス信号ＡＤＤＩは、ＲＡＭ１０のアドレス入力端子ＡＩＮに入力される。また、初期化アドレス信号ＡＤＤＩと同じ初期値データＤＩ、あるいは、初期化アドレス信号ＡＤＤＩに基づいて生成される初期値データＤＩは、ＲＡＭ１０のデータ入力端子ＩＮに入力される。この場合でも、第１の例と同様の効果が得られる。
【００６０】
また、図１４に示されるように、初期化回路２０は、ＲＡＭ１０に組み込まれていてもよい。この場合、リセット信号ＲＳＴに応答して、初期化回路２０は、初期化アドレス信号ＡＤＤＩ及び初期値データＤＩを生成する。上述の例の場合と同様に、初期値データＤＩは、初期化アドレス信号ＡＤＤＩに依存している。書き込み回路１２は、初期化アドレス信号ＡＤＤＩで指定されるメモリ領域に、初期値データＤＩを書き込む。このように、リセット機能を用いて、ＲＡＭ１０の内部において自動的に初期化を実施することも可能である。この場合でも、第１の例と同様の効果が得られる。
【００６１】
３．効果
本実施の形態によれば、スキャンテストのために、ＲＡＭ１０が特有な方法で初期化される。具体的には、初期値データＤＩは初期化アドレス信号ＡＤＤＩに依存するように決定される（ＤＩ＝ｆ（ＡＤＤＩ））。これにより、スキャンテスト時のＲＡＭ１０を、単純な回路でモデル化することが可能となる。従って、ＡＴＰＧがテストパタンＰＡＴを作成するために要する時間が短縮され、また、テストパタンＰＡＴの数も抑えられる。
【００６２】
更に、スキャンテスト時、ＲＡＭ１０に入力されるアドレス信号ＡＤＤが変化すると、ＲＡＭ１０から出力されるデータ（初期値データＤＩ）も必ず変化する。従って、アドレス入力パスＰｉｎやデータ出力パスＰｏｕｔの遅延故障の検出率が向上する。本実施の形態において用いられる初期値は、スキャンテストの観点から非常に有効であると言える。
【００６３】
更に、ユーザは、スキャンテストの観点から有効な初期値を、試行錯誤により決定する必要はない。それは、初期値がアドレスに基づいて自動的（機械的）に決定されるからである。ＲＡＭ１０の規模がどれだけ大きくなっても、初期値はアドレスに基づいて自動的に決定される。従って、初期値の決定に要する時間が大幅に短縮され、且つ、ユーザの負担も軽減される。初期化回路２０に、初期値データＤＩを機械的に生成させることも可能となる。
【００６４】
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
【図面の簡単な説明】
【００６５】
【図１】図１は、本発明の実施の形態に係る半導体集積回路１の構成を示すブロック図である。
【図２】図２は、本実施の形態に係るＲＡＭの初期化の第１の例を概略的に示すブロック図である。
【図３】図３は、第１の例の場合の、スキャンテストにおけるＲＡＭの動作を説明するためのブロック図である。
【図４】図４は、本実施の形態に係るＲＡＭの初期化の第２の例を概略的に示すブロック図である。
【図５】図５は、第２の例の場合の、スキャンテストにおけるＲＡＭの動作を説明するためのブロック図である。
【図６】図６は、本実施の形態に係るＲＡＭの初期化の第３の例を概略的に示すブロック図である。
【図７】図７は、第３の例の場合の、スキャンテストにおけるＲＡＭの動作を説明するためのブロック図である。
【図８】図８は、本実施の形態に係るＲＡＭの初期化の第４の例を概略的に示すブロック図である。
【図９】図９は、第４の例の場合の、スキャンテストにおけるＲＡＭの動作を説明するためのブロック図である。
【図１０】図１０は、本実施の形態に係るＲＡＭの初期化の第５の例を概略的に示すブロック図である。
【図１１】図１１は、第５の例の場合の、スキャンテストにおけるＲＡＭの動作を説明するためのブロック図である。
【図１２】図１２は、本実施の形態に係るＲＡＭの初期化の第６の例を概略的に示すブロック図である。
【図１３】図１３は、本実施の形態に係るＲＡＭの初期化のその他の例を概略的に示すブロック図である。
【図１４】図１４は、本実施の形態に係るＲＡＭの初期化のその他の例を概略的に示すブロック図である。
【符号の説明】
【００６６】
１    半導体集積回路
１０    ＲＡＭ
２０    初期化回路
２１    アドレス生成回路
２２    論理ゲート
３０    セレクタ
４０    セレクタ
５０    制御回路
１００    第１論理回路
２００    第２論理回路
ＡＤＤ    アドレス信号
ＡＤＤＩ  初期化アドレス信号
ＤＩ    初期値データ
ＤＲ    読み出しデータ
ＤＷ    書き込みデータ
ＣＬＫ    クロック信号
ＳＣ    スキャンチェーン
ＰＡＴ    テストパタン
【図１】
2009289336.tif 000003
【図２】
2009289336.tif 000004
【図３】
2009289336.tif 000005
【図４】
2009289336.tif 000006
【図５】
2009289336.tif 000007
【図６】
2009289336.tif 000008
【図７】
2009289336.tif 000009
【図８】
2009289336.tif 000010
【図９】
2009289336.tif 000011
【図１０】
2009289336.tif 000012
【図１１】
2009289336.tif 000013
【図１２】
2009289336.tif 000014
【図１３】
2009289336.tif 000015
【図１４】
2009289336.tif 000016