以下に、本発明の実施例を添付の図面を用いて詳細に説明する。以下において、半導体記憶装置のテスト機能の設定を例として本発明を説明するが、本発明は半導体記憶装置のテスト機能の設定に限定されるものではない。本発明は、より一般に、半導体集積回路における何らかの動作・機能のレジスタによる設定に適用することができる。
図2は、本発明による半導体記憶装置のテスト機能及びオプションの設定とコード値との関係の一例を示す図である。図2において、VPPTrim等の各テスト機能は図1で説明したとおりである。各テスト機能はメインコード(MainCode)により指定され、各テスト機能におけるオプションはサブコード(SubCode)により指定される。メインコードのビット数及びサブコードのビット数は、異なる機能に対しては必要に応じて異なるビット数となっている。このようにメインコードのビット数及びサブコードのビット数を適宜異ならせることにより、比較的少ないビット数で所望の数のテスト機能及びオプションを特定することができる。
アドレスビットA04乃至A00を例えば"00111"に設定すると、VBLEQTrim機能の+050mVオプションを指定することになる。この場合、A01乃至A00の2ビットがメインコードであり、この2ビットが"11"であることにより、VBLEQTrim機能が一意に特定される。またA04乃至A02の3ビットがサブコードであり、この3ビットが"001"であることにより、+050mVオプションが一意に特定される。VBLEQTrim機能の場合には、8つの異なるオプションが存在するので、オプションを指定するサブコードに3ビットが必要になる。
またアドレスビットA04乃至A00を例えば"00101"に設定すると、VPPTrim機能のデフォールト電圧オプションを指定することになる。この場合、A02乃至A00の3ビットがメインコードであり、この3ビットが"101"であることにより、VPPTrim機能が一意に特定される。またA04乃至A03の2ビットがサブコードであり、この2ビットが"00"であることにより、デフォールト電圧オプションが一意に特定される。VPPTrim機能の場合には、4つの異なるオプションが存在するので、オプションを指定するサブコードに2ビットが必要になる。
またアドレスビットA04乃至A00を例えば"11110"に設定すると、VPP外部印加機能を指定することになる。この場合、A04乃至A00の5ビット全てがメインコードであり、この5ビットが"11110"であることにより、VPP外部印加機能が一意に特定される。VPP外部印加機能の場合には異なるオプションが存在しないので(1つのみオプションが存在する)、オプションを指定するサブコードは0ビットでよい。
図1の従来技術のコード割り当ての場合、A00乃至A06の7つのビットがコードとして使用される。それに対して図2の本発明によるコード割り当ての場合、A00乃至A04の5つのビットがコードに使用される。図2の本発明によるコード割り当てでは、5つのビットのみをコードとして用いながらも、7つのビットをコードとして用いる従来技術の場合と同数のテスト機能及びオプションを特定することができる。このようなコード割り当てを実現するコード割り当て方法については後ほど詳細に説明する。
上記のようなテスト機能及びオプションの設定は、入力されたメインコード及びサブコードに応じて、半導体記憶装置内部に設けられたテストレジスタに対して行われる。具体的には、複数のラッチ(レジスタ)が複数のテスト機能に一対一に対応して設けられ、あるテスト機能を特定するメインコード及びあるオプションを特定するサブコードが入力されると、入力メインコードのデコード結果により指定されるラッチに入力サブコードの値を格納する構成となっている。このようなハードウエア構成とすることで、複数のテスト機能を同時に設定可能でありながら、各テスト機能に対しては1つ以上のオプションを設定することは不可能としている。
図2の例では、複数の端子(A04乃至A00のアドレス端子)から入力される複数のビットのうちの一部である第1の所定数のビット(A01乃至A00の2ビット)により一意に特定されると、その複数のビットから第1の所定数のビットを除いた残りのビット(A04乃至A02)のうちの少なくとも一部である第2の所定数のビット(A04乃至A02の3ビット)を格納する第1のラッチ(VBLEQTrim機能のラッチ)と、複数の端子(A04乃至A00のアドレス端子)から入力される該複数のビットのうちの一部である第3の所定数のビット(A02乃至A00の3ビット)により一意に特定されると、その複数のビットから第3の所定数のビットを除いた残りのビット(A04乃至A03)のうちの少なくとも一部である第4の所定数のビット(A04乃至A03の2ビット)を格納する第2のラッチ(VPPTrim機能のラッチ)が設けられることになる。ここで第1の所定数(2)と第3の所定数(3)とは異なり、且つ第2の所定数(3)と第4の所定数(2)とは異なる。第1のラッチ(VBLEQTrim機能のラッチ)が格納する第2の所定数のビット(A04乃至A02)が、VBLEQTrim機能のオプションを指定する。また第2のラッチ(VPPTrim機能のラッチ)が格納する第4の所定数のビット(A04乃至A03)が、VPPTrim機能のオプションを指定する。このようなレジスタの構成については、後ほど詳細に説明する。
図3は、本発明による半導体記憶装置の構成の一例を示す図である。図3の半導体記憶装置10は、複数のアドレス端子11、その他複数の信号端子12、各端子に対応して設けられる複数のバッファ13、プリアドレス制御部14、コマンド制御部15、タイミング制御部16、パワー生成ユニット17、テストレジスタ18、モードレジスタ19、及びバンク20乃至23を含む。図3において、図解の見やすさの都合上、各回路部分の間の信号線の接続は、主要なものについてのみ示してある。
各バンク20乃至23は互いに同一の構成を有する。バンク20乃至23の各々は、バンク20に代表して示されるように、メモリセル配列24、ロー制御部25、コラム制御部26、データバススイッチ27、及びアドレス制御部28を含む。
アドレス端子11には12ビットのアドレス信号A[11:0]が供給される。ここでX[y:z]は、信号Xの第zビットから第yビットを示す表記である。他の信号端子12は、バンクアドレスBA[1:0]、チップセレクトCS、ローアドレスストローブRAS、コラムアドレスストローブCAS、ライトイネーブルWE、クロック信号CLK、クロックイネーブルCKE、バイトマスク信号DQM[1:0]、データ信号DQ[15:0]、電源電圧VDD、グランド電圧VSS、昇圧電圧VPP、及びバックバイアス電圧VBBを供給するための端子である。各端子に印加された信号又は電圧は、バッファ13を介してそれぞれ対応する回路部分に供給される。なお電源電圧VDD、グランド電圧VSS、昇圧電圧VPP、及びバックバイアス電圧VBBについては、バッファ13を介することなくパワー生成ユニット17に直接に供給される。
コマンド制御部15は、チップセレクトCS、ローアドレスストローブRAS、コラムアドレスストローブCAS、及びライトイネーブルWEからなるコントロール信号を受け取る。コマンド制御部15は、これらのコントロール信号をデコードし、デコード結果に基づいて種々の制御信号を生成する。これらの制御信号は、タイミング制御部16、テストレジスタ18、モードレジスタ19等の各回路部分に供給される。例えば、コマンド制御部15は、テスト機能・オプション設定のレジスタ取り込みを指示する信号tespzをテストレジスタ18に供給すると共に、テストモード等の動作モードの設定を指示する信号mrspzをモードレジスタ19に供給する。
タイミング制御部16は、コマンド制御部15からの制御信号、クロック信号CLK、及びクロックイネーブル信号CKEに基づいて、制御信号が指定する動作(データ読出し動作/データ書込み動作等)に対応する種々のタイミング信号を生成する。生成されたタイミング信号は、バンク20乃至23等に供給される。このタイミング信号が指定するタイミングに従って、各回路部分の動作が実行される。
プリアドレス制御部14は、バンクアドレスBA[1:0]及びアドレス信号A[11:0]を受け取る。プリアドレス制御部14は、バンクアドレスBA[1:0]のデコード結果により、バンク20乃至23のうちの1つのバンクを指定する。またアドレス信号A[11:0]に論理的に同一のアドレス信号grax[11:0]をテストレジスタ18、モードレジスタ19、及びバンク20乃至23に供給する。
パワー生成ユニット17は、電源電位VDD及びグランド電位VSSに基づいて、昇圧回路により昇圧電位VPPを生成したり、負電圧生成回路によりバックバイアス電位VBBを生成したりする。昇圧電位VPPはワード線活性化電位として使用され、バックバイアス電位VBBは、メモリセル配列の回路部分においてバックバイアスとして使用される。なお外部から供給されるVPP及びVBBは、それぞれVPP外部印加機能及びVBB外部印加機能を指定した場合に、外部から印加される電圧である。パワー生成ユニット17は更に、テスト動作においてイコライズレベルVBLEQやメモリセルプレート電位VPL等を制御可能なように構成される。
メモリセル配列24には、複数のメモリセルがロー方向及びコラム方向にマトリクス状に配列されてセルアレイを構成し、各メモリセルにデータが格納される。メモリセル配列24には、複数のローアドレスに対応して複数のワード線が配置され、各ワード線に複数のメモリセルが接続される。またコラムアドレスが並ぶ方向には複数のビット線が並べられ、それぞれのビット線にセンスアンプが接続される。
ロー制御部25は、プリアドレス制御部14からアドレス制御部28を介して供給されるローアドレスをデコードし、ローアドレスで指定されるワード線を活性化する。コラム制御部26は、プリアドレス制御部14からアドレス制御部28を介して供給されるコラムアドレスをデコードし、コラムアドレスで指定されるコラム選択線を活性化する。
活性化されたワード線に接続されるメモリセルのデータは、ビット線に読み出されセンスアンプで増幅される。読み出し動作の場合、センスアンプで増幅されたデータは、活性化されたコラム選択線により選択され、データバススイッチ27を介してDQ用の信号端子12から半導体記憶装置外部に出力される。書き込み動作の場合、半導体記憶装置外部からDQ用の信号端子12及びデータバススイッチ27を介して書き込みデータが供給され、活性化されたコラム選択線により選択されるコラムアドレスのセンスアンプに書き込まれる。この書き込みデータとメモリセルから読み出され再書き込みされるべきデータとが、活性化されたワード線に接続されるメモリセルに書き込まれる。
図4は、半導体記憶装置10にテスト動作を実行させる場合の信号入出力シーケンスを示す図である。まず第1のクロックサイクル(01)において、CS、RAS、CAS、WEを全てローにしてレジスタ設定コマンドMRSを入力し、同時にアドレス端子11に入力するアドレス信号A[11:0]によりコード(code)を指定し、テスト機能及びオプションを特定する。次にCS、RAS、CAS、WEをそれぞれL、L、H、及びHにしてアクティベーションコマンドACTを入力し、同時にバンクアドレスabnk及びローアドレスaactを入力する。次にCS、RAS、CAS、WEをそれぞれL、H、L、及びLにしてライトコマンドWRを入力し、同時にバンクアドレスabnk、コラムアドレスawr、及び書込みデータdwrを入力する。以上により、指定したアドレスにテスト用のデータが書き込まれる。最後に、CS、RAS、CAS、WEをそれぞれL、L、H、及びLにしてプリチャージコマンドPREを入力する。以上により、指定したアドレスへのテスト用のデータ書込みが終了する。
更に、第6のクロックサイクル(06)において、CS、RAS、CAS、WEを全てローにしてレジスタ設定コマンドMRSを入力し、同時にアドレス端子11に入力するアドレス信号A[11:0]により前記とは異なるコード(code2)を指定し、テスト機能及びオプションを特定する。次にCS、RAS、CAS、WEをそれぞれL、L、H、及びHにしてアクティベーションコマンドACTを入力し、同時にバンクアドレスabnk及びローアドレスaactを入力する。次にCS、RAS、CAS、WEをそれぞれL、H、L、及びHにしてリードコマンドRDを入力し、同時にバンクアドレスabnk及びコラムアドレスawrを入力する。最後に、CS、RAS、CAS、WEをそれぞれL、L、H、及びLにしてプリチャージコマンドPREを入力する。リードコマンドから所定のレイテンシの後に、読出しデータdrdが読み出される。以上により、指定したアドレスからのテスト用のデータ読出しが終了する。
上記データ書込みデータ読出しにおいて、テスト機能及びオプション設定により、所望の動作条件を指定する。例えば書込み時及び読出し時のワード線活性化電位を指定した電位に設定し、正常なデータ書込み及びデータ読出しが可能か否かを判定する。或いは例えば書込み時及び読出し時のセンスアンプ活性化タイミングを調整し、正常なデータ書込み及びデータ読出しが可能か否かを判定する。
上記動作において、CS、RAS、CAS、WEを全てローにしてレジスタ設定コマンドMRSを入力すると、図3に示すコマンド制御部15が信号tespzをアサートする。この信号tespzのアサートに応答して、図3に示すテストレジスタ18が、アドレス信号A[11:0]に論理的に同一のアドレス信号grax[11:0]に応じた内部レジスタ設定を行う。その後、このテストレジスタ18の内部レジスタ設定に応じて出力される信号tesz[0:128]及びtsazに従って各回路部分が動作することにより、パワー生成ユニット17の生成電圧が調整されたり、タイミング制御部16が指定するセンスアンプの活性化タイミングが調整されたり、外部から直接入力される電圧が使用されたりする。
図3に示す半導体記憶装置10では、アドレス端子11のアドレス信号A[11:0]により、テスト機能及びオプション設定を行う。以下に示す例では、各機能毎の異なるオプションを識別するのに7ビットのコードが必要な機能が2個、各機能毎の異なるオプションを識別するのに5ビットのコードが必要な機能が8個、各機能毎の異なるオプションを識別するのに3ビットのコードが必要な機能が16個、各機能毎の異なるオプションを識別するのに2ビットのコードが必要な機能が16個、各機能毎の異なるオプションを識別するのに0ビットのコードが必要な機能が32個ある場合において、アドレス信号A[11:0]へのコード割り当てについて説明する。この場合、合計で74個(=2+8+16+16+32)の機能が存在することになる。
なおアドレス信号A08は、モードレジスタ19にテスト動作モードの設定をするモードレジスタセットMRSの際に"1"に設定することが決められている。即ち、アドレス信号A08はモードレジスタセットMRS用に予約されており、コード割り当てには使用できない。またアドレス信号A07は、テスト動作モードへのエントリの際に"1"に設定し、テスト動作モードからエグジットする際に"0"に設定することが決められている。即ち、アドレス信号A07はテスト動作エントリ/エグジット指定用に予約されており、コード割り当てには使用できない。
図5Aは、各機能毎の異なるオプションを識別するのに7ビットのコードが必要な機能に対するメインコードとサブコードの割り当ての一例を示す図である。各機能毎の異なるオプションを識別するのに7ビット必要であるので、サブコードとして7ビットが必要になる。この場合、A06乃至A00の7ビットをサブコード(Sub)に割り当てている。またメインコードとしては、A11乃至A09の3つのビットを割り当てている。なお図5Aにおいて、メインコードのことをグループコード(Group)として表記してある。ここでグループコードとは、サブコードのビット数が同一の機能同士を纏めたグループを識別するのに使用するメインコードの一部のビットのことである。この例では、サブコードが7ビットのグループ、サブコードが5ビットのグループ、サブコードが3ビットのグループ、サブコードが2ビットのグループ、及びサブコードが0ビットのグループで、合計5つのグループが存在する。これら5つのグループを識別するためには3ビット必要であり、グループコードとして3ビットが割り当てられている。
サブコードが7ビットのグループは、グループコードA11乃至A09が"11x"(x:ドントケア)で指定される。なおサブコードが7ビットのグループには2個の異なる機能が存在するので、これらの2個の機能を識別するために、グループコードの一部のビットであるA09を用いることができる。
図5Bは、各機能毎の異なるオプションを識別するのに5ビットのコードが必要な機能に対するメインコードとサブコードの割り当ての一例を示す図である。各機能毎の異なるオプションを識別するのに5ビット必要であるので、サブコードとして5ビットが必要になる。この場合、A06乃至A02の5ビットをサブコード(Sub)に割り当てている。またメインコードには、A11乃至A09の3つのビットとA01乃至A00の2ビットとで合計5ビットが割り当てられている。そのうちでA11乃至A09の3つのビットはグループコード(Group)である。
サブコードが5ビットのグループは、グループコードA11乃至A09が"10x"(x:ドントケア)で指定される。なおサブコードが5ビットのグループには8個の異なる機能が存在するので、これらの8個の機能を識別するために、グループコードの一部のビットであるA09とメインコードの残りのビットA01乃至A00との計3ビットを用いる。
図5Cは、各機能毎の異なるオプションを識別するのに3ビットのコードが必要な機能に対するメインコードとサブコードの割り当ての一例を示す図である。各機能毎の異なるオプションを識別するのに3ビット必要であるので、サブコードとして3ビットが必要になる。この場合、A06乃至A04の3ビットをサブコード(Sub)に割り当てている。またメインコードには、A11乃至A09の3つのビットとA03乃至A00の4ビットとで合計7ビットが割り当てられている。そのうちでA11乃至A09の3つのビットはグループコード(Group)である。
サブコードが3ビットのグループは、グループコードA11乃至A09が"100"で指定される。なおサブコードが3ビットのグループには16個の異なる機能が存在するので、これらの16個の機能を識別するために、グループコードを除いたメインコードの残りのビットA03乃至A00の計4ビットを用いる。
図5Dは、各機能毎の異なるオプションを識別するのに2ビットのコードが必要な機能に対するメインコードとサブコードの割り当ての一例を示す図である。各機能毎の異なるオプションを識別するのに2ビット必要であるので、サブコードとして2ビットが必要になる。この場合、A06乃至A05の2ビットをサブコード(Sub)に割り当てている。またメインコードには、A11乃至A09の3つのビットとA03乃至A00の4ビットとで合計7ビットが割り当てられている。そのうちでA11乃至A09の3つのビットはグループコード(Group)である。
サブコードが2ビットのグループは、グループコードA11乃至A09が"011"で指定される。なおサブコードが2ビットのグループには16個の異なる機能が存在するので、これらの16個の機能を識別するために、グループコードを除いたメインコードの残りのビットA03乃至A00の計4ビットを用いる。この場合、ビットA04は不要であるので使用されない。
図5Eは、各機能毎の異なるオプションを識別するのに0ビットのコードが必要な機能に対するメインコードとサブコードの割り当ての一例を示す図である。各機能毎の異なるオプションを識別するのに0ビット必要であるので、サブコードとして0ビットが必要になる。この場合、サブコードへ割り当てられるビットは存在しない。またメインコードには、A11乃至A09の3つのビットとA03乃至A00の4ビットとで合計7ビットが割り当てられている。そのうちでA11乃至A09の3つのビットはグループコード(Group)である。
サブコードが0ビットのグループは、グループコードA11乃至A09が"00x"(x:ドントケア)で指定される。なおサブコードが0ビットのグループには32個の異なる機能が存在するので、これらの32個の機能を識別するために、グループコードの一部のビットであるA09とメインコードの残りのビットA03乃至A00との計5ビットを用いる。この場合、ビットA06乃至A04は不要であるので使用されない。
図6は、図5A乃至5Eのコード割り当ての場合の図3に示すテストレジスタ18の構成の一例を示す図である。図6においてテストレジスタ18は、ラッチ制御ユニット31、デコーダ32、デコーダ33、グループデコーダ34、7ビットラッチ35、5ビットラッチ36、3ビットラッチ37、2ビットラッチ38、及び0ビットラッチ39を含む。
図5A乃至5Eに示すアドレス信号A00乃至A11は、アドレス信号grax[00:11]に対応している。なお信号名の末尾がzの信号は正論理であり、信号名の末尾がxの信号は負論理である。アドレス信号grax[00:11]は負論理として与えられる。ラッチ制御ユニット31は、grax[07:08]及び信号tespzに応じて、各ラッチの設定を指示する信号tentzと各ラッチの解除を指示する信号texitzを生成する。ラッチ制御ユニット31は、grax[07](07で指定される信号graxの1ビット)が"0"にアサートされると、信号tentzをHIGHに設定する。またgrax[07](07で指定される信号graxの1ビット)が"1"にネゲートされると、信号tentzをHIGHに設定する。
デコーダ32は、メインコードの一部であるgrax[00:01]をデコードして、デコード信号taax[0:3]を出力する。デコーダ33は、メインコードの一部であるgrax[02:03]をデコードして、デコード信号tabx[0:3]を出力する。ここでデコーダ32とデコーダ33とにデコーダを分離してあるのは、図5C乃至5Eの場合にはA00乃至A03がメインコードであるが、図5Bの場合にはA00からA01までがメインコードでありA02及びA03はサブコードであるからである。A00乃至A01のデコード処理をデコーダ32が受け持ち、A02乃至A03のデコード処理をデコーダ33が受け持つ構成としてある。またグループデコーダ34は、グループコードであるgrax[09:11]をデコードして、デコード信号grpx[0:7]を出力する。これらのデコーダから出力されるデコード信号により、複数設けられるラッチのうちの1つのラッチを一意に特定する。
図示の都合上、図6には、デコード信号grpx[7]が供給される7ビットラッチ35が1つのみ示される。しかし実際には2つの機能に対応して2つの7ビットラッチ35が設けられ、一方にはgrpx[7]が供給され、他方にはgrpx[6]が供給される。グループコードA11乃至A09が"111"の場合にgrpx[7]がアサートされ、グループコードA11乃至A09が"110"の場合にgrpx[6]がアサートされる。これにより、グループコードの一部のビットであるA09を用いて2個の異なる機能を識別することができる。
1つの7ビットラッチ35がデコード信号により一意に特定されると、この特定された7ビットラッチ35に、サブコードであるgrax[00:06]の値が設定される(ラッチされる)。値が設定されると、この7ビットラッチ35の出力tes7#zがHIGHにアサートされ、grax[00:06]の反転論理である出力tsa7#z[0:6]が出力される。tes7#zのアサートにより、この7ビットラッチ35の出力が有効であることを示し、出力tsa7#z[00:06]により、オプション設定内容を特定することができる。なおここで信号名中の#は、2つの機能に対応して設けられた2つの7ビットラッチ35を識別する記号であり、例えば2つの機能に対応して0又は1となる。
7ビットラッチ35には、グループデコーダ34からのデコード信号のみが供給され、デコーダ32からのデコード信号及びデコーダ33からのデコード信号は供給されない。供給されない信号経路を見やすくするために、実際には存在しない信号線の位置を点線で示してある。このように点線で示す位置の信号線が存在しないのは、図5Aに示すように、7ビットのサブコードを必要な機能はグループコードのみで特定可能だからである。点線で示す信号経路が存在しないことにより、テストレジスタ18内部の信号線数を従来の構成と比較して大幅に減らすことができる。
同様に、図6には、デコード信号grpx[5]が供給される5ビットラッチ36が1つのみ示される。しかし実際には8つの機能に対応して8つの5ビットラッチ36が設けられ、そのうち4つにはgrpx[5]が供給され、残りの4つにはgrpx[4]が供給される。グループコードA11乃至A09が"101"の場合にgrpx[5]がアサートされ、グループコードA11乃至A09が"100"の場合にgrpx[4]がアサートされる。何れかの信号のアサートにより、何れか4つの5ビットラッチ36が選択される。選択された4つの5ビットラッチ36から1つの5ビットラッチ36を一意に特定するために、更にデコーダ32のデコード出力であるtaax[0:3]の各ビットtaaxが、対応する1つの5ビットラッチ36に供給される。これにより、1個の機能を識別することができる。
1つの5ビットラッチ36がデコード信号により一意に特定されると、この特定された5ビットラッチ36に、サブコードであるgrax[02:06]の値が設定される(ラッチされる)。値が設定されると、この5ビットラッチ36の出力tes5#zがHIGHにアサートされ、grax[02:06]の反転論理である出力tsa5#z[2:6]が出力される。tes5#zのアサートにより、この5ビットラッチ36の出力が有効であることを示し、出力tsa5#z[2:6]により、オプション設定内容を特定することができる。なおここで信号名中の#は、8つの機能に対応して設けられた8つの5ビットラッチ36を識別する記号であり、例えば8つの機能に対応して0乃至7となる。
5ビットラッチ36には、グループデコーダ34及びデコーダ32からのデコード信号のみが供給され、デコーダ33からのデコード信号は供給されない。供給されない信号経路を見やすくするために、実際には存在しない信号線の位置を点線で示してある。このように点線で示す位置の信号線が存在しないのは、図5Bに示すように、5ビットのサブコードを必要な機能はグループコード及びA0〜A01のみで特定可能だからである。点線で示す信号経路が存在しないことにより、テストレジスタ18内部の信号線数を従来の構成と比較して大幅に減らすことができる。
3ビットラッチ37の場合、16個の機能に対応して16個の3ビットラッチ37が設けられる。各3ビットラッチ37には、デコード信号grpx[3]が供給される。デコード信号grpx[3]がアサートされると、図6に示す全てのラッチの中から16個の3ビットラッチ37が選択される。選択された16個の3ビットラッチ37から1つの3ビットラッチ37を一意に特定するために、デコーダ32のデコード出力であるtaax[0:3]の各ビットtaax及びデコーダ33のデコード出力であるtabx[0:3]の各ビットtabxが用いられる。特定された1つの3ビットラッチ37には、サブコードであるgrax[04:06]の値が設定される(ラッチされる)。3ビットラッチ37の出力の働きは、上述の7ビットラッチ35の出力及び5ビットラッチ36の出力の場合と同様である。
2ビットラッチ38の場合、16個の機能に対応して16個の2ビットラッチ38が設けられる。各2ビットラッチ38には、デコード信号grpx[2]が供給される。デコード信号grpx[2]がアサートされると、図6に示す全てのラッチの中から16個の2ビットラッチ38が選択される。選択された16個の2ビットラッチ38から1つの2ビットラッチ38を一意に特定するために、デコーダ32のデコード出力であるtaax[0:3]の各ビットtaax及びデコーダ33のデコード出力であるtabx[0:3]の各ビットtabxが用いられる。特定された1つの2ビットラッチ38には、サブコードであるgrax[05:06]の値が設定される(ラッチされる)。2ビットラッチ38の出力の働きは、上述の7ビットラッチ35の出力及び5ビットラッチ36の出力の場合と同様である。
0ビットラッチ39の場合、32個の機能に対応して32個の0ビットラッチ39が設けられる。そのうち16個にはgrpx[0]が供給され、残りの16個にはgrpx[1]が供給される。グループコードA11乃至A09が"001"の場合にgrpx[1]がアサートされ、グループコードA11乃至A09が"000"の場合にgrpx[0]がアサートされる。何れかの信号のアサートにより、何れか16個の0ビットラッチ39が選択される。選択された16個の0ビットラッチ39から1つの0ビットラッチ39を一意に特定するために、デコーダ32のデコード出力であるtaax[0:3]の各ビットtaax及びデコーダ33のデコード出力であるtabx[0:3]の各ビットtabxが用いられる。特定された1つの0ビットラッチ39は、サブコードをラッチすることなく、出力tes0#zのアサートにより、ラッチが特定された状態にあることを示す。なおここで信号名中の#は、32個の機能に対応して設けられた32個の0ビットラッチ39を識別する記号であり、例えば32個の機能に対応して0乃至31となる。
このように、3ビットラッチ37、2ビットラッチ38、及び0ビットラッチ39については、1つのラッチ(1つの機能)を一意に特定するために、デコーダ32のデコード出力、デコーダ33のデコード出力、及びグループデコーダ34のデコード出力が用いられる。
図7は、図6に示す2ビットラッチ38の構成の一例を示す図である。図7の2ビットラッチ38は、NOR回路40、NAND回路41、NAND回路42、インバータ43、2つのラッチ回路44、及び1つのラッチ回路45を含む。各ラッチ回路44及びラッチ回路45は同一の回路構成であり、インバータ50、PMOSトランジスタとNMOSトランジスタとからなるトランスファーゲート51、NAND回路52、インバータ53、及びインバータ54を含む。
デコーダ32が出力するデコード信号taax[0:3]のうちの1ビットであるtaax、デコーダ33が出力するデコード信号tabx[0:3]のうちの1ビットであるtabx、及びグループデコーダ34が出力するデコード信号grpx[0:7]のうちの1ビットであるgrpx(=grpx[2])が、NOR回路40に供給される。これら3つの入力全てが"0"にアサートされると、図7に示される2ビットラッチ38が一意に特定され、NOR回路40の出力がHIGHになる。レジスタ設定時には、texitzがLOW、tentzがHIGHに設定されている。従ってNAND回路42の出力がLOWになり、ラッチ回路44及びラッチ回路45においてトランスファーゲート51がHIGHになる。その結果、2つのラッチ回路44にはgrax[06:05]の2ビットが格納され、出力tsa2#zはgrax[06:05]の反転信号となる。またラッチ回路45には、グランド電位のLOWが格納され、出力tes2#zはLOWが反転されHIGHとなる。
レジスタ解除時には、texitzがHIGH、tentzがLOWに設定される。この場合、NAND回路41の出力がLOWになり、ラッチ回路44及びラッチ回路45においてNAND回路52の出力がHIGHに設定される。これにより、ラッチ回路44及びラッチ回路45の出力は全てLOWとなる。
図7には2ビットラッチ38の構成を示したが、7ビットラッチ35、5ビットラッチ36、3ビットラッチ37、及び0ビットラッチ39も同様にして構成することができる。但し0ビットラッチ39の場合には、ラッチ回路44は不要であり、ラッチ回路45のみを設ければよい。
図8は、本発明によるテスト機能及びオプションの設定に応じて動作するテスト回路の一例を示す図である。図8に示すテスト回路は、センスアンプ活性化タイミングを調整するテスト機能を実現する回路であり、図3の半導体記憶装置10において例えばタイミング制御部16等に設けられてよい。
図8のテスト回路は、デコーダ61及び遅延回路62乃至65を含む。遅延回路62乃至65は互いに同一の回路構成であり、AND回路70、NAND回路71、インバータ72、キャパシタ73、キャパシタ74、抵抗75、及び抵抗76を含む。NAND回路71の出力信号が、インバータ72、キャパシタ73、キャパシタ74、抵抗75、及び抵抗76からなる信号伝搬路を遅延しながら伝搬する。
デコーダ61は、1つの2ビットラッチ38の出力tsa20z[0]及びtsa20z[1]を受け取りデコードし、デコード結果を信号twlsaez[0]乃至twlsaez[3]として出力する。指定したオプションに応じて、twlsaez[0]乃至twlsaez[3]の1つがHIGHになる。例えばtwlsaez[1]がHIGHに設定された場合、ワード線活性化を指示する信号mwlonzのHIGHパルスに応答して、遅延回路63のAND回路70の出力にHIGHパルスが現れる。これに応答して、NAND回路71の出力にLOWパルスが現れる。このLOWパルスが遅延回路63乃至65を伝搬して、その分の遅延を受けた後に、センスアンプ活性化信号msaeonzとして出力される。遅延回路62乃至65の1つの回路当りの遅延時間をTDとし、例えばtwlsaez[0]がHIGHにアサートされたときのセンスアンプ活性化信号msaeonzがデフォールト値であるとすると、twlsaez[1]のアサート時には+TDのオプションとなる。またtwlsaez[2]のアサート時には+2TDのオプションとなる。また更にtwlsaez[3]のアサート時には−TDのオプションとなる。
図9は、本発明によるテスト機能及びオプションの設定に応じて動作するテスト回路の別の一例を示す図である。図9に示すテスト回路は、昇圧電位VPPを調整するテスト機能を実現する回路であり、図3の半導体記憶装置10において例えばパワー生成ユニット17に設けられてよい。
図9のテスト回路は、デコーダ81、PMOSトランジスタとNMOSトランジスタとからなるトランスファーゲート82乃至85、PMOSトランジスタ86及び87、NMOSトランジスタ88乃至89、インバータ91、昇圧回路92、及び抵抗R1乃至R5を含む。PMOSトランジスタ86及び87及びNMOSトランジスタ88乃至89は、差動増幅器を構成する。
昇圧回路92は、昇圧回路駆動信号vppupzのHIGHへのアサートに応答して駆動し、昇圧電位VPPを生成する。生成された昇圧電圧VPPは、直列接続される抵抗R1乃至R5からなる分圧器の一端に印加される。分圧器により昇圧電圧VPPを分圧して生成した複数の異なる電位のうち、トランスファーゲート82乃至85の1つが導通することにより選択された電位が、分圧電位nrvppとして差動増幅器に入力される。分圧電位nrvppが基準電位vrefよりも高くなると、差動増幅器は、インバータ91への入力をHIGHにする。これに応じて、昇圧回路駆動信号vppupzがLOWにネゲートされる。これにより昇圧回路92の動作を停止して、昇圧電位VPPを下降させる。逆に分圧電位nrvppが基準電位vrefよりも低くなると、差動増幅器は、インバータ91への入力をLOWにする。これに応じて、昇圧回路駆動信号vppupzがHIGHにアサートされる。これにより昇圧回路92を駆動して、昇圧電位VPPを上昇させる。このフィードバック制御により、昇圧電位VPPを所定の電位に等しくなるように調整する。
デコーダ81は、1つの2ビットラッチ38の出力tsa21z[0]及びtsa21z[1]を受け取りデコードし、デコード結果を信号tvpptrimz[0]乃至tvpptrimz[3]として出力する。指定したオプションに応じて、tvpptrimz[0]乃至tvpptrimz[3]の1つがHIGHになる。例えばtvpptrimz[3]がHIGHに設定された場合、昇圧電圧VPPを(R3+R4+R5)/(R1+R2+R3+R4+R5)により分圧した電圧が分圧電位nrvppとして、差動増幅器に供給される。この場合、昇圧電圧VPPは、vref×(R1+R2+R3+R4+R5)/(R3+R4+R5)に等しくなるように制御される。
図10A乃至10Cは、本発明によるコード割り当て方法の一例を示すフローチャートである。ステップS1において、各機能に対して、各機能に割り当てるサブコードのビット長であるLenSubを抽出する。ステップS2において、全機能をLenSubでグループ化する。
ステップS3で、グループ数CountGroupと各グループに搭載される機能数CountMainを計数する。ステップS4で、各グループについて予想される全体のコード長(LenCode[LenSub])を計算する。ここで予想される全体のコード長は、グループ数を表現するのに必要なビット数と、各グループに搭載される機能数を表現するのに必要なビット数と、サブコードのビット数との和である。即ち、
LenCode[LenSub]=Log2(CountGroup)+Log2(CountMain[LenSub])+LenSub
である。
ステップS5で、用意するコード長の初期値(LenCodeUse)を設定する。ここで、コード長の初期値は、予想される全体のコード長(各グループ毎に異なる長さ)のうちの最大値である。即ち、Max(LenCode[LenSub])として計算される。
ステップS6で、各グループで余るコードのビット長(LenCodeRest)を算出する。ここで、
LenCodeRest=LenCodeUse−LenCode[LenSub]
である。更にステップS7で、全グループをLenCodeRestの小さい順にソートする。
図11は、図10Aの各ステップを実行することにより得られるグループ及び各計算値を示す表である。図11の例では、サブコードが7、5、3、2、0ビットの5つのグループが存在し、それぞれの機能数が2、4、14、13、32となっている。
図10AのステップS7の次に図10BのステップS8において、各グループに対して、LenCodeRestビット分をCexとし、Cgroup、Cex、Cmain、Csubの順でコード領域を確保する。ここで、Cgroupはグループコードのビット領域、Cmainはメインコード(グループコードを除いたメインコード)のビット領域、Csubはサブコードのビット領域である。なおCexは、拡張コードである。
図12は、図11の例の各グループに対してステップS8に従い各コード領域を確保した状態を示す図である。Csubのビット数はLenSubに等しい。Cmainのビット数は、各グループにおいて機能数を表現するのに必要なビット数である。またCgroupのビット数は、全グループ数を表現するのに必要なビット数である。
このように、機能毎にオプションを一意に識別するサブコードのビット数として、機能毎にオプションを一意に識別可能な最小のビット数LenSubを求め(ステップS1)、複数の機能のうちでサブコードのビット数LenSubが等しいもの同士を纏めてグループ化し(ステップS2)、各グループに特有のビット数からなるサブコードを割り当てる第1のビット領域Csubをグループ毎にビット列C10乃至C00中に定め(ステップS8)、グループを一意に識別可能なグループコードを割り当てる第2のビット領域Cgroupをビット列C10乃至C00中に定め(ステップS8)、ビット列中で第1のビット領域及び第2のビット領域の何れにも割り当てられていない第3のビット領域Cmainをグループ毎に機能の識別のためのメインコードに割り当てる。
図10Bに戻りステップS9において、Cgroupに一意にグループを識別可能な符号を割り当てる。図13は、ステップS9によりグループを識別可能な符号を割り当てた状態を示す図である。
ステップS10において、LenCodeRestの小さいものから順にCexを割り当て、Cexを含める事で識別可能なグループに同一のCgroupを割り当て直す。ステップS11において、Cexの割り当てにより統合可能なグループが存在するかを判定する。判定の結果がYesの場合には、ステップS10に戻り、処理を繰り返す。
図14は、ステップS10によりLenCodeRestの小さいグループにCexを割り当てた状態を示す図である。Group[3]にCex=0、Group[5]にCex=1が割り当てられている。拡張コードCexにより、Group[3]とGroup[5]とは識別可能であるので、Group[3]とGroup[5]とは統合可能である。従って、Group[3]とGroup[5]とに同一のCgroupの符号を割り当て直す。
図15は、Group[3]とGroup[5]とに同一のCgroupの符号を割り当て直した状態を示す図である。Group[3]とGroup[5]とにCgroupの符号として"110"が割り当てられている。
図16は、ステップS10により更にCexを割り当てた状態を示す図である。Group[2]にCex=1x、Group[0]にCex=0xxが割り当てられている。拡張コードCexにより、Group[2]とGroup[0]とは識別可能であるので、Group[2]とGroup[0]とは統合可能である。従って、Group[2]とGroup[0]とに同一のCgroupの符号"100"を割り当て直してある。
図10Bに戻り、ステップS12で、ステップS10によりCgroupに必要なビット数が減っていれば、Cgroupのビット数を減らして再度各グループに符号を割り当てる。図17は、ステップS12に従いCgroupのビット数を減らして再度各グループに符号を割り当てた状態を示す図である。図16の状態で、グループ統合後には3つのグループしか存在しないことが分かる。従って、Cgroupのビット数としては2ビットあればよいことになる。従って図17では、Cgroupのビット数を1つ減らすことにより全体のビット長を1つ減らして、更にCgroupの符号を新たに割り当て直してある。S9からS12までを繰り返すことでCgroupに最小限必要なビット数を求められる。
ステップS13で、Cexで未割り当てのビットをCmainとCsubの間に移動する。図18は、ステップS13によりCexのうち未割り当てのビットをCmainとCsubとの間に移動した状態を示す図である。
次に図10CのステップS14で、Cgroupに未割り当てのコードがあるか否かを判定する。Cgroupに未割り当てのコードがある場合には、ステップS15で、Cex及びCmainの合計コード長が最も長いグループに対するCgroupの割り当てを1個追加し、Cmainを1ビット減らす。
図19は、ステップS15の処理を実行した後の状態を示す図である。図18において、Cgroupの符号"00"は未割り当てである。従って、Cex及びCmainの合計コード長が最も長いグループであるGroup[0]に対して、Cgroupの符号"00"を追加的に割り当てる。更に、Group[0]のCmainのビット数を5から4に減らす。
ステップS16で、Cgroup、Cex、Cmainを一纏めにし、デコード処理し易いように境界を再設定する。図20は、ステップS16の処理を実行した後の状態を示す図である。図20において、C09乃至C07はグループデコーダによるデコード処理し、C06及びC05は第1のデコーダによりデコード処理し、C04及びC03は第2のデコーダによりデコード処理することになる。
最後にステップS17で、各機能に対してCmain及びCsubを割り当てる。以上でコード割り付け処理を終了する。
なお従来技術のようにメインコードとサブコードとにそれぞれ固定のビット長を割り振る場合と比較して本願発明が効果を発揮するために、サブコードのビット数が最長であるグループGroup[7]における第3のビット領域Cmainのビット長は、他のグループ(例えばGroup[3])における第3のビット領域Cmainのビット長よりも短いことが好ましい。即ち、オプション数が多いグループについては、機能数が少ないことが好ましい。また同様に本願発明が効果を発揮するためには、サブコードのビット数が最長であるグループGroup[7]の第1のビット領域Csubに対応するビット列中の位置(C06乃至C00)の少なくとも一部の位置(例えばC06乃至C03)は、他のグループ(例えばGroup[3])において第3のビット領域Cmainに割り当てられていることが好ましい。
以下に、本発明の効果を従来技術との比較において説明しておく。図21は、図5A乃至5Eの例に対応するテスト機能及びオプションについて、メインコードとサブコードとの長さを固定とした場合のコード割り付けを示す図である。前述のように、この例では、各機能毎の異なるオプションを識別するのに7ビットのコードが必要な機能が2個、各機能毎の異なるオプションを識別するのに5ビットのコードが必要な機能が8個、各機能毎の異なるオプションを識別するのに3ビットのコードが必要な機能が16個、各機能毎の異なるオプションを識別するのに2ビットのコードが必要な機能が16個、各機能毎の異なるオプションを識別するのに0ビットのコードが必要な機能が32個ある。オプション識別に必要なビット数の最大値は7であるので、固定長のサブコードとして7ビットが割り当てられる。また全体で74個の機能が存在するので、各機能を一意に識別するために7ビットの固定長のメインコードが必要になる。結果として、メインコードが7ビット、サブコードが7ビットとなる。
図21は、7ビットのメインコード及び7ビットのサブコードに対する各端子の割り当ての一例を示す図である。図21において、メインコードには、アドレスビットA00乃至A06が割り当てられる。残りの利用可能なアドレスビットはA11乃至A09であり、3ビットしか存在しない。従って更に4ビットをサブコード用に確保する必要がある。例えば、バンクアドレス信号の端子BA0及びBA1に加え更に拡張用の端子Ax0及びAx1を用いて、サブコード用の7ビットを割り当てることができる。この場合、本発明で用いる端子数10に比較して、14個の端子が必要になり、大幅な端子数の増加となる。
図22は、2回に分けてメインコードとサブコードを入力する場合のコードの端子への割り当てを示す図である。上記の場合と同様に、メインコードが7ビット、サブコードが7ビットの場合を示してある。この場合、時間的に異なるタイミングでメインコードとサブコードとを半導体記憶装置に入力するので、同一の端子にメインコードとサブコードとを割り当てることができる。図22の例では、アドレスビットA00乃至A06にメインコードとサブコードとを割り当ててある。
図23は、図22のコード割り当ての場合の半導体記憶装置に対する信号入出力シーケンスを示す図である。まず第1のクロックサイクル(01)において、CS、RAS、CAS、WEを全てローにしてレジスタ設定コマンドMRSを入力し、同時にアドレス端子11に入力するアドレス信号A[8:0]によりメインコード(code1)を指定し、テスト機能を特定する。次に、CS、RAS、CAS、WEを全てローにしてレジスタ設定コマンドMRSを入力し、同時にアドレス端子11に入力するアドレス信号A[8:0]によりサブコード(code2)を指定し、オプションを特定する。
次にCS、RAS、CAS、WEをそれぞれL、L、H、及びHにしてアクティベーションコマンドACTを入力し、同時にバンクアドレスabnk及びローアドレスaactを入力する。次にCS、RAS、CAS、WEをそれぞれL、H、L、及びLにしてライトコマンドWRを入力し、同時にバンクアドレスabnk、コラムアドレスawr、及び書込みデータdwrを入力する。以上により、指定したアドレスにテスト用のデータが書き込まれる。最後に、CS、RAS、CAS、WEをそれぞれL、L、H、及びLにしてプリチャージコマンドPREを入力する。以上により、指定したアドレスへのテスト用のデータ書込みが終了する。
更に、第7のクロックサイクル(07)において、CS、RAS、CAS、WEを全てローにしてレジスタ設定コマンドMRSを入力し、同時にアドレス端子11に入力するアドレス信号A[8:0]によりメインコード(code1)を指定し、テスト機能を特定する。次に、CS、RAS、CAS、WEを全てローにしてレジスタ設定コマンドMRSを入力し、同時にアドレス端子11に入力するアドレス信号A[8:0]によりサブコード(code2)を指定し、オプションを特定する。
次にCS、RAS、CAS、WEをそれぞれL、L、H、及びHにしてアクティベーションコマンドACTを入力し、同時にバンクアドレスabnk及びローアドレスaactを入力する。次にCS、RAS、CAS、WEをそれぞれL、H、L、及びHにしてリードコマンドRDを入力し、同時にバンクアドレスabnk及びコラムアドレスawrを入力する。最後に、CS、RAS、CAS、WEをそれぞれL、L、H、及びLにしてプリチャージコマンドPREを入力する。リードコマンドから所定のレイテンシの後に、読出しデータdrdが読み出される。以上により、指定したアドレスからのテスト用のデータ読出しが終了する。
このように2回に分けてメインコードとサブコードを入力する場合、書込み動作の場合と読出し動作の場合の各々について、一サイクル分の追加の処理が必要になる。従って、図22に示すようなコード割り当ての場合、必要な端子数は減少するが、テスト動作に必要な時間が増大することになり好ましくない。
図24は、図21のコード割り当ての場合のテストレジスタの構成を示す図である。図24に示すテストレジスタは、ラッチ制御ユニット131、デコーダ132、デコーダ133、グループデコーダ134、7ビットラッチ135、5ビットラッチ136、3ビットラッチ137、2ビットラッチ138、及び0ビットラッチ139を含む。図6の構成と異なり、各デコーダ132、133、134からのデコード出力が、全てのラッチに供給されている。これはメインコードを固定の7ビット長として、7ビットのメインコードのデコード結果により各ラッチを識別する構成となっているからである。従って、図6に示す本発明の場合と比較して、テストレジスタの内部における信号線数が増大することになる。
図25は、図22のコード割り当ての場合のテストレジスタの構成を示す図である。図24に示すテストレジスタは、ラッチ制御ユニット131、デコーダ132、デコーダ133、グループデコーダ134、7ビットラッチ135、5ビットラッチ136、3ビットラッチ137、2ビットラッチ138、0ビットラッチ139、及びシフトレジスタ140を含む。図22のコード割り当ての場合、異なるタイミングで同一の端子にメインコードとサブコードとを入力するので、先に入力されたコードを記憶しておくシフトレジスタ140が必要になる。従って、図6に示す本発明の場合と比較して、テストレジスタの内部における信号線数が増大するとともに、アドレスバス幅のレジスタが1つ追加で必要になる。
本発明の効果は、メモリとメモリコントローラとを一体化したシステム等の場合にも現れる。何故なら、メモリとメモリコントローラとの間を接続する結線は必要最小限の本数となることが好ましいからである。また本発明の効果は、半導体集積回路の試験時に顕著に現れる。メモリ等の半導体集積回路を試験する場合には、同時に複数のチップをテスタに接続し、各チップの信号入出力が必要な端子にテスタのプローブの針を接触させる。テスタのプローブの針の本数には限りがあるので、信号入出力が必要な端子の数は必要最小限であることが好ましい。
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。