以下、図面を用いて実施形態を説明する。信号が伝達される信号線および端子には、信号名と同じ符号を使用する。
図1は、メモリ試験回路およびメモリ試験回路の制御方法の一実施形態を示す。図1に示すメモリ試験回路MTaは、ライトポート識別情報保持部WPH、リードポート識別情報保持部RPH、ライトポート選択部WS、リードポート選択部RSおよび試験制御部TCNTaを有し、レジスタファイルRFaの試験を実行する。例えば、メモリ試験回路MTaは、レジスタファイルRFaとともに半導体集積回路(例えば、半導体チップ)に搭載される。
例えば、レジスタファイルRFaは、データを記憶する複数のエントリENT(ENT0、ENT1)、ライトポートWP(WP0、WP1)およびリードポートRP(RP0、RP1)を有する。ライトポートWPは、エントリENTへのデータの書き込み時に使用される。リードポートRPは、エントリENTに保持されたデータの読み出し時に使用される。レジスタファイルRFaは、メモリ回路の一例であり、エントリENTは、記憶部の一例である。
ライトポート識別情報保持部WPHは、ライトポートWP0、WP1のいずれかを識別するライトポート識別情報WPIを保持する。リードポート識別情報保持部RPHは、リードポートRP0、RP1のいずれかを識別するリードポート識別情報RPIを保持する。ライトポート選択部WSは、ライトポート識別情報WPIに基づき複数のライトポートWPのいずれかを選択する。リードポート選択部RSは、リードポート識別情報RPIに基づき複数のリードポートRPのいずれかを選択する。試験制御部TCNTaは、ライトポート識別情報保持部RPHにライトポート識別情報WPIを設定するとともに、リードポート識別情報保持部RPHにリードポート識別情報RPIを設定する。
試験制御部TCNTaは、ライトポート識別情報WPIに基づいてライトポート選択部WSが選択したライトポートWPを介してエントリENTにデータを書き込む。例えば、試験制御部TCNTaは、ライトポート選択部WSが選択したライトポートWPにライトアドレスおよびライトデータを出力する。そして、ライトデータは、ライトアドレスに基づいて選択されたエントリENT0、ENT1のいずれかに書き込まれる。試験制御部TCNTaは、リードポート識別情報RPIに基づいてリードポート選択部RSが選択したリードポートRPを介してエントリENTからデータを読み出す。例えば、試験制御部TCNTaは、リードポート選択部RSが選択したリードポートRPにリードアドレスを出力し、リードアドレスに応じて選択されたエントリENT0、ENT1のいずれかからリードポートRPに出力されるデータを受ける。そして、例えば、試験制御部TCNTaは、読み出したデータを期待値と比較することで、レジスタファイルRFaが正常に動作するか否かを判定する。すなわち、試験制御部TCNTaは、レジスタファイルRFaの良否を判定する試験を実行する。
これにより、複数のライトポートWP0、WP1および複数のリードポートRP0、RP1を有するレジスタファイルRFaの試験を、1つのライトポートWPおよび1つのリードポートRPを有するレジスタファイルと見なして実行することできる。すなわち、試験制御部TCNTaは、1つのライトポートWPと1つのリードポートRPとを試験する既存の試験回路を用いて、複数のライトポートWPと複数のリードポートRPを有するレジスタファイルRFaを試験することができる。
これに対して、メモリ試験回路MTaがライトポート識別情報保持部WPH、リードポート識別情報保持部RPH、ライトポート選択部WSおよびリードポート選択部RSを持たない場合、レジスタファイルRFaの試験を試験制御部TCNTaにより実行することは困難である。この場合、例えば、ライトポートWP0、WP1毎に試験パターンを生成する回路と、リードポートRP0、RP1毎に試験パターンおよび期待値を生成し、データと期待値とを比較する回路とを有する試験制御部が新たに設計される。図1に示すメモリ試験回路MTaでは、新たに設計される試験制御部に比べて試験制御部TCNTaの回路規模を削減することができる。
メモリ試験回路MTaが、レジスタファイルRFaとともに半導体集積回路に搭載される場合、メモリ試験回路MTaの回路規模が削減されることで、半導体集積回路のチップサイズを削減することが可能になる。例えば、メモリ試験回路MTaの回路規模の削減により、回路および配線の実装密度が高くなる場合、クリティカルパス上の信号の伝搬遅延時間を短縮することが可能になり、半導体集積回路の動作周波数を高くすることが可能になる。すなわち、メモリ試験回路MTaの回路規模の増加を抑制することで、レジスタファイルRFaのアクセス性能が低下することを抑止できる。
図2は、メモリ試験回路およびメモリ試験回路の制御方法の別の実施形態を示す。図1に示した実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。図2に示すメモリ試験回路MTbは、アドレス生成部AGEN、アドレス変換部ACNVおよび試験制御部TCNTbを有する。例えば、メモリ試験回路MTbは、レジスタファイルRFbとともに半導体集積回路(例えば、半導体チップ)に搭載される。
例えば、レジスタファイルRFbは、データを記憶する複数のエントリENT(ENT0、ENT2、ENT3)、ライトポートWPおよびリードポートRPを有する。各エントリENT0、ENT2、ENT3の末尾の数字は、エントリENTに割り当てられたアドレスを示す。すなわち、エントリENT0、ENT2、ENT3には、アドレス”1”が欠落した不連続なアドレスが割り当てられる。レジスタファイルRFaは、メモリ回路の一例であり、エントリENTは、記憶部の一例である。
アドレス生成部AGENは、連続するアドレスAD0(例えば、”0”、”1”、”2”)を順次に生成する。なお、アドレス生成部AGENは、試験制御部TCNT内に設けられてもよい。アドレス変換部ACNVは、アドレス生成部AGENが生成したアドレスAD0をエントリENT0、ENT2、ENT3に割り当てられたアドレスAD1(すなわち、”0”、”2”、”3”)に変換する。
試験制御部TCNTbは、アドレス生成部AGENが生成したアドレスAD0に基づいて、各エントリENT0、ENT2、ENT3にデータを順次に書き込む。また、試験制御部TCNTbは、アドレス生成部AGENが生成したアドレスAD0に基づいて、各エントリENT0、ENT2、ENT3からデータを順次に読み出す。例えば、アドレスAD0(=”1”)に基づいて、データはエントリENT2に書き込まれ、アドレスAD0(=”1”)に基づいて、データはエントリENT2から読み出される。そして、例えば、試験制御部TCNTbは、読み出したデータを期待値と順次に比較することで、レジスタファイルRFbが正常に動作するか否かを判定する。すなわち、試験制御部TCNTは、アドレス変換部ACNVが変換したアドレスAD1により順次にアクセスされるエントリENT0、ENT2、ENT3の良否を判定する試験を実行する。
図2に示すメモリ試験回路MTbでは、アドレス変換部ACNVは、既存のアドレス生成部AGENが生成する連続するアドレスAD0を不連続なアドレスAD1に変換する。これにより、連続するアドレスを生成するアドレス生成部AGENを利用して、不連続なアドレスが割り当てられたエントリENTを有するレジスタファイルRFbを試験することができる。したがって、図1と同様に、既存の試験回路を用いて、レジスタファイルRFbを試験することができる。さらに、レジスタファイルRFbを試験する回路の規模が増加することを抑制することができ、レジスタファイルRFbの性能が低下することを抑止できる。
図3は、メモリ試験回路およびメモリ試験回路の制御方法の別の実施形態を示す。図1に示した実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。図3に示すメモリ試験回路MTcは、検出部DET、比較部CMPおよび試験制御部TCNTcを有する。例えば、メモリ試験回路MTcは、レジスタファイルRFcとともに半導体集積回路(例えば、半導体チップ)に搭載される。
例えば、レジスタファイルRFcは、データを記憶する複数のエントリENT(ENT0、ENT1、ENT2、ENT3)、ライトポートWPおよびリードポートRPを有する。レジスタファイルRFcは、メモリ回路の一例であり、エントリENTは、記憶部の一例である。レジスタファイルRFcは、データを読み出すエントリENTを示すリードアドレスRA[1:0]の試験パターンに応じてリードデータRDの出力タイミングが異なる。
例えば、レジスタファイルRFcは、エントリENT0−ENT3から読み出されるデータを選択するセレクタSELa、SELb、SELcを有する。セレクタSELaは、リードアドレスRAの上位ビットRA[1]に応じて、エントリENT0、ENT1のいずれかを選択する。セレクタSELbは、リードアドレスRAの上位ビットRA[1]に応じて、エントリENT2、ENT3のいずれかを選択する。セレクタSELcは、リードアドレスRAの下位ビットRA[0]に応じて、セレクタSELa、SELbの出力のいずれかを選択する。
リードアドレスRAの上位ビットRA[1]が変化する場合、リードデータRDは、上位ビットRA[1]が変化した後、セレクタSELa(またはSELb)とセレクタSELcとにより選択され、リードポートRPから出力される。すなわち、上位ビットRA[1]が変化する場合、リードデータRDは、セレクタSELa(またはSELb)、SELcの伝搬遅延時間後にリードポートRPに出力される。
一方、リードアドレスRAの下位ビットRA[1]が変化しない場合、エントリENTから出力されるデータは、試験の開始前にセレクタSELcまで伝搬される。このため、リードデータRDは、下位ビットRA[0]が変化した後、セレクタSELcにより選択され、リードポートRPから出力される。すなわち、下位ビットRA[0]が変化する場合、リードデータRDは、セレクタSELcの伝搬遅延時間後にリードポートRPに出力される。このように、リードアドレスRAの上位ビットRA[1]の変化を含む試験パターンにより読み出されるリードデータRDの出力タイミングは、上位ビットRA[1]の変化を含まない試験パターンにより読み出されるリードデータRDの出力タイミングよりも遅い。
検出部DETは、データの出力タイミングが他のデータの出力タイミングより遅くなるリードアドレスRA[1:0]の試験パターンを検出した場合、マスク信号MSKを出力する。比較部CMPは、検出部DETからのマスク信号MSKに基づいて、リードデータRDが確定するまでの所定の期間、リードデータRDと期待値EXPDとの比較を無効にする。すなわち、比較部CMPは、レジスタファイルRFcからデータの読み出しが開始されてから所定の期間、リードデータRDと期待値EXPDとの比較を無効にする。
試験制御部TCNTcは、比較部CMPによる比較結果に基づいてレジスタファイルRFcの良否を判定する。メモリ試験回路MTcでは、リードデータRDが確定する前に、比較器CMPがリードデータRDと期待値EXPDとを比較することを禁止することができ、試験制御部TCNTcによるレジスタファイルRFcの良否の誤判定を抑止することができる。換言すれば、レジスタファイルRFcが誤って不良と判定されることを抑止できるため、誤った判定により、試験が途中で中断することを抑止することができる。
これにより、リードアドレスRA[1:0]の試験パターンに応じてリードデータRDの出力タイミングが異なる場合にも、図1および図2と同様に、既存の試験回路を用いて、レジスタファイルRFcを試験することができる。これに対して、メモリ試験回路MTcが図3に示す検出部DETおよび比較部CMPを持たない場合、試験制御部TCNTcは、レジスタファイルRFcを誤って不良と判定し、試験を途中で中断する。あるいは、リードアドレスRA[1:0]の試験パターンに応じて、リードデータRDと期待値EXPDとの比較を所定の期間無効にする機能を有する試験制御部が、新たに設計される。
図4は、メモリ試験回路およびメモリ試験回路の制御方法の別の実施形態を示す。例えば、図4に示すメモリ試験回路MT1は、半導体集積回路に搭載されるレジスタファイルRF1を試験する。例えば、メモリ試験回路MT1は、レジスタファイルRF1とともに半導体集積回路(例えば、半導体チップ)に搭載される。太い一点鎖線で囲まれた領域はレジスタファイルRF1を示し、細い一点鎖線で囲まれた領域は、試験回路の一部を含む拡張されたレジスタファイルTRF1を示す。太い一点鎖線上に示すX印を付けた矩形は、レジスタファイルRF1のポート(端子)を示す。細い一点鎖線上に示す白丸は、CPU(Central Processing Unit)コアの通常動作モード(システムモードとも称される)で使用されるレジスタファイルTRF1のポート(端子)を示す。細い一点鎖線上に示す二重丸は、レジスタファイルRF1の試験で使用されるレジスタファイルTRF1のポート(端子)を示す。信号線上の”/”の脇に付けた数字は、ビット幅を示す。
例えば、レジスタファイルRF1は、CPUコア内に設けられ、CPUが実行する演算で使用されるデータを保持する複数のエントリENT(ENT0、ENT1、ENT2、ENT3)を有する。例えば、各エントリENTは、72ビットのデータを保持する72個のラッチ回路(Dフリップフロップ)を有する。エントリENTは、選択用のアドレスが順次に割り当てられており、例えば、各エントリENTの末尾に付けた数字はアドレスを示す。なお、レジスタファイルRF1は、CPUコア以外の他の制御回路に搭載され、他の制御回路で使用するデータを保持してもよい。また、レジスタファイルRF1に設けられるエントリENTは、アドレスが順次に割り当てられていれば、4つに限定されず、2つでも5つ以上でもよい。レジスタファイルRF1は、メモリ回路の一例であり、エントリENTは、記憶部の一例である。
レジスタファイルRF1は、2つのライトデータポートWDP(WDP0、WDP1)を有し、各ライトデータポートWDP0、WDP1で受けるデータを4つのエントリENTのいずれかに選択的に書き込み可能である。データを書き込むエントリENTは、ライトデータポートWDPに対応するライトアドレスポートWAP(WAP0、WAP1)で受けるアドレスに応じて選択される。エントリENTにデータを書き込む場合、ライトデータポートWDPに対応するライトイネーブルポートWEP(WEP0、WEP1)にライトイネーブル信号が供給される。ライトデータポートWDP、ライトアドレスポートWAPおよびライトイネーブルポートWEPは、エントリENTへのデータの書き込み時に使用されるライトポートの一例である。
例えば、各ライトデータポートWDPは、72ビットであり、各ライトアドレスポートWAPは2ビットであり、各ライトイネーブルポートWEPは1ビットである。レジスタファイルRF1のライトアクセスサイクルは、1クロックサイクルである。すなわち、レジスタファイルRF1は、ライトイネーブル信号WEP、ライトアドレスWAPおよびライトデータWDPを受けたクロックサイクルの次のクロックサイクルにライトデータWDPを保持可能である。
また、レジスタファイルRF1は、4つのリードデータポートRDP(RDP0、RDP1、RDP2、RDP3)を有し、4つのエントリENTに保持されたデータをリードデータポートRDPのいずれかに選択的に出力可能である。データを出力するエントリENTは、リードデータポートRDPに対応するリードアドレスポートRAP(RAP0、RAP1、RAP2、RAP3)で受けるアドレスに応じて選択される。リードデータポートRDPおよびリードアドレスポートRAPは、エントリENTに保持されたデータの読み出し時に使用されるリードポートの一例である。
例えば、各リードデータポートRDPは72ビットであり、各リードアドレスポートRAPは、2ビットである。レジスタファイルRF1のリードアクセスサイクルは、1クロックサイクルである。すなわち、レジスタファイルRF1は、リードアドレスRAPを受けた次のクロックサイクルにリードデータRDPを出力可能である。レジスタファイルRF1の内部構成の例は、図5に示される。
一方、試験用に拡張されたレジスタファイルTRF1は、ライトイネーブル信号BWEP、ライトアドレスBWAP、ライトデータWDP、リードアドレスBRAPおよびリードデータBRDPのそれぞれに対応して1つの試験用のポート(図4の二重丸)を有する。すなわち、メモリ試験回路MT1は、2つのライトイネーブルポートWEPに接続される経路の試験を、1つのライトイネーブルポートBWEPを用いて実行することができる。メモリ試験回路MT1は、2つのライトアドレスポートWAPに接続される経路の試験を、1つのライトアドレスポートBWAPを用いて実行することができる。メモリ試験回路MT1は、2つのライトデータポートWDPに接続される経路の試験を、1つのライトデータポートBWDPを用いて実行することができる。メモリ試験回路MT1は、4つのリードアドレスポートRAPに接続される経路の試験を、1つのリードアドレスポートBRAPを用いて実行することができる。
メモリ試験回路MT1は、JTAG(Joint Test Action Group)方式のバウンダリスキャン試験の実行を制御する制御部JTAGCおよび試験制御部MBISTを有する。また、メモリ試験回路MT1は、複数のラッチ回路FF、セレクタ部SU1、SU2、セレクタDSELおよび比較器CMPを有する。例えば、ラッチ回路FFは、クロックに同期して動作するDフリップフロップである。
制御部JTAGCは、JTAG方式にしたがって、試験用の信号TDI、TMS、TCK、TRSTを受け、信号TDOを出力する。ここで、信号TDIは、Test Data Inを示し、信号TMSはTest Mode Selectを示し、信号TCKはTest Clockを示し、信号TRSTはTest Resetを示し、信号TDOはTest Data Outを示す。例えば、レジスタファイルRF1の試験では、複数のラッチ回路FFは、直列に接続され、制御部JTAGCにより制御されてシフトレジスタとして機能する。シフトレジスタのシフト動作により、各ラッチ回路FFに試験用のデータが保持され、各ラッチ回路FFに保持されたデータが読み出される。すなわち、バウンダリスキャン試験が実行される。
試験制御部MBISTは、レジスタファイルRF1を自動的に試験するBISTを実行する回路であり、制御部JTAGCによる制御に基づいて、試験パターンを生成し、試験の良否を判定する。例えば、試験パターンは、リードアドレス、ライトイネーブル信号、ライトアドレス、ライトデータおよび期待値を含む。試験制御部MBISTの出力に接続されたラッチ回路FF(RA、WE、WA、WD、EXP)のそれぞれは、リードアドレスBRAP、ライトイネーブル信号BWEP、ライトアドレスBWAP、ライトデータPWDPおよび期待値EXPDを出力する。
以下の説明では、各ラッチ回路FFは、ラッチ回路RA、WE、WA、WD、EXP、BM、WPS、RPS、RD0、RD1、RD2、RD3とも称される。ラッチ回路WPSは、複数のライトイネーブルポートWEPのいずれか、複数のライトアドレスポートWAPのいずれか、および複数のライトデータポートWDPのいずれかを示すライトポート選択情報WPSELを保持するライトポート識別情報保持部の一例である。ライトポート選択情報WPSELは、複数のライトイネーブルポートWEPのいずれか、複数のライトアドレスポートWAPのいずれか、および複数のライトデータポートWDPのいずれかを識別するライトポート識別情報の一例である。ラッチ回路RPSは、複数のリードアドレスポートRAPのいずれか、および複数のリードデータポートRDPのいずれかを示すリードポート選択情報RPSELを保持するリードポート識別情報保持部の一例である。リードポート選択情報RPSELは、複数のリードアドレスポートRAPのいずれか、および複数のリードデータポートRDPのいずれかを識別するリードポート識別情報の一例である。なお、試験制御部MBISTは、レジスタファイルRF1の試験に加えて、CPUコアに搭載される他の回路(演算器およびステートマシンなど)の試験を実行してもよい。
セレクタ部SU1は、リードアドレスSRAP(SRAP0、SRAP1、SRAP2、SRAP3)とラッチ回路RAからのリードアドレスBRAPとのいずれかを選択する4つのセレクタSELを有する。BISTで使用されるリードアドレスBRAPは、各セレクタSEL1に共通の信号である。リードアドレスSRAP0−SRAP3は、CPUコアのシステムモード中に使用され、リードアドレスポートRAP0−RAP3のそれぞれに供給される。
セレクタSEL1内の入力側に示す数字は、試験モード信号BISTMの論理と、有効になる入力端子との関係を示す。試験モード信号BISTMは、ラッチ回路BMを用いて、BISTを実行する試験モード中に論理1に設定され、システムモード中に論理0に設定される。そして、試験モード信号BISTMが論理1の場合、各セレクタSEL1の下側の入力が選択され、試験モード信号BISTMが論理0の場合、各セレクタSEL1の上側の入力が選択される。
各セレクタSEL1内の出力側に示す数字は、BIST時に設定されるラッチ回路RPSから出力される2ビットのリードポート選択情報RPSELの値を示す。例えば、リードポート選択情報RPSELが”0”の場合、リードアドレスポートRAP0に接続されたセレクタSEL1が、リードアドレスBRAPをリードアドレスRAP0として出力し、他のセレクタSEL1は無効になる。リードポート選択情報RPSELが”2”の場合、リードアドレスポートRAP2に接続されたセレクタSEL1が、リードアドレスBRAPをリードアドレスRAP2として出力し、他のセレクタSEL1は無効になる。なお、ラッチ回路RPSの数(すなわち、リードポート選択情報RPSELのビット数)は、リードデータポートRDPの数が2のn乗個の場合(nは1以上の整数)、n個である。
各セレクタSEL1内の出力側に示す”x”印は、システムモード中にリードポート選択情報RPSELの値が無効にされ、各セレクタSEL1が、リードアドレスSRAPをリードアドレスRAPとして出力することを示す。セレクタ部SU1は、リードポート選択情報RPSELに基づきリードポートRAPのいずれかを選択するリードポート選択部の一例である。
レジスタファイルTRF1内にセレクタ部SU1を設けることにより、ラッチ回路RAの出力をリードアドレスポートRAP0−RAP3のいずれかに選択的に接続することができる。これにより、試験制御部MBISTは、共通のリードアドレスBRAPを用いてリードアドレスポートRAP0−RAP3に接続された経路および回路を試験することができる。したがって、リードアドレスポートRAP0−RAP3毎にリードアドレスBRAPを生成する場合に比べて、メモリ試験回路MT1の回路規模を削減することができる。
セレクタ部SU2は、ライトイネーブルポートSWEP(SWEP0、SWEP1)とラッチ回路WEからのライトイネーブル信号BWEPとのいずれかを選択する2つのセレクタSEL2を有する。セレクタ部SU2は、ライトアドレスSWAP(SWAP0、SWAP1)とラッチ回路WAからのライトアドレスBWAPとのいずれかを選択する2つのセレクタSEL3を有する。セレクタ部SU2は、ライトデータSWDP(SWDP0、SWDP1)とラッチ回路WDからのライトデータBWDPとのいずれかを選択する2つのセレクタSEL4を有する。
各セレクタSEL2、SEL3、SEL4内の入力側に示す数字は、セレクタSEL1と同様に、試験モード信号BISTMの論理と、有効になる入力端子との関係を示す。各セレクタSEL2、SEL3、SEL4内の出力側に示す数字は、BIST時に設定されるラッチ回路WPSから出力される1ビットのライトポート選択情報WPSELの値を示す。
例えば、ライトポート選択情報WPSELが”0”の場合、ライトイネーブルポートWEP0に接続されたセレクタSEL2が、ライトイネーブル信号BWEPをライトイネーブル信号WEP0として出力し、他のセレクタSEL2は無効になる。ライトポート選択情報WPSELが”0”の場合、ライトアドレスポートWAP0に接続されたセレクタSEL3が、ライトアドレスBWAPをライトアドレスWAP0として出力し、他のセレクタSEL3は無効になる。同様に、ライトポート選択情報WPSELが”1”の場合、ライトデータポートWDP1に接続されたセレクタSEL4が、ライトデータBWDPをライトアドレスWDP1として出力し、他のセレクタSEL4は無効になる。なお、ラッチ回路WPSの数(すなわち、ライトポート選択情報WPSELのビット数)は、ライトデータポートWDPの数が2のn乗個の場合(nは1以上の整数)、n個である。
各セレクタSEL2内の出力側に示す”x”印は、システムモード中にライトポート選択情報WPSELの値が無効にされ、各セレクタSEL2が、ライトイネーブル信号SWEPをライトイネーブル信号WEPとして出力することを示す。各セレクタSEL3内の出力側に示す”x”印は、システムモード中にライトポート選択情報WPSELの値が無効にされ、各セレクタSEL3が、ライトアドレスSWAPをライトアドレスWAPとして出力することを示す。各セレクタSEL4内の出力側に示す”x”印は、システムモード中にライトポート選択情報WPSELの値が無効にされ、各セレクタSEL4が、ライトデータSWDPをライトデータWDPとして出力することを示す。
セレクタ部SU2は、ライトポート選択情報WPSELに基づき複数のライトイネーブルポートWEPのいずれか、複数のライトアドレスポートWAPのいずれか、および複数のライトデータポートWDPのいずれかを選択するライトポート選択部の一例である。ライトイネーブル信号WEP、ライトアドレスWAPおよびライトデータWDPは、エントリENTにデータを書き込む書き込みアクセス信号の一例である。リードアドレスRAPおよびリードデータRDPは、エントリENTからデータを読み出す読み出しアクセス信号の一例である。
レジスタファイルTRF1内にセレクタ部SU2を設けることにより、ラッチ回路WEの出力をライトイネーブルポートWEP0−WEP1のいずれかに選択的に接続することができる。これにより、試験制御部MBISTは、共通のライトイネーブル信号BWEPを用いてライトイネーブルポートWEP0−WEP1に接続された経路および回路を試験することができる。したがって、ライトイネーブルポートWEP0−WEP1毎にライトイネーブル信号BWEPを生成する場合に比べて、メモリ試験回路MT1の回路規模を削減することができる。
また、レジスタファイルTRF1内にセレクタ部SU2を設けることにより、ラッチ回路WAの出力をライトアドレスポートWAP0−WAP1のいずれかに選択的に接続することができる。これにより、試験制御部MBISTは、共通のライトアドレスBWAPを用いてライトアドレスポートWAP0−WAPに接続された経路および回路を試験することができる。したがって、ライトアドレスポートWAP0−WAP1毎にライトアドレスBWAPを生成する場合に比べて、メモリ試験回路MT1の回路規模を削減することができる。
さらに、レジスタファイルTRF1内にセレクタ部SU2を設けることにより、ラッチ回路BWDPの出力をライトデータポートWDP0−WDP1のいずれかに選択的に接続することができる。これにより、試験制御部MBISTは、共通のライトデータBWDPを用いてライトデータポートWDP0−WDP1に接続された経路および回路を試験することができる。したがって、ライトデータポートWDP0−WDP1毎にライトデータBWDPを生成する場合に比べて、メモリ試験回路MT1の回路規模を削減することができる。
ラッチ回路RD(RD0、RD1、RD2、RD3)は、リードデータポートRDP(RDP0、RDP1、RDP2、RDP3)から出力されるデータを保持する。セレクタDSELは、ラッチ回路RD0−RD3から出力されるリードデータRDPをリードポート選択情報RPSELの値に応じて選択し、選択したリードデータRDPをリードデータBRDPとして出力する。例えば、リードポート選択情報RPSELが”0”の場合、セレクタDSELは、ラッチ回路RD0から出力されるリードデータRDP0をリードデータBRDPとして出力する。リードポート選択情報RPSELが”3”の場合、セレクタDSELは、ラッチ回路RD3から出力されるリードデータRDP3をリードデータBRDPとして出力する。
比較器CMPは、72ビットのリードデータBRDPの各ビットとラッチ回路EXPから出力される72ビットの期待値EXPDの各ビットとを比較し、エラー信号ERRを出力する。例えば、比較器CMPは、リードデータRDと期待値EXPDとの全ビットが一致する場合、試験のパスを示す論理0のエラー信号ERRを出力する。比較器CMPは、リードデータRDと期待値EXPDとの少なくとも1ビットが不一致の場合、試験のフェイルを示す論理1のエラー信号ERRを出力する。ラッチ回路CMPEは、エラー信号ERRを保持する。
レジスタファイルTRF1内にセレクタDSELを設けることにより、リードデータポートRDP0−RDP3から出力されるデータが正しいか否かを、1つの比較器CMPにより判定することができる。これにより、1つの比較器CMPを用いてレジスタファイルRF1の動作を試験することができ、リードデータポートRDP0−RDP3に接続された経路を試験することができる。したがって、リードデータポートRDP0−RDP3毎に比較器CMPを設ける場合に比べて、メモリ試験回路MT1の回路規模を削減することができる。メモリ試験回路MT1の回路規模の削減効果は、図9および図10で説明される。
さらに、メモリ試験回路MT1は、信号の種類毎に複数のポートを有するレジスタファイルRF1を試験する場合、信号の種類毎に1つのポートを有するレジスタファイルTRF1としてアクセス可能にする。これにより、メモリ試験回路MT1は、単一のポートBWEP、BWAP、BWDP、BRAP、BRDPを試験する既存の試験制御部MBISTを用いて、複数のポートWEP、WAP、WDP、RAP、RDPを有するレジスタファイルRF1を試験できる。
各加算器ADDは、例えば、CPUコアの演算器に含まれ、システムモード中に動作する。例えば、各加算器ADDは、レジスタファイルRF1から出力されるリードデータRDPを演算し、ライトデータポートWDPを介して演算結果をレジスタファイルRF1に戻す。
図5は、図4に示すレジスタファイルRF1の例を示す。レジスタファイルRF1は、ライト制御部WCNT1、入力セレクタIS(IS0、IS1、IS2、IS3)、出力セレクタOS(OS0、OS1、OS2、OS3)および図4に示すエントリENT0−ENT3を有する。
ライト制御部WCNT1は、有効レベル(例えば、論理1)を示すライトイネーブル信号WEPに対応するライトアドレスWAPに応じて2ビットのセレクタ制御信号SC(SC0、SC1、SC2、SC3)を出力する。例えば、各セレクタ制御信号SCの上位ビットは、入力セレクタISの有効/無効の制御に使用され、各セレクタ制御信号SCの下位ビットは、入力セレクタISの入力端子の選択に使用される。
例えば、ライトイネーブル信号WEP0が有効レベルを示し、ライトアドレスWAP0が”0”を示す場合、ライト制御部WCNT1は、入力セレクタIS0を有効にし、入力セレクタIS0にライトデータWDP0を選択させるセレクタ制御信号SC0を出力する。同様に、ライトイネーブル信号WEP1が有効レベルを示し、ライトアドレスWAP0が”2”を示す場合、ライト制御部WCNT1は、入力セレクタIS2を有効にし、入力セレクタIS2にライトデータWDP1を選択させるセレクタ制御信号SC2を出力する。各入力セレクタISは、セレクタ制御信号SCに基づいて、ライトデータWDP0、WDP1のいずれかをエントリENTに出力する。なお、ライトイネーブル信号WEP0、WEP1がともに有効レベルを示し、ライトアドレスWAP0、WAP1が互いに異なる場合、ライトデータポートWDP0、WDP1のそれぞれで受けるデータは、互いに異なるエントリENTに書き込まれる。
各出力セレクタOSは、リードアドレスRAPに応じた入力端子で受けるデータを選択し、選択したデータをリードデータRDPとして出力する。各出力セレクタOSの入力端子に示す数字は、リードアドレスRAPの値を示す。例えば、リードアドレスRAPが”1”の場合、各出力セレクタOSは、エントリENT1から出力されるデータを選択し、リードアドレスRAPが”2”の場合、各出力セレクタOSは、エントリENT2から出力されるデータを選択する。なお、出力セレクタOS0−OS3は、互いに重複して動作可能である。
図6は、図4に示す試験制御部MBISTの例を示す。試験制御部MBISTは、信号生成部RAGEN、WAGEN、DGEN、EXPGENと、信号生成部RAGEN、WAGEN、DGEN、EXPGENの動作を制御する動作制御部MBISTCとを有する。
信号生成部RAGENは、リードアドレスRAPのインクリメンタINC、デクリメンタDEC、セレクタSELおよびラッチ回路FFを有し、昇順または降順に連続して変化するリードアドレスRAPを順次に生成する。信号生成部WAGENは、ライトアドレスWAPのインクリメンタINC、デクリメンタDEC、セレクタSELおよびラッチ回路FFを有し、昇順または降順に連続して変化するライトアドレスWAPを順次に生成する。
信号生成部DGENは、オール0のデータまたはオール1のデータを選択するセレクタSELおよびラッチ回路FFを有し、オール0またはオール1のライトデータBWDPを生成する。信号生成部EXPGENは、オール0の期待値またはオール1の期待値を選択するセレクタSELおよびラッチ回路FFを有し、オール0またはオール1の期待値EXPDを生成する。
動作制御部MBISTCは、リードアドレスRAPおよびライトアドレスWAPの初期値と、昇順または降順を示す情報と、ライトデータWDPおよび期待値EXPDの設定値を示す情報とを生成する。また、動作制御部MBISTCは、ライトアドレスWAPおよびライトデータWDPの出力に合わせてライトイネーブル信号BWEPを生成する。
図4で説明したように、メモリ試験回路MT1は、信号の種類毎に複数のポートを有するレジスタファイルRF1を試験する場合、信号の種類毎に1つのポートを有するレジスタファイルTRF1としてアクセス可能にする。このため、試験制御部MBISTは、1つの信号生成部RAGEN、1つの信号生成部WAGENおよび1つの信号生成部DGENを有し、シングルポートのレジスタファイルを試験する既存の回路を使用することができる。また、リードアドレスBRAP、ライトイネーブル信号BWEP、ライトアドレスBWAPおよびライトデータBWDPの各々を共通化しない場合に比べて、試験制御部MBISTの回路規模を削減することができる。
図4に示すメモリ試験回路MT1は、以下に示すようにして、レジスタファイルRF1の試験を実行する。例えば、レジスタファイルRF1の試験は、CPUコアを含む半導体集積回路の試験とともに実行され、または半導体集積回路の試験とは独立に実行される。また、レジスタファイルRF1の試験は、半導体集積回路の製造工程(試験工程)において、複数の半導体集積回路が搭載されたウェハに対して実行されてもよく、半導体集積回路チップをパッケージングした半導体装置に対して実行されてもよい。
レジスタファイルRF1の試験では、まず、メモリ試験回路MT1は、図4に示すラッチ回路BM、WPS、RPSを、例えばバウンダリスキャン方式を用いて設定する。ラッチ回路BMの設定により、レジスタファイルRFは試験モードに設定される。セレクタ部SU1、SU2は、ラッチ回路WPS、RPSの設定に基づいて、試験に使用するポートPAP、WEP、WAP、WDPを選択する。
例えば、セレクタ部SU1、SU2は、リードアドレスポートRAP0、ライトイネーブルポートWEP0、ライトアドレスポートWAP0およびライトデータポートWDP0を選択し、セレクタDSELは、リードデータポートRDP0を選択する。メモリ試験回路MT1は、ライトイネーブルポートWEP0に供給するライトイネーブル信号BWEPを生成し、ライトデータポートWDP0に供給するライトデータBWDPを生成する。そして、メモリ試験回路MT1は、ライトアドレスポートWAP0に供給するライトアドレスBWAPを順次に増加し、エントリENT0−ENT3のそれぞれにデータを書き込む。
次に、メモリ試験回路MT1は、リードアドレスポートRAP0に供給するリードアドレスBRAPを順次に増加し、リードデータポートRDP0を介してエントリENT0−ENT3のそれぞれからデータを読み出す。メモリ試験回路MT1は、読み出したデータを期待値EXPDと順次に比較する。そして、メモリ試験回路MT1は、ライトイネーブルポートWEP0、ライトアドレスポートWAP0およびライトデータポートWDP0のそれぞれに接続された経路および回路が正常に動作するか否かを判定する。また、メモリ試験回路MT1は、リードアドレスポートRAP0およびリードデータポートRDP0のそれぞれに接続された経路および回路が正常に動作するか否かを判定する。
次に、メモリ試験回路MT1は、例えば、ラッチ回路RPSを再設定し、リードアドレスポートRAP1およびリードデータポートRDP1を選択する。メモリ試験回路MT1は、リードアドレスポートRAP1に供給するリードアドレスBRAPを順次に増加し、リードデータポートRDP1を介してエントリENT0−ENT3のそれぞれからデータを読み出す。メモリ試験回路MT1は、読み出したデータを期待値EXPDと順次に比較する。そして、メモリ試験回路MT1は、リードアドレスポートRAP1およびリードデータポートRDP0のそれぞれに接続された経路および回路が正常に動作するか否かを判定する。
同様に、メモリ試験回路MT1は、ラッチ回路RPSを再設定し、リードアドレスポートRAP2/リードデータポートRDP2と、リードアドレスポートRAP3/リードデータポートRDP3とのペアを順次に選択する。メモリ試験回路MT1は、各リードデータポートRDP2、RDP3を介してエントリENT0−ENT3からデータを順次に読み出す。そして、メモリ試験回路MT1は、リードアドレスポートRAP2、RAP3およびリードデータポートRDP2、RDP3のそれぞれに接続された経路および回路が正常に動作するか否かを判定する。
また、メモリ試験回路MT1は、ライトイネーブルポートWEP1、ライトアドレスポートWAP1およびライトデータポートWDP1を選択して、上述と同様の試験を実行する。リードアドレスポートRAPとリードデータポートRDPのペアは、RAP0/RDP0、RAP1/RDP1、RAP2/RDP2、RAP3/RDP3のいずれが選択されてもよい。そして、メモリ試験回路MT1は、ライトイネーブルポートWEP1、ライトアドレスポートWAP1およびライトデータポートWDP1に接続された経路および回路が正常に動作するか否かを判定する。
このように、ラッチ回路WPS、RPSの設定値を順次に変更し、各ポートRAP、WEP、WAP、WDP、RDPを順次に選択し、複数の試験を繰り返し実行することで、レジスタファイルRF1の全ポートに接続された経路および回路を試験することができる。
図7は、メモリ試験回路の別の例を示す。図4に示す要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。レジスタファイルRF1は、図5と同一または同様の構成を有する。すなわち、レジスタファイルRF1は、4つのエントリENT0−ENT3、2つのライトデータポートWDP0−WDP1および4つのリードデータポートRDP0−RDP3を有する。図7に示すメモリ試験回路MT01は、図4に示すレジスタファイルTRF1の代わりに、試験回路の一部を含む拡張されたレジスタファイルTRF0を有する。また、メモリ試験回路MT01は、図4に示す試験制御部MBISTの代わりに、試験制御部MBIST0を有する。
レジスタファイルTRF0は、レジスタファイルRF1のリードアドレスポートRAP(RAP0−RAP3)に対応して、試験用の4つのリードアドレスポートBRAP(BRAP0,BRAP1、BRAP2、BRAP3)を有する。レジスタファイルTRF0は、レジスタファイルRF1のライトイネーブルポートWEP(WEP0−WEP1)に対応して、試験用の2つのライトイネーブルポートBWEP(BWEP0−BWEP1)を有する。レジスタファイルTRF0は、レジスタファイルRF1のライトアドレスポートWAP(WAP0−WAP1)に対応して、試験用の2つのライトアドレスポートBWAP(BWAP0−BWAP1)を有する。レジスタファイルTRF0は、レジスタファイルRF1のライトデータポートWDP(WDP0−WDP1)に対応して、試験用の2つのライトデータポートBWDP(BWDP0−BWDP1)を有する。さらに、レジスタファイルTRF0は、レジスタファイルRF1のリードデータポートRDP(RDP0−RDP3)に対応して、試験用の4つのリードデータポートBRDP(BRDP0−BRDP3)を有する。
メモリ試験回路MT01では、複数のリードアドレスBRAP0−BRAP3、複数のライトイネーブル信号BWEP0−BWEP1、複数のライトアドレスBWAP0−BWAP1および複数のライトデータBWDP0−BWDP1を生成する。また、メモリ試験回路MT01は、リードデータポートRDP(RDP0−RDP3)毎に比較回路CMPを有する。すなわち、メモリ試験回路MT01は、ポート毎にリードアドレスBRAP、ライトアドレスBWAP、ライトデータBWDPを独立に生成し、ポート毎にリードデータRDPを期待値EXPDと比較する。
図8は、図7に示す試験制御部MBIST0の例を示す。図6に示す要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
試験制御部MBIST0は、複数の信号生成部RAGEN、複数の信号生成部WAGEN、複数の信号生成部DGENおよび信号生成部EXPGENと、動作制御部MBISTC0とを有する。すなわち、信号生成部RAGENは、リードアドレスBRAP0−BRAP3毎に設けられ、信号生成部WAGENは、ライトアドレスBWAP0−BWAP3毎に設けられる。信号生成部DGENは、ライトデータBWD0−BWD1毎に設けられる。動作制御部MBISTC0は、図6に示す動作制御部MBISTCの機能に加えて、複数の信号生成部RAGEN、複数の信号生成部WAGENおよび複数の信号生成部DGENの動作を制御する機能を有する。このように、試験制御部MBIST0の回路規模は、図6に示す試験制御部MBISTの回路規模より大きい。
図9は、図4および図7に示すメモリ試験回路MT1、MT01の回路規模の例を示す。図9において、”リピータ数”は、各配線の経路に配置されるリピータ(すなわち、バッファ回路)の数を示し、”NANDゲート数”は、各回路を2入力のNANDゲートで換算した場合の数を示す。例えば、リピータは、直列に接続された2つのCMOS(Complementary Metal Oxide Semiconductor)インバータを有し、リピータのトランジスタ数は、2入力のNANDゲート(4トランジスタ)と同じである。
図9の右下に示すように、図4に示すメモリ試験回路MT1は、図7に示すメモリ試験回路MT01に比べて、81本の配線と、297個のラッチ回路FFと、1089個の論理ゲート(4トランジスタ換算)とを削減することができる。したがって、CPUコアの性能に寄与しないメモリ試験回路MT1の回路規模を図7に比べて削減することができ、CPUコアが搭載される半導体集積回路のチップサイズを削減することができる。この結果、半導体集積回路チップの製造コストを削減することができる。さらに、メモリ試験回路MT1の設計に掛かる時間を図7に示す回路を含むCPUコアの設計に掛かる時間に比べて削減でき、半導体集積回路の開発コストを削減することができる。
また、メモリ試験回路MT1の回路規模を削減することができるため、CPUコアの面積を図7の回路を含むCPUコアに比べて小さくすることが可能になり、CPUコアの性能に寄与する回路および配線の実装密度を高くすることが可能になる。例えば、配線長が短くなることで、クリティカルパス上の信号の伝搬遅延時間を図7の回路を含むCPUコアにおけるクリティカルパス上の信号の伝搬遅延時間に比べて短縮することが可能になる。この結果、CPUコアの動作周波数を図7の回路を含むCPUコアに比べて高くすることが可能になる。
図10は、図4に示すレジスタファイルRF1と仕様が異なるレジスタファイルを試験するメモリ試験回路の回路規模の例を示す。例えば、図10に示すメモリ試験回路が試験するレジスタファイルは、64ビット幅の64個のエントリと、4個のライトデータポートと、10個のリードデータポートとを有する。64個のエントリを選択するため、リードアドレスポートBRAPおよびライトアドレスポートBWAPのそれぞれは6ビットである。
図4に示すメモリ試験回路MT1と図7に示すメモリ試験回路MT01とのそれぞれを、上記仕様のレジスタファイルを試験する回路に変更した場合において、メモリ試験回路MT1の回路規模の削減効果は、図10の右下に示される。すなわち、図4に示すメモリ試験回路MT1に対応する構成は、図7に示すメモリ試験回路MT01に対応する構成に比べて、291本の配線と、939個のラッチ回路FFと、4323個の論理ゲート(4トランジスタ換算)とを削減することができる。このように、回路規模の削減効果は、レジスタファイルのエントリの数およびポート数が多いほど高くなる。
以上、図4から図10に示す実施形態においても、図1に示す実施形態と同様に、シングルポートのレジスタファイルを試験する既存の試験制御部MBISTを利用して、レジスタファイルRF1の試験を実行することができる。また、リードアドレスBRAP、ライトイネーブル信号BWEP、ライトアドレスBWAPおよびライトデータBWDPの各々を共通化しない場合に比べて、メモリ試験回路MT1の回路規模を削減することができる。さらに、図4から図10に示す実施形態では、マルチポートのレジスタファイルRF1をシングルポートのレジスタファイルと見なして試験を実行することができる。このため、図8に示す試験制御部MBIST0よりも簡易な試験制御部MBISTを用いて、試験を実行することができる。
図11は、メモリ試験回路およびメモリ試験回路の制御方法の別の実施形態を示す。図4から図10に示した実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
図11に示すメモリ試験回路MT2は、図4に示す拡張されたレジスタファイルTRF1の代わりに拡張されたレジスタファイルTRF2を有する。拡張されたレジスタファイルTRF2は、レジスタファイルRF2を有する。また、メモリ試験回路MT2は、ラッチ回路RAの出力端子Qに接続されたリードアドレス変換回路RACNVと、ラッチ回路WAの出力端子Qに接続されたライトアドレス変換回路WACNVと、ラッチ回路AMとを有する。メモリ試験回路MT2のその他の構成は、図4に示すメモリ試験回路MT1と同様である。
例えば、図11に示すメモリ試験回路MT2は、半導体集積回路に搭載されるCPUコア内に設けられるレジスタファイルRF2を試験する。例えば、メモリ試験回路MT2は、レジスタファイルRF2とともに半導体集積回路(例えば、半導体チップ)に搭載される。
レジスタファイルRF2は、不連続なアドレスが割り当てられた3つのエントリENT0、ENT2、ENT3を有する。レジスタファイルRF1と同様に、レジスタファイルRF2のライトアクセスサイクルは、1クロックサイクルであり、レジスタファイルRF2のリードアクセスサイクルは、1クロックサイクルである。レジスタファイルRF2の内部構成の例は、図12に示す。レジスタファイルRF2は、メモリ回路の一例であり、エントリENTは、記憶部の一例である。
リードアドレス変換回路RACNVは、ラッチ回路RAから出力されるリードアドレスBRAP0(2ビット)の値を変換し、リードアドレスBRAPとして出力する。また、リードアドレス変換回路RACNVは、ラッチ回路AMに保持された論理に応じて、リードアドレスBRAP0の変換仕様を変更する。ライトアドレス変換回路WACNVは、ラッチ回路WAから出力されるライトアドレスBWAP0(2ビット)の値を変換し、ライトアドレスBWAPとして出力する。リードアドレス変換回路RACNVおよびライトアドレス変換回路WACNVの動作の例は、図13に示す。ラッチ回路AMは、複数のリードアドレスBRAPのいずれかを示す情報を保持するアドレス保持部の一例である。
なお、図11に示すメモリ試験回路MT2は、1つのライトデータポートWDP、1つのリードデータポートRDP、およびエントリENT0、ENT2、ENT3を有するレジスタファイルを試験するために設けられてもよい。この場合のレジスタファイルRF2の例は、図16に示す。
図12は、図11に示すレジスタファイルRF2の例を示す。図5に示した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
レジスタファイルRF2は、ライト制御部WCNT2および図11に示すエントリENT0、ENT2、ENT3を有する。また、レジスタファイルRF2は、入力セレクタIS(IS0、IS2、IS3)および出力セレクタOS(OS00、OS01、OS10、OS11、OS20、OS21、OS30、OS31)を有する。
ライト制御部WCNT2は、有効レベル(例えば、論理1)を示すライトイネーブル信号WEPに対応するライトアドレスWAP(WAP0またはWAP1)に応じてセレクタ制御信号SC(SC0、SC2、SC3)のいずかを出力する。なお、レジスタファイルRF2はエントリENT1を含まないため、ライト制御部WCNT2は、図5に示すセレクタ制御信号SC1を生成しない。すなわち、ライトアドレスポートWAPの値”01”は無効なアドレスとして扱われる。
各セレクタ制御信号SCの上位ビットは、入力セレクタISの有効/無効の制御に使用され、各セレクタ制御信号SCの下位ビットは、入力セレクタISの入力端子の選択に使用される。各入力セレクタIS0、IS2、IS3は、図5と同様に、各セレクタ制御信号SCに基づいて動作する。そして、ライトアドレスWAPに対応するエントリENT0、ENT2、ENT3にデータが書き込まれる。
出力セレクタOS01は、リードアドレスRAP0の上位ビット[1]の値に応じて、入力端子で受ける4つのデータのうち2つを選択し、選択した2つのデータを出力セレクタOS00に出力する。例えば、出力セレクタOS01の出力に示すように、出力セレクタOS01は、リードアドレスRAPの上位ビット[1]が”1”の場合、エントリENT2、ENT3の出力を選択する。出力セレクタOS01は、リードアドレスRAPの上位ビット[1]が”0”の場合、エントリENT0、ENT2の出力を選択する。すなわち、出力セレクタOS01は、リードアドレスRAPの上位ビット[1]の値に拘わりなくエントリENT2を選択する。
出力セレクタOS00は、リードアドレスRAP0の下位ビット[0]の値に応じて、入力端子で受ける2つのデータのいずれかを選択し、選択したデータをリードデータポートRDP0に出力する。そして、出力セレクタOS01、OS00は、2ビットのリードデータポートRDP0が”00”の場合、エントリENT0が保持するデータを出力し、リードデータポートRDP0が”01”または”10”の場合、エントリENT2が保持するデータを出力する。また、出力セレクタOS01、OS00は、リードデータポートRDP0が”11”の場合、エントリENT3が保持するデータを出力する。
出力セレクタOS11、OS21、OS31の構成および動作は、出力セレクタOS01の構成および動作と同様であり、出力セレクタOS10、OS20、OS30の構成および動作は、出力セレクタOS00の構成および動作と同様である。出力セレクタOS01、OS11、OS21、OS31は、リードアドレスRAPの所定のビット(例えば、上位ビット[1])に基づいて、4つのエントリENTから読み出されるデータのうちの2つを選択する第1セレクタの一例である。出力セレクタOS00、OS10、OS20、OS30は、出力セレクタOS01、OS11、OS21、OS31のそれぞれが選択したデータのいずれかを選択する第2セレクタの一例である。
図13は、図11に示すリードアドレス変換回路RACNVおよびライトアドレス変換回路WACNVの動作の例を示す。リードアドレス変換回路RACNVは、リードアドレスBRAP0が”00”の場合、ラッチ回路AMに保持された論理に拘わりなく、リードアドレスポートBRAPに”00”を出力する。リードアドレス変換回路RACNVは、リードアドレスBRAP0が”10”の場合、ラッチ回路AMに保持された論理に拘わりなく、リードアドレスポートBRAPに”11”を出力する。
リードアドレス変換回路RACNVは、リードアドレスBRAP0が”01”の場合でラッチ回路AMが論理0を保持する場合、リードアドレスポートBRAPに”01”を出力する。リードアドレス変換回路RACNVは、リードアドレスBRAP0が”01”の場合でラッチ回路AMが論理1を保持する場合、リードアドレスポートBRAPに”10”を出力する。
このように、リードアドレス変換回路RACNVは、連続するリードアドレスBRAP0を、エントリENT0、ENT2、ENT3に割り当てられた不連続のリードアドレスBRAPに変換する。これにより、図8に示す試験制御部MBIST0よりも簡易な試験制御部MBIST(図6)を用いて、不連続のリードアドレスBRAPを生成することができる。また、リードアドレス変換回路RACNVは、ラッチ回路AMに保持された論理に応じて、2つのリードアドレス”01”、”10”が割り当てられたエントリENT2を、2つのリードアドレスを用いて選択可能にする。これにより、図6に示す簡易な試験制御部MBISTを用いて、リードアドレスが重複して割り当てられるエントリENT2の試験を実行することができる。
ライトアドレス変換回路WACNVは、ライトアドレスBWAP0が”00”の場合、ライトアドレスBWAPに”00”を出力し、ライトアドレスBWAP0が”01”の場合、ライトアドレスBWAPに”10”を出力する。ライトアドレス変換回路WACNVは、ライトアドレスBWAP0が”10”の場合、ライトアドレスBWAPに”11”を出力する。すなわち、ライトアドレス変換回路WACNVは、連続するライトアドレスBWAP0を、エントリENT0、ENT2、ENT3に割り当てられた不連続のライトアドレスBWAPに変換する。これにより、図8に示す試験制御部MBIST0よりも簡易な試験制御部MBIST(図6)を用いて、不連続のライトアドレスBWAPを生成することができる。
なお、エントリENT2に1つのリードアドレスBRAPが割り当てられる場合、図11に示すメモリ試験回路MT2は、ラッチ回路AMを持たず、あるいは、ラッチ回路AMに保持される論理は固定される。また、エントリENT2に3以上のリードアドレスBRAPが割り当てられる場合、図11に示すラッチ回路AMは、複数ビットを保持する。
図14は、図11に示すメモリ試験回路MT2がレジスタファイルRF2を試験する例を示す。すなわち、図14は、メモリ試験回路MT2の制御方法を示す。例えば、図14では、レジスタファイルRF2のリードアドレスポートRAP0、ライトイネーブルポートWEP0、ライトアドレスポートWAP0、ライトデータポートWDP0およびリードデータポートRDP0に接続される信号線と回路の試験が実行される。試験は、いわゆるマーチングパターンを用いて実行される。
かぎ括弧で囲ったリードアドレスBRAPのパターンは、ラッチ回路AMが論理1を保持する場合にリードアドレス変換回路RACNVが生成する値を示す。例えば、メモリ試験回路MT2は、ラッチ回路AMに論理0と論理1を順次に設定し、図14に示す試験をそれぞれ実行する。
図14に示す符号”W0”は、”ALL0”をレジスタファイルRF2に書き込むために、レジスタファイルTRF2に供給するライトコマンドを示す。符号”W1”は、”ALL1”をレジスタファイルRF2に書き込むために、レジスタファイルTRF2に供給するライトコマンドを示す。ライトコマンド”W0”、”W1”は、ライトデータBWDPが互いに相違する。ここで、”ALL0”は、72ビットのライトデータBWDPの全ビットが論理0に設定されることを示し、”ALL1”は、72ビットのライトデータBWDPの全ビットが論理1に設定されることを示す。
図14に示す符号”R0”は、レジスタファイルRF2から期待値”ALL0”を読み出すために、レジスタファイルTRF2に供給するリードコマンドを示す。符号”R1”は、レジスタファイルRF2から期待値”ALL1”を読み出すために、レジスタファイルTRF2に供給するリードコマンドを示す。リードコマンド”R0”、”R1”は、期待値EXPDが互いに相違する。
レジスタファイルRF2の試験では、まず、各エントリENTに”ALL0”のデータが順次に書き込まれる(図14(a)、(b)、(c))。各エントリENTは、書き込みアクセスにおいて、ライトイネーブル信号BWEP、ライトアドレスBWAPおよびライトデータBWDPを受けたクロックサイクルの次のクロックサイクルにライトデータBWDPを保持する。
次に、各エントリENTに対して”ALL0”のデータの読み出し(R0)と”ALL1”のデータの書き込み(W1)とが順次に実行される(図14(d)、(e)、(f)、(g)、(h)、(i))。各エントリENTは、読み出しアクセスにおいて、リードアドレスBRAPを受けた次のクロックサイクルにリードデータBRDPを出力する。
次に、各エントリENTに対して”ALL1”のデータの読み出し(R1)と、”ALL0”のデータの書き込み(W0)とが順次に実行される(図14(j)、(k)、(l)、(m)、(n)、(o))。次に、各エントリENTに対して”ALL0”のデータの読み出しが順次に実行される(図14(p)、(q)、(r))。
比較器CMPは、リードデータBRDPと期待値EXPDとを比較し、エラー信号ERRを出力する。図14は、レジスタファイルRF2が正常に動作し、エラーが発生しない例を示すため、エラー信号ERRは論理0に保持される。試験制御部MBISTは、リードデータBRDPと期待値EXPDとの比較結果を示す有効なエラー信号ERRが論理0の場合、試験のパスPを判定し、有効なエラー信号ERRが論理1の場合、試験のフェイルを判定する。すなわち、試験制御部MBISTは、比較部CMPによる比較結果に基づいて、レジスタファイルRF2の良否を判定する。なお、試験制御部MBISTは、例えば、期待値EXPDが生成されないクロックサイクルT01、T02、T03、T04、T06を無効なエラー信号ERRが出力される無効サイクルと判断し、無効サイクルでは試験結果を判定しない。すなわち、無効なエラー信号ERRが出力されるクロックサイクルは、リードデータBRDPと期待値EXPDとを比較しないクロックサイクルである。
この後、他のリードアドレスポートRAP1−RAP3および他のリードデータポートRDP1−RDP3を用いて、図14と同様の試験が実行される。さらに、他のライトイネーブルポートWEP1、ライトアドレスポートWAP1、ライトデータポートWDP1を用いて図14と同様の試験が実行される。そして、レジスタファイルRF2の試験が完了する。
図15は、図11に示すメモリ試験回路MT2がレジスタファイルRF2を試験する別の例を示す。すなわち、図15は、メモリ試験回路MT2の制御方法を示す。図14と同一または同様の動作については、詳細な説明は省略する。以下の説明では、”ALL0”のデータの書き込みは、書き込みW1と称され、”ALL1”のデータの書き込みは、書き込みW1と称される。ALL0”のデータの読み出しは、読み出しR0と称され、”ALL1”のデータの読み出しは、読み出しR1と称される。
図15の試験は、いわゆるウォーキングパターンを用いて実行される。また、図15では、レジスタファイルRF2のリードアドレスポートRAP0、ライトイネーブルポートWEP0、ライトアドレスポートWAP0、ライトデータポートWDP0およびリードデータポートRDP0に接続される信号線と回路の試験が実行される。
レジスタファイルRF2の試験では、まず、各エントリENTへの書き込みW0が実行される(図15(a)、(b)、(c))。次に、各エントリENTに対して”読み出しR0と、書き込みW1と、読み出しR1と、書き込みW0とが順次に実行される(図15(d)、(e)、(f)、(g)、(h)、(i)、(j)、(k)、(l)、(m)、(n)、(o))。
比較器CMPは、図14と同様に、リードデータBRDPと期待値EXPDとを比較し、エラー信号ERRを出力する。図15は、レジスタファイルRF2が正常に動作し、エラーが発生しないため、試験制御部MBISTは、リードデータBRDPの読み出し毎にパスPを判定する。なお、図15では、図14と同様に、試験制御部MBISTは、期待値EXPDが生成されない無効サイクルでは試験結果を判定しない。
この後、他のリードアドレスポートRAP1−RAP3および他のリードデータポートRDP1−RDP3を用いて、図15と同様の試験が実行される。さらに、他のライトイネーブルポートWEP1、ライトアドレスポートWAP1、ライトデータポートWDP1を用いて図15と同様の試験が実行される。そして、レジスタファイルRF2の試験が完了する。
図16は、メモリ試験回路の別の例を示す。図16に示す例では、メモリ試験回路MT2が試験するレジスタファイルRF2は、シングルポートタイプである。すなわち、レジスタファイルRF2は、1つのリードアドレスポートRAP0、1つのライトイネーブルポートWEP0、1つのライトアドレスポートWAP0、1つのライトデータポートWDP0および1つのリードデータポートRDP0を有する。このため、図12に示すライト制御部WCNT2は、ライトイネーブル信号WEP0およびライトアドレスWAP0に基づいて、データを書き込むエントリENTを決定する。また、レジスタファイルRF2は、図12に示す出力セレクタOS10、OS11、OS20、OS21、OS30、OS31を持たない。
拡張されたレジスタファイルTRF2は、図11に示すリードデータポートRDP1、RDP2、RDP3に対応するセレクタSEL1およびリードデータポートRDP1、RDP2、RDP3に対応するラッチ回路RD1、RD2、RD3を持たない。また、レジスタファイルTRF2は、図11に示すライトイネーブルポートWEP1に対応するセレクタSEL2、ライトアドレスポートWAP1に対応するセレクタSEL3およびライトデータポートWDP1に対応するセレクタSEL4を持たない。さらに、レジスタファイルTRF2は、図11に示すラッチ回路WPS、RPSおよびセレクタDSELを持たない。
図16に示すメモリ試験回路MT2の動作の例は、図14および図15と同様である。すなわち、図16に示すメモリ試験回路MT2は、簡易な試験制御部MBIST(図6)を用いて、不連続のリードアドレスBRAPを生成することができ、リードアドレスが重複して割り当てられるエントリENT2の試験を実行することができる。また、図16に示すメモリ試験回路MT2は、簡易な試験制御部MBIST(図6)を用いて、不連続のライトアドレスBWAPを生成することができる。
なお、メモリ試験回路MT2は、1つのライトデータポートWDPと複数のリードデータポートRDPとを有するレジスタファイルを試験することが可能である。また、メモリ試験回路MT2は、複数のライトデータポートWDPと1つのリードデータポートRDPとを有するレジスタファイルを試験することが可能である。
図17は、メモリ試験回路のさらなる別の例を示す。図11に示す要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。レジスタファイルRF2および試験回路の一部を含む拡張されたレジスタファイルTRF2は、図11と同一または同様の構成を有する。すなわち、レジスタファイルRF2は、3つのエントリENT0、ENT2、ENT3、2つのライトデータポートWDP0−WDP1および4つのリードデータポートRDP0−RDP3を有する。図17に示すメモリ試験回路MT02は、図11に示すリードアドレス変換回路RACNV、ラッチ回路AMおよびライトアドレス変換回路WACNVを持たない。ラッチ回路RAは、リードアドレスBRAPを出力し、ラッチ回路WAは、ライトアドレスBWAPを出力する。メモリ試験回路MT02のその他の構成は、図11に示すメモリ試験回路MT2と同様である。
図18は、図17に示すメモリ試験回路MT02がレジスタファイルRF2を試験する例を示す。図14と同一または同様の動作については、詳細な説明は省略する。図18の試験は、図14と同様に、いわゆるマーチングパターンを用いて実行される。
図17に示す試験制御部MBIST(図6)は、リードアドレスBRAPおよびライトアドレスBWAPを順次に生成する機能を有する。このため、リードアドレスBRAPおよびライトアドレスBWAPは、”0”、”1”、”2”、”3”または”3”、”2”、”1”、”0”のように連続して生成される。”1”のライトアドレスBWAPに対応するエントリENTは存在しない。このため、”1”のライトアドレスBWAPとともに生成されるライトデータBWDPは、”X”印で示すように、どのエントリENTにも書き込まれない(図18(a)、(b)、(c))。また、レジスタファイルRF2は、図12に示す構造を有するため、”1”および”2”のリードアドレスRAP(すなわち、図18のBRAP)により、共通のエントリENT2が選択される。
メモリ試験回路MT02は、クロックサイクルT15、T16において、”2”のリードアドレスBRAPにより選択されるエントリENT2から”ALL1”のデータを読み出す(図18(d))。次に、メモリ試験回路MT02は、クロックサイクルT16、T17において、”2”のライトアドレスBWAPにより選択されるエントリENT2に”ALL0”のデータを書き込む(図18(e))。
次に、メモリ試験回路MT02は、クロックサイクルT17、T18において、”1”のリードアドレスBRAPにより選択されるエントリENT2からデータを読み出す(図18(f))。一方、メモリ試験回路MT02は、クロックサイクルT08において、”1”のライトアドレスBWAPに対して”ALL1”のデータを書き込む試験パターンを生成する(図18(g))。このため、メモリ試験回路MT02は、”1”のリードアドレスBRAPが割り当てられたエントリENT(実際にはENT2)から読み出されるデータの期待値を”ALL1”に設定する。エントリENT2から読み出されるリードデータBRDP(=”ALL0”)は、期待値EXPD(=”ALL1”)と異なるため、比較器CMPはエラー信号ERRを、フェイルを示す論理1に設定する(図18(h))。すなわち、レジスタファイルRF2が正常に動作するのにも拘わらず、メモリ試験回路MT02は、レジスタファイルRF2の動作不良を判定する。
図19は、図17に示すメモリ試験回路MT02がレジスタファイルRF2を試験する別の例を示す。図14、図15および図18と同一または同様の動作については、詳細な説明は省略する。図19の試験は、図15と同様に、いわゆるウォーキングパターンを用いて実行される。
図18と同様に、”1”のライトアドレスBWAPとともに生成されるライトデータBWDPは、”X”印で示すように、どのエントリENTにも書き込まれない(図19(a)、(b)、(c))。
メモリ試験回路MT02は、クロックサイクルT10において、”1”のライトアドレスBWAPに対して”ALL1”のデータを書き込む試験パターンを生成する(図19(d))。このため、メモリ試験回路MT02は、図18と同様に、”1”のリードアドレスBRAPが割り当てられたエントリENT(実際にはENT2)から読み出されるデータの期待値を”ALL1”に設定する。なお、図14と同様に、試験制御部MBISTは、期待値EXPDが生成されない無効サイクルでは試験結果を判定しない。
次に、メモリ試験回路MT02は、クロックサイクルT11、T12において、”1”のリードアドレスBRAPにより選択されるエントリENT2から”ALL0”のデータを読み出す(図19(e))。しかしながら、エントリENT2から読み出されるリードデータBRDP(=”ALL0”)は、期待値EXPD(=”ALL1”)と異なるため、比較器CMPはエラー信号ERRを、フェイルを示す論理1に設定する(図19(f))。すなわち、レジスタファイルRF2が正常に動作するのにも拘わらず、メモリ試験回路MT02は、レジスタファイルRF2の動作不良を判定する。
以上、図11から図19に示す実施形態においても、図1から図10に示す実施形態と同様に、シングルポートのレジスタファイルを試験する既存の試験制御部MBISTを利用して、レジスタファイルRF2の試験を実行することができる。すなわち、マルチポートのレジスタファイルRF2をシングルポートのレジスタファイルと見なして試験を実行することができる。この結果、リードアドレスBRAP、ライトイネーブル信号BWEP、ライトアドレスBWAPおよびライトデータBWDPの各々を共通化しない場合に比べて、メモリ試験回路MT2の回路規模を削減することができる。
さらに、図11に示すメモリ試験回路MT2は、リードアドレス変換回路RACNVおよびライトアドレス変換回路WACNVを有するため、不連続なリードアドレスBRAPおよび不連続なライトアドレスBWAPを生成することができる。したがって、メモリ試験回路MT2は、簡易な試験制御部MBIST(図6)を用いて、不連続なアドレスが割り当てられたエントリENTを有するレジスタファイルRF2の試験を実行することができる。また、メモリ試験回路MT2は、ラッチ回路AMおよびリードアドレス変換回路RACNVを有するため、簡易な試験制御部MBIST(図6)を用いて、リードアドレスが重複して割り当てられるエントリENT2の試験を実行することができる。
図20は、メモリ試験回路およびメモリ試験回路の制御方法の別の実施形態を示す。図4から図19に示した実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
図20に示すメモリ試験回路MT3は、図4に示す拡張されたレジスタファイルTRF1の代わりに拡張されたレジスタファイルTRF3を有する。拡張されたレジスタファイルTRF3は、レジスタファイルRF3を有する。レジスタファイルRF3は、メモリ回路の一例であり、エントリENT(ENT0、ENT1、ENT2、ENT3)は、記憶部の一例である。また、メモリ試験回路MT2は、ラッチ回路CYCおよびマスク生成回路MSKGENを有する。メモリ試験回路MT3のその他の構成は、図4に示すメモリ試験回路MT1と同様である。
ラッチ回路CYCは、レジスタファイルRF3のワーストのリードアクセスサイクルが2クロックサイクルの場合に論理0にリセットされ、レジスタファイルRF3のワーストのリードアクセスサイクルが1クロックサイクルの場合に論理1にセットされる。ラッチ回路CYCは、保持した論理のマスク制御信号MSKCを出力する。例えば、ラッチ回路CYCは、BIST時にバウンダリスキャン方式を用いて設定される。ラッチ回路CYCは、マスク生成回路MSKGENによるマスク信号MSKの生成を抑止するマスク制御信号MSKCを保持する抑止保持部の一例である。マスク制御信号MSKCは、抑止情報の一例である。
マスク生成回路MSKGENは、マスク制御信号MSKCが論理0の場合、リードアドレスBRAPの値に応じて、比較器CMPによる比較結果を無効にするマスク信号MSK(例えば、1ビット)を生成する。マスク生成回路MSKGENは、リードデータBRDPの出力タイミングが他のリードデータBRDPの出力タイミングより遅くなるリードアドレスBRAPの試験パターンを検出する検出部の一例である。マスク生成回路MSKGENの例は、図22に示す。
例えば、比較器CMPは、2ビットのエラー信号ERRを生成する。エラー信号ERRの上位ビットは、マスク信号MSKの論理を示し、エラー信号ERRの下位ビットは、リードデータBRDPと期待値EXPDとの比較結果を示す。試験制御部MBISTは、エラー信号ERRの上位ビットが論理0の場合、リードデータBRDPと期待値EXPDとの比較結果に基づくパス/フェイルの判定を実行する。一方、試験制御部MBISTは、エラー信号ERRの上位ビットが論理1の場合、エラー信号ERRの下位ビットを無視し、リードデータBRDPと期待値EXPDとの比較結果に基づくパス/フェイルの判定を実行しない。
例えば、メモリ試験回路MT3は、半導体集積回路に搭載されるCPUコア内に設けられるレジスタファイルRF3を試験する。例えば、メモリ試験回路MT3は、レジスタファイルRF3とともに半導体集積回路(例えば、半導体チップ)に搭載される。
レジスタファイルRF3は、図4に示すレジスタファイルRF1と同様に、4つのエントリENT0、ENT1、ENT2、ENT3を有する。但し、レジスタファイルRF3は、ワーストのリードアクセスサイクルが2クロックサイクルであり、ベストのリードアクセスサイクルが1クロックサイクルである点が、リードアクセスサイクルが1クロックサイクルであるレジスタファイルRF1と相違する。例えば、ワーストの読み出しサイクルアクセスは、レジスタファイルRF3の内部構成、クロック周波数により変化する。レジスタファイルRF3の内部構成の例は、図21に示す。
図21は、図20に示すレジスタファイルRF3の例を示す。図5および図12に示した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
レジスタファイルRF3は、図5に示すライト制御部WCNT1および入力セレクタIS(IS0、IS1、IS2、IS3)を有する。また、レジスタファイルRF3は、図12に示す出力セレクタOS(OS00、OS01、OS10、OS11、OS20、OS21、OS30、OS31)を有する。但し、各エントリENTの出力端子Qと出力セレクタOS01、OS11、OS21、OS31の入力端子との接続仕様は、図12に示すレジスタファイルRF2と相違する。
例えば、出力セレクタOS01、OS00は、リードアドレスRAP0[1]、RAP0[0]で示されるアドレス値と同じ番号のエントリENTに保持されたデータを出力する。ここで、リードアドレスRAP0[1]は、リードアドレスRAP0の上位ビットであり、リードアドレスRAP0[0]は、リードアドレスRAP0の下位ビットである。他の出力セレクタOS(OS10/OS11のペア、OS20/OS21のペアおよびOS30/OS31のペア)も、出力セレクタOS01、OS00と同様に動作する。
図22は、図20に示すマスク生成回路MSKGENの例を示す。マスク生成回路MSKGENは、ラッチ回路BRA、マスク信号生成回路MSGENおよびラッチ回路M1を有する。なお、ラッチ回路M1は、マスク信号MSKが出力されるクロックサイクルを図20に示すリードデータBRDPが出力されるクロックサイクルに合わせるために設けられ、マスク生成回路MSKGENの外部に配置されてもよい。
ラッチ回路BRAは、リードアドレスBRAPの上位ビットBRAP[1]を1クロックサイクル遅らせたリードアドレスBRAPD[1]を生成する。マスク信号生成回路MSGENは、排他的論理和ゲートXOR、インバータIVおよびアンドゲートANDを有する。
マスク信号生成回路MSGENは、マスク制御信号MSKCが論理1の場合に無効になり、マスク信号MSK0を論理0に設定する(図22(a))。マスク信号生成回路MSGENは、マスク制御信号MSKCが論理0の場合に有効になる。そして、マスク信号生成回路MSGENは、マスク制御信号MSKCが論理0の場合でリードアドレスBRAP[1]、BRAPD[1]の論理が互いに異なる場合、マスク信号MSK0を論理1に設定する(図22(b)、(c))。一方、マスク信号生成回路MSGENは、リードアドレスBRAP[1]、BRAPD[1]の論理が互いに同じ場合、マスク信号MSK0を論理0に設定する(図22(d)、(e))。また、ラッチ回路M1は、マスク信号MSK0の論理を1クロックサイクル遅らせたマスク信号MSKを生成する。
図23は、図20に示すメモリ試験回路MT3がレジスタファイルRF3を試験する例を示す。すなわち、図23は、メモリ試験回路MT3の制御方法を示す。図18と同一または同様の動作については、詳細な説明は省略する。図23の試験は、図18と同様に、いわゆるマーチングパターンを用いて実行される。
図23において、レジスタファイルRFに入力される試験パターンは、図18に示す試験パターンと同様である。但し、図21に示すレジスタファイルRF3は、図23に示すクロックサイクル(クロック周波数)では、ワーストのリードアクセスサイクルが2クロックサイクルである。このため、メモリ試験回路MT3は、図20に示すラッチ回路CYCを用いて、マスク制御信号MSKCを論理0に設定する。
例えば、リードアドレスBRAP[1](=RAP0[1])の論理が変化し、図21に示す出力セレクタOS01から出力されるリードデータRDPが変化する場合、リードデータBRDP(=RDP0)は、1クロックサイクルでは確定しない。図23において、リードデータBRDPの網掛けは、値が確定していないことを示す。そして、値が確定していない期間にマスク信号MSKが出力される(図23(a)、(b)、(c))。
マスク信号MSKが出力される場合、斜線の枠で示すように、無効なエラー信号ERRが出力され、リードデータBRDPと期待値EXPDとの比較が禁止される(図23(d)、(e)、(f))。これにより、リードデータBRDPの値が確定していない場合に、比較結果が不一致となることを抑止することができ、フェイルと判定されることを抑止することができる。
試験制御部MBISTは、無効なエラー信号ERRが出力されないクロックサイクルにおいて、比較部CMPによる比較結果に基づいて、レジスタファイルRF3の良否を判定する(図23(g)、(h)、(i)、(j)、(k)、(l)、(m)、(n)、(o))。なお、クロックサイクルT21以降では、リードアクセスサイクルの間に、ライトアクセスサイクルが挿入されない。これにより、レジスタファイルRF3から出力されるリードデータRDPの出力タイミングがリードアドレスRAPの遷移に応じて変化する場合にも、メモリ試験回路MT3は、誤った判定をすることなく、レジスタファイルRF3の試験を実行できる。なお、例えば、無効なエラー信号ERRによりレジスタファイルRF3の良否の判定がマスクされる試験パターンによる試験は、図24により実行される。
図24は、図20に示すメモリ試験回路MT3がレジスタファイルRF3を試験する別の例を示す。すなわち、図24は、メモリ試験回路MT3の制御方法を示す。図14、図18および図23と同一または同様の動作については、詳細な説明は省略する。図24の試験は、図18および図23と同様に、いわゆるマーチングパターンを用いて実行される。
図24は、図23の試験のクロック周波数を2分の1に設定したことを除き、図23と同様である。すなわち、図24の試験パターンは、図23のクロックサイクルT01−T13の試験パターンと同様である。図24に示さないクロックサイクルT14−T26は、クロック周波数を2分の1に設定されることを除き、図23と同様である。
クロック周波数が図23の2分の1に設定される場合、リードアドレスBRAP[1](=RAP0[1])の論理が変化する否かに拘わりなく、リードデータBRDP(=RDP0)は、1クロックサイクルで確定する。このため、メモリ試験回路MT3は、図20に示すラッチ回路CYCを用いて、マスク制御信号MSKCを論理1に設定し、マスク信号MSKの出力を禁止する。この結果、リードデータBRDPと期待値EXPDとは、前半のクロックサイクルで比較される(図24(a)、(b)、(c)、(d))。
クロック周波数を2分の1に設定した試験において、マスク信号MSKの生成を禁止することで、図23においてマスク信号MSKにより比較が抑止された期間での詳細な回路動作を評価することが可能になる。
図25は、メモリ試験回路の別の例を示す。図25に示す例では、メモリ試験回路MT2が試験するレジスタファイルRF3は、シングルポートタイプである。すなわち、レジスタファイルRF3は、1つのリードアドレスポートRAP0、1つのライトイネーブルポートWEP0、1つのライトアドレスポートWAP0、1つのライトデータポートWDP0および1つのリードデータポートRDP0を有する。このため、図21に示すライト制御部WCNT1は、ライトイネーブル信号WEP0およびライトアドレスWAP0に基づいて、データを書き込むエントリENTを決定する。また、レジスタファイルRF3は、図21に示す出力セレクタOS10、OS11、OS20、OS21、OS30、OS31を持たない。
拡張されたレジスタファイルTRF3は、図20に示すリードデータポートRDP1、RDP2、RDP3に対応するセレクタSEL1およびリードデータポートRDP1、RDP2、RDP3に対応するラッチ回路RD1、RD2、RD3を持たない。また、レジスタファイルTRF3は、図20に示すライトイネーブルポートWEP1に対応するセレクタSEL2、ライトアドレスポートWAP1に対応するセレクタSEL3およびライトデータポートWDP1に対応するセレクタSEL4を持たない。さらに、レジスタファイルTRF3は、図20に示すラッチ回路WPS、RPSおよびセレクタDSELを持たない。
図25に示すメモリ試験回路MT3の動作の例は、図23および図24と同様である。すなわち、1つのライトデータポートWDP0と1つのリードデータポートRDP0とを有するレジスタファイルRF2を試験する場合にも、メモリ試験回路MT3は、誤った判定をすることなく、レジスタファイルRF3の試験を実行できる。また、クロック周波数を下げ、マスク信号MSKの生成を禁止した試験を実行することで、図23においてマスク信号MSKにより比較が抑止された期間での詳細な回路動作を評価することが可能になる。なお、メモリ試験回路MT3は、1つのライトデータポートWDPと複数のリードデータポートRDPとを有するレジスタファイルを試験することが可能である。また、メモリ試験回路MT3は、複数のライトデータポートWDPと1つのリードデータポートRDPとを有するレジスタファイルを試験することが可能である。
以上、図20から図25に示す実施形態においても、図1から図10に示す実施形態と同様に、シングルポートのレジスタファイルを試験する既存の試験制御部MBISTを利用して、レジスタファイルRF3の試験を実行することができる。すなわち、マルチポートのレジスタファイルRF3をシングルポートのレジスタファイルと見なして試験を実行することができる。この結果、リードアドレスBRAP、ライトイネーブル信号BWEP、ライトアドレスBWAPおよびライトデータBWDPの各々を共通化しない場合に比べて、メモリ試験回路MT3の回路規模を削減することができる。
さらに、図20から図25に示す実施形態では、マスク信号MSKを生成することで、メモリ試験回路MT3は、誤った判定をすることなく、レジスタファイルRF3の試験を実行できる。また、クロック周波数を下げ、マスク信号MSKの生成を禁止した試験を実行することで、図23においてマスク信号MSKにより比較が抑止された期間での詳細な回路動作を評価することが可能になる。
図26は、メモリ試験回路およびメモリ試験回路の制御方法の別の実施形態を示す。図11から図25に示した実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
図26に示すメモリ試験回路MT4は、図11に示すメモリ試験回路MT2に、図20に示すラッチ回路CYCおよびマスク信号生成回路MSGENを追加した構成を有する。すなわち、メモリ試験回路MT4は、図12に示す3つのエントリENT0、ENT2、ENT3を有するレジスタファイルRF2、リードアドレス変換回路RACNVおよびライトアドレス変換回路WACNVを有する。
図27は、図26に示すメモリ試験回路MT4がレジスタファイルRF2を試験する例を示す。すなわち、図27は、メモリ試験回路MT4の制御方法を示す。図14および図23と同一または同様の動作については、詳細な説明は省略する。図27の試験は、図14と同様に、いわゆるマーチングパターンを用いて実行される。
図27において、レジスタファイルRFに入力される試験パターンは、図14に示す試験パターンと同様である。但し、図12に示すレジスタファイルRF2は、図27に示すクロックサイクル(クロック周波数)では、ワーストのリードアクセスサイクルが2クロックサイクルである。このため、メモリ試験回路MT4は、図26に示すラッチ回路CYCを用いて、マスク制御信号MSKCを論理0に設定する。ワーストのリードアクセスサイクルの動作は、図23と同様である。すなわち、リードデータBRDPの値が確定していない網掛けの期間にリードデータBRDPと期待値EXPDとの比較を禁止するため、マスク信号MSKが出力される(図27(a)、(b)、(c))。
これにより、図23と同様に、斜線の枠で示す無効なエラー信号ERRが出力されるクロックサイクルでは、リードデータBRDPと期待値EXPDとの比較が禁止される。試験制御部MBISTは、無効なエラー信号ERRが出力されないクロックサイクルにおいて、比較部CMPによる比較結果に基づいて、レジスタファイルRF2の良否を判定する。すなわち、レジスタファイルRF2から出力されるリードデータRDPの出力タイミングがリードアドレスRAPの遷移に応じて変化する場合にも、メモリ試験回路MT4は、誤った判定をすることなく、レジスタファイルRF2の試験を実行できる。
なお、図24と同様に、クロック周波数を2分の1に設定して、図27の試験を実行する場合の動作は、図14と同様である。但し、クロック周波数は、図14の2倍に設定される。
図28は、メモリ試験回路の別の例を示す。図28に示す例では、メモリ試験回路MT4が試験するレジスタファイルRF2は、シングルポートタイプであり、図16に示すレジスタファイルRF2と同一または同様である。また、拡張されたレジスタファイルTRF2は、図16に示すレジスタファイルTRF2と同一または同様である。図28において、レジスタファイルTRF2を除く構成は、加算器ADDの数が異なることを除き、図26と同様である。
以上、図26から図28に示す実施形態においても、図1から図25に示す実施形態と同様の効果を得ることができる。すなわち、シングルポートのレジスタファイルを試験する既存の試験制御部MBISTを利用して、レジスタファイルRF4の試験を実行することができる。すなわち、マルチポートのレジスタファイルRF4をシングルポートのレジスタファイルと見なして試験を実行することができる。この結果、リードアドレスBRAP、ライトイネーブル信号BWEP、ライトアドレスBWAPおよびライトデータBWDPの各々を共通化しない場合に比べて、メモリ試験回路MT4の回路規模を削減することができる。
メモリ試験回路MT4、リードアドレス変換回路RACNVおよびライトアドレス変換回路WACNVを有するため、不連続なリードアドレスBRAPおよび不連続なライトアドレスBWAPを生成することができる。したがって、メモリ試験回路MT4、簡易な試験制御部MBIST(図6)を用いて、不連続なアドレスが割り当てられたエントリENTを有するレジスタファイルRF4の試験を実行することができる。また、メモリ試験回路MT4は、ラッチ回路AMおよびリードアドレス変換回路RACNVを有するため、簡易な試験制御部MBIST(図6)を用いて、リードアドレスが重複して割り当てられるエントリENT4の試験を実行することができる。
マスク信号MSKを生成することで、メモリ試験回路MT4は、誤った判定をすることなく、レジスタファイルRF4の試験を実行できる。また、クロック周波数を下げ、マスク信号MSKの生成を禁止した試験を実行することで、図27においてマスク信号MSKにより比較が抑止された期間での詳細な回路動作を評価することが可能になる。
以上の実施形態において説明した発明を整理して、付記として開示する。
(付記1)
データを記憶する複数の記憶部と、前記記憶部へのデータの書き込み時に使用される複数のライトポートおよび前記記憶部に保持されたデータの読み出し時に使用される複数のリードポートとを含むメモリ回路を試験するメモリ試験回路において、
前記メモリ試験回路は、
前記複数のライトポートのいずれかを識別するライトポート識別情報を保持するライトポート識別情報保持部と、
前記複数のリードポートのいずれかを識別するリードポート識別情報を保持するリードポート識別情報保持部と、
前記ライトポート識別情報に基づき前記複数のライトポートのいずれかを選択するライトポート選択部と、
前記リードポート識別情報に基づき前記複数のリードポートのいずれかを選択するリードポート選択部と、
前記ライトポート識別情報保持部に前記ライトポート識別情報を設定するとともに、前記リードポート識別情報保持部に前記リードポート識別情報を設定し、選択された前記ライトポートと選択された前記リードポートとを介して前記メモリ回路を試験する試験制御部を有することを特徴とするメモリ試験回路。
(付記2)
前記複数の記憶部は、不連続なアドレスが割り当てられ、
前記メモリ試験回路は、
連続するアドレスを生成するアドレス生成部と、
前記アドレス生成部が生成したアドレスを前記記憶部に割り当てられたアドレスに変換するアドレス変換部を有し、
前記試験制御部は、前記アドレス変換部が変換したアドレスにより順次にアクセスされる前記記憶部を試験することを特徴とする付記1記載のメモリ試験回路。
(付記3)
不連続なアドレスが割り当てられ、データを記憶する複数の記憶部を含むメモリ回路を試験するメモリ試験回路において、
前記メモリ試験回路は、
連続するアドレスを生成するアドレス生成部と、
前記アドレス生成部が生成したアドレスを前記記憶部に割り当てられたアドレスに変換するアドレス変換部と、
前記アドレス生成部が生成したアドレスに基づいて、前記アドレス変換部が変換したアドレスにより順次にアクセスされる前記記憶部を試験する試験制御部を有することを特徴とするメモリ試験回路。
(付記4)
前記複数の記憶部の各々は、データを書き込む記憶部を示すライトアドレスと、データを読み出す記憶部を示すリードアドレスとが割り当てられ、さらに、前記複数の記憶部のいずれかは、複数のリードアドレスが割り当てられ、
前記メモリ試験回路は、前記複数のリードアドレスのいずれかを示す情報を保持するアドレス保持部を有し、
前記アドレス変換部は、前記アドレス保持部に保持された情報に基づいて、前記アドレス生成部が生成したアドレスを変換することを特徴とする付記2または付記3記載のメモリ試験回路。
(付記5)
前記メモリ回路から読み出されるデータの出力タイミングは、データを読み出す記憶部を示すリードアドレスの試験パターンに応じて異なり、
前記メモリ試験回路は、
データの出力タイミングが他のデータの出力タイミングより遅くなるリードアドレスの試験パターンを検出する検出部と、
前記検出部による検出に基づいて、前記メモリ回路からデータの読み出しが開始されてから所定の期間、データと期待値との比較を無効にする比較部を有し、
前記試験制御部は、前記比較部による比較結果に基づいて前記メモリ回路の良否を判定することを特徴とする付記1ないし付記5のいずれか1項記載のメモリ試験回路。
(付記6)
前記試験制御部は、
前記記憶部にデータを書き込む書き込みアクセス信号と、前記記憶部からデータを読み出す読み出しアクセス信号と、期待値とを生成する信号生成部と、
前記読み出しアクセス信号に基づいて前記メモリ回路から出力されるデータを前記期待値と比較する比較部を有することを特徴とする付記1ないし付記3のいずれか1項記載のメモリ試験回路。
(付記7)
データを記憶する複数の記憶部を含み、データを読み出す記憶部を示すリードアドレスの試験パターンに応じてデータの出力タイミングが異なるメモリ回路を試験するメモリ試験回路において、
前記メモリ試験回路は、
データの出力タイミングが他のデータの出力タイミングより遅くなるリードアドレスの試験パターンを検出する検出部と、
前記検出部による検出に基づいて、前記メモリ回路からデータの読み出しが開始されてから所定の期間、データと期待値との比較を無効にする比較部と、
前記比較部による比較結果に基づいて前記メモリ回路の良否を判定する試験制御部を有することを特徴とするメモリ試験回路。
(付記8)
前記メモリ試験回路は、さらに、前記検出部による検出を抑止する抑止情報を保持する抑止保持部を有し、
前記検出部は、前記抑止保持部に抑止情報が保持される場合、データの出力タイミングが他のデータの出力タイミングより遅くなるリードアドレスの試験パターンの検出を抑止することを特徴とする付記5または付記7記載のメモリ試験回路。
(付記9)
前記メモリ回路は、前記リードアドレスの所定のビットに基づいて、それぞれ所定数の前記記憶部から読み出されるデータのいずれかを選択する複数の第1セレクタと、前記リードアドレスの他の所定のビットに基づいて、前記第1セレクタのそれぞれが選択したデータのいずれかを選択する第2セレクタを有し、
前記検出部は、前記第1セレクタが使用する前記リードアドレスの前記所定のビットが変化する試験パターンを検出することを特徴とする付記5、付記7および付記8のいずれか1項記載のメモリ試験回路。
(付記10)
前記メモリ試験回路は、前記メモリ回路を含む半導体集積回路に搭載されることを特徴とする付記1ないし付記9のいずれか1項記載のメモリ試験回路。
(付記11)
データを記憶する複数の記憶部と、前記記憶部へのデータの書き込み時に使用される複数のライトポートおよび前記記憶部に保持されたデータの読み出し時に使用される複数のリードポートとを含むメモリ回路を試験するメモリ試験回路の制御方法において、
前記メモリ試験回路が有するライトポート識別情報保持部が、前記複数のライトポートのいずれかを識別するライトポート識別情報を保持し、
前記メモリ試験回路が有するリードポート識別情報保持部が、前記複数のリードポートのいずれかを識別するリードポート識別情報を保持し、
前記メモリ試験回路が有するライトポート選択部が、前記ライトポート識別情報に基づき前記複数のライトポートのいずれかを選択し、
前記メモリ試験回路が有するリードポート選択部が、前記リードポート識別情報に基づき前記複数のリードポートのいずれかを選択し、
前記メモリ試験回路が有する試験制御部が、前記ライトポート識別情報保持部に前記ライトポート識別情報を設定するとともに、前記リードポート識別情報保持部に前記リードポート識別情報を設定し、選択されたライトポートと選択されたリードポートとを介して前記メモリ回路を試験することを特徴とするメモリ試験回路の制御方法。
(付記12)
不連続なアドレスが割り当てられ、データを記憶する複数の記憶部を含むメモリ回路を試験するメモリ試験回路の制御方法において、
前記メモリ試験回路が有するアドレス生成部が、連続するアドレスを生成し、
前記メモリ試験回路が有するアドレス変換部が、前記アドレス生成部が生成したアドレスを前記記憶部に割り当てられたアドレスに変換し、
前記メモリ試験回路が有する試験制御部が、前記アドレス生成部が生成したアドレスに基づいて、前記アドレス変換部が変換したアドレスにより順次にアクセスされる前記記憶部を試験することを特徴とするメモリ試験回路の制御方法。
(付記13)
データを記憶する複数の記憶部を含み、データを読み出す記憶部を示すリードアドレスの試験パターンに応じてデータの出力タイミングが異なるメモリ回路を試験するメモリ試験回路の制御方法において、
前記メモリ試験回路が有する検出部が、データの出力タイミングが他のデータの出力タイミングより遅くなるリードアドレスの試験パターンを検出し、
前記メモリ試験回路が有する比較部が、前記検出部による検出に基づいて、前記メモリ回路からデータの読み出しが開始されてから所定の期間、データと期待値との比較を無効にし、
前記メモリ試験回路が有する試験制御部が、前記比較部による比較結果に基づいて前記メモリ回路の良否を判定することを特徴とするメモリ試験回路の制御方法。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。