(57)【特許請求の範囲】
【請求項１】
複数の内部回路と、前記複数の内部回路のうち使用する内部回路を選択情報に基づいて選択する選択部とをそれぞれ含む複数の回路ブロックと、
前記複数の回路ブロックのうち、前記複数の内部回路の選択状態を初期状態から変更する回路ブロックである変更回路ブロックの前記選択部に供給される選択情報を記憶する記憶部と、
前記複数の回路ブロックにそれぞれ対応して設けられ、選択状態を前記初期状態から変更する確率が高い回路ブロックに対応する順に接続され、前記複数の回路ブロックの前記選択部に供給する選択情報をそれぞれ保持する複数の保持部と、
前記複数の保持部のうち、前記変更回路ブロックに対応する保持部に、前記記憶部に記憶された選択情報を順次に転送する制御部と
を備え、
前記記憶部は、
前記変更回路ブロックの前記選択部に供給される選択情報をそれぞれ記憶する複数の第１の記憶領域と、
前記複数の保持部のうち、２つの前記変更回路ブロックに対応する２つの保持部の間隔を示す間隔情報をそれぞれ記憶する複数の第２の記憶領域と
を有し、
前記制御部は、前記間隔情報に基づいて、２つの前記第１の記憶領域に記憶された選択情報を前記複数の保持部に順次に転送する間に、前記初期状態に対応する選択情報を前記複数の保持部に転送すること
を特徴とする半導体装置。
【請求項２】
複数の内部回路と、前記複数の内部回路のうち使用する内部回路を選択情報に基づいて選択する選択部とをそれぞれ含む複数の回路ブロックと、
前記複数の回路ブロックのうち、前記複数の内部回路の選択状態を初期状態から変更する回路ブロックである変更回路ブロックの前記選択部に供給される選択情報を記憶する記憶部と、
前記複数の回路ブロックにそれぞれ対応して設けられ、選択状態を前記初期状態から変更する確率が高い回路ブロックに対応する順に接続され、前記複数の回路ブロックの前記選択部に供給する選択情報をそれぞれ保持する複数の保持部と、
前記複数の保持部のうち、前記変更回路ブロックに対応する保持部に、前記記憶部に記憶された選択情報を順次に転送する制御部と
を備え、
前記複数の保持部は、前記複数の回路ブロックのうち、第１の回路ブロック群と第２の回路ブロック群とに対応してそれぞれ直列に接続され、
前記複数の保持部のうち、前記第１の回路ブロック群の各回路ブロックに対応する保持部は、選択状態を前記初期状態から変更する確率が高い回路ブロックに対応する順に前記制御部に接続され、
前記複数の保持部のうち、前記第２の回路ブロック群の各回路ブロックに対応する保持部は、選択状態を前記初期状態から変更する確率が高い回路ブロックに対応する順に前記制御部に接続され、
前記第１の回路ブロック群の各回路ブロックにおける選択状態を前記初期状態から変更する確率は、前記第２の回路ブロック群の各回路ブロックにおける選択状態を前記初期状態から変更する確率より高いこと
を特徴とする半導体装置。
【請求項３】
複数の内部回路と、前記複数の内部回路のうち使用する内部回路を選択情報に基づいて選択する選択部とをそれぞれ含む複数の回路ブロックと、
前記複数の回路ブロックのうち、前記複数の内部回路の選択状態を初期状態から変更する回路ブロックである変更回路ブロックの前記選択部に供給される選択情報を記憶する記憶部と、
前記複数の回路ブロックにそれぞれ対応して設けられ、選択状態を前記初期状態から変更する確率が高い回路ブロックに対応する順に接続され、前記複数の回路ブロックの前記選択部に供給する選択情報をそれぞれ保持する複数の保持部と、
前記複数の保持部のうち、前記変更回路ブロックに対応する保持部に、前記記憶部に記憶された選択情報を順次に転送する制御部と
を備え、
前記記憶部に記憶される選択情報は、前記変更回路ブロックの前記選択部に個別に供給される第１の選択情報と、前記複数の回路ブロックの前記選択部に共通に供給される第２の選択情報とを含み、
前記制御部は、前記複数の保持部を動作させるクロック信号を生成するとともに、前記変更回路ブロックに対応する保持部への前記第１の選択情報の転送後に、前記第２の選択情報に基づいて前記クロック信号をハイレベルまたはロウレベルのいずれかに固定するクロック生成部を有し、
前記クロック信号を伝達するクロック信号線は、前記複数の回路ブロックに接続され、
前記選択部は、前記変更回路ブロックに対応する保持部への前記第１の選択情報の転送後に固定された前記クロック信号のレベルを前記第２の選択情報として受けること
を特徴とする半導体装置。
【請求項４】
前記複数の保持部の各々は、直列に接続された複数のマスタースレーブフリップフロップ回路を有すること
を特徴とする請求項３記載の半導体装置。
【請求項５】
前記制御部は、前記変更回路ブロックに対応する保持部に選択情報を転送する前にリセット信号を生成するリセット生成部を有し、
前記複数の保持部は、前記リセット信号に基づいて、前記初期状態に対応する選択情報を保持する状態にリセットされること
を特徴とする請求項１ないし請求項４のいずれか１項記載の半導体装置。
【請求項６】
前記複数の回路ブロックおよび前記複数の保持部を含む回路領域に供給する電源電圧を制御し、前記回路領域への前記電源電圧の供給に基づいて、起動信号を生成する電源制御部を備え、
前記制御部は、前記起動信号に基づいて前記リセット信号を生成した後、前記記憶部に記憶された選択情報の転送を開始すること
を特徴とする請求項５記載の半導体装置。
【請求項７】
前記複数の回路ブロックの各々に含まれる前記複数の内部回路は、複数のメモリセルを含むメモリセル部と、不良を有するメモリセル部を救済する冗長メモリセルを含む冗長メモリセル部とのいずれかを含み、
前記複数の回路ブロックの各々に含まれる前記選択部は、選択情報に基づいて、不良を有する前記メモリセル部の代わりに前記冗長メモリセル部を選択し、
前記複数の保持部は、面積が大きい回路ブロックに対応する順に前記制御部に接続されること
を特徴とする請求項１記載の半導体装置。
【請求項８】
前記複数の回路ブロックの各々に含まれる前記複数の内部回路は、伝搬遅延時間が互いに異なる複数の遅延回路をそれぞれ含み、
前記複数の回路ブロックの各々に含まれる前記選択部は、選択情報に基づいて、前記複数の遅延回路が生成する信号のいずれかを選択し、
前記複数の保持部は、タイミングマージンが小さい回路ブロックに対応する順に前記制御部に接続されること
を特徴とする請求項１記載の半導体装置。
【請求項９】
前記複数の回路ブロックの各々に含まれる前記複数の内部回路は、互いに異なる電圧を生成する複数の電圧生成回路をそれぞれ含み、
前記複数の回路ブロックの各々に含まれる前記選択部は、選択情報に基づいて前記複数の電圧生成回路が生成する電圧のいずれかを選択し、
前記複数の保持部は、電圧マージンが小さい回路ブロックに対応する順に前記制御部に接続されること
を特徴とする請求項１記載の半導体装置。
【請求項１０】
複数の内部回路と、前記複数の内部回路のうち使用する内部回路を選択情報に基づいて選択する選択部とをそれぞれ含む複数の回路ブロックと、前記複数の回路ブロックにそれぞれ対応して設けられ、前記複数の内部回路の選択状態を初期状態から変更する確率が高い回路ブロックに対応する順に接続され、前記複数の回路ブロックの前記選択部に供給する選択情報をそれぞれ保持する複数の保持部と、前記複数の回路ブロックのうち、前記複数の内部回路の選択状態を初期状態から変更する回路ブロックである変更回路ブロックの前記選択部に供給される選択情報をそれぞれ記憶する複数の第１の記憶領域と、前記複数の保持部のうち、２つの前記変更回路ブロックに対応する２つの保持部の間隔を示す間隔情報をそれぞれ記憶する複数の第２の記憶領域とを備える記憶部とを有する半導体装置の制御方法であって、
前記複数の回路ブロックのうち、前記複数の内部回路の選択状態を前記初期状態から変更する回路ブロックである変更回路ブロックの前記選択部に供給される選択情報を記憶部から読み出し、
読み出した選択情報を、前記複数の保持部のうち、前記変更回路ブロックに対応する保持部に順次に転送し、
前記間隔情報に基づいて、２つの前記第１の記憶領域に記憶された選択情報を前記複数の保持部に順次に転送する間に、前記初期状態に対応する選択情報を前記複数の保持部に転送すること
を特徴とする半導体装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置および半導体装置の制御方法に関する。
【背景技術】
【０００２】
半導体記憶装置において、良品率である歩留りは、不良のメモリセルを冗長のメモリセルに切り替えることで向上する。例えば、複数のメモリブロックを含む半導体記憶装置では、不良を救済する不良情報が格納されるシフトレジスタが各メモリブロックに対応して設けられ、シフトレジスタは、セレクタを介して直列に接続される。不良のないメモリブロックに対応するシフトレジスタは、セレクタにより不良のメモリセルを示す不良情報を転送する転送経路から切り離され、不良情報は、不良を有するメモリブロックに対応するシフトレジスタのみに転送される。そして、各メモリブロックは、シフトレジスタに保持された情報に基づいて不良のメモリセルを冗長のメモリセルに切り替える。これにより、不良のないメモリブロックに対応するシフトレジスタを転送経路から切り離さない場合に比べて、不良のメモリセルは、少ない情報で冗長のメモリセルに切り替えられる（例えば、特許文献１参照）。
【０００３】
複数のメモリマクロを含む半導体装置では、不良の位置を示す不良アドレス情報を、共通のヒューズバスを介してヒューズボックスからメモリマクロに転送する。これにより、不良アドレス情報をメモリマクロに個別に転送する場合に比べて、不良アドレス情報をメモリマクロに転送するための回路の規模が削減される（例えば、特許文献２参照）。
【０００４】
また、半導体記憶装置は、不良のメモリセルの位置を特定するデコード回路を用いて、ヒューズ回路から受信する不良アドレス情報をデコードすることで、不良のメモリセルを冗長のメモリセルに置き換える。この場合、デコード回路に割り当てるアドレスを、切断されるヒューズ素子の数が少なくなるように設定することで、デコード回路にアドレスを順次に割り当てる場合に比べて、ヒューズ素子の切断時間は短縮される（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−３０２３８号公報
【特許文献２】特開２００６−１０７５９０号公報
【特許文献３】特開２００５−２２２６５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
不良情報が転送されるシフトレジスタが各メモリブロックに対応して設けられる場合、不良情報が転送されるシフトレジスタの位置は、不良の状況に応じて変化する。例えば、末端のシフトレジスタに対応するメモリブロックに不良が存在する場合、不良情報は、他の全てのシフトレジスタを介して末端のシフトレジスタまで転送される。また、不良のないメモリブロックに対応するシフトレジスタをセレクタにより転送経路から切り離す場合、セレクタと、セレクタを制御する情報をセレクタに供給する信号配線とが半導体記憶装置に設けられるため、半導体記憶装置の回路規模は増大する。
【０００７】
本件開示の半導体装置および半導体装置の制御方法は、半導体装置の回路規模を増大させることなく、保持部に選択情報を設定する時間を短縮することを目的とする。
【課題を解決するための手段】
【０００８】
一つの観点によれば、半導体装置は、複数の内部回路と、複数の内部回路のうち使用する内部回路を選択情報に基づいて選択する選択部とをそれぞれ含む複数の回路ブロックと、複数の回路ブロックのうち、複数の内部回路の選択状態を初期状態から変更する回路ブロックである変更回路ブロックの選択部に供給される選択情報を記憶する記憶部と、複数の回路ブロックにそれぞれ対応して設けられ、選択状態を初期状態から変更する確率が高い回路ブロックに対応する順に接続され、複数の回路ブロックの選択部に供給する選択情報をそれぞれ保持する複数の保持部と、複数の保持部のうち、変更回路ブロックに対応する保持部に、記憶部に記憶された選択情報を順次に転送する制御部とを備え、記憶部は、変更回路ブロックの選択部に供給される選択情報をそれぞれ記憶する複数の第１の記憶領域と、複数の保持部のうち、２つの変更回路ブロックに対応する２つの保持部の間隔を示す間隔情報をそれぞれ記憶する複数の第２の記憶領域とを有し、制御部は、間隔情報に基づいて、２つの第１の記憶領域に記憶された選択情報を複数の保持部に順次に転送する間に、初期状態に対応する選択情報を複数の保持部に転送する。
【０００９】
別の観点によれば、複数の内部回路と、複数の内部回路のうち使用する内部回路を選択情報に基づいて選択する選択部とをそれぞれ含む複数の回路ブロックと、複数の回路ブロックにそれぞれ対応して設けられ、複数の内部回路の選択状態を初期状態から変更する確率が高い回路ブロックに対応する順に接続され、複数の回路ブロックの選択部に供給する選択情報をそれぞれ保持する複数の保持部と、複数の回路ブロックのうち、複数の内部回路の選択状態を初期状態から変更する回路ブロックである変更回路ブロックの選択部に供給される選択情報をそれぞれ記憶する複数の第１の記憶領域と、複数の保持部のうち、２つの変更回路ブロックに対応する２つの保持部の間隔を示す間隔情報をそれぞれ記憶する複数の第２の記憶領域とを備える記憶部とを有する半導体装置の制御方法は、複数の回路ブロックのうち、複数の内部回路の選択状態を初期状態から変更する回路ブロックである変更回路ブロックの選択部に供給される選択情報を記憶部から読み出し、読み出した選択情報を、複数の保持部のうち、変更回路ブロックに対応する保持部に順次に転送し、間隔情報に基づいて、２つの第１の記憶領域に記憶された選択情報を複数の保持部に順次に転送する間に、初期状態に対応する選択情報を複数の保持部に転送する。
【発明の効果】
【００１０】
１つの側面では、本件開示の半導体装置および半導体装置の制御方法は、半導体装置の回路規模を増大させることなく、保持部に選択情報を設定する時間を短縮することできる。
【図面の簡単な説明】
【００１１】
【図１】半導体装置および半導体装置の制御方法の一実施形態を示す図である。
【図２】半導体装置および半導体装置の制御方法の別の実施形態を示す図である。
【図３】図２に示すシフトレジスタの一例を示す図である。
【図４】図２に示すメモリの一例を示す図である。
【図５】図２に示すメモリの不良状況とプログラム部にプログラムされる情報との一例を示す図である。
【図６】図２に示すスキャンチェーンに不良情報を設定する動作フローの一例を示す図である。
【図７】図２に示すスキャンチェーンに不良情報を設定する動作フローの一例（図６の続き）を示す図である。
【図８】図２に示すスキャンチェーンに不良情報を設定する動作の一例を示す図である。
【図９】半導体装置および半導体装置の制御方法の別の実施形態を示す図である。
【図１０】図９に示すメモリの不良状況とプログラム部にプログラムされる情報との一例を示す図である。
【図１１】半導体装置および半導体装置の制御方法の別の実施形態を示す図である。
【図１２】図１１に示す各メモリに搭載され、各メモリ内の制御回路の動作タイミングを調整する調整回路の一例を示す図である。
【図１３】図１１に示すメモリ内の制御回路の動作タイミングとプログラム部にプログラムされる情報との一例を示す図である。
【図１４】半導体装置および半導体装置の制御方法の別の実施形態を示す図である。
【図１５】図１４に示すメモリ内の制御回路の動作タイミングとプログラム部にプログラムされる情報との一例を示す図である。
【図１６】図１４に示すクロック制御部の一例を示す図である。
【図１７】図１６に示すクロック制御部の動作の一例を示す図である。
【図１８】図１４に示すシフトレジスタの一例を示す図である。
【図１９】図１８に示すシフトレジスタの動作の一例を示す図である。
【図２０】図１４に示すスキャンチェーンに不良情報を設定する動作フローの一例を示す図である。
【図２１】図１４に示すスキャンチェーンに不良情報を設定する動作フローの一例（図２０の続き）を示す図である。
【図２２】図１４に示すスキャンチェーンに不良情報を設定する動作の一例を示す図である。
【図２３】半導体装置内の各回路ブロックに搭載され、回路ブロックで使用する電圧を調整する調整回路の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を用いて実施形態を説明する。
【００１３】
図１は、半導体装置および半導体装置の制御方法の一実施形態を示す。この実施形態の半導体装置ＳＥＭ１は、複数の回路ブロックＣＢＬＫ（ＣＢＬＫ１、ＣＢＬＫ２、ＣＢＬＫ３、ＣＢＬＫ４）、複数の保持部ＨＬＤ（ＨＬＤ１、ＨＬＤ２、ＨＬＤ３、ＨＬＤ４）、制御部ＣＮＴＬおよび記憶部ＭＥＭを有する。
【００１４】
各回路ブロックＣＢＬＫは、複数の内部回路ＩＣ（ＩＣ１、ＩＣ２）と、回路ブロックＣＢＬＫで使用する内部回路ＩＣを選択情報に基づいて選択する選択部ＳＥＬ（ＳＥＬ１、ＳＥＬ２、ＳＥＬ３、ＳＥＬ４）とを有する。保持部ＨＬＤは、選択情報ＳＩＮＴまたは選択情報ＳＩ（ＳＩ１、ＳＩ２）を保持する。選択情報ＳＩＮＩＴは、保持部ＨＬＤ１−ＨＬＤ４に保持される初期の選択情報であり、選択情報ＳＩ１、ＳＩ２は、選択情報ＳＩＮＩＴを保持する保持部ＨＬＤ１、ＨＬＤ２が新たに保持する選択情報である。
【００１５】
例えば、選択部ＳＥＬ１は、保持部ＨＬＤ１から選択情報ＳＩＮＩＴを受けた場合、内部回路ＩＣ１を選択し、保持部ＨＬＤ１から選択情報ＳＩ１を受けた場合、内部回路ＩＣ２を選択する。同様に、選択部ＳＥＬ２−ＳＥＬ４は、保持部ＨＬＤ２−ＨＬＤ４から選択情報ＳＩＮＩＴをそれぞれ受けた場合、内部回路ＩＣ１を選択し、保持部ＨＬＤ２−ＨＬＤ４から選択情報ＳＩ２−ＳＩ４をそれぞれ受けた場合、内部回路ＩＣ２を選択する。そして、回路ブロックＣＢＬＫは、選択部ＳＥＬにより選択された内部回路ＩＣを使用して動作する。
【００１６】
図１に示す例では、選択部ＳＥＬ１は、選択情報ＳＩ１に基づいて内部回路ＩＣ２を選択し、選択部ＳＥＬ２は、選択情報ＳＩ２に基づいて内部回路ＩＣ２を選択し、選択部ＳＥＬ３、ＳＥＬ４は、選択情報ＳＩＮＩＴに基づいて内部回路ＩＣ１を選択する。選択部ＳＥＬ１−ＳＥＬ４により選択される内部回路ＩＣは、太枠で示される。選択情報ＳＩＮＩＴにより内部回路ＩＣ１が選択される状態は、初期状態であり、選択情報ＳＩ１、ＳＩ２により内部回路ＩＣ２が選択される状態は、初期状態から変更される変更状態である。
【００１７】
各保持部ＨＬＤは、回路ブロックＣＢＬＫにそれぞれ対応して設けられ、内部回路ＩＣの選択状態を初期状態から変更する確率が高い回路ブロックに対応する順に制御部ＣＮＴＬに接続される。すなわち、内部回路ＩＣの選択状態を初期状態から変更する確率は、回路ブロックＣＢＬＫ１、ＢＣＬＫ２、ＣＢＬＫ３、ＣＢＬＫ４の順で高い。各保持部ＨＬＤは、回路ブロックＣＢＬＫの選択部ＳＥＬに設定する選択情報（ＳＩＮＩＴまたはＳＩ１、ＳＩ２）を保持する。
【００１８】
記憶部ＭＥＭは、内部回路ＩＣ１が選択される初期状態から内部回路ＩＣ２が選択される選択状態に変更する回路ブロックＣＢＬＫに設定される選択情報ＳＩ（ＳＩ１、ＳＩ２）を記憶する。図１に示す例では、回路ブロックＣＢＬＫ３、ＣＢＬＫ４の選択状態は、初期状態から変更されないため、回路ブロックＣＢＬＫ３、ＣＢＬＫ４の選択状態を変更する選択情報ＳＩ３、ＳＩ４は、記憶部ＭＥＭに記憶されない。例えば、選択状態を初期状態から変更する回路ブロックＣＢＬＫは、半導体装置ＳＥＭ１を試験する試験装置により決定される。試験装置は、試験結果に基づいて記憶部ＭＥＭに選択情報を格納する。
【００１９】
制御部ＣＮＴＬは、複数の回路ブロックＣＢＬＫのうち、内部回路ＩＣの選択状態を初期状態から変更する回路ブロックＣＢＬＫの選択部ＳＥＬに設定される選択情報ＳＩ２、ＳＩ１を記憶部ＭＥＭから読み出す。制御部ＣＮＴＬは、読み出した選択情報ＳＩ２、ＳＩ１を、内部回路ＩＣの選択状態を初期状態から変更する回路ブロックＣＢＬＫ（この例では、ＣＢＬＫ１、ＣＢＬＫ２）に対応する保持部ＨＬＤ１、ＨＬＤ２に順次に転送する。
【００２０】
選択状態を初期状態から変更する確率は、回路ブロックＣＢＬＫ１、ＣＢＬＫ２、ＣＢＬＫ３、ＣＢＬＫ４の順で高い。このため、回路ブロックＣＢＬＫに対応する保持部ＨＬＤを、選択状態を初期状態から変更する確率を考慮せずに接続する場合に比べて、選択状態を初期状態から変更するために選択情報ＳＩを転送する保持部ＨＬＤの数を少なくすることができる。この結果、半導体装置ＳＥＭ１を動作させる前に保持部ＨＬＤに設定情報ＳＩ１、ＳＩ２を設定するまでの時間を、選択状態を初期状態から変更する確率を考慮しない場合に比べて短縮することができる。
【００２１】
例えば、選択状態を初期状態から変更する確率は、回路ブロックＣＢＬＫの面積が大きいほど高い。この場合、回路ブロックＣＢＬＫの面積は、ＣＢＬＫ１、ＣＢＬＫ２、ＣＢＬＫ３、ＣＢＬＫ４の順に大きく、保持部ＨＬＤ１−ＨＬＤ４は、面積が大きい回路ブロックＣＢＬＫ１−ＣＢＬＫ４に対応する順に制御部ＣＮＴＬに接続される。あるいは、選択状態を初期状態から変更する確率は、回路ブロックＣＢＬＫのタイミングマージンが小さいほど高く、または、回路ブロックＣＢＬＫの電圧マージンが小さいほど高い。内部回路ＩＣの選択状態を初期状態から変更する確率が、回路ブロックＣＢＬＫの面積に依存する例は、図２から図１０で説明する。内部回路ＩＣの選択状態を初期状態から変更する確率が、回路ブロックＣＢＬＫのタイミングマージンに依存する例は、図１１から図２２で説明する。内部回路ＩＣの選択状態を初期状態から変更する確率が、回路ブロックＣＢＬＫの電圧マージンに依存する例は、図２３で説明する。
【００２２】
以上、図１に示す実施形態では、内部回路ＩＣの選択状態を初期状態から変更する確率が高い順に、保持部ＨＬＤを制御部ＣＮＴＬに接続する。これにより、制御部ＣＮＴＬに近い側に位置する所定数の保持部ＨＬＤに設定情報を転送することで、全ての回路ブロックＣＢＬＫの選択状態を設定することができる。この結果、直列に接続された複数の保持部ＨＬＤに選択情報ＳＩを順次に転送することで回路ブロックＣＢＬＫの選択状態を設定する場合にも、保持部ＨＬＤに設定情報ＳＩを設定するまでの時間を従来に比べて短縮することができる。したがって、半導体装置ＳＥＭ１の動作が可能になるまでの時間（例えば、起動時間）を従来に比べて短縮することができる。
【００２３】
また、全ての回路ブロックＣＢＬＫの選択部ＳＥＬに対応する保持部ＨＬＤに設定する設定情報を保持する領域を記憶部ＭＥＭに設けなくてよいため、記憶部ＭＥＭの回路規模を従来に比べて小さくすることができる。さらに、制御部ＣＮＴＬは、直列に接続された保持部ＨＬＤを介して各回路ブロックＣＢＬＫの選択部ＳＥＬに選択情報ＳＩを転送する。このため、複数のバス線を使用して制御部ＣＮＴＬから各回路ブロックＣＢＬＫの選択部ＳＥＬに選択情報ＳＩを並列に転送する場合に比べて、信号配線の数を削減することができる。したがって、選択状態を変更する複数の回路ブロックＣＢＬＫを含む半導体装置ＳＥＭ１の回路規模を従来に比べて削減することができる。この結果、半導体装置ＳＥＭ１の回路規模を増大させることなく、保持部ＨＬＤに不良情報を設定する時間を短縮することができる。
【００２４】
図２は、半導体装置および半導体装置の制御方法の別の実施形態を示す。この実施形態の半導体装置ＳＥＭ２は、半導体チップ上に集積された動作制御部１０、転送制御部２０、プログラム部３０、スキャンチェーンＳＣＡＮＣおよび複数のメモリＭ（図２に示す例では、Ｍ１、Ｍ２、Ｍ３、...、Ｍ１０の１０個）を有する。
【００２５】
メモリＭ１−Ｍ１０は、ＳＲＡＭ（Static Random Access Memory）または強誘電体メモリ等の半導体メモリであり、製造工程で発生した不良を救済する冗長回路を有する。メモリＭ１−Ｍ１０は、回路ブロックの一例である。メモリＭ１は、メモリＭ２に比べて面積が大きく、メモリＭ２は、メモリＭ３に比べて面積が大きく、メモリＭ１０は、他のメモリＭに比べて面積が小さい。すなわち、スキャンチェーンＳＣＡＮＣの上流側である転送制御部２０に近い側に接続されるメモリＭの面積は、スキャンチェーンＳＣＡＮＣの下流側である転送制御部２０から遠い側に接続されるメモリＭの面積に比べて大きい。なお、メモリＭ１−Ｍ１０のうち、互いに隣接して配置される所定数のメモリＭの面積は、互いに等しくてもよい。
【００２６】
例えば、半導体装置ＳＥＭ２（半導体チップ）は、共通の半導体プロセスを用いて製造されるため、メモリＭ１−Ｍ１０の欠陥密度は互いに同じである。このため、メモリＭに含まれる欠陥数は、メモリＭの面積が大きいほど多くなり、メモリＭに不良が発生する確率（可能性）は、面積が大きいほど大きくなる。この実施形態では、メモリＭの面積は、スキャンチェーンＳＣＡＮＣの上流側に位置するシフトレジスタＳＲに接続されたメモリＭほど大きい。このため、メモリＭに不良が発生する確率は、転送制御部２０に近いシフトレジスタＳＲに接続されたメモリＭほど高い。換言すれば、不良を救済する冗長回路（図４に示す冗長メモリセル部ＲＭＣ）を使用する確率は、転送制御部２０に近いシフトレジスタＳＲに接続されたメモリＭほど高い。
【００２７】
スキャンチェーンＳＣＡＮＣは、初段が転送制御部２０に接続され、互いに直列に接続された複数のシフトレジスタＳＲ（図２に示す例では、ＳＲ１、ＳＲ２、ＳＲ３、...、ＳＲ１０の１０個）を有する。シフトレジスタＳＲ１−ＳＲ１０は、メモリＭ１−Ｍ１０のそれぞれに対応して設けられ、対応するメモリＭ１−Ｍ１０にそれぞれ接続される。すなわち、シフトレジスタＳＲ１−ＳＲ１０は、不良が発生する確率が高いメモリＭ１−Ｍ１０に対応する順に転送制御部２０に接続される。シフトレジスタＳＲ１−ＳＲ１０は、メモリＭ１−Ｍ１０の冗長切り替えスイッチＲＳＷ（図４）に供給する不良情報をそれぞれ保持する保持部の一例である。
【００２８】
各シフトレジスタＳＲ１−ＳＲ１０は、直列に接続された所定数（例えば、７個）のフリップフロップ回路を含む。シフトレジスタＳＲ１−ＳＲ１０の各フリップフロップ回路は、リセット信号ＲＳＴに同期して初期値（デフォルト値）に設定される。シフトレジスタＳＲ１−ＳＲ１０は、スキャンクロック信号ＳＣＬＫに同期してデータＤＴを保持し、保持したデータＤＴを上流側から下流側に順次に転送する。データＤＴは、メモリＭの不良を救済するための不良コードＣＤと、メモリＭに不良が存在することを示す冗長イネーブルビットＲＥＮとを含む。不良コードＣＤおよび冗長イネーブルビットＲＥＮは、選択情報の一例である。スキャンチェーンＳＣＡＮＣの動作の例は、図８に示される。
【００２９】
転送制御部２０は、カウンタＦＬＩＮＥ、ＩＲＡＭ、ＩＣＢ、リセット生成部ＲＳＴＧＥＮ１およびクロック生成部ＣＬＫＧＥＮ１を有する。リセット生成部ＲＳＴＧＥＮ１は、起動信号ＰＯＮに基づいて、リセット信号ＲＳＴを生成する。クロック生成部ＣＬＫＧＥＮ１は、リセット信号ＲＳＴによりシフトレジスタＳＲ１−ＳＲ１０に保持される選択情報が、初期値にリセットされた後、スキャンクロック信号ＳＣＬＫを生成する。ここで、各シフトレジスタＳＲ１−ＳＲ１０に設定される初期値は、各シフトレジスタＳＲに対応するメモリＭに不良が存在せず、メモリＭの不良の救済処理を実行しないことを示す値である。そして、転送制御部２０は、スキャンクロック信号ＳＣＬＫに同期して、プログラム部３０にプログラムされた情報に基づいてスキャンチェーンＳＣＡＮＣにデータＤＴ（選択情報）を転送する。転送制御部２０は、スキャンチェーンＳＣＡＮＣにデータＤＴを転送した後、スキャンクロック信号ＳＣＬＫの生成を停止し、動作イネーブル信号ＯＰＥを動作制御部１０に出力する。
【００３０】
カウンタＦＬＩＮＥ、ＩＲＡＭ、ＩＣＢは、プログラム部３０にプログラムされた情報に基づいてスキャンチェーンＳＣＡＮＣにデータＤＴを転送する場合に使用される。カウンタＦＬＩＮＥ、ＩＲＡＭ、ＩＣＢを使用する例は、図６から図８で説明する。転送制御部２０は、不良を救済するメモリＭに対応するシフトレジスタＳＲに、プログラム部３０に記憶された選択情報を順次に転送する制御部の一例である。転送制御部２０の動作の例は、図６から図８に示される。
【００３１】
プログラム部３０は、プログラム信号ＰＧＭにより情報がプログラムされる複数のプログラム素子を有する。プログラム素子は、ヒューズ回路、フラッシュメモリまたは強誘電体メモリ等の不揮発性の記憶素子である。プログラム部３０の例は、図５に示される。
【００３２】
動作制御部１０は、電源制御部１２を有する。動作制御部１０は、半導体装置ＳＥＭ２の全体の動作を制御する。電源制御部１２は、半導体装置ＳＥＭ２に搭載される機能ブロックに供給する電源電圧ＩＶＤＤを生成するとともに、電源電圧ＩＶＤＤの機能ブロックへの供給に基づいて、機能ブロックの動作を有効にする起動信号ＰＯＮを出力する。メモリＭ１−Ｍ１０は、機能ブロックの一種である。電源電圧ＩＶＤＤは、少なくともメモリＭ１−Ｍ１０およびシフトレジスタＳＲ１−ＳＲ１０を含む回路領域に供給される。
【００３３】
なお、電源制御部１２は、電源電圧ＩＶＤＤを生成する代わりに、電源電圧ＩＶＤＤを生成する電源生成回路を制御する電圧制御信号を生成してもよい。例えば、電源電圧ＩＶＤＤは、半導体装置ＳＥＭ２に供給される外部電源電圧を用いて半導体装置ＳＥＭ２内で生成される内部電源電圧である。
【００３４】
例えば、半導体装置ＳＥＭ２は、図２に示すメモリＭとともに、ＣＰＵ（Central Processing Unit）、周辺回路および入出力インタフェース回路等の機能ブロックを有する。周辺回路は、ＤＭＡＣ（Direct Memory Access Controller）、タイマ、画像処理回路等である。すなわち、半導体装置ＳＥＭ２は、ＳｏＣ（System on a Chip）である。半導体装置ＳＥＭ２が複数の機能ブロックを含む場合、電源制御部１２は、所定数の機能ブロック毎に電源電圧を制御してもよく、所定数の機能ブロック毎に起動信号ＰＯＮを出力してもよい。動作制御部１０は、起動信号ＰＯＮの出力後、転送制御部２０からの動作イネーブル信号ＯＰＥに基づいて、メモリＭ１−Ｍ１０が動作可能になったことを認識し、メモリＭ１−Ｍ１０がアクセス可能になったことをＣＰＵ等に通知する。
【００３５】
例えば、起動信号ＰＯＮは、メモリＭ１−Ｍ１０とシフトレジスタＳＲ１−ＳＲ１０とを含む機能ブロックの動作を停止するスリープモード中に非活性化レベルに設定され、スリープモードから通常動作モードへの移行に基づいて活性化レベルに設定される。この場合、電源制御部１２は、スリープモード中、メモリＭ１−Ｍ１０とシフトレジスタＳＲ１−ＳＲ１０とを含む回路領域への電源電圧ＩＶＤＤの供給を停止する。そして、電源制御部１２は、スリープモードから通常動作モードへの復帰に基づいて、電源電圧ＩＶＤＤが所定値を超えた後に、起動信号ＰＯＮを活性化レベルに設定する。
【００３６】
例えば、メモリＭ１、Ｍ２が不良を有し、メモリＭ３−Ｍ１０が不良を含まない場合、メモリＭ３−Ｍ１０に対応するシフトレジスタＳＲ３−ＳＲ１０の冗長イネーブルビットＲＥＮは、冗長回路を使用しない論理に初期化（リセット）される。これにより、シフトレジスタＳＲ３−ＳＲ１０へのデータＤＴの設定を省略することができる。この結果、起動信号ＰＯＮが出力された後、メモリＭ１−Ｍ１０が動作可能になるまでの時間を、全てのシフトレジスタＳＲ１−ＳＲ１０にデータを設定する場合に比べて短縮することができる。
【００３７】
図３は、図２に示すシフトレジスタＳＲ１の一例を示す。シフトレジスタＳＲ２−ＳＲ１０は、図３に示すシフトレジスタＳＲ１と同様の構成を有する。
【００３８】
シフトレジスタＳＲ１は、直列に接続された複数のフリップフロップ回路ＦＦを有する。各フリップフロップＦＦは、リセット端子ＲＥＳＥＴでリセット信号ＲＳＴを受け、クロック端子ＣＫでスキャンクロック信号ＳＣＬＫを受ける。初段のフリップフロップ回路ＦＦは、データ入力端子Ｄで転送制御部２０から出力されるデータＤＴを受け、２段目以降のフリップフロップ回路ＦＦは、データ入力端子Ｄで前段のフリップフロップ回路ＦＦのデータ出力端子Ｑから出力されるデータを受ける。最終段のフリップフロップ回路ＦＦのデータ出力端子Ｑから出力されるデータは、シフトレジスタＳＲ２に出力される。
【００３９】
シフトレジスタＳＲ１に所定の不良情報が設定された後、最終段のフリップフロップ回路ＦＦを除くフリップフロップ回路ＦＦは、不良コードＣＤをメモリＭ１に出力する。最終段のフリップフロップ回路ＦＦは、冗長イネーブルビットＲＥＮの値をメモリＭ１に出力する。なお、シフトレジスタＳＲ１−ＳＲ１０は、フリップフロップ回路ＦＦの代わりに、図１８に示すマスタースレーブフリップフロップ回路ＭＳＦＦ１を有してもよい。
【００４０】
図４は、図２に示すメモリＭ１の一例を示す。メモリＭ２−Ｍ１０は、面積が異なることを除き、図４に示すメモリＭ１と同様の構成を有する。
【００４１】
メモリＭ１は、アドレスデコーダＡＤＥＣ、メモリセルアレイＡＲＹおよび冗長切り替えスイッチＲＳＷと、６４個のデータ入出力端子ＩＯ（ＩＯ０−ＩＯ６３）を有する。アドレスデコーダＡＤＥＣは、ＣＰＵ等から出力されるアドレス信号ＡＤをデコードし、アドレスＡＤにより示されるワード線ＷＬ（ＷＬ０、ＷＬ１、ＷＬ２、ＷＬ３、ＷＬ４、...）のいずれかを活性化レベルに設定する。
【００４２】
メモリセルアレイＡＲＹは、各データ入出力端子ＩＯに対応するメモリセル部ＭＣ（ＭＣ０、ＭＣ１、ＭＣ２、ＭＣ３、...、ＭＣ６２、ＭＣ６３）と、メモリセル部ＭＣのいずれかの代わりに使用される冗長メモリセル部ＲＭＣとを有する。メモリセル部ＭＣ０−ＭＣ６３は、各ワード線ＷＬに接続された複数のメモリセルを有し、冗長メモリセル部ＲＭＣは、各ワード線ＷＬに接続され、不良を有するメモリセル部を救済する複数の冗長メモリセルを有する。メモリセル部ＭＣ０−ＭＣ６３および冗長メモリセル部ＲＭＣの各々は、内部回路の一例である。
【００４３】
冗長切り替えスイッチＲＳＷは、シフトレジスタＳＲ１に保持された不良コードＣＤおよび冗長イネーブルビットＲＥＮに基づいて、入出力端子ＩＯ０−ＩＯ６３を接続するメモリセル部ＭＣおよび冗長メモリセル部ＲＭＣを切り替える複数のスイッチを有する。冗長切り替えスイッチＲＳＷは、メモリセル部ＭＣおよび冗長メモリセル部ＲＭＣのうち、使用するメモリセル部ＭＣおよび冗長メモリセル部ＲＭＣを、不良コードＣＤおよび冗長イネーブルビットＲＥＮに基づいて選択する選択部の一例である。
【００４４】
シフトレジスタＳＲ１−ＳＲ１０がリセット信号ＲＳＴによりリセットされた状態で、冗長切り替えスイッチＲＳＷは、データ入出力端子ＩＯ０−ＩＯ６３をメモリセル部ＭＣ０−ＭＣ６３にそれぞれ接続する初期状態に設定する。すなわち、初期状態では、各メモリＭは、不良が存在せず、冗長メモリセル部ＲＭＣを使用しない状態に設定される。この後、メモリセルアレイＡＲＹ内の不良を示す不良コードＣＤおよび冗長イネーブルビットＲＥＮがシフトレジスタＳＲを介して冗長切り替えスイッチＲＳＷに供給される。そして、冗長切り替えスイッチＲＳＷにより、メモリセル部ＭＣ０−ＭＣ６３および冗長メモリセル部ＲＭＣとデータ入出力端子ＩＯ０−ＤＯ６３との接続状態が切り替わり、メモリセルアレイＡＲＹの不良が救済される。
【００４５】
図４に示す例では、不良コードＣＤおよび冗長イネーブルビットＲＥＮに基づいて冗長切り替えスイッチＲＳＷが動作し、メモリセル部ＭＣ２におけるワード線ＷＬ４に接続されたメモリセルの不良（Ｘ印で示す）が救済される。すなわち、データ入出力端子ＩＯ２がメモリセル部ＭＣ３に接続され、データ入出力端子ＩＯ６１、ＩＯ６２がメモリセル部ＭＣ６２、ＭＣ６３にそれぞれ接続され、データ入出力端子ＩＯ６３が冗長メモリセル部ＲＭＣに接続される。このように、データ入出力端子ＩＯ０−ＩＯ６３が、不良を含むメモリセル部ＭＣ２を避けてメモリセルアレイＡＲＹに接続されることで、メモリＭ１の不良が救済される。
【００４６】
図５は、図２に示すメモリＭ１−Ｍ１０の不良状況とプログラム部３０にプログラムされる情報との一例を示す。例えば、メモリＭ１−Ｍ１０の不良は、半導体装置ＳＥＭ２を試験するＬＳＩ（Large Scale Integration）テスタ等の試験装置により検出される。試験装置は、メモリＭ１−Ｍ１０の試験結果に基づいて、メモリ番号ＭＮで識別されるメモリＭ１−Ｍ１０毎に、不良データＦＤＴを記憶する。図５では、説明を分かりやすくするために、メモリ番号ＭＮに対応するメモリＭが、メモリ番号ＭＮの右側の括弧内に示される。試験装置は、メモリＭに救済可能な不良が存在する場合、不良を救済するメモリセル部ＭＣを示す番号を不良データＦＤＴとして記憶し、メモリＭに不良が存在しない場合、”良品”を示す情報を不良データＦＤＴとして記憶する。
【００４７】
図５に示す例では、不良は、メモリＭ１のメモリセル部ＭＣ２と、メモリＭ２のメモリセル部ＭＣ１０と、メモリＭ６のメモリセル部ＭＣ２２とに存在し、メモリＭ３−Ｍ５、Ｍ７−Ｍ１０には不良は存在しない。なお、以下では、複数のメモリセル部ＭＣに不良が存在するなど、救済が困難な不良は発生しないものとして説明する。
【００４８】
試験装置は、メモリＭ１−Ｍ１０の不良状況に基づいて、図２に示すプログラム信号ＰＧＭをプログラム部３０に出力し、プログラム部３０に情報をプログラムする。
【００４９】
プログラム部３０は、不良が発生したメモリＭのメモリ番号ＭＮの差分ＦＤＩＦを格納する記憶領域と、不良のメモリセル部ＭＣの番号である不良コードＣＤを格納する記憶領域と、冗長イネーブルビットＲＥＮの論理を格納する記憶領域とを含む複数の行を有する。プログラム部３０は、メモリＭ１−Ｍ１０のうち、不良を救済するメモリＭに供給する不良情報（不良コードＣＤおよび冗長イネーブルビットＲＥＮ）を記憶する記憶部の一例である。メモリＭ１−Ｍ１０のうち、不良が救済されるメモリＭは、図４に示す冗長切り替えスイッチＲＳＷにより、冗長メモリセル部ＲＭＣを選択しない初期状態から冗長メモリセル部ＲＭＣを選択する選択状態に変更される変更回路ブロックの一例である。
【００５０】
プログラム部３０において、不良コードＣＤおよび冗長イネーブルビットＲＥＮの論理をそれぞれ格納する記憶領域は、不良を救済するメモリＭに供給される選択情報である不良コードＣＤおよび冗長イネーブルビットＲＥＮを記憶する第１の記憶領域の一例である。プログラム部３０において、差分ＦＤＩＦをそれぞれ格納する記憶領域は、不良を救済するメモリＭに対応する２つのシフトレジスタＳＲの間隔を示す差分ＦＤＩＦを記憶する第２の記憶領域の一例である。差分ＦＤＩＦは、間隔情報の一例である。プログラム部３０の行は、カウンタＦＬＩＮＥの値により識別されるため、以下では、プログラム部３０の行は、符号ＦＬＩＮＥを用いて示される。
【００５１】
不良コードＣＤは、６４個のメモリセル部ＭＣ０−ＭＣ６３を識別するために、６ビットであり、不良コードＣＤのビット数と冗長イネーブルビットＲＥＮとの総計（各シフトレジスタＳＲ１−ＳＲ１０に格納される情報のビット数）は７ビットである。なお、図７で説明するように、不良コードＣＤと冗長イネーブルビットＲＥＮとを各シフトレジスタＳＲに設定するために、図２に示すカウンタＩＣＢに設定される最大値であるコードビット数ＮＣＢは”６”である。コードビット数ＮＣＢは、各シフトレジスタＳＲ１−ＳＲ１０に不良コードＣＤおよび冗長イネーブルビットＲＥＮ等の情報を格納するためのシフト数を示す。
【００５２】
まず、試験装置は、不良を有するメモリＭを示すメモリ番号ＭＮのうち、最も大きいメモリ番号ＭＮ（＝６）と２番目に大きいメモリ番号ＭＮ（＝２）との差（”４”）を計算し、最初の行ＦＬＩＮＥ０における差分ＦＤＩＦの領域に格納する。試験装置は、行ＦＬＩＮＥ０における不良コードＣＤの領域に、最も大きいメモリ番号ＭＮに対応するメモリＭ６の不良のメモリセル部ＭＣ２２を示す値（２進数で”０１０１１０”）を格納する。試験装置は、行ＦＬＩＮＥ０における冗長イネーブルビットＲＥＮの領域に、不良を救済すること（冗長メモリセル部ＲＭＣを使用すること）を示す”１”を格納する。
【００５３】
次に、試験装置は、不良を有するメモリＭを示すメモリ番号ＭＮのうち、２番目に大きいメモリ番号ＭＮ（＝２）と３番目に大きいメモリ番号ＭＮ（＝１）との差（”１”）を計算し、２番目の行ＦＬＩＮＥ１における差分ＦＤＩＦの領域に格納する。試験装置は、行ＦＬＩＮＥ１における不良コードＣＤの領域に、２番目に大きいメモリ番号ＭＮに対応するメモリＭ２の不良のメモリセル部ＭＣ１０を示す値（２進数で”００１０１０”）を格納する。試験装置は、行ＦＬＩＮＥ１における冗長イネーブルビットＲＥＮの領域に、”１”を格納する。
【００５４】
試験装置は、不良を有するメモリＭを示すメモリ番号ＭＮのうち、最も小さいメモリ番号ＭＮ（＝１）に対する差分として、メモリ番号ＭＮと同じ値を行ＦＬＩＮＥ２における差分ＦＤＩＦの領域に格納する。試験装置は、行ＦＬＩＮＥ２における不良コードＣＤの領域に、最も小さいメモリ番号ＭＮに対応するメモリＭ１の不良のメモリセル部ＭＣ２を示す値（２進数で”００００１０”）を格納する。試験装置は、行ＦＬＩＮＥ２における冗長イネーブルビットＲＥＮの領域に、”１”を格納する。このように、差分ＦＤＩＦの値と不良コードＣＤと冗長イネーブルビットＲＥＮとが、メモリ番号ＭＮが大きい順に行ＦＬＩＮＥに順次に格納される。そして、試験装置によるプログラム部３０のプログラムが完了する。プログラム部３０において、プログラムされない領域は、”０”を示す。
【００５５】
なお、メモリＭ２、Ｍ３、Ｍ６が不良を有し、他のメモリＭ１、Ｍ４、Ｍ５、Ｍ７−Ｍ１０が良品の場合、行ＦＬＩＮＥ０の差分ＦＤＩＦの領域には、メモリＭ６、Ｍ３のメモリ番号ＭＮの差分を示す”３”が格納される。行ＦＬＩＮＥ１の差分ＦＤＩＦの領域には、メモリＭ３、Ｍ２のメモリ番号ＭＮの差分を示す”１”が格納される。行ＦＬＩＮＥ２の差分ＦＤＩＦの領域には、メモリＭ２のメモリ番号ＭＮを示す”２”が格納される。
【００５６】
図５に示す例では、プログラム部３０は、５つの行ＦＬＩＮＥ０−ＦＬＩＮＥ５を有するため、５個を超えるメモリＭに不良が存在する場合、プログラム部３０において不良を示す情報を格納する領域は不足する。この場合、試験装置は、半導体装置ＳＥＭ２を不良品として処理する。プログラム部３０に設けられる行ＦＩＬＮＥを増やすことで、不良を救済するメモリＭの数を増やすことができる。なお、プログラム部３０が有する行ＦＬＩＮＥは、２以上かつメモリＭの数（＝１０）未満であればよい。
【００５７】
図６および図７は、図２に示すスキャンチェーンＳＣＡＮＣに不良情報を設定する動作フローの一例を示す。ここで、不良情報は、図５に示すプログラム部３０に格納された不良コードＣＤおよび冗長イネーブルビットＲＥＮである。図６および図７に示す処理は、半導体装置ＳＥＭ２の制御方法を示し、図２に示す転送制御部２０により実行される。図６および図７に示す処理は、転送制御部２０のハードウェアを用いて実行されるが、転送制御部２０がＣＰＵ等のプロセッサを含む場合、ソフトウェアを用いて実行されてもよい。
【００５８】
まず、ステップＳ１００において、転送制御部２０は、電源制御部１２からの起動信号ＰＯＮの受信を待つ。起動信号ＰＯＮを受信した場合、ステップＳ１０２において、転送制御部２０は、カウンタＦＬＩＮＥ、ＩＲＡＭ、ＩＣＢを”０”に初期化する。次に、ステップＳ１０４において、転送制御部２０は、シフトレジスタＳＲ１−ＳＲ１０にリセット信号ＲＳＴを出力する。シフトレジスタＳＲ１−ＳＲ２は、リセット信号ＲＳＴに基づいてデフォルト値に初期化される。例えば、デフォルト値は、メモリＭ１−Ｍ１０の救済処理が実行されない値であり、例えば、オール”０”である。
【００５９】
次に、ステップＳ１０６において、転送制御部２０は、カウンタＦＬＩＮＥの値が示すプログラム部３０の行ＦＬＩＮＥに格納された差分ＦＤＩＦ、不良コードＣＤおよび冗長イネーブルビットＲＥＮを読み出す。次に、ステップＳ１０８において、転送制御部２０は、読み出した差分ＦＤＩＦが”０”を示す場合、スキャンチェーンＳＣＡＮＣへの不良情報の設定が完了したと判断し、処理を図７に示すステップＳ１２６へ移行する。一方、転送制御部２０は、読み出した差分ＦＤＩＦが”０”以外を示す場合（正値）、スキャンチェーンＳＣＡＮＣに不良情報を設定するために、処理を図７に示すステップＳ１１０に移行する。
【００６０】
図７のステップＳ１１０において、転送制御部２０は、ステップＳ１０６で取得した差分ＦＤＩＦが示す値をカウンタＩＲＡＭに設定する。次に、ステップＳ１１２において、転送制御部２０は、カウンタＩＣＢの値がシフト数ＮＣＢ（＝”６”）になるまでカウンタＩＣＢをインクリメントしながら、スキャンチェーンＳＣＡＮＣに冗長イネーブルビットＲＥＮと不良コードＣＤを転送する。すなわち、転送制御部２０は、スキャンチェーンＳＣＡＮＣに冗長イネーブルビットＲＥＮと不良コードＣＤとを順次に転送する動作と、カウンタＩＣＢを”１”ずつインクリメントする動作とを、カウンタＩＣＢの値がコードビット数ＮＣＢになるまで繰り返す。
【００６１】
次に、転送制御部２０は、ステップＳ１１４において、カウンタＩＲＡＭの値を”１”デクリメントし、ステップＳ１１６において、カウンタＩＣＢを”０”にリセットする。次に、ステップＳ１１８において、転送制御部２０は、カウンタＩＲＡＭの値が”０”の場合、対象の行ＦＬＩＮＥに格納された冗長イネーブルビットＲＥＮと不良コードＣＤとをスキャンチェーンＳＣＡＮＣの所定の位置まで転送したと判断する。そして、転送制御部２０は、処理をステップＳ１２２へ移行する。一方、転送制御部２０は、カウンタＩＲＡＭの値が”０”以外の場合（正値）、対象の行ＦＬＩＮＥに格納された冗長イネーブルビットＲＥＮと不良コードＣＤとをスキャンチェーンＳＣＡＮＣの所定の位置まで転送していないと判断する。そして、転送制御部２０は、処理をステップＳ１２０へ移行する。
【００６２】
ステップＳ１２０において、転送制御部２０は、カウンタＩＣＢの値がシフト数ＮＣＢ（＝”６”）になるまでカウンタＩＣＢをインクリメントしながら、スキャンチェーンＳＣＡＮＣに”０”を転送する。すなわち、転送制御部２０は、スキャンチェーンＳＣＡＮＣに”０”を順次に転送する動作と、カウンタＩＣＢを”１”ずつインクリメントする動作とを、カウンタＩＣＢの値がコードビット数ＮＣＢになるまで繰り返す。そして、カウンタＩＲＡＭの値が”０”になるまで、ステップＳ１１４、Ｓ１１６、Ｓ１２０の処理が繰り返される。これにより、不良が存在する２つのメモリ（図５のＭ２、Ｍ６等）の間の不良が存在しないメモリ（図５のＭ３−Ｍ５等）に対応するシフトレジスタＳＲにデフォルト値が設定される。
【００６３】
ステップＳ１２２において、転送制御部２０は、カウンタＦＬＩＮＥを”１”インクリメントする。次に、ステップＳ１２４において、転送制御部２０は、カウンタＦＬＩＮＥの値がプログラム部３０の最大行数（＝５行）であるか否かを判定する。カウンタＦＬＩＮＥの値がプログラム部３０の最大行数である場合、プログラム部３０に格納された全ての不良コードＣＤおよび冗長イネーブルビットＲＥＮが、所定のシフトレジスタＳＲに設定されたと判断され、処理はステップＳ１２６に移行される。ステップＳ１２４からステップＳ１２６への移行は、図５に示すプログラム部３０の全ての行ＦＬＩＮＥ０−ＦＬＩＮＥ４に不良コードＣＤおよび冗長イネーブルビットＲＥＮが格納されている場合に実行される。一方、カウンタＦＬＩＮＥの値がプログラム部３０の最大行数に達していない場合、プログラム部３０に格納された全ての不良コードＣＤおよび冗長イネーブルビットＲＥＮが転送制御部２０により読み出されていない可能性がある。このため、処理は、図６に示すステップＳ１０６に移行される。そして、次の行ＦＬＩＮＥに対する不良コードＣＤおよび冗長イネーブルビットＲＥＮの読み出しと、スキャンチェーンＳＣＡＮＣへの転送とが実行される。
【００６４】
ステップＳ１２６において、転送制御部２０は、スキャンチェーンＳＣＡＮＣへの不良情報の設定が完了したため、図２に示す動作制御部２０に動作イネーブル信号ＯＰＥを出力する。動作制御部２０は、動作イネーブル信号ＯＰＥの受信に基づいてメモリＭ１−Ｍ１０が動作可能になったことを、半導体装置ＳＥＭ２内のＣＰＵおよび周辺回路等に通知する。そして、半導体装置ＳＥＭ２は、所定の機能を実現するシステムとして動作を開始する。
【００６５】
図６および図７に示す処理により、不良が存在するメモリＭに対応するシフトレジスタＳＲに冗長イネーブルビットＲＥＮおよび不良コードＣＤが設定され、不良が存在しないメモリＭに対応するシフトレジスタＳＲにデフォルト値が設定される。この際、冗長メモリセル部ＲＭＣを用いて不良を救済する確率は、下流側に位置するシフトレジスタＳＲに接続されたメモリＭほど、上流側に位置するシフトレジスタＳＲに接続されたメモリＭより低い。そして、不良情報が設定されたシフトレジスタＳＲのうち、最も下流側に位置するシフトレジスタＳＲよりさらに下流側のシフトレジスタＳＲは、リセット信号ＲＳＴによりデフォルト値に設定されるため、スキャン動作による情報の設定を省略できる。したがって、スキャンチェーンＳＣＡＮＣへの情報の設定時間を従来に比べて短縮することができ、半導体装置ＳＥＭ２の起動時間を従来に比べて短縮することができる。
【００６６】
図８は、図２に示すスキャンチェーンに不良情報を設定する動作の一例を示す。図８は、図５に示すプログラム部３０の不良情報をスキャンチェーンＳＣＡＮＣに転送する場合の転送制御部２０およびスキャンチェーンＳＣＡＮＣの動作を示す。図８において、下線を付けた数字は、値が変化したことを示す。シフトレジスタＳＲ１−ＳＲ１０に設定された不良情報は、太枠で示す。
【００６７】
まず、転送制御部２０は、リセット信号ＲＳＴにより、全てのシフトレジスタＳＲ１−ＳＲ１０にデフォルト値（＝”０”）を設定する（図８（ａ））。これにより、スキャンチェーンＳＣＡＮＣのスキャン動作による下流側のシフトレジスタＳＲ７−ＳＲ１０への情報の設定を省略することができる。次に、転送制御部２０は、プログラム部３０の行ＦＬＩＮＥ０に格納された差分ＦＤＩＦ、不良コードＣＤおよび冗長イネーブルビットＲＥＮを読み出す（図８（ｂ））。
【００６８】
次に、転送制御部２０は、差分ＦＤＩＦが示す値（＝”４”）をカウンタＩＲＡＭに設定し、不良コードＣＤ（１０進数で”２２”）および冗長イネーブルビットＲＥＮ（”１”）をスキャンチェーンＳＣＡＮＣに転送する（図８（ｃ））。この後、転送制御部２０は、カウンタＩＲＡＭの値が”０”になるまで、デフォルト値”０”をスキャンチェーンＳＣＡＮＣに転送する（図８（ｄ）、（ｅ）、（ｆ））。これにより、不良を持たないメモリＭ３、Ｍ４、Ｍ５に対応するシフトレジスタＳＲに設定される値が、スキャンチェーンＳＣＡＮＣに転送される。
【００６９】
次に、転送制御部２０は、カウンタＦＬＩＮＥを”１”インクリメントし（＝”１”）、カウンタＦＬＩＮＥの値が最大値に満たないため、行ＦＩＬＮＥ１に格納された差分ＦＤＩＦ、不良コードＣＤおよび冗長イネーブルビットＲＥＮを読み出す（図８（ｇ））。この後、転送制御部２０は、図８（ｃ）と同様に、差分ＦＤＩＦが示す値（＝”１”）をカウンタＩＲＡＭに設定し、不良コードＣＤ（１０進数で”１０”）および冗長イネーブルビットＲＥＮ（”１”）をスキャンチェーンＳＣＡＮＣに転送する（図８（ｈ））。カウンタＩＲＡＭの値は、デクリメントにより”０”になるため、デフォルト値”０”のスキャンチェーンＳＣＡＮＣへの転送は実行されない。
【００７０】
次に、転送制御部２０は、図８（ｇ）と同様に、カウンタＦＬＩＮＥを”１”インクリメントする（＝”２”）。カウンタＦＬＩＮＥの値が最大値に到達していないため、転送制御部２０は、行ＦＩＬＮＥ２に格納された差分ＦＤＩＦ、不良コードＣＤおよび冗長イネーブルビットＲＥＮを読み出す（図８（ｉ））。
【００７１】
この後、転送制御部２０は、図８（ｃ）と同様に、差分ＦＤＩＦが示す値（＝”１”）をカウンタＩＲＡＭに設定し、不良コードＣＤ（１０進数で”２”）および冗長イネーブルビットＲＥＮ（”１”）をスキャンチェーンＳＣＡＮＣに転送する（図８（ｊ））。
【００７２】
次に、転送制御部２０は、カウンタＦＬＩＮＥを”１”インクリメントする（＝”３”）。カウンタＦＬＩＮＥの値が最大値に到達していないため、転送制御部２０は、行ＦＩＬＮＥ３の差分ＦＤＩＦ、不良コードＣＤおよび冗長イネーブルビットＲＥＮを格納する領域に格納された”０”を読み出す（図８（ｋ））。差分ＦＤＩＦを示す値が”０”であるため、転送制御部２０は、スキャンチェーンＳＣＡＮＣへの不良情報の設定が完了したと判断し、動作イネーブル信号ＯＰＥを出力する。
【００７３】
以上、図２から図８に示す実施形態においても、図１に示す実施形態と同様に、シフトレジスタＳＲは、不良が発生する確率が高いメモリＭに対応する順に転送制御部２０に接続される。これにより、シフトレジスタＳＲに不良情報を設定するまでの時間を従来に比べて短縮することができ、半導体装置ＳＥＭ２の動作が可能になるまでの起動時間を従来に比べて短縮することができる。また、プログラム部３０は、全てのシフトレジスタＳＲに設定する情報を保持する領域を持たず、半導体装置ＳＥＭ２は、不良のないメモリＭに対応するシフトレジスタＳＲを転送経路から切り離すセレクタ等を持たない。この結果、半導体装置ＳＥＭ２の回路規模を増大させることなく、シフトレジスタＳＲに不良情報を設定する時間を短縮することができる。
【００７４】
さらに、図２から図８に示す実施形態では、転送制御部２０は、不良情報をスキャンチェーンＳＣＡＮＣに転送する前に、リセット信号ＲＳＴを出力し、メモリＭの不良の救済処理を実行しない値（デフォルト値）を各シフトレジスタＳＲに設定する。これにより、不良情報を設定する最も下流側に位置するシフトレジスタＳＲよりさらに下流側のシフトレジスタＳＲに、スキャン動作によりデフォルト値を設定することを省略することができる。したがって、スキャンチェーンＳＣＡＮＣへの情報の設定時間を従来に比べて短縮することができ、半導体装置ＳＥＭ２の起動時間を従来に比べて短縮することができる。換言すれば、転送制御部２０は、動作イネーブル信号ＯＰＥを従来に比べて早く出力できるため、動作制御部１０は、従来に比べて、メモリＭ１−Ｍ１０がアクセス可能になったことをＣＰＵ等に早く通知できる。これにより、半導体装置ＳＥＭ２の性能を従来に比べて向上することができる。
【００７５】
転送制御部２０は、プログラム部３０に格納された差分ＦＤＩＦに基づいて、シフトレジスタＳＲにデフォルト値を転送する。これにより、リセット信号ＲＳＴによりシフトレジスタＳＲに設定されたデフォルト値が不良情報の転送により失われた場合にも、デフォルト値を再設定することができる。
【００７６】
図９は、半導体装置および半導体装置の制御方法の別の実施形態を示す。図２から図７に示した実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
【００７７】
この実施形態の半導体装置ＳＥＭ３は、図２に示す転送制御部２０およびプログラム部３０の代わりに転送制御部２０Ａおよびプログラム部３０Ａを有する。また、半導体装置ＳＥＭ３は、６個のメモリＭ１−Ｍ６に接続されるスキャンチェーンＳＣＡＮＣ１と、４個のメモリＭ７−Ｍ１０に接続されるスキャンチェーンＳＣＡＮＣ２とを有する。メモリＭ１−Ｍ１０は、図２に示すメモリＭ１−Ｍ１０と同様である。すなわち、メモリＭ１−Ｍ６において、不良が発生する確率は、転送制御部２０Ａに近いシフトレジスタＳＲに接続されたメモリＭほど高い。また、メモリＭ７−Ｍ１０において、不良が発生する確率は、転送制御部２０Ａに近いシフトレジスタＳＲに接続されたメモリＭほど高い。換言すれば、各スキャンチェーンＳＣＡＮＣ１、ＳＣＡＮＣ２において、図４に示す冗長メモリセル部ＲＭＣを使用する確率は、転送制御部２０Ａに近いシフトレジスタＳＲに接続されたメモリＭほど高い。なお、図２と同様に、メモリＭ１−Ｍ６の各々において不良が発生する確率は、メモリＭ７−Ｍ１０の各々において不良が発生する確率より高い。メモリＭ１−Ｍ６は、第１の回路ブロック群の一例であり、メモリＭ７−Ｍ１０は、第２の回路ブロック群の一例である。
【００７８】
スキャンチェーンＳＣＡＮＣ１は、メモリＭ１−Ｍ６のそれぞれに対応する直列に接続されたシフトレジスタＳＲ１−ＳＲ６を有する。初段のシフトレジスタＳＲ１は、転送制御部２０Ａから出力されるデータＤＴ１を受ける。各シフトレジスタＳＲ１−ＳＲ６は、リセット信号ＲＳＴ１に基づいてデフォルト値”０”に設定され、スキャンクロック信号ＳＣＬＫ１に同期してデータＤＴ１を上流側（転送制御部２０Ａ側）から下流側に順次に転送する。
【００７９】
スキャンチェーンＳＣＡＮＣ２は、メモリＭ７−Ｍ１０のそれぞれに対応する直列に接続されたシフトレジスタＳＲ７−ＳＲ１０を有する。初段のシフトレジスタＳＲ７は、転送制御部２０Ａから出力されるデータＤＴ２を受ける。各シフトレジスタＳＲ７−ＳＲ１０は、リセット信号ＲＳＴ２に基づいてデフォルト値”０”に設定され、スキャンクロック信号ＳＣＬＫ２に同期してデータＤＴ２を上流側（転送制御部２０Ａ側）から下流側に順次に転送する。
【００８０】
転送制御部２０Ａは、スキャンチェーンＳＣＡＮＣ１に出力するリセット信号ＲＳＴ１およびスキャンチェーンＳＣＡＮＣ２に出力するリセット信号ＲＳＴ２を生成するリセット生成部ＲＳＴＧＥＮ２を有する。転送制御部２０Ａは、スキャンチェーンＳＣＡＮＣ１に出力するスキャンクロック信号ＳＣＬＫ１およびスキャンチェーンＳＣＡＮＣ２に出力するスキャンクロック信号ＳＣＬＫ２を生成するクロック生成部ＣＬＫＧＥＮ２を有する。リセット生成部ＲＳＴＧＥＮ２は、図２に示すリセット生成部ＲＳＴＧＥＮ１と同様の機能を有し、クロック生成部ＣＬＫＧＥＮ２は、図２に示すクロック生成部ＣＬＫＧＥＮ１と同様の機能を有する。
【００８１】
また、転送制御部２０Ａは、スキャンチェーンＳＣＡＮＣ１への不良情報の転送に使用するカウンタＦＬＩＮＥ１、ＩＲＡＭ１、ＩＣＢ１と、スキャンチェーンＳＣＡＮＣ２への不良情報の転送に使用するカウンタＦＬＩＮＥ２、ＩＲＡＭ２、ＩＣＢ２とを有する。カウンタＦＬＩＮＥ１、ＦＬＩＮＥ２は、図２に示すカウンタＦＬＩＮＥと同様に、プログラム部３０Ａの行を識別するために使用される。カウンタＩＲＡＭ１、ＩＲＡＭ２は、図２に示すカウンタＩＲＡＭと同様に、スキャンチェーンＳＣＡＮＣ１、ＳＣＡＮＣ２のスキャン動作により、シフトレジスタＳＲにデフォルト値”０”を設定するために使用される。カウンタＩＣＢ１、ＩＣＢ２は、図２に示すカウンタＩＣＢと同様に、各シフトレジスタＳＲに情報を格納するためのシフト数を計数するために使用される。
【００８２】
転送制御部２０Ａは、カウンタＦＬＩＮＥ１、ＩＲＡＭ１、ＩＣＢ１を用いて、スキャンチェーンＳＣＡＮＣ１に不良情報を転送し、カウンタＦＬＩＮＥ２、ＩＲＡＭ２、ＩＣＢ２を用いて、スキャンチェーンＳＣＡＮＣ２に不良情報を転送する。転送制御部２０Ａが各スキャンチェーンＳＣＡＮＣ１、ＳＣＡＮＣ２に不良情報を転送する動作は、プログラム部３０Ａから不良情報を読み出す手順を除き、図２に示す転送制御部２０がスキャンチェーンＳＣＡＮＣに不良情報を転送する動作と同様である。
【００８３】
転送制御部２０Ａは、カウンタ群ＦＬＩＮＥ１、ＩＲＡＭ１、ＩＣＢ１とカウンタ群ＦＬＩＮＥ２、ＩＲＡＭ２、ＩＣＢ２とを有するため、スキャンチェーンＳＣＡＮＣ１、ＳＣＡＮＣ２に不良情報を並列に転送することができる。なお、転送制御部２０Ａは、図２と同様に１つのカウンタ群ＦＬＩＮＥ、ＩＲＡＭ、ＩＣＢを用いて、スキャンチェーンＳＣＡＮＣ１、ＳＣＡＮＣ２のそれぞれに不良情報を順次に転送してもよい。
【００８４】
プログラム部３０Ａは、図２に示すプログラム部３０と同様に、プログラム信号ＰＧＭにより情報が格納される複数のプログラム素子を有する。プログラム部３０Ａの例は、図１０に示す。
【００８５】
図１０は、図９に示すメモリＭ１−Ｍ１０の不良状況とプログラム部３０Ａにプログラムされる情報との一例を示す。図５と同一または同様の要素には、図５と同じ符号を付し、詳細な説明は省略する。メモリＭ１−Ｍ１０の不良状況は、メモリＭ８に不良が存在することを除き、図５に示す不良状況と同じであり、半導体装置ＳＥＭ３を試験する試験装置により判明される。
【００８６】
プログラム部３０Ａの構成は、図５に示すプログラム部３０と同様である。但し、試験装置は、スキャンチェーンＳＣＡＮＣ１に転送する不良情報および差分ＦＤＩＦを、行ＦＩＬＮＥ０から行ＦＬＩＮＥ４に向けて順次に格納する。また、試験装置は、スキャンチェーンＳＣＡＮＣ２に転送する不良情報および差分ＦＤＩＦを、行ＦＩＬＮＥ４から行ＦＬＩＮＥ０に向けて順次に格納する。これにより、２つのスキャンチェーンＳＣＡＮＣ１、ＳＣＡＮＣ２に転送する不良情報を１つのプログラム部３０Ａに格納することができる。
【００８７】
図１０に示す例では、メモリＭ１、Ｍ２、Ｍ６、Ｍ８は不良を有する。スキャンチェーンＳＣＡＮＣ１に接続されるメモリＭ１、Ｍ２、Ｍ６の不良情報は、図５と同様に、行ＦＬＩＮＥ２、ＦＬＩＮＥ１、ＦＬＩＮＥ０にそれぞれ格納される。一方、スキャンチェーンＳＣＡＮＣ２に接続されるメモリＭ８の不良情報は、最終の行ＦＬＩＮＥ４に格納される。この際、スキャンチェーンＳＣＡＮＣ２に対応して１つのメモリＭ８のみに不良が存在するため、行ＦＬＩＮＥ４の差分ＦＤＩＦの領域には、メモリＭ８のメモリ番号ＭＮ（＝”８”）から”６”を引いた値（”２”）が格納される。すなわち、スキャンチェーンＳＣＡＮＣ２に接続される不良を有するメモリＭを示すメモリ番号ＭＮのうち、最も小さいメモリ番号ＭＮに対する差分として、メモリ番号ＭＮから”６”を引いた値が、行ＦＬＩＮＥ４の差分ＦＤＩＦの領域に格納される。ここで、”６”は、メモリＭ７−Ｍ１０の中で不良を有するメモリＭが１つの場合に、不良を有するメモリＭが上流側から何番目に位置するかを求めるために使用される。
【００８８】
プログラム部３０Ａには、最初の行ＦＬＩＮＥ０と最終の行ＦＬＩＮＥ４との両方から不良情報が格納されるため、不良情報は、スキャンチェーンＳＣＡＮＣ１、ＳＣＡＮＣ２のいずれに対応するかを判別可能にプログラム部３０Ａに格納される。例えば、メモリＭ１−Ｍ６の不良情報を格納する領域と、メモリＭ７−Ｍ１０の不良情報を格納する領域との間に１以上の空白の行ＦＬＩＮＥが設けられる。これにより、転送制御部２０Ａは、スキャンチェーンＳＣＡＮＣ１に転送する不良情報と、スキャンチェーンＳＣＡＮＣ２に転送する不良情報とを判別することができる。
【００８９】
図１０に示す例では、スキャンチェーンＳＣＡＮＣ１、ＳＣＡＮＣ２のいずれかに接続されたメモリＭに不良が存在する場合、５つの行ＦＬＩＮＥ０−ＦＬＩＮＥ４に最大５つのメモリＭの不良情報が格納可能である。一方、スキャンチェーンＳＣＡＮＣ１、ＳＣＡＮＣ２のそれぞれに接続されたメモリＭに不良が存在する場合、５つの行ＦＬＩＮＥ０−ＦＬＩＮＥ４に最大４つのメモリＭの不良情報が格納可能である。
【００９０】
スキャンチェーンＳＣＡＮＣ１への不良情報の設定は、転送制御部２０Ａが図６および図７と同様の処理を実行することで実現される。一方、スキャンチェーンＳＣＡＮＣ２への不良情報の設定は、図６および図７に示す処理を以下に示すように変更することで実現される。図６に示すステップＳ１０２において、カウンタＦＬＩＮＥの値は、”５”に初期化される。図７に示すステップＳ１２２において、カウンタＦＬＩＮＥは、”１”デクリメントされる。図７に示すステップＳ１２４において、カウンタＦＬＩＮＥの値が”１”以上の場合、処理は図６に示すステップＳ１０６に移行され、カウンタＦＬＩＮＥの値が”０”の場合、処理はステップＳ１２６に移行される。なお、メモリＭ１−Ｍ６に不良が存在せず、メモリＭ７−Ｍ１０に不良が存在する確率は極めて低い（ほぼ”０”）。このため、スキャンチェーンＳＣＡＮＣ２への不良情報の設定動作において、ステップＳ１２４による判定が省略され、ステップＳ１２２の処理の後、ステップＳ１０６の処理に常に移行されてもよい。
【００９１】
転送制御部２０ＡによるスキャンチェーンＳＣＡＮＣ１、ＳＣＡＮＣ２への情報の転送動作により、図８（ｋ）に示す情報と同じ情報が、シフトレジスタＳＲ１−ＳＲ１０に設定される。なお、メモリＭ８に不良が存在しない場合、スキャンチェーンＳＣＡＮＣ２への不良情報の転送は省略できる。スキャンチェーンＳＣＡＮＣ２に接続されるメモリＭ７−Ｍ１０に不良が発生する確率は、スキャンチェーンＳＣＡＮＣ１に接続されるメモリＭ１−Ｍ６に不良が発生する確率に比べて低い。このため、スキャンチェーンＳＣＡＮＣ２への不良情報の転送が省略される頻度は、不良が発生する確率を考慮せずにメモリＭをスキャンチェーンＳＣＡＮＣ１、ＳＣＡＮＣ２のいずれかに接続する場合に比べて高い。スキャンチェーンＳＣＡＮＣ２に不良情報が転送されない場合、シフトレジスタＳＲ７−ＳＲ１０はスキャンクロック信号ＳＣＬＫ２を受けず、スキャンチェーンＳＣＡＮＣ２の転送動作は実行されない。このため、全てのシフトレジスタＳＲ１−ＳＲ１０を動作させて不良情報を転送する場合に比べて、半導体記憶装置ＭＥＭ３の消費電力を削減することができる。
【００９２】
以上、図９から図１０に示す実施形態においても、図１から図８に示す実施形態と同様に、半導体装置ＳＥＭ３の回路規模を増大させることなく、シフトレジスタＳＲに不良情報を設定する時間を短縮することができる。
【００９３】
さらに、図９から図１０に示す実施形態では、各スキャンチェーンＳＣＡＮＣ１、ＳＣＡＮＣ２において、シフトレジスタＳＲを、冗長メモリセル部ＲＭＣを使用する確率が高いメモリＭに対応する順に転送制御部２０Ａに接続する。そして、メモリＭ１−Ｍ６への不良情報の設定は、スキャンチェーンＳＣＡＮＣ１を用いて実行され、メモリＭ７−Ｍ１０への不良情報の設定は、スキャンチェーンＳＣＡＮＣ２を用いて実行される。スキャンチェーンＳＣＡＮＣ１に接続されるメモリＭ１−Ｍ６に不良が発生する確率は、スキャンチェーンＳＣＡＮＣ２に接続されるメモリＭ７−Ｍ１０に不良が発生する確率より高い。これにより、スキャンチェーンＳＣＡＮＣ２を動作させてシフトレジスタＳＲ７−ＳＲ１０に不良情報を設定する頻度を下げることができ、半導体記憶装置ＭＥＭ３の消費電力を削減することができる。
【００９４】
また、スキャンチェーンＳＣＡＮＣ１、ＳＣＡＮＣ２の両方に不良情報を並列に転送する場合、各シフトレジスタＳＲに不良情報を設定するまでの時間を従来に比べて短縮することができる。この結果、半導体装置ＳＥＭ３の動作が可能になるまでの起動時間を従来に比べて短縮することができる。
【００９５】
図１１は、半導体装置および半導体装置の制御方法の別の実施形態を示す。図２から図１０に示した実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
【００９６】
この実施形態の半導体装置ＳＥＭ４は、図２に示すプログラム部３０の代わりにプログラム部３０Ｂを有する。プログラム部３０Ｂの例は、図１３に示される。また、スキャンチェーンＳＣＡＮＣの各シフトレジスタＳＲ１−ＳＲ１０は、例えば、４ビットの情報を保持するために直列に接続された４つのフリップフロップ回路を有する。そして、各シフトレジスタＳＲ１−ＳＲ１０には、各メモリＭ１−Ｍ１０内の制御回路の動作タイミングを調整するスピードコードＳＰＤＣが格納される。制御回路の例は、図１２に示される。
【００９７】
例えば、制御回路は、図４に示すメモリセルアレイＡＲＹと冗長切り替えスイッチＲＳＷとの間に配置され、メモリセルから読み出されるデータの信号量を増幅するセンスアンプである。あるいは、制御回路は、メモリＭの読み出し動作または書き込み動作において、メモリセルを選択するワード線ＷＬ（図４）を活性化するワード線駆動回路である。
【００９８】
転送制御部２０は、図２に示す転送制御部２０と同様に、起動信号ＰＯＮに基づいてリセット信号ＲＳＴを生成した後、所定のパルス数のスキャンクロック信号ＳＣＬＫを生成する。そして、転送制御部２０は、プログラム部３０Ｂから読み出したデータＤＴをスキャンチェーンＳＣＡＮＣに転送する動作を実行する。但し、スキャンチェーンＳＣＡＮＣに転送されるデータＤＴは、メモリの不良を救済する不良情報ではなく、メモリＭ内の制御回路の動作タイミングを初期状態（デフォルト状態）から変更するスピードコードＳＰＤＣを含む。
【００９９】
図１１に示すメモリＭ１−Ｍ１０において、番号が小さいメモリＭは、番号が大きいメモリＭに比べてタイミングマージンが小さい（厳しい）。そして、シフトレジスタＳＲ１−ＳＲ１０は、タイミングマージンが小さいメモリＭ１−Ｍ１０に対応する順に転送制御部２０に接続される。
【０１００】
タイミングマージンが小さいメモリＭは、タイミングマージンが大きいメモリＭに比べて、試験装置による試験で不良と判定される確率が高い。また、不良と判定されたメモリＭは、制御回路の動作タイミングを変更することで、不良を救済する救済回路を用いずに不良を救済できる場合がある。すなわち、タイミングマージンが小さいメモリＭは、タイミングマージンが大きいメモリＭに比べて、制御回路の動作タイミングを標準値から変更する確率（可能性）が高い。制御回路の動作タイミングを変更するか否かは、メモリＭを試験する試験装置により試験結果に基づいて決定される。
【０１０１】
各メモリＭ１−Ｍ１０の面積は、図２に示す各メモリＭ１−Ｍ１０の面積と相違してもよい。例えば、メモリＭ１の面積は、メモリＭ２の面積より小さくてもよい。しかしながら、メモリＭの面積が大きいほどメモリＭ内の信号配線は長くなる傾向にあり、その結果、メモリＭのタイミングマージンは、メモリＭの面積が大きいほど小さくなる傾向にある。
【０１０２】
なお、メモリＭのタイミングマージンが、メモリＭの面積が大きくなるほど小さくなる場合、図１１に示すスキャンチェーンＳＣＡＮＣと、図２に示すスキャンチェーンＳＣＡＮＣとを融合してもよい。すなわち、スキャンチェーンＳＣＡＮＣの各シフトレジスタＳＲ１−ＳＲ１０に、メモリＭ内の制御回路の動作タイミングを変更するスピードコードＳＰＤＣと、メモリＭの不良を救済する不良情報とを転送してもよい。この場合、各メモリＭ１−Ｍ１０は、図４に示すように、不良のメモリセル部ＭＣを救済する冗長メモリセル部ＲＭＣを有する。プログラム部３０Ｂは、スピードコードＳＰＤＣと不良情報とを格納する領域を含む複数の行ＦＬＩＮＥを有する。転送制御部２０は、プログラム部３０Ｂから読み出したスピードコードＳＰＤＣと不良情報とをスキャンチェーンＳＣＡＮＣに転送する。
【０１０３】
また、スキャンチェーンＳＣＡＮＣは、図９に示すように、２つのスキャンチェーンＳＣＡＮＣ１、ＳＣＡＮＣ２に分けて設けられてもよい。
【０１０４】
図１２は、図１１に示す各メモリＭに搭載され、各メモリＭ内の制御回路の動作タイミングを調整する調整回路ＡＤＪ１の一例を示す。調整回路ＡＤＪ１は、制御回路（センスアンプまたはワード線駆動回路等）を動作させる制御信号ＣＮＴを受ける複数の遅延回路ＤＬＹ（ＤＬＹ１−ＤＬＹ７）と、選択部ＳＥＬとを有する。遅延回路ＤＬＹ１−ＤＬＹ７の伝搬遅延時間は互いに異なる。図１２では、伝搬遅延時間の量を遅延回路ＤＬＹ１−ＤＬＹ７の横方向の長さで示す。すなわち、遅延回路ＤＬＹ１−ＤＬＹ７のうち、遅延回路ＤＬＹ１の伝搬遅延時間が最も短く、遅延回路ＤＬＹ７の伝搬遅延時間が最も長い。遅延回路ＤＬＹ１−ＤＬＹ７は、メモリＭ１−Ｍ１０の各々に含まれる内部回路の一例である。
【０１０５】
選択部ＳＥＬは、遅延回路ＤＬＹ１−ＤＬＹ７により制御信号ＣＮＴを遅延させた遅延信号のいずれかを、スピードコードＳＰＤＣに基づいて選択し、選択した遅延信号を調整制御信号ＡＣＮＴとして制御回路に出力する。すなわち、選択部ＳＥＬは、遅延信号を出力する遅延回路ＤＬＹ１−ＤＬＹ７のいずれかをスピードコードＳＰＤＣに基づいて選択する。
【０１０６】
遅延回路ＤＬＹ１−ＤＬＹ７の出力に付した”高速３”、”高速２”、”高速１”、”標準”、”低速１”、”低速２”、”低速３”は、各遅延回路ＤＬＹ１−ＤＬＹ７の出力が選択部ＳＥＬにより選択された場合のメモリＭ内の制御回路の動作タイミングを示す。”高速３”、”高速２”、”高速１”は、”標準”に比べて、制御回路の動作タイミングが早いことを示す。”高速３”の動作タイミングは、”高速２”の動作タイミングに比べて早く、”高速２”の動作タイミングは、”高速１”の動作タイミングに比べて早い。”低速１”、”低速２”、”低速３”は、”標準”に比べて、制御回路の動作タイミングが遅いことを示す。”低速３”の動作タイミングは、”低速２”の動作タイミングに比べて遅く、”低速２”の動作タイミングは、”低速１”の動作タイミングに比べて遅い。
【０１０７】
図１３は、図１１に示すメモリＭ１−Ｍ１０内の制御回路の動作タイミングとプログラム部３０Ｂにプログラムされる情報との一例を示す。図５と同一または同様の要素には、図５と同じ符号を付し、詳細な説明は省略する。
【０１０８】
半導体装置ＳＥＭ４を試験する試験装置は、各メモリＭ１−Ｍ１０のタイミングマージンを試験し、制御回路の動作タイミングを標準値（デフォルト値）に対して変更するメモリＭを決定する。例えば、半導体装置ＳＥＭ４を製造する半導体製造プロセスの変動により、半導体装置ＳＥＭ４に含まれるトランジスタの閾値電圧が標準値より低い場合、メモリＭ１−Ｍ１０の動作速度は、標準値に対応する動作速度より高くなる。試験装置は、動作速度の上昇によりタイミングマージンが所定値より小さくなるメモリＭの制御回路の動作タイミングを遅くすることを決定する（図１２に示す”低速１”、”低速２”、”低速３”のいずれか）。これにより、メモリＭのタイミングマージンを所定のマージンに収めることができ、半導体装置ＳＥＭ４が不良になることを抑止することができる。この実施形態では、制御回路の動作タイミングは、標準値に対して３段階まで低くすることが可能である。
【０１０９】
一方、半導体装置ＳＥＭ４に含まれるトランジスタの閾値電圧が標準値より高い場合、メモリＭ１−Ｍ１０の動作速度は、標準値に対応する動作速度より低くなる。試験装置は、動作速度の下降によりタイミングマージンが所定値より小さくなるメモリＭの制御回路の動作タイミングを早くすることを決定する（図１２に示す”高速１”、”高速２”、”高速３”のいずれか）。これにより、メモリＭのタイミングマージンを所定のマージンに収めることができ、半導体装置ＳＥＭ４が不良になることを抑止することができる。この実施形態では、制御回路の動作タイミングは、標準値に対して３段階まで高くすることが可能である。
【０１１０】
図１３に示す例では、試験装置は、タイミングマージンが所定値より小さいメモリＭ１、Ｍ２の制御回路の動作タイミングを示す動作モードＳＰＤを”低速２”に設定することを決定する。また、試験装置は、タイミングマージンが所定値より小さいメモリＭ６の動作モードＳＰＤを”低速１”に設定することを決定する。さらに、試験装置は、タイミングマージンが所定値より大きいメモリＭ３−Ｍ５、Ｍ７−Ｍ１０の動作モードＳＰＤを”標準”（デフォルト値）に設定することを決定する。
【０１１１】
プログラム部３０Ｂは、動作モードＳＰＤを”標準”に対して変更するメモリＭのメモリ番号ＭＮの差分ＦＤＩＦを格納する領域と、動作モードＳＰＤを示すスピードコードＳＰＤＣを格納する領域とを含む複数の行ＦＬＩＮＥを有する。スピードコードＳＰＤＣを格納する領域は、動作モードＳＰＤを低速側に３段階変更するための２ビットと、動作モードＳＰＤを高速側に３段階変更するための２ビットとを有する（合計４ビット）。スピードコードＳＰＤＣを各シフトレジスタＳＲに設定するために、図１１に示すカウンタＩＣＢに設定される最大値であるコードビット数ＮＣＢは”３”である。
【０１１２】
試験装置は、メモリＭ１−Ｍ１０のタイミングマージンの試験結果に基づいて、制御回路の動作タイミングを変更するメモリＭの動作モードＳＰＤを示すスピードコードＳＰＤＣをプログラム部３０Ｂにプログラムする。スピードコードＳＰＤＣのプログラム部３０Ｂへのプログラム方法は、図５と同様である。
【０１１３】
例えば、試験装置は、”標準”に対して動作モードＳＰＤを変更するメモリＭを示すメモリ番号ＭＮのうち、最も大きいメモリ番号ＭＮ（＝６）と２番目に大きいメモリ番号ＭＮ（＝２）との差（”４”）を計算する。そして、試験装置は、計算により得た差を、最初の行ＦＬＩＮＥ０における差分ＦＤＩＦの領域に格納する。試験装置は、行ＦＬＩＮＥ０におけるスピードコードＳＰＤＣの領域に、最も大きいメモリ番号ＭＮに対応するメモリＭ６の動作モードＳＰＤを示す値（２進数で”０１００”；低速１）を格納する。
【０１１４】
次に、試験装置は、”標準”に対して動作モードＳＰＤを変更するメモリＭを示すメモリ番号ＭＮのうち、２番目に大きいメモリ番号ＭＮ（＝２）と３番目に大きいメモリ番号ＭＮ（＝１）との差（”１”）を計算する。そして、試験装置は、計算により得た差を、２番目の行ＦＬＩＮＥ１における差分ＦＤＩＦの領域に格納する。試験装置は、行ＦＬＩＮＥ１におけるスピードコードＳＰＤＣの領域に、２番目に大きいメモリ番号ＭＮに対応するメモリＭ２の動作モードＳＰＤを示す値（２進数で”１０００”；低速２）を格納する。
【０１１５】
試験装置は、”標準”に対して動作モードＳＰＤを変更するメモリＭを示すメモリ番号ＭＮのうち、最も小さいメモリ番号ＭＮ（＝１）に対する差分として、メモリ番号ＭＮと同じ値を行ＦＬＩＮＥ２における差分ＦＤＩＦの領域に格納する。試験装置は、行ＦＬＩＮＥ２におけるスピードコードＳＰＤＣの領域に、最も小さいメモリ番号ＭＮに対応するメモリＭ１の動作モードＳＰＤを示す値（２進数で”１０００”；低速２）を格納する。このように、差分ＦＤＩＦの値とスピードコードＳＰＤＣとが、メモリ番号ＭＮが大きい順に行ＦＬＩＮＥに順次に格納される。そして、試験装置によるプログラム部３０Ｂのプログラムが完了する。なお、プログラム部３０Ｂにおいて、プログラムされない領域は、”０”を示す。
【０１１６】
図５と同様に、プログラム部３０Ｂは、５つの行ＦＬＩＮＥ０−ＦＬＩＮＥ５を有するため、５個を超えるメモリＭの制御回路の動作タイミングを変更する場合、プログラム部３０ＢにおいてスピードコードＳＰＤＣを格納する領域は不足する。この場合、試験装置は、半導体装置ＳＥＭ４を不良品として処理する。プログラム部３０Ｂに設けられる行ＦＩＬＮＥを増やすことで、制御回路の動作タイミングを変更するメモリＭの数を増やすことができる。なお、プログラム部３０Ｂが有する行ＦＬＩＮＥは、２以上かつメモリＭの数（＝１０）未満であればよい。
【０１１７】
転送制御部２０によりスピードコードＳＰＤＣをスキャンチェーンＳＣＡＮＣに転送する処理は、図６および図７のステップＳ１０６、Ｓ１１２において、不良コードＣＤおよび冗長イネーブルビットＲＥＮをスピードコードＳＰＤＣに置き換えることで実現される。但し、ステップＳ１１２、Ｓ１２０におけるコードビット数ＮＣＢの値は”３”に設定される。また、転送制御部２０によりスピードコードＳＰＤＣをスキャンチェーンＳＣＡＮＣに転送する動作は、図８における不良コードＣＤおよび冗長イネーブルビットＲＥＮをスピードコードＳＰＤＣに置き換えることで実現される。
【０１１８】
図１３に示す例では、図５に示す例と同様に、スピードコードＳＰＤＣが”標準”に設定されるメモリＭ７−Ｍ１０に対応するシフトレジスタＳＲ７−ＳＲ１０に、スピードコードＳＰＤＣは転送されない。これにより、半導体メモリＭ１−Ｍ１０の起動時において、スピードコードＳＰＤＣをシフトレジスタＳＲに設定するまでの時間を従来に比べて短縮することができる。
【０１１９】
なお、”標準”に対応して各シフトレジスタＳＲに設定されるスピードコードＳＰＤＣの値（デフォルト値）は、”０”以外でもよい。例えば、図１３において、”高速３”−”高速１”、”標準”、”低速１”−”低速３”を示すスピードコードＳＰＤＣを、２進数で”０００”−”０１０”、”０１１”、”１００”−”１１０”にそれぞれ割り当ててもよい（”標準”は”０１１”）。この場合、各シフトレジスタＳＲのフリップフロップフロップ回路は、保持する値を論理１にセットするセット端子と、保持する値を論理０にリセットするリセット端子を有する。そして、リセット信号ＲＳＴは、各シフトレジスタＳＲが保持するデフォルト値に応じて、各フリップフロップフロップ回路のセット端子またはリセット端子に供給される。また、図７に示すステップＳ１２０では、”０”の代わりにデフォルト値を示す論理がスキャンチェーンＳＣＡＮＣに転送される。これにより、デフォルト値を”０”以外の値に割り当てることができる。
【０１２０】
以上、図１１から図１３に示す実施形態においても、図１から図１０に示す実施形態と同様に、半導体装置ＳＥＭ４の回路規模を増大させることなく、シフトレジスタＳＲにスピードコードＳＰＤＣを設定する時間を短縮することができる。
【０１２１】
さらに、図１１から図１３に示す実施形態では、シフトレジスタＳＲは、タイミングマージンが小さく、試験装置による試験で不良と判定される確率が高いメモリＭに対応する順に転送制御部２０に接続される。これにより、メモリＭのタイミングマージンを調整するスピードコードＳＰＤＣをシフトレジスタＳＲに設定するまでの時間を従来に比べて短縮することができ、半導体装置ＳＥＭ４の動作が可能になるまでの起動時間を従来に比べて短縮することができる。
【０１２２】
図１４は、半導体装置および半導体装置の制御方法の別の実施形態を示す。図２から図１３に示した実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
【０１２３】
この実施形態の半導体装置ＳＥＭ５は、図１１に示す転送制御部２０およびプログラム部３０Ｂの代わりに転送制御部２０Ｃおよびプログラム部３０Ｃを有する。プログラム部３０Ｃの例は、図１５に示される。また、スキャンチェーンＳＣＡＮＣの各シフトレジスタＳＲ１−ＳＲ１０は、２ビットの情報を保持するために直列に接続された２つのフリップフロップ回路を有する。そして、各シフトレジスタＳＲ１−ＳＲ１０には、各メモリＭ１−Ｍ１０の動作スピードを調整するスピードコードＳＰＤＣの一部（図１５に示すスピードレベルＳＬＶＬ）が格納される。各メモリＭ１−Ｍ１０は、図１２に示す調整回路ＡＤＪ１と同様の調整回路を有する。
【０１２４】
転送制御部２０Ｃは、カウンタＦＬＩＮＥ、ＩＲＡＭ、ＩＣＢ、リセット生成部ＲＳＴＧＥＮ１およびクロック生成部ＣＬＫＧＥＮ３を有する。クロック生成部ＣＬＫＧＥＮ３は、スピードコードＳＰＤＣの一部であるスピードレベルＳＬＶＬをスキャンチェーンＳＣＡＮＣに転送した後、スキャンクロック信号ＳＣＬＫの論理をハイレベルまたはロウレベルに固定する機能を有する。クロック生成部ＣＬＫＧＥＮ３の例は、図１６に示される。なお、クロック生成部ＣＬＫＧＥＮ３は、転送制御部２０Ｃの外部に配置されてもよい。転送制御部２０Ｃの動作の例は、図２０から図２２に示される。
【０１２５】
メモリＭ１−Ｍ１０は、受信するスピードコードＳＰＤＣのビット数が異なることを除き、図１１に示すメモリＭ１−Ｍ１０と同様である。但し、半導体装置ＳＥＭ５では、スキャンクロック信号ＳＣＬＫの論理が、各メモリＭ１−Ｍ１０に供給されるスピードコードＳＰＤＣのうちの１ビット（図１５に示すモードビットＭＤ）に使用される。このため、スキャンクロック信号ＳＣＬＫを伝達するクロック信号線は、図１２に示す選択部ＳＥＬにスピードコードＳＰＤＣの１ビットを供給するために、メモリＭ１−Ｍ１０に接続される。
【０１２６】
これにより、スピードコードＳＰＤＣの全ビットをシフトレジスタＳＲ１−ＳＲ１０を経由してメモリＭ１−Ｍ１０に供給する場合に比べて、各シフトレジスタＳＲ１−ＳＲ１０のフリップフロップ回路の数を少なくすることができる。この結果、スキャンチェーンＳＣＡＮＣへのスピードコードＳＰＤＣの設定時間を従来に比べて短縮することができ、半導体装置ＳＥＭ５の起動時間を従来に比べて短縮することができる。
【０１２７】
なお、メモリＭのタイミングマージンが、メモリＭの面積が大きくなるほど小さくなる場合、図１４に示すスキャンチェーンＳＣＡＮＣと、図２に示すスキャンチェーンＳＣＡＮＣとを融合してもよい。すなわち、スキャンチェーンＳＣＡＮＣの各シフトレジスタＳＲ１−ＳＲ１０に、メモリＭ内の制御回路の動作タイミングを変更するスピードコードＳＰＤＣと、メモリＭの不良を救済する不良情報とを転送してもよい。この場合、各メモリＭ１−Ｍ１０は、図４に示すように、不良のメモリセル部ＭＣを救済する冗長メモリセル部ＲＭＣを有する。プログラム部３０Ｃは、スピードコードＳＰＤＣと不良情報とを格納する領域を含む複数の行ＦＬＩＮＥを有する。転送制御部２０Ｃは、プログラム部３０Ｃから読み出したスピードコードＳＰＤＣと不良情報とをスキャンチェーンＳＣＡＮＣに転送する。
【０１２８】
また、スキャンチェーンＳＣＡＮＣは、図９に示すように、２つのスキャンチェーンＳＣＡＮＣ１、ＳＣＡＮＣ２に分けて設けられてもよい。
【０１２９】
図１５は、図１４に示すメモリＭ１−Ｍ１０内の制御回路の動作タイミングとプログラム部にプログラムされる情報との一例を示す。図５および図１３と同一または同様の要素には、図５および図１３と同じ符号を付し、詳細な説明は省略する。
【０１３０】
半導体装置ＳＥＭ５を試験する試験装置は、図１３と同様に、各メモリＭ１−Ｍ１０のタイミングマージンを試験し、センスアンプまたはワード線駆動回路等の制御回路の動作タイミングを標準値（デフォルト値）に対して変更するメモリＭを決定する。動作タイミングは、図１３と同様に、標準値に対して３段階まで高くすることが可能であり（高速１、高速２、高速３）、あるいは、標準値に対して３段階まで低くすることが可能である（低速１、低速２、低速３）。
【０１３１】
図１５に示す例では、試験装置は、タイミングマージンが所定値より小さいメモリＭ１、Ｍ２の制御回路の動作タイミングを示す動作モードＳＰＤを高速２に設定することを決定する。また、試験装置は、タイミングマージンが所定値より小さいメモリＭ６の動作モードＳＰＤを高速１に設定することを決定する。さらに、試験装置は、タイミングマージンが所定値より大きいメモリＭ３−Ｍ５、Ｍ７−Ｍ１０の動作モードＳＰＤを標準値（デフォルト値）に設定することを決定する。
【０１３２】
プログラム部３０Ｃは、図１３に示すプログラム部３０Ｂと同様に、動作モードＳＰＤを”標準”に対して変更するメモリＭのメモリ番号ＭＮの差分ＦＤＩＦを格納する領域とスピードコードＳＰＤＣを格納する領域とを含む複数の行ＦＬＩＮＥを有する。但し、スピードコードＳＰＤＣを格納する領域は、モードビットＭＤ（１ビット）を格納する領域と、スピードレベルＳＬＶＬ（２ビット）を格納する領域とを含む。図２２で説明するように、スキャンチェーンＳＣＡＮＣには、スピードレベルＳＬＶＬは転送されるが、モードビットＭＤは転送されない。スピードレベルＳＬＶＬを各シフトレジスタＳＲに設定するために、図１４に示すカウンタＩＣＢに設定される最大値であるコードビット数ＮＣＢは”１”である。
【０１３３】
モードビットＭＤは、スピードレベルＳＬＶＬが”低速１”、”低速２”、”低速３”のいずれかに設定される場合、低速モードを示す”０”に設定される。また、モードビットＭＤは、スピードレベルＳＬＶＬが、”高速１”、”高速２”、”高速３”のいずれかに設定される場合、高速モードを示す”１”に設定される。モードビットＭＤは、メモリＭ１−Ｍ１０の選択部ＳＥＬ（図１２）に共通に供給される第２の選択情報の一例である。そして、図１２に示す選択部ＳＥＬは、モードビットＭＤの値と、スピードレベルＳＬＶＬの値をスピードコードＳＰＤＣとして受け、遅延回路ＤＬＹ１−ＤＬＹ７から出力される遅延信号のいずれかを、スピードコードＳＰＤＣに基づいて選択する。
【０１３４】
低速モードは、半導体装置ＳＥＭ５に含まれるトランジスタの閾値電圧が標準値より低いことに起因して、メモリＭのタイミングマージンが所定のマージンより小さくなる場合に設定される。高速モードは、半導体装置ＳＥＭ５に含まれるトランジスタの閾値電圧が標準値より高いことに起因して、メモリＭのタイミングマージンが所定のマージンより小さくなる場合に設定される。閾値電圧の変動の傾向は、半導体装置ＳＥＭ５内の全ての回路で同じであるため、プログラム部３０Ｃに”低速”と”高速”とが混在してプログラムされることはない。
【０１３５】
スピードレベルＳＬＶＬは、モードビットＭＤが低速モードを示す場合、２ビットの論理値に応じて、”標準”、”低速１”、”低速２”、”低速３”のいずれかに設定される。また、スピードレベルＳＬＶＬは、モードビットＭＤが高速モードを示す場合、２ビットの論理値に応じて、”標準”、”高速１”、”高速２”、”高速３”のいずれかに設定される。スピードレベルＳＬＶＬは、選択部ＳＥＬ（図１２）に個別に供給される第１の選択情報の一例である。
【０１３６】
試験装置は、メモリＭ１−Ｍ１０のタイミングマージンの試験結果に基づいて、制御回路の動作タイミングを変更するメモリＭの動作モードＳＰＤを示すスピードコードＳＰＤＣ（ＭＢ、ＳＬＶＬ）をプログラム部３０Ｃにプログラムする。スピードコードＳＰＤＣのプログラム部３０Ｃへのプログラム方法は、図５および図１３と同様である。
【０１３７】
例えば、試験装置は、”標準”に対して動作モードＳＰＤを変更するメモリＭを示すメモリ番号ＭＮのうち、最も大きいメモリ番号ＭＮ（＝６）と２番目に大きいメモリ番号ＭＮ（＝２）との差（”４”）を計算する。そして、試験装置は、計算により得た差を、最初の行ＦＬＩＮＥ０における差分ＦＤＩＦの領域に格納する。試験装置は、行ＦＬＩＮＥ０におけるスピードコードＳＰＤＣの領域に、最も大きいメモリ番号ＭＮに対応するメモリＭ６の動作モードＳＰＤを示す値（２進数で”１０１”；高速１）を格納する。
【０１３８】
次に、試験装置は、デフォルト値に対して動作モードＳＰＤを変更するメモリＭを示すメモリ番号ＭＮのうち、２番目に大きいメモリ番号ＭＮ（＝２）と３番目に大きいメモリ番号ＭＮ（＝１）との差（”１”）を計算する。そして、試験装置は、計算により得た差を、２番目の行ＦＬＩＮＥ１における差分ＦＤＩＦの領域に格納する。試験装置は、行ＦＬＩＮＥ１におけるスピードコードＳＰＤＣの領域に、２番目に大きいメモリ番号ＭＮに対応するメモリＭ２の動作モードＳＰＤを示す値（２進数で”１１０”；高速２）を格納する。
【０１３９】
試験装置は、”標準”に対して動作モードＳＰＤを変更するメモリＭを示すメモリ番号ＭＮのうち、最も小さいメモリ番号ＭＮ（＝１）に対する差分として、メモリ番号ＭＮと同じ値を行ＦＬＩＮＥ２における差分ＦＤＩＦの領域に格納する。試験装置は、行ＦＬＩＮＥ２におけるスピードコードＳＰＤＣの領域に、最も小さいメモリ番号ＭＮに対応するメモリＭ１の動作モードＳＰＤを示す値（２進数で”１１０”；高速２）を格納する。
【０１４０】
図１６は、図１４に示すクロック生成部ＣＬＫＧＥＮ３の一例を示す。クロック生成部ＣＬＫＧＥＮ３は、カウンタＣＯＵＮＴ、イネーブル生成回路ＥＮＢＧＥＮおよびクロックカウンタＣＬＫＣを有する。クロックカウンタＣＬＫＣは、フリップフロップ回路ＦＦおよびインバータＩＶを有する。
【０１４１】
カウンタＣＯＵＮＴは、リセット端子ＲＥＳＥＴで起動信号ＰＯＮの活性化レベルを受けるまで、カウンタ値ＣＶをリセット状態（”０”）に維持する。カウンタＣＯＵＮＴは、パワーオン信号ＰＯＮの活性化レベルへの変化に応答してリセット状態を解除し、クロック端子ＣＫで受けるスキャンクロック信号ＳＣＬＫに同期してカウント動作を実行し、カウンタ値ＣＶを”１”ずつインクリメントする。
【０１４２】
イネーブル生成回路ＥＮＢＧＥＮは、比較器ＣＭＰを有する。イネーブル生成回路ＥＮＢＧＥＮは、リセット端子ＲＥＳＥＴで受けるパワーオン信号ＰＯＮの活性化レベルへの変化に応答してイネーブル信号ＥＮＢを活性化レベルに設定し、比較器ＣＭＰの動作を開始する。比較器ＣＭＰは、カウンタ値ＣＶとシフト数ＮＳＦＴとを比較し、カウンタ値ＣＶがシフト数ＮＳＦＴと一致した場合に、一致信号ＣＯＮを出力する。ここで、シフト数ＮＳＦＴは、プログラム部３０Ｃにプログラムされた全てのスピードレベルＳＬＶＬをスキャンチェーンＳＣＡＮＣに転送するために生成されるスキャンクロック信号ＳＣＬＫのパルス数（スキャンチェーンＳＣＡＮＣのシフト数）である。
【０１４３】
イネーブル生成回路ＥＮＢＧＥＮは、プログラム部３０Ｃからの最後のスピードコードＳＰＤＣのモードビットＭＤが”１”の場合、一致信号ＣＯＮに基づいて、スキャンクロック信号ＳＣＬＫがハイレベルになったときにイネーブル信号ＥＮＢを非活性化する。イネーブル生成回路ＥＮＢＧＥＮは、プログラム部３０Ｃからの最後のスピードコードＳＰＤＣのモードビットＭＤが”０”の場合、一致信号ＣＯＮに基づいて、スキャンクロック信号ＳＣＬＫがロウレベルの間にイネーブル信号ＥＮＢを非活性化レベルに設定する。
【０１４４】
クロックカウンタＣＬＫＣのフリップフロップ回路ＦＦは、リセット端子ＲＥＳＥＴで起動信号ＰＯＮを受け、クロック端子ＣＫでクロック信号ＣＬＫを受け、イネーブル端子ＥＮＢでイネーブル信号ＥＮＢを受ける。クロック信号ＣＬＫは、半導体装置ＳＥＭ５に供給されるシステムクロック信号でもよく、システムクロック信号に基づいて生成される他のクロック信号でもよい。また、フリップフロップ回路ＦＦは、インバータＩＶを介してスキャンクロック信号ＳＣＬＫの論理を反転した信号をデータ入力端子Ｄで受け、データ出力端子Ｑからスキャンクロック信号ＳＣＬＫを出力する。
【０１４５】
そして、フリップフロップ回路ＦＦは、起動信号ＰＯＮおよびイネーブル信号ＥＮＢが活性化レベルの場合、クロック端子ＣＫで受けるクロック信号ＣＬＫに同期して、データ出力端子Ｑからスキャンクロック信号ＳＣＬＫを生成する。また、フリップフロップ回路ＦＦは、起動信号ＰＯＮが非活性化レベルの間、スキャンクロック信号ＳＣＬＫをロウレベルに固定し、イネーブル信号ＥＮＢが非活性化レベルの間、スキャンクロック信号ＳＣＬＫの生成を停止する。
【０１４６】
クロック生成部ＣＬＫＧＥＮ３は、起動信号ＰＯＮが活性化レベルに変化した後、スキャンクロック信号ＳＣＬＫのパルス数がシフト数ＮＳＦＴと一致した場合に、スキャンクロック信号ＳＣＬＫの論理をモードビットＭＤの論理に設定する。クロック生成部ＣＬＫＧＥＮ３の動作の例は、図１７に示す。
【０１４７】
図１７は、図１６に示すクロック生成部ＣＬＫＧＥＮ３の動作の一例を示す。図１７に示す例は、メモリＭ１−Ｍ６に対応するシフトレジスタＳＲ１−ＳＲ６に、スピードレベルＳＬＶＬを示す２ビットの情報を順次に転送する場合のクロック生成部ＣＬＫＧＥＮ３の動作を示す。プログラム部３０ＣにプログラムされたスピードレベルＳＬＶＬを含む情報を６つのシフトレジスタＳＲ１−ＳＲ６に順次に転送するため、転送制御部２０Ｃが算出するシフト数ＮＳＦＴは、”１２”である。なお、モードビットＭＤが”１”（＝高速モード）の場合の動作は、プログラム部３０Ｃに図１５に示す情報がプログラムされた場合を示す。
【０１４８】
まず、イネーブル生成回路ＥＮＢＧＥＮは、起動信号ＰＯＮの活性化レベルへの変化に応答して、イネーブル信号ＥＮＢを活性化レベルに変化する（図１７（ａ）、（ｂ））。クロックカウンタＣＬＫＣは、イネーブル信号ＥＮＢの活性化期間中に、クロック信号ＣＬＫの立ち上がりエッジに同期してスキャンクロック信号ＳＣＬＫの論理を反転する（図１７（ｃ）、（ｄ））。カウンタＣＯＵＮＴは、スキャンクロック信号ＳＣＬＫのクロック数をカウントし、カウンタ値ＣＶを出力する（図１７（ｅ））。
【０１４９】
比較器ＣＭＰは、カウンタ値ＣＶがシフト数ＮＳＦＴと一致した場合、一致信号ＣＯＮを出力する（図１７（ｆ））。そして、イネーブル生成回路ＥＮＢＧＥＮは、モードビットＭＤが”１”の場合、一致信号ＣＯＮの出力に基づいて、スキャンクロック信号ＳＣＬＫがハイレベル”Ｈ”に変化した後にイネーブル信号ＥＮＢを非活性化レベルに変化させる（図１７（ｇ））。これにより、スキャンクロック信号ＳＣＬＫは、ハイレベル”Ｈ”に固定される（図１７（ｈ））。
【０１５０】
一方、イネーブル生成回路ＥＮＢＧＥＮは、モードビットＭＤが”０”の場合、一致信号ＣＯＮの出力に基づいて、スキャンクロック信号ＳＣＬＫがロウレベル”Ｌの間にイネーブル信号ＥＮＢを非活性化レベルに変化させる（図１７（ｉ））。これにより、スキャンクロック信号ＳＣＬＫは、ロウレベル”Ｌ”に固定される（図１７（ｊ））。
【０１５１】
図１８は、図１４に示すシフトレジスタＳＲ１の一例を示す。なお、他のシフトレジスタＳＲ２−ＳＲ１０は、受信するデータと、接続されるメモリＭとが異なることを除き、図１８と同じ回路構成を有する。
【０１５２】
シフトレジスタＳＲ１は、直列に接続された２つのマスタースレーブフリップフロップ回路ＭＳＦＦ１、ＭＳＦＦ２を有する。マスタースレーブフリップフロップ回路ＭＳＦＦ１は、マスタラッチ回路ＭＬＴ１とスレーブラッチ回路ＳＬＴ１とを有し、マスタースレーブフリップフロップ回路ＭＳＦＦ２は、マスタラッチ回路ＭＬＴ２とスレーブラッチ回路ＳＬＴ２とを有する。マスタラッチ回路ＭＬＴ１、ＭＬＴ２およびスレーブラッチ回路ＳＬＴ１、ＳＬＴ２は、互いに同じ回路であり、データ入力端子Ｄ、データ出力端子Ｑ、リセット端子ＲＳＴおよびクロック端子ＣＫを有する。
【０１５３】
マスタラッチ回路ＭＬＴ１、ＭＬＴ２およびスレーブラッチ回路ＳＬＴ１、ＳＬＴ２は、リセット端子ＲＳＴでリセット信号ＲＳＴが活性化レベルの場合にリセットされ、データ出力端子Ｑから”０”を出力する。マスタラッチ回路ＭＬＴ１、ＭＬＴ２は、リセット信号ＲＳＴが非活性化レベルの場合、スキャンクロック信号ＳＣＬＫに同期して動作する。スレーブラッチ回路ＳＬＴ１、ＳＬＴ２は、リセット信号ＲＳＴが非活性化レベルの場合、スキャンクロック信号ＳＣＬＫの論理をインバータＩＶで反転した信号に同期して動作する。
【０１５４】
そして、各マスタラッチ回路ＭＬＴ１、ＭＬＴ２は、スキャンクロック信号ＳＣＬＫの立ち上がりエッジに同期してデータ入力端子Ｄで受けるデータＤＴの論理をラッチし、ラッチした論理をデータ出力端子Ｑから出力する。各スレーブラッチ回路ＳＬＴ１、ＳＬＴ２は、スキャンクロック信号ＳＣＬＫの立ち下がりエッジに同期してデータ入力端子Ｄで受けるデータの論理をラッチし、ラッチした論理をデータ出力端子Ｑから出力する。スレーブラッチ回路ＳＬＴ１から出力される論理は、メモリＭ１およびマスタースレーブフリップフロップ回路ＭＳＦＦ２に供給され、スレーブラッチ回路ＳＬＴ２から出力される論理は、メモリＭ１および次段のシフトレジスタＳＲ２に供給される。
【０１５５】
図１９は、図１８に示すシフトレジスタＳＲ１の動作の一例を示す。なお、他のシフトレジスタＳＲ２−ＳＲ１０も、図１９と同様に動作する。図１９に示す例では、マスタースレーブフリップフロップ回路ＭＳＦＦ１は、スキャンクロック信号ＳＣＬＫに同期してデータＤ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５を順次にラッチし、ラッチしたデータＤ１−Ｄ５を順次に出力する。マスタースレーブフリップフロップ回路ＭＳＦＦ２は、スキャンクロック信号ＳＣＬＫに同期してデータＤ１、Ｄ２、Ｄ３、Ｄ４を順次にラッチし、ラッチしたデータＤ１−Ｄ４を順次に出力する。
【０１５６】
各スレーブラッチ回路ＳＬＴ１、ＳＬＴ２から出力されるデータは、スキャンクロック信号ＳＣＬＫの１つのクロックサイクルのロウレベル期間から次のクロックサイクルのハイレベル期間の間に変化しない。例えば、５番目のクロックサイクルのロウレベル期間”Ｌ”と６番目のクロックサイクルのハイレベル期間”Ｈ”に、スレーブラッチ回路ＳＬＴ１はデータＤ５を出力し、スレーブラッチ回路ＳＬＴ２はデータＤ４を出力する。したがって、図１７に示すように、モードビットＭＤの論理に応じて、スキャンクロック信号ＳＣＬＫの論理を変化させても、シフトレジスタＳＲに保持される論理は変化しない。この結果、モードビットＭＤの論理に応じて、スキャンクロック信号ＳＣＬＫの論理を変化させても、誤ったスピードレベルＳＬＶＬがメモリＭに設定されることを抑止することができる。さらに、スキャンチェーンＳＣＡＮＣにスピードレベルＳＬＶＬを転送した後のスキャンクロック信号ＳＣＬＫの論理を利用することで、スキャンチェーンＳＣＡＮＣを用いることなく、モードビットＭＤの論理をメモリＭに設定することができる。これにより、各シフトレジスタＳＲ１−ＳＲ１０に含まれるフリップフロップ回路ＦＦ（図３）の数を図１１に比べて削減することができ、半導体装置ＳＥＭ５の回路規模を、図１１に示す半導体装置ＳＥＭ４に比べて小さくすることができる。
【０１５７】
図２０は、図１４に示すスキャンチェーンＳＣＡＮＣに不良情報を設定する動作フローの一例を示す。図２０に示す処理は、半導体装置ＳＥＭ５の制御方法を示し、図１４に示す転送制御部２０Ｃにより実行される。図６と同一または同様の処理は、図６と同じ符号を付し、詳細な説明は省略する。転送制御部２０Ｃは、図６に示すステップＳ１０６の処理の代わりにステップＳ１０６Ｃの処理を実行する。ステップＳ１０６Ｃを除く処理は、図６と同様である。
【０１５８】
ステップＳ１０６Ｃでは、転送制御部２０Ｃは、カウンタＦＬＩＮＥの値が示すプログラム部３０Ｃの行ＦＬＩＮＥに格納された差分ＦＤＩＦおよびスピードコードＳＰＤＣ（モードビットＭＤとスピードレベルＳＬＶＬ）を読み出す。
【０１５９】
図２１は、図１４に示すスキャンチェーンＳＣＡＮＣに不良情報を設定する動作フローの一例（図２０の続き）を示す。図２１に示す処理は、半導体装置ＳＥＭ５の制御方法を示し、図１４に示す転送制御部２０Ｃにより実行される。図７と同一または同様の処理は、図７と同じ符号を付し、詳細な説明は省略する。転送制御部２０Ｃは、図７に示すステップＳ１１２、Ｓ１２０の処理の代わりにステップＳ１１２Ｃ、Ｓ１２０Ｃの処理を実行する。また、転送制御部２０Ｃは、ステップＳ１２４とステップＳ１２６の間にステップＳ１２５Ｃの処理を実行する。その他の処理は、図７と同様である。
【０１６０】
ステップＳ１１２Ｃでは、転送制御部２０Ｃは、カウンタＩＣＢの値がシフト数ＮＣＢ（＝”１”）になるまでカウンタＩＣＢをインクリメントしながら、スキャンチェーンＳＣＡＮＣにスピードレベルＳＬＶＬの論理を転送する。すなわち、転送制御部２０Ｃは、スキャンチェーンＳＣＡＮＣにスピードレベルＳＬＶＬの論理を順次に転送する動作と、カウンタＩＣＢを”１”ずつインクリメントする動作とを、カウンタＩＣＢの値がコードビット数ＮＣＢになるまで繰り返す。
【０１６１】
ステップＳ１２０Ｃでは、転送制御部２０Ｃは、カウンタＩＣＢの値がシフト数ＮＣＢ（＝”１”）になるまでカウンタＩＣＢをインクリメントしながら、スキャンチェーンＳＣＡＮＣに”０”を転送する。すなわち、転送制御部２０Ｃは、スキャンチェーンＳＣＡＮＣに”０”を順次に転送する動作と、カウンタＩＣＢを”１”ずつインクリメントする動作とを、カウンタＩＣＢの値がコードビット数ＮＣＢになるまで繰り返す。そして、カウンタＩＲＡＭの値が”０”になるまで、ステップＳ１１４、Ｓ１１６、Ｓ１２０Ｃの処理が繰り返される。これにより、動作モードＳＰＤを変更する一対のメモリ（図１３のＭ２、Ｍ６等）の間の動作モードＳＰＤを変更しないメモリ（図１３のメモリＭ３−Ｍ５等）に対応するシフトレジスタＳＲに”標準”を示す値が設定される。
【０１６２】
ステップＳ１２５Ｃでは、転送制御部２０Ｃは、図１７に示すように、モードビットＭＤの論理に基づいて、スキャンクロック信号ＳＣＬＫをハイレベル”Ｈ”またはロウレベル”Ｌ”に設定する。
【０１６３】
図２２は、図１４に示すスキャンチェーンＳＣＡＮＣに不良情報を設定する動作の一例を示す。図２２は、図１５に示すプログラム部３０Ｃに格納されたスピードレベルＳＬＶＬをスキャンチェーンＳＣＡＮＣに転送する場合の転送制御部２０ＣおよびスキャンチェーンＳＣＡＮＣの動作を示す。図８と同一または同様の動作については、詳細な説明は省略する。図８と同様に、下線を付けた数字は、値が変化したことを示し、シフトレジスタＳＲ１−ＳＲ１０に設定されたスピードレベルＳＬＶＬの値は、太枠で示す。
【０１６４】
転送制御部２０Ｃの動作は、不良情報の代わりにスピードレベルＳＬＶＬがスキャンチェーンＳＣＡＮＣに転送されること、および転送後にスキャンクロック信号ＳＣＬＫの論理がモードビットＭＢの論理に固定されることを除き、図８に示す動作と同様である。
【０１６５】
転送制御部２０Ｃは、プログラム部３０Ｃから読み出した差分ＦＤＩＦが”０”を示すことに基づいて、スピードレベルＳＬＶＬのスキャンチェーンＳＣＡＮＣへの転送の完了を判断する（図２２（ａ））。そして、転送制御部２０Ｃは、スキャンクロック信号ＳＣＬＫの論理を、プログラム部３０Ｃから最後に読み出される有効なスピードコードＳＰＤＣに含まれるモードビットＭＤの論理に固定する（図２２（ｂ））。図２２に示す例では、最後に読み出される有効なモードビットＭＤの論理は”１”であるため、スキャンクロック信号ＳＣＬＫはハイレベル”Ｈ”に固定される。
【０１６６】
以上、図１４から図２２に示す実施形態においても、図１から図１３に示す実施形態と同様に、半導体装置ＳＥＭ５の回路規模を増大させることなく、シフトレジスタＳＲにスピードレベルＳＬＶＬを設定する時間を短縮することができる。
【０１６７】
さらに、図１４から図２２に示す実施形態では、モードビットＭＤの論理を、シフトレジスタＳＲを介することなく、スキャンクロック信号ＳＣＬＫの論理を利用してメモリＭに供給する。このため、各シフトレジスタＳＲのフリップフロップ回路の数を少なくすることができ、スキャンチェーンＳＣＡＮＣへのスピードコードＳＰＤＣの設定時間を図１１に示す半導体装置ＳＥＭ４に比べて短縮することができる。この結果、半導体装置ＳＥＭ５の回路規模を増大させることなく、半導体装置ＳＥＭ５の起動時間を図１１に示す半導体装置ＳＥＭ４に比べて短縮することができる。
【０１６８】
なお、図１１から図２２に示す実施形態では、各メモリＭ内の制御回路の動作タイミングが、各メモリＭの試験結果に基づいて調整される例が示されるが、各メモリＭ内の制御回路の動作電圧が、各メモリＭの試験結果に基づいて調整されてもよい。すなわち、制御回路の動作タイミングは、動作電圧に基づいて調整されてもよい。あるいは、各メモリＭ内の制御回路に供給される内部電源電圧が、各メモリＭの試験結果（内部電源電圧のマージン）に基づいて調整されてもよい。
【０１６９】
制御回路の動作電圧または内部電源電圧が調整される場合、シフトレジスタＳＲ１−ＳＲ１０は、電圧マージンが小さいメモリＭに対応する順に転送制御部に接続される。シフトレジスタＳＲ１−ＳＲ１０には、各メモリＭ内で生成される複数の電圧のいずれかを選択するための選択情報が保持される。例えば、図１１に示すメモリＭ１−Ｍ１０において、番号が小さいメモリＭは、番号が大きいメモリＭに比べて電圧マージンが小さい（厳しい）。
【０１７０】
さらに、図２から図２２に示す実施形態では、メモリＭ１−Ｍ１０の不良が救済される例、またはメモリＭ１−Ｍ１０内の制御回路の動作タイミングが調整される例について述べた。しかしながら、図２から図２２に示す実施形態は、半導体装置に搭載されるメモリＭ以外の周辺回路等の回路ブロックの不良を救済するために利用されてもよく、あるいは回路ブロックの動作タイミング（または動作電圧）を調整するために利用されてもよい。
【０１７１】
図２３は、半導体装置内の各回路ブロックに搭載され、回路ブロックで使用する電圧を調整する調整回路ＡＤＪ２の一例を示す。調整回路ＡＤＪ２は、制御回路を動作させる内部電圧ＶＩ（ＶＩ１、ＶＩ２、ＶＩ３、ＶＩ４、ＶＩ５）を生成する複数の電圧生成回路ＶＧＥＮ（ＶＧＥＮ１、ＶＧＥＮ２、ＶＧＥＮ３、ＶＧＥＮ４、ＶＧＥＮ５）と、選択部ＳＥＬとを有する。内部電圧ＶＩ１、ＶＩ２、ＶＩ３、ＶＩ４、ＶＩ５は、ＶＩ１、ＶＩ２、ＶＩ３、ＶＩ４、ＶＩ５の順で徐々に高くなる（ＶＩ１＜ＶＩ２＜ＶＩ３＜ＶＩ４＜ＶＩ５）。例えば、内部電圧ＶＩ３は、標準値（デフォルト値）である。例えば、回路ブロックは、図１１等に示すメモリＭ１−Ｍ１０であり、電圧生成回路ＶＧＥＮ１−ＶＧＥＮ５を含む回路は、メモリＭ１−Ｍ１０の各々に含まれる内部回路の一例である。内部電圧ＶＩは、図４に示すワード線ＷＬの活性化レベルの電圧に使用され、あるいは、内部電圧ＶＩは、図４に示すメモリセルアレイＡＲＹの基板電圧に使用される。
【０１７２】
選択部ＳＥＬは、制御回路の動作仕様を示す電圧コードＶＣに基づいて内部電圧ＶＩ１−ＶＩ５のいずれかを選択し、選択した内部電圧ＶＩとしてワード線駆動回路またはメモリセルアレイＡＲＹの基板に基板電圧を供給する供給回路等の制御回路に出力する。すなわち、選択部ＳＥＬは、内部電圧ＶＩ１−ＶＩ５を出力する電圧生成回路ＶＧＥＮ１−ＶＧＥＮ５のいずれかを電圧コードＶＣに基づいて選択する。図１１に示すプログラム部３０Ｂ等には、内部電圧ＶＩを標準の内部電圧ＶＩ３から変更するメモリＭに設定するための電圧コードＶＣと、差分ＦＤＩＦとがプログラムされる。そして、シフトレジスタＳＲ１−ＳＲ１０は、電圧マージンが小さいメモリＭ１−Ｍ１０に対応する順に転送制御部２０に接続される。
【０１７３】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１７４】
１０…動作制御部；１２…電源制御部；２０、２０Ａ、２０Ｃ…転送制御部；３０、３０Ａ、３０Ｂ、３０Ｃ…プログラム部；ＡＣＮＴ…調整制御信号；ＡＤＥＣ…アドレスデコーダ；ＡＤＪ１、ＡＤＪ２…調整回路；ＡＲＹ…メモリセルアレイ；ＣＢＬＫ（ＣＢＬＫ１−ＣＢＬＫ４）…回路ブロック；ＣＤ…不良コード；ＣＬＫＣ…クロックカウンタ；ＣＬＫＧＥＮ１、ＣＬＫＧＥＮ２、ＣＬＫＧＥＮ３…クロック生成部；ＣＭＰ…比較器；ＣＮＴ…制御信号；ＣＮＴＬ…制御部；ＣＯＵＮＴ…カウンタ；ＤＬＹ（ＤＬＹ１−ＤＬＹ７）…遅延回路；ＤＴ…データ；ＥＮＢ…イネーブル信号；ＥＮＢＧＥＮ…イネーブル生成回路；ＦＤＩＦ…差分；ＦＦ…フリップフロップ回路；ＦＬＩＮＥ、ＦＬＩＮＥ１、ＦＬＩＮＥ２…カウンタ；ＨＬＤ（ＨＬＤ１−ＨＬＤ４）…保持部；ＩＣ（ＩＣ１、ＩＣ２）…内部回路；ＩＣＢ、ＩＣＢ１、ＩＣＢ２…カウンタ；ＩＯ（ＩＯ０−ＩＯ６３）…データ入出力端子；ＩＲＡＭ、ＩＲＡＭ１、ＩＲＡＭ２…カウンタ；ＩＶ…インバータ；ＩＶＤＤ…電源電圧；Ｍ（Ｍ１−Ｍ１０）…メモリ；ＭＣ（ＭＣ０−ＭＣ６３）…メモリセル部；ＭＤ…モードビット；ＭＥＭ…記憶部；ＭＬＴ１、ＭＬＴ２…マスタラッチ回路；ＭＳＦＦ１、ＭＳＦＦ２…マスタースレーブフリップフロップ回路；ＮＣＢ…コードビット数；ＮＳＦＴ…シフト数；ＯＰＥ…動作イネーブル信号；ＰＧＭ…プログラム信号；ＰＯＮ…起動信号；ＲＥＮ…冗長イネーブルビット；ＲＭＣ…冗長メモリセル部；ＲＳＴ…リセット信号；ＲＳＴＧＥＮ１、ＲＳＴＧＥＮ２…リセット生成部；ＲＳＷ…冗長切り替えスイッチ；ＳＣＡＮＣ、ＳＣＡＮＣ１、ＳＣＡＮＣ２…スキャンチェーン；ＳＣＬＫ…スキャンクロック信号；ＳＥＬ（ＳＥＬ１、ＳＥＬ２、ＳＥＬ３、ＳＥＬ４）…選択部；ＳＥＭ１、ＳＥＭ２、ＳＥＭ３、ＳＥＭ４、ＳＥＭ５…半導体装置；ＳＩ１、ＳＩ２…選択情報；ＳＩＮＩＴ…選択情報；ＳＬＴ１、ＳＬＴ２…スレーブラッチ回路；ＳＬＶＬ…スピードレベル；ＳＰＤ…動作モード；ＳＰＤＣ…スピードコード；ＳＲ（ＳＲ１−ＳＲ１０）…シフトレジスタ；ＶＣ…電圧コード；ＶＩ１、ＶＩ２、ＶＩ３、ＶＩ４、ＶＩ５…内部電圧；ＶＧＥＮ（ＶＧＥＮ１−ＶＧＥＮ５）…電圧生成回路；ＷＬ（ＷＬ０−ＷＬ４）…ワード線
【図１】
0006540173.tif 000002
【図２】
0006540173.tif 000003
【図３】
0006540173.tif 000004
【図４】
0006540173.tif 000005
【図５】
0006540173.tif 000006
【図６】
0006540173.tif 000007
【図７】
0006540173.tif 000008
【図８】
0006540173.tif 000009
【図９】
0006540173.tif 000010
【図１０】
0006540173.tif 000011
【図１１】
0006540173.tif 000012
【図１２】
0006540173.tif 000013
【図１３】
0006540173.tif 000014
【図１４】
0006540173.tif 000015
【図１５】
0006540173.tif 000016
【図１６】
0006540173.tif 000017
【図１７】
0006540173.tif 000018
【図１８】
0006540173.tif 000019
【図１９】
0006540173.tif 000020
【図２０】
0006540173.tif 000021
【図２１】
0006540173.tif 000022
【図２２】
0006540173.tif 000023
【図２３】
0006540173.tif 000024