(57)【要約】【課題】故障したフリップフロップに代えて冗長フリップフロップを用いることで装置が不良となることを防止する。【解決手段】入出力経路中には、フリップフロップ（ＦＦ）Ｆ１１，Ｆ１２の他に冗長ＦＦ  ＦＲ１１も配置される。ＭＵＸＭ２１〜Ｍ２３は、入力端子Ｉ０，Ｉ１の入力データをＦＦ  Ｆ１１，Ｆ１２，ＦＲ１１のいずれに供給するかを選択し、ＭＵＸＭ５，Ｍ６はＦＦ  Ｆ１１，Ｆ１２，ＦＲ１１のいずれの出力を出力端子Ｏ０，Ｏ１に供給するかを選択する。これにより、故障ＦＦに代えて冗長ＦＦ  ＦＲ１１を用いることができる。ＭＵＸＭ１１〜Ｍ１３はテストモード時にスキャン経路を構成する。ＭＵＸＭ２４，Ｍ２５は、スキャン経路中に配置されて、前段のＦＦ  Ｆ１１，Ｆ１２，ＦＲ１１の出力をスキップさせるか否かを決定する。これにより、任意のＦＦ  Ｆ１１，Ｆ１２，ＦＲ１１を経由するスキャン経路を構成でき、ＦＦ毎の故障診断が可能である。【選択図】      図４
2007096918.tif 000002
【特許請求の範囲】
【請求項１】
複数のフリップフロップと、
１つ以上の冗長フリップフロップと、
複数の入力端子と前記複数のフリップフロップ及び前記１つ以上の冗長フリップフロップの入力端との間の経路を選択する複数の第１の選択手段と、
複数の出力端子と前記複数のフリップフロップ及び前記１つ以上の冗長フリップフロップの出力端との間の経路を選択する複数の第２の選択手段と、
前記第１及び第２の選択手段の経路の選択を制御する選択制御手段と、
を具備したことを特徴とする半導体集積回路装置。
【請求項２】
フリップフロップと経路切換素子とによって構成される複数段のスキャンフリップフロップと、
フリップフロップと経路切換素子とによって構成される１段以上の冗長スキャンフリップフロップと、
複数の入力端子と前記複数段のスキャンフリップフロップ及び前記１段以上の冗長スキャンフリップフロップの経路切換素子の入力端との間の経路を選択する複数の第１の選択手段と、
複数の出力端子と前記複数段のスキャンフリップフロップ及び前記１段以上の冗長スキャンフリップフロップの出力端との間の経路を選択する複数の第２の選択手段と、
前記スキャンフリップフロップ及び冗長スキャンフリップフロップの出力端と次段のスキャンフリップフロップ又は冗長スキャンフリップフロップの経路切換素子の入力端とを接続するための経路を含むスキャン経路と、
前記スキャン経路途中に設けられ、前段のスキャンフリップフロップ又は冗長スキャンフロップ中のフリップフロップの出力と経路切換素子の出力との一方を選択して前記第１の選択手段に与える複数の第３の選択手段と、
前記第１乃至第３の選択手段の経路の選択を制御する選択制御手段と、
を具備したことを特徴とする半導体集積回路装置。
【請求項３】
前記選択制御手段は、不揮発性素子によって構成されることを特徴とする請求項１又は２のいずれか一方に記載の半導体集積回路装置。
【請求項４】
前記選択制御手段は、不揮発性素子によって構成され、
テストモード時に、前記第２及び第３の選択手段の経路の選択を制御して所定のスキャン経路を構成し、前記スキャン経路のスキャン入力端子に所定の論理値を与えて前記スキャン経路のスキャン出力端子の出力に基づいて、前記複数段のスキャンフリップフロップ及び１段以上の冗長スキャンフリップフロップのいずれに故障が生じているかを検出し、検出結果に基づいて前記不揮発性素子に情報を書き込む制御手段を更に具備したことを特徴とする請求項２に記載の半導体集積回路装置。
【請求項５】
前記制御手段は、テストモード時に、
前記第２及び第３の選択手段の経路の選択を制御して、前記スキャンフリップフロップ及び冗長スキャンフリップフロップの全てに所定の論理値を一括して供給する手段と、
前記第２及び第３の選択手段の経路の選択を制御して、前記スキャンフリップフロップ及び冗長スキャンフリップフロップの出力を次段の前記スキャンフリップフロップ又は冗長スキャンフリップフロップを経由させてスキャン出力端子から出力させる手段と、を具備したことを特徴とする請求項４に記載の半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フリップフロップの救済回路として好適な半導体集積回路装置に関する。
【背景技術】
【０００２】
従来、大規模集積回路（ＬＳＩ）には多数のフリップフロップ回路が構成されている。例えば、ランダムロジック内においてフリップフロップの占める割合は、ゲート規模としては数％から１０％程度を占める。セル単体の面積・素子数・ネット数としてはプリミティブセルの中でも特に大きく、ランダムロジック部の不良のうちフリップフロップに起因するものは１０％〜３０％を占めるものと推測される。
【０００３】
なお、特許文献１においては、フリップフロップのデータラッチタイミングをクロック半周期分遅らせることによって、ＬＳＩの誤動作を防止し、論理ＬＳＩを救済する技術が開示されている。即ち、特許文献１では、フリップフロップ回路セル内に、インバータと、救済データを記憶するラッチ回路と、ラッチ回路の出力を選択するためのセレクタを備える。セレクタが選択した救済データをフリップフロップのクロックパルスとすることで、論理回路の誤動作を防止するのである。
【０００４】
しかしながら、特許文献１の装置においても、フリップフロップそのもののが故障した場合には、論理回路の誤動作は避けられない。
【特許文献１】特開平１０−２４２８４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、故障したフリップフロップを冗長フリップフロップに置き換えることができる半導体集積回路装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様の半導体集積回路装置は、複数のフリップフロップと、１つ以上の冗長フリップフロップと、複数の入力端子と前記複数のフリップフロップ及び前記１つ以上の冗長フリップフロップの入力端との間の経路を選択する複数の第１の選択手段と、複数の出力端子と前記複数のフリップフロップ及び前記１つ以上の冗長フリップフロップの出力端との間の経路を選択する複数の第２の選択手段と、前記第１及び第２の選択手段の経路の選択を制御する選択制御手段と、を具備したことを特徴とする。
【０００７】
また、本発明の一態様の半導体集積回路装置は、フリップフロップと経路切換素子とによって構成される複数段のスキャンフリップフロップと、フリップフロップと経路切換素子とによって構成される１段以上の冗長スキャンフリップフロップと、複数の入力端子と前記複数段のスキャンフリップフロップ及び前記１段以上の冗長スキャンフリップフロップの経路切換素子の入力端との間の経路を選択する複数の第１の選択手段と、複数の出力端子と前記複数段のスキャンフリップフロップ及び前記１段以上の冗長スキャンフリップフロップの出力端との間の経路を選択する複数の第２の選択手段と、前記スキャンフリップフロップ及び冗長スキャンフリップフロップの出力端と次段のスキャンフリップフロップ又は冗長スキャンフリップフロップの経路切換素子の入力端とを接続するための経路を含むスキャン経路と、前記スキャン経路途中に設けられ、前段のスキャンフリップフロップ又は冗長スキャンフロップ中のフリップフロップの出力と経路切換素子の出力との一方を選択して前記第１の選択手段に与える複数の第３の選択手段と、前記第１乃至第３の選択手段の経路の選択を制御する選択制御手段と、を具備したことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、故障したフリップフロップを冗長フリップフロップに置き換えることができるという効果を有する。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して本発明の実施の形態について詳細に説明する。図１乃至図３は本発明の第１の実施の形態に係り、図１は本実施の形態において採用する基本回路を示す回路図であり、図２はその動作を説明するためのタイミングチャートである。また、図３は第１の実施の形態に係る半導体集積回路装置を示す回路図であり、図１の基本回路を用いた応用回路を示している。
【００１０】
図１はフリップフロップ救済回路の基本回路を示している。図１の回路は例えば半導体集積回路装置内に組み込まれるものであり、順序回路を構成するフリップフロップに代えて用いるものである。
【００１１】
図１において、入力端子１０と出力端子１４との間に、フリップフロップ１１が設けられる。フリップフロップ１１は、データ端Ｄに入力端子１０からのデータＤが入力され、クロック端に入力されるクロックＣＬＫのタイミングで出力端ＱからデータＤを出力する。
【００１２】
図２はデータＤとしてクロックＣＬＫの１周期で論理値が“０”又は“１”に切り替わる信号が入力された場合の例を示している。図２（ａ）に示すように、フリップフロップ１１はクロックＣＬＫの立ち上がりタイミングで、データＤを出力端Ｑから出力する。
【００１３】
図１のフリップフロップ救済回路においては、フリップフロップ１１の出力をマルチプレクサ（ＭＵＸ）１３を介して出力端子１４に出力するようになっている。ＭＵＸ１３は、制御端に入力される切換情報に基づいて、複数の入力の１つを選択して出力する。ＭＵＸ１３には、フリップフロップ１１の外に冗長フリップフロップ１２の出力も入力される。
【００１４】
図１のフリップフロップ救済回路においては、フリップフロップ１１の故障に備えて、冗長フリップフロップ１２が設けられている。冗長フリップフロップ１２は、フリップフロップ１１と同一構成である。即ち、冗長フリップフロップ１２は、データ端Ｄに入力端子１０からのデータＤが入力され、クロックＣＬＫに同期してデータＤを出力端Ｑから出力する。
【００１５】
ＭＵＸ１３は、フリップフロップ１１に故障が生じていない場合には、フリップフロップ１１の出力を選択して出力端子１４に供給する。また、ＭＵＸ１３は、フリップフロップ１１に故障が生じた場合には、切換情報に基づいて、冗長フリップフロップ１２の出力を選択して出力端子１４に供給する。なお、図１のＭＵＸ１３中の矢印は、ＭＵＸ１３が冗長フリップフロップ１２の出力を選択した様子を示している。
【００１６】
不揮発性素子１５はフリップフロップ１１に故障が生じているか否かの情報を記憶している。不揮発性素子１５は、フリップフロップ１１が故障していない場合には、ＭＵＸ１３にフリップフロップ１１を選択させるための切換情報を出力し、フリップフロップ１１が故障している場合には、ＭＵＸ１３に冗長フリップフロップ１２を選択させるための切換情報を出力する。
【００１７】
なお、不揮発性素子１５は、Ｆｕｓｅ，ＥＦｕｓｅ、ＥＥＰＲＯＭ等の不揮発性の記憶素子によって構成することができる。
【００１８】
このような構成において、フリップフロップ１１に故障が生じるものとする。この場合には、フリップフロップ１１の出力端のＱ出力は、図２（ｂ）に示すものとなる。フリップフロップ１１では、入力データＤを出力端１４に伝送することはできない。この場合には、不揮発性素子１５において、フリップフロップ１１が故障したことを示す情報を記憶させると共に、不揮発性素子１５から冗長フリップフロップ１２の出力を用いるための切換情報を出力させる。
【００１９】
これにより、ＭＵＸ１３は冗長フリップフロップ１２の出力を選択する。そうすると、入力端１０からのデータは、クロックＣＬＫに同期して、冗長フリップフロップ１２から出力される。冗長フリップフロップ１２のＱ出力は、ＭＵＸ１３を介して出力端１４から出力される。
【００２０】
このように、図１のフリップフロップ救済回路を用いることで、フリップフロップ１１に故障が生じた場合には、入出力経路を冗長フリップフロップ１２側に切換えることができ、入力端Ｄを介して入力されたデータＤを、クロックＣＬＫに同期して、出力端子１４から確実に出力させることが可能である。
【００２１】
図３は第１の実施の形態に係り、フリップフロップ救済回路に適用した例を示している。図１の例では１つのフリップフロップに対して１つの冗長フリップフロップを設けた例を示した。これに対し、図３の実施の形態は、複数のフリップフロップに対して１つの冗長フリップフロップを設ける例を示している。
【００２２】
図３では３入力３出力の例を示している。入力端子Ｉ０〜Ｉ２には夫々データＤ０〜Ｄ２が入力される。これらのデータＤ０〜Ｄ２は出力端子Ｏ０〜Ｏ２から出力される。データＤ０〜Ｄ２を入力端子Ｉ０〜Ｉ２から出力端子Ｏ０〜Ｏ２に転送するために、３つのフリップフロップＦ０〜Ｆ２と１つの冗長フリップフロップＦＲ１とを採用している。
【００２３】
フリップフロップＦ０〜Ｆ２及び冗長フリップフロップＦＲ１の入力端Ｄは、夫々ＭＵＸＭ１〜Ｍ４の出力端に接続される。ＭＵＸＭ１〜Ｍ４は、夫々切換情報Ｓ０〜Ｓ３が与えられ、各切換情報Ｓ０〜Ｓ３に基づいて、夫々各入力端ａ，ｂの一方を選択してその入力データを出力端から出力する。
【００２４】
ＭＵＸＭ１の入力端ｂとＭＵＸＭ２の入力端ａは、入力端子Ｉ０に接続される。ＭＵＸＭ２の入力端ｂとＭＵＸＭ３の入力端ａは、入力端子Ｉ１に接続される。また、ＭＵＸＭ３の入力端ｂとＭＵＸＭ４の入力端ａは、入力端子Ｉ２に接続される。ＭＵＸＭ１の入力端ａ及びＭＵＸＭ４の入力端ｂには、論理値“０”が供給される。
【００２５】
出力端子Ｏ０〜Ｏ２は、夫々ＭＵＸＭ５〜ＭＵＸＭ７の出力端が接続される。ＭＵＸＭ５〜Ｍ７は、夫々切換情報/Ｓ０〜/Ｓ２が与えられ、各切換情報/Ｓ０〜/Ｓ２に基づいて、夫々各入力端ａ，ｂの一方を選択して出力端から出力する。なお、切換情報/Ｓ０〜/Ｓ２は、夫々切換情報切換情報Ｓ０〜Ｓ２の反転信号である。
【００２６】
ＭＵＸＭ５の入力端ａは、フリップフロップＦ０の出力端Ｑに接続される。ＭＵＸＭ５の入力端ｂとＭＵＸＭ６の入力端ａは、フリップフロップＦ１の出力端Ｑに接続される。ＭＵＸＭ６の入力端ｂとＭＵＸＭ７の入力端ａは、フリップフロップＦ２の出力端Ｑに接続される。ＭＵＸＭ７の入力端ｂは、冗長フリップフロップＦＲ１の出力端Ｑに接続される。
【００２７】
なお、ＭＵＸＭ１〜Ｍ７は、図１の不揮発性素子１５と同様の不揮発性素子（図示省略）からの切換情報によって切換制御される。
【００２８】
次に、このように構成された実施の形態の動作について表１を参照して説明する。下記表１はＭＵＸＭ１〜Ｍ７の切換え動作を示しており、表中のａ，ｂは、各ＭＵＸＭ１〜Ｍ７が選択する入力端を示している。
【００２９】
表１
┌────┬───┬───┬───┬───┬───┬───┬───┐
│        │  S0  │  /S0 │   S1 │  /S1 │   S2 │  /S2 │   S3 │
│        │ (M1) │ (M5) │  (M2)│ (M6) │  (M3)│ (M7) │  (M4)│
├────┼───┼───┼───┼───┼───┼───┼───┤
│不良無し│  ａ  │  ａ  │  ｂ  │  ａ  │  ｂ  │  ａ  │  ｂ  │
├────┼───┼───┼───┼───┼───┼───┼───┤
│F0 不良 │  ａ  │  ｂ  │  ａ  │  ｂ  │  ａ  │  ｂ  │  ａ  │
├────┼───┼───┼───┼───┼───┼───┼───┤
│F1 不良 │  ｂ  │  ａ  │  ａ  │  ｂ  │  ａ  │  ｂ  │  ａ  │
├────┼───┼───┼───┼───┼───┼───┼───┤
│F2 不良 │  ｂ  │  ａ  │  ｂ  │  ａ  │  ａ  │  ｂ  │  ａ  │
└────┴───┴───┴───┴───┴───┴───┴───┘
上記表１に示すように、フリップフロップＦ０〜Ｆ２に不良が生じていない場合には、切換情報Ｓ０〜Ｓ３，/Ｓ０〜/Ｓ２によって、ＭＵＸＭ１〜Ｍ４は入力端ｂを選択し、ＭＵＸＭ５〜Ｍ７は入力端ａを選択する。
【００３０】
これにより、入力端子Ｉ０〜Ｉ２を介して入力されたデータＤ０〜Ｄ２は、夫々ＭＵＸＭ１〜Ｍ３を介してフリップフロップＦ０〜Ｆ２のデータ端Ｄに入力される。これらのデータ（Ｑ０〜Ｑ２）は、クロックＣＬＫに同期して、夫々フリップフロップＦ０〜Ｆ２の出力端ＱからＭＵＸＭ５〜Ｍ７を介して出力端子Ｏ０〜Ｏ２に出力される。
【００３１】
ここで、フリップフロップＦ０に不良が生じているものとする。この場合には、表１に示すように、切換情報Ｓ０〜Ｓ３，/Ｓ０〜/Ｓ２によって、ＭＵＸＭ１〜Ｍ４は入力端ａを選択し、ＭＵＸＭ５〜Ｍ７は入力端ｂを選択する。図３のＭＵＸＭ１〜Ｍ７中の矢印はこの状態を示している。この場合には、入力端子Ｉ０〜Ｉ２を介して入力されたデータＤ０〜Ｄ２は、夫々ＭＵＸＭ２〜Ｍ４を介してフリップフロップＦ１，Ｆ２及び冗長フリップフロップＦＲ１のデータ端Ｄに入力される。これらのデータは、クロックＣＬＫに同期して、夫々フリップフロップＦ１，Ｆ２及び冗長フリップフロップＦＲ１の出力端ＱからＭＵＸＭ５〜Ｍ７を介して出力端子Ｏ０〜Ｏ２に出力される。
【００３２】
こうして、例えフリップフロップＦ０に故障が生じたとしても、入力端子Ｉ０〜Ｉ２に入力されたデータを確実に出力端子Ｏ０〜Ｏ２に出力することができる。
【００３３】
また、フリップフロップＦ１に不良が生じた場合には、表１に示すように、切換情報Ｓ０〜Ｓ３によって、ＭＵＸＭ１は入力端ｂを選択し、ＭＵＸＭ２〜Ｍ４は入力端ａを選択する。これにより、入力データＤ０〜Ｄ２は夫々フリップフロップＦ０，Ｆ２及び冗長フリップフロップＦＲ１に与えられる。また、切換情報/Ｓ０〜/Ｓ２によって、ＭＵＸＭ５は入力端ａを選択し、ＭＵＸＭ６，Ｍ７は入力端ｂを選択する。これにより、フリップフロップＦ０，Ｆ２及び冗長フリップフロップＦＲ１の出力は、夫々ＭＵＸＭ５〜Ｍ７を介して出力端子Ｏ０〜Ｏ２に出力される。
【００３４】
こうして、例えフリップフロップＦ１に故障が生じたとしても、入力端子Ｉ０〜Ｉ２に入力されたデータを確実に出力端子Ｏ０〜Ｏ２に出力することができる。
【００３５】
また、同様に、フリップフロップＦ２に不良が生じた場合には、表１に示すように、切換情報Ｓ０〜Ｓ３によって、ＭＵＸＭ１，Ｍ２は入力端ｂを選択し、ＭＵＸＭ３，Ｍ４は入力端ａを選択する。これにより、入力データＤ０〜Ｄ２は夫々フリップフロップＦ０，Ｆ１及び冗長フリップフロップＦＲ１に与えられる。また、切換情報/Ｓ０〜/Ｓ２によって、ＭＵＸＭ５，Ｍ６は入力端ａを選択し、ＭＵＸＭＭ７は入力端ｂを選択する。これにより、フリップフロップＦ０，Ｆ１及び冗長フリップフロップＦＲ１の出力は、夫々ＭＵＸＭ５〜Ｍ７を介して出力端子Ｏ０〜Ｏ２に出力される。
【００３６】
こうして、例えフリップフロップＦ２に故障が生じたとしても、入力端子Ｉ０〜Ｉ２に入力されたデータを確実に出力端子Ｏ０〜Ｏ２に出力することができる。
【００３７】
このように、本実施の形態では、３つのフリップフロップのいずれか１つに故障が生じた場合でも、入出力経路を冗長フリップフロップ側に切換えることで、３入力を確実に出力端子から出力させることができる。
【００３８】
なお、本実施の形態において、フリップフロップの故障数が増えた場合でも、冗長フリップフロップの数を増やすことで、データの救済が可能であることは明らかである。
【００３９】
ところで、集積回路内のフリップフロップの故障及びフリップフロップを含む論理回路の故障を診断するために、スキャンフリップフロップを用いる方法がある。スキャンフリップフロップは、マルチプレクサ（ＭＵＸ）とフリップフロップとによって構成されており、スキャンフリップフロップ同士はテストモード用のスキャンパスを介して縦続接続されている。通常の動作時には、ＭＵＸが入力端子からのデータを選択し、フリップフロップの出力を出力端子に出力する。これに対し、テストモード（診断）時には、ＭＵＸは前段のスキャンフリップフロップの出力を選択して、フリップフロップの出力を次段のスキャンフリップフロップに出力する。スキャンパスにテストパターンを入力し、その出力を観察することで、スキャンフリップフロップや論理回路の故障を診断することができる。
【００４０】
しかしながら、フリップフロップと論理回路の両方を診断するテストパターンを用いた場合には、フリップフロップ単体の故障を検出することは極めて困難である。また、フリップフロップの故障診断を行うテストパターンを用いた場合でも、全フリップフロップ中のいずれのフリップフロップが故障したかを判定することは、極めて困難である。
【００４１】
そこで、本発明の第２の実施の形態においては、故障しているフリップフロップを特定すると共に、故障したフリップフロップに代えて冗長フリップフロップを利用することで、回路の不良の発生を防止する。
【００４２】
図４は本発明の第２の実施の形態に係る半導体集積回路装置を示す回路図であり、故障の検出及び救済を可能にしたフリップフロップ救済回路に適用した例を示すものである。また、図５は図４のフリップフロップ救済回路を含む論理回路部を有するＬＳＩの構成を示すブロック図である。
【００４３】
図５において、ＬＳＩ２５には論理回路部２６が設けられている。論理回路部２６は、図４のフリップフロップ救済回路を含み、所定の論理演算を行う。制御部２７は論理回路部２６に後述するテスト信号ＳＣＡＮ  ＩＮ、切換情報ＳＣＡＮ及び他の切換情報を与えると共に、テスト結果である出力ＳＣＡＮ  ＯＵＴを取り込んで、故障したフリップフロップを特定する。更に、制御部２７は、故障の診断結果に基づく情報を不揮発性素子１５に書き込む。不揮発性素子１５の記憶内容は、通常モード時において、切換情報として論理回路部２６に供給されるようになっている。
【００４４】
なお、図５の例では、制御部２７をＬＳＩ２５に内蔵させたが、制御部２７と同様の機能をＬＳＩ２５の外部のテスタ等によって実現することができ、制御部２７を内蔵しない構成を採用してもよい。
【００４５】
図４は２入力２出力の例を示している。入力端子Ｉ０，Ｉ１には夫々データＤ０，Ｄ１が入力される。これらのデータＤ０，Ｄ１は出力端子Ｏ０，Ｏ１から出力される。データＤ０，Ｄ１を入力端子Ｉ０，Ｉ１から出力端子Ｏ０，Ｏ１に転送するために、２つのフリップフロップＦ１１〜Ｆ１２と１つの冗長フリップフロップＦＲ１１とを採用している。
【００４６】
また、フリップフロップＦ１１〜Ｆ１２及び冗長フリップフロップＦＲ１１は、夫々マルチプレクサ（ＭＵＸ）Ｍ１１〜Ｍ１３と組み合わせて、スキャンフリップフロップ２１を構成する。各スキャンフリップフロップ２１は、相互に同一構成であり、入力段のＭＵＸが入力端ａ，ｂの一方の入力を選択して、フリップフロップのデータ端Ｄに与え、フリップフロップの出力端ＱからＱ出力を出力するようになっている。なお、ＭＵＸＭ１１〜Ｍ１３は、制御部２７からの切換情報ＳＣＡＮによって選択動作が制御される。
【００４７】
フリップフロップＦ１１，Ｆ１２及び冗長フリップフロップＦＲ１１に夫々接続されたＭＵＸＭ１１〜Ｍ１３は、テストモード時には入力端ａを選択し、通常モード時には入力端ｂを選択する。
【００４８】
ＭＵＸ１１〜Ｍ１３の入力端ｂにはＭＵＸＭ２１〜Ｍ２３の出力が与えられる。ＭＵＸＭ２１〜Ｍ２３は、図３のＭＵＸＭ１〜Ｍ３と同様の構成であり、夫々切換情報Ｓ０〜Ｓ２が与えられ、各切換情報Ｓ０〜Ｓ２に基づいて、夫々各入力端ａ，ｂの一方を選択してその入力データを出力端から出力する。
【００４９】
ＭＵＸＭ２１の入力端ｂとＭＵＸＭ２２の入力端ａは、入力端子Ｉ０に接続される。ＭＵＸＭ２２の入力端ｂとＭＵＸＭ２３の入力端ａは、入力端子Ｉ１に接続される。ＭＵＸＭ２１の入力端ａ及びＭＵＸＭ２３の入力端ｂには、論理値“０”が供給される。
【００５０】
出力端子Ｏ０，Ｏ１は、夫々ＭＵＸＭ５，ＭＵＸＭ６の出力端が接続される。ＭＵＸＭ５，Ｍ６は、図３の例と同様に、夫々切換情報/Ｓ０，/Ｓ１が与えられ、各切換情報/Ｓ０，/Ｓ１に基づいて、夫々各入力端ａ，ｂの一方を選択して出力端から出力する。なお、切換情報/Ｓ０，/Ｓ１は、夫々切換情報切換情報Ｓ０，Ｓ１の反転信号である。
【００５１】
ＭＵＸＭ５の入力端ａは、フリップフロップＦ１１の出力端Ｑに接続される。ＭＵＸＭ５の入力端ｂとＭＵＸＭ６の入力端ａは、フリップフロップＦ１２の出力端Ｑに接続される。ＭＵＸＭ６の入力端ｂは、冗長フリップフロップＦＲ１１の出力端Ｑに接続される。
【００５２】
即ち、通常モード時には、ＭＵＸＭ１１〜Ｍ１３が入力端ｂを選択することで、図３と同様の構成が得られる。
【００５３】
ＭＵＸＭ１１〜Ｍ１３の入力端ａには、夫々スキャン入力端子Ｉｓ、ＭＵＸＭ２４，Ｍ２５の出力端が接続される。ＭＵＸＭ２４は入力端ａに前段のフリップフロップＦ１１の出力Ｑが与えられ、入力端ｂにスキャン入力端子Ｉｓからのスキャン信号ＳＣＡＮ  ＩＮが与えられる。ＭＵＸＭ２５は入力端ａに前段のフリップフロップＦ１２の出力Ｑが与えられ、入力端ｂにＭＵＸ２４の出力が与えられる。ＭＵＸ２４，Ｍ２５は切換情報Ａ１，Ａ２によって切換制御される。
【００５４】
また、冗長フリップフロップＦＲ１１の出力Ｑは、ＭＵＸ２６の入力端ａに与えられる。ＭＵＸ２６の入力端ｂにはＭＵＸＭ２５の出力が与えられ、ＭＵＸ２６は、切換情報Ｓ２に基づく入力を選択して、出力端からスキャン出力端子Ｏｓに出力する。
【００５５】
切換情報ＳＣＡＮ、テスト信号ＳＣＡＮ  ＩＮ及びテストモード時の他の切換情報は、制御部２７から供給され、スキャン出力端子Ｏｓからのテスト結果ＳＣＡＮ  ＯＵＴは制御部２７に与えられる。制御部２７はテスト結果に基づいて不揮発性素子２８への書き込みを行う。不揮発性素子２８からの切換情報Ｓ０〜Ｓ２，/Ｓ０，/Ｓ１，Ａ１，Ａ２は、通常モード時に各ＭＵＸに与えられるようになっている。
【００５６】
次に、このように構成された実施の形態の動作について図６乃至図１１及び表２を参照して説明する。図６は太線によって通常モード時の入出力経路を示し、図７乃至図９は太線によってテストモード時の入出力経路を示している。また、図１０及び図１１は太線によって夫々フリップフロップＦ１１，Ｆ１２が故障した場合の入出力経路を示している。表２はＭＵＸＭ２１〜Ｍ２６，Ｍ５，Ｍ６の切換え動作を示しており、表中のａ，ｂは、各ＭＵＸが選択する入力端を示している。
【００５７】
表２
┌─────┬───┬───┬───┬───┬───┬───┬───┐
│          │  S0  │  S1  │  S2  │  /S0 │  /S1 │  A1  │  A2  │
│          │ (M21)│ (M22)│(M23, │ (M5) │ (M6) │ (M24)│ (M25)│
│          │      │      │ M26) │      │      │      │      │
├─────┼───┼───┼───┼───┼───┼───┼───┤
│通常モード│  ｂ  │  ｂ  │  ｂ  │  ａ  │  ａ  │  ａ  │  ａ  │
├─────┼───┼───┼───┼───┼───┼───┼───┤
│F11 検査  │  −  │  −  │  ｂ  │  −  │  −  │  ａ  │  ｂ  │
├─────┼───┼───┼───┼───┼───┼───┼───┤
│F12 検査  │  −  │  −  │  ｂ  │  −  │  −  │  ｂ  │  ａ  │
├─────┼───┼───┼───┼───┼───┼───┼───┤
│FR11  検査│  −  │  −  │  ａ  │  −  │  −  │  ｂ  │  ｂ  │
├─────┼───┼───┼───┼───┼───┼───┼───┤
│F11 不良  │  ａ  │  ａ  │  ａ  │  ｂ  │   b  │  ｂ  │  ａ  │
├─────┼───┼───┼───┼───┼───┼───┼───┤
│F12 不良  │  ｂ  │  ａ  │  ａ  │  ａ  │   b  │  ａ  │  ｂ  │
└─────┴───┴───┴───┴───┴───┴───┴───┘
先ず、フリップフロップＦ１１，Ｆ１２に故障が生じていない場合の通常モードの動作について説明する。通常モード時においては、切換情報ＳＣＡＮによって各スキャンフリップフロップのＭＵＸＭ１１〜Ｍ１３は、入力端ｂを選択する。また、不揮発性素子２８からの切換情報Ｓ０〜Ｓ２，/Ｓ０，/Ｓ１によって、ＭＵＸＭ２１〜Ｍ２３は入力端ｂを選択し、ＭＵＸＭ５，Ｍ６は入力端ａを選択する。
【００５８】
これにより、入出力経路は、図６の太線に示すものとなる。即ち、入力端子Ｉ０，Ｉ１を介して入力されたデータＤ０，Ｄ１は、夫々ＭＵＸＭ２１，Ｍ２２及びＭＵＸＭ１１，Ｍ１２を介してフリップフロップＦ１１，Ｆ１２のデータ端Ｄに入力される。これらのデータは、クロックＣＬＫに同期して、夫々フリップフロップＦ１１，Ｆ１２の出力端ＱからＭＵＸＭ５，Ｍ６を介して出力端子Ｏ０，Ｏ１に出力される。
【００５９】
本実施の形態においては、フリップフロップＦ１１，Ｆ１２に故障が生じているか否かを事前に検査する。テストモード時には、切換情報ＳＣＡＮによって各スキャンフリップフロップのＭＵＸＭ１１〜Ｍ１３は、入力端ａを選択する。
【００６０】
制御部２７は、検査するフリップフロップに応じて切換情報を設定する。いま、フリップフロップＦ１１の検査を行うものとする。図７はこの場合のスキャン経路を太線にて示している。この場合には、表２に示すように、ＭＵＸＭ２４は入力端ａを選択する。これにより、ＭＵＸＭ２４は、フリップフロップＦ１１の出力を選択する。
【００６１】
一方、スキャン入力端子Ｉｓを介して入力されたテスト信号ＳＣＡＮ  ＩＮは、ＭＵＸＭ１１を介してフリップフロップＦ１１のデータ端Ｄに入力される。フリップフロップＦ１１はクロックＣＬＫに同期して、入力されたデータを出力端Ｑから出力する。フリップフロップＦ１１の出力は、ＭＵＸＭ２４に選択されて出力される。また、表２に示すように、ＭＵＸＭ２５は入力端ｂを選択する。従って、この場合には、ＭＵＸＭ２５は前段のフリップフロップＦ１２の出力を取り込むことなく、ＭＵＸＭ２４の出力を取り込んで出力する。
【００６２】
また、表２に示すように、ＭＵＸＭ２６は入力端ｂを選択する。従って、この場合には、ＭＵＸＭ２６は冗長フリップフロップＦＲ１１の出力を取り込むことなく、ＭＵＸＭ２５の出力を取り込んで出力する。
【００６３】
即ち、ＭＵＸＭ２４，Ｍ２５，Ｍ２６は、前段のスキャンフリップフロップをスキャン経路に含めるかスキップさせるかを切換える機能を有する。
【００６４】
こうして、この場合には、スキャン出力端子Ｏｓからは、図７に示すように、フリップフロップＦ１１を通過したテスト信号がＳＣＡＮ  ＯＵＴとして出力される。
【００６５】
この状態で、制御部２７は、テスト信号ＳＣＡＮ  ＩＮとして論理値“０”及び“１”を順次与える。フリップフロップＦ１１に故障が生じていない場合には、入力データと同一の論理値の信号がＳＣＡＮ  ＯＵＴとしてスキャン出力端子Ｏｓから得られる。フリップフロップＦ１１に故障が生じている場合には、スキャン出力端子Ｏｓには、テスト信号の論理値に拘わらず、“０”又は“１”の出力が得られる。従って、制御部２７は、スキャン出力端子Ｏｓの出力データの論理値を観察することで、フリップフロップＦ１１の故障の有無を判断することができる。
【００６６】
次に、制御部２７はフリップフロップＦ１２の検査を行う。図８はこの場合のスキャン経路を太線にて示している。表２に示すように、ＭＵＸＭ２４，Ｍ２５，Ｍ２６は、夫々、入力端ｂ，ａ，ｂを選択する。従って、この場合には、図８に示すように、スキャン入力端子Ｉｓを介して入力されたテスト信号は、ＭＵＸＭ２４，Ｍ１２を介してフリップフロップＦ１２のデータ端Ｄに与えられる。フリップフロップＦ１２のＱ出力は、ＭＵＸＭ２５，Ｍ２６を介してスキャン出力端子Ｏｓから出力される。
【００６７】
この状態で、制御部２７が、テスト信号ＳＣＡＮ  ＩＮとして論理値“０”及び“１”を順次与えることで、フリップフロップＦ１２の検査を行うことができる。
【００６８】
次に、制御部２７は冗長フリップフロップＦＲ１１の検査を行う。図９はこの場合のスキャン経路を太線にて示している。表２に示すように、ＭＵＸＭ２４，Ｍ２５，Ｍ２６は、夫々、入力端ｂ，ｂ，ａを選択する。従って、この場合には、図９に示すように、スキャン入力端子Ｉｓを介して入力されたテスト信号は、ＭＵＸＭ２４，Ｍ２５，Ｍ１３を介して冗長フリップフロップＦＲ１１のデータ端Ｄに与えられる。フリップフロップＦＲ１１のＱ出力は、ＭＵＸＭ２６を介してスキャン出力端子Ｏｓから出力される。
【００６９】
この状態で、制御部２７が、テスト信号ＳＣＡＮ  ＩＮとして論理値“０”及び“１”を順次与えることで、冗長フリップフロップＦＲ１１の検査を行うことができる。
【００７０】
制御部２７は、テスト結果に基づいて、フリップフロップＦ１１，Ｆ１２及び冗長フリップフロップＦＲ１１の故障の有無を判定し、判定結果に基づいて不揮発性素子２８に切換情報を記憶させる。
【００７１】
以後、実使用時には、不揮発性素子２８からの切換情報が各ＭＵＸに与えられる。例えば、フリップフロップＦ１１に故障が生じているものとする。この場合には、表２に示すように、切換情報Ｓ０〜Ｓ２，/Ｓ０，/Ｓ１によって、ＭＵＸＭ２１〜Ｍ２３は入力端ａを選択し、ＭＵＸＭ５，Ｍ６は入力端ｂを選択する。なお、ＭＵＸＭ１１〜Ｍ１３は、上述したように、通常モード時には入力端ｂを選択する。図１０はこの場合の入出力経路を太線にて示している。
【００７２】
この場合には、入力端子Ｉ０を介して入力されたデータＤ０は、ＭＵＸＭ２２，Ｍ１２を介してフリップフロップＦ１２のデータ端Ｄに入力されると共に、入力端子Ｉ１を介して入力されたデータＤ１は、ＭＵＸＭ２３，Ｍ１３を介して冗長フリップフロップＦＲ１１のデータ端Ｄに入力される。これらのデータは、クロックＣＬＫに同期して、夫々フリップフロップＦ１２及び冗長フリップフロップＦＲ１１の出力端ＱからＭＵＸＭ５，Ｍ６を介して出力端子Ｏ０，Ｏ１に出力される。
【００７３】
こうして、例えフリップフロップＦ１１に故障が生じたとしても、入力端子Ｉ０，Ｉ１に入力されたデータを確実に出力端子Ｏ０，Ｏ１に出力することができる。
【００７４】
また、フリップフロップＦ１２に不良が生じた場合には、表２に示すように、切換情報Ｓ０〜Ｓ２によって、ＭＵＸＭ２１は入力端ｂを選択し、ＭＵＸＭ２２，Ｍ２３は入力端ａを選択する。図１１はこの場合の入出力経路を太線にて示している。
【００７５】
この場合には、入力データＤ０はＭＵＸＭ２１，Ｍ１１を介してフリップフロップＦ１１のデータ端Ｄに与えられ、入力データＤ１はＭＵＸＭ２３，Ｍ１３を介して冗長フリップフロップＦＲ１１のデータ端Ｄに与えられる。
【００７６】
また、切換情報/Ｓ０，/Ｓ１によって、ＭＵＸＭ５は入力端ａを選択し、ＭＵＸＭ６は入力端ｂを選択する。これにより、フリップフロップＦ１１及び冗長フリップフロップＦＲ１１の出力は、夫々ＭＵＸＭ５，Ｍ６を介して出力端子Ｏ０，Ｏ１に出力される。
【００７７】
こうして、例えフリップフロップＦ１２に故障が生じたとしても、入力端子Ｉ０，Ｉ１に入力されたデータを確実に出力端子Ｏ０，Ｏ１に出力することができる。
【００７８】
このように本実施の形態においては、スキャンフリップフロップのスキャン経路を切換えることで、各フリップフロップの故障の有無を判定し、判定結果に基づく情報を不揮発性素子に記憶させる。そして、不揮発性素子からの切換情報を用いることで、故障したフリップフロップに代えて冗長フリップフロップを利用することを可能にしている。即ち、集積回路内のフリップフロップの故障及びその位置を自動検出し、故障フリップフロップから冗長フリップフロップへの置き換えを自動的に行っている。
【００７９】
フリップフロップに故障がある場合、従来は不良品となったが、故障したフリップフロップを冗長フリップフロップに置き換えることが可能となり、チップの良品数を増やすことができる。ランダムロジック部の不良のうちフリップフロップに起因するものは１０％〜３０％を占めるものと推測され、フリップフロップを救済することによる歩留まり改善効果は極めて大きい。
【００８０】
なお、図４では２入力２出力で、２段のフリップフロップ（スキャンフリップフロップ）と１段の冗長フリップフロップの例を示したが、ｎ（ｎは１以上の整数）入力ｎ出力で、ｎ段のフリップフロップ（スキャンフリップフロップ）と、１〜ｎ段の冗長フリップフロップによって構成することができることは明らかである。
【００８１】
冗長フリップフロップの段数だけ、故障したフリップフロップを置き換えることができる。なお、この場合には、例えば３入力１出力のＭＵＸを採用する等の配線変更を行う必要がある。
【００８２】
図１２は本発明の第３の実施の形態を示すフローチャートである。本実施の形態のハードウェア構成は第２の実施の形態と同様である。
【００８３】
本実施の形態はフリップフロップの故障を検出するテストモード時の動作が第２の実施の形態と異なるのみである。本実施の形態においては、制御部２７（図５参照）は、テストモード時においては、先ず、全フリップフロップ及び冗長フリップフロップに対する一括書込みを行う（一括書込みモード）。次に、スキャンフリップフロップの機能を利用して、フリップフロップの出力を順次転送してスキャン出力端子ＯｓからＳＣＡＮ  ＯＵＴを取り出すようになっている（転送モード）。
【００８４】
テストモードにおける動作について図１３及び図１４並びに表３及び表４を参照して説明する。図１３は太線によって一括書込みモード時のスキャン経路を示し、図１４は太線によって転送モード時のスキャン経路を示している。表３はＭＵＸＭ２１〜Ｍ２６，Ｍ５，Ｍ６の切換え動作を示しており、表中のａ，ｂは、各ＭＵＸが選択する入力端を示している。表４はスキャン出力端子Ｏｓに現れるスキャン結果ＳＣＡＮ  ＯＵＴの一例を示している。なお、本実施の形態においては通常モード時の動作は第２の実施の形態と同様である。
【００８５】
表３
┌─────┬───┬───┬───┬───┬───┬───┬───┐
│          │  S0  │  S1  │  S2  │  /S0 │  /S1 │  A1  │  A2  │
│          │ (M21)│ (M22)│(M23, │ (M5) │ (M6) │ (M24)│ (M25)│
│          │      │      │ M26) │      │      │      │      │
├─────┼───┼───┼───┼───┼───┼───┼───┤
│一括書込み│  −  │  −  │  ａ  │  −  │  −  │  ｂ  │  ｂ  │
│モード    │      │      │      │      │      │      │      │
├─────┼───┼───┼───┼───┼───┼───┼───┤
│転送モード│  −  │  −  │  ｂ  │  −  │  −  │  ａ  │  ａ  │
└─────┴───┴───┴───┴───┴───┴───┴───┘
テストモード時には、制御部２７は、先ず一括書込みモードを設定する（ステップＳＴ１）。なお、テストモード時において、各スキャンフリップフロップのＭＵＸＭ１１〜Ｍ１３が、切換情報ＳＣＡＮによって入力端ａを選択する点は第２の実施の形態と同様である。
【００８６】
一括書込みモードにおいては、制御部２７は、表３に示すように、切換情報Ａ１，Ａ２によって、ＭＵＸＭ２４，Ｍ２５に入力端ｂを選択させる。これにより、ＭＵＸＭ２４は、スキャン入力端子Ｉｓからのデータを選択し、ＭＵＸＭ２５は、ＭＵＸＭ２４の出力を選択する。図１３はこの場合のスキャン経路を太線にて示している。
【００８７】
次に、制御部２７は、この状態で、テスト信号として、論理値“０”のＳＣＡＮ  ＩＮをスキャン入力端子Ｉｓに与える。図１３に示すように、論理値が“０”のテスト信号は、ＭＵＸ１１を介してフリップフロップＦ１１のデータ端Ｄに供給される。また、このテスト信号は、ＭＵＸＭ２４，Ｍ１２を介してフリップフロップＦ１２のデータ端Ｄにも供給される。更に、ＭＵＸＭ２４からのテスト信号は、ＭＵＸＭ２５，ＭＵＸＭ１３を介して冗長フリップフロップＦＲ１１のデータ端Ｄにも供給される。即ち、ステップＳＴ２において、全フリップフロップ及び全冗長フリップフロップに対して“０”が書き込まれる。
【００８８】
次に、制御部２７は、ステップＳＴ３において転送モードを設定する。即ち、制御部２７は、切換情報Ａ１，Ａ２，Ｓ２によって、ＭＵＸＭ２４，Ｍ２５，Ｍ２６に入力端ａを選択させる。図１４は転送モード時におけるスキャン経路を太線にて示している。
【００８９】
図１４に示すように、スキャン入力端子ＩｓはＭＵＸＭ１１を介して初段のフリップフロップＦ１１のデータ端Ｄに接続される。また、フリップフロップＦ１１のＱ出力端は、ＭＵＸＭ２４，Ｍ１２を介して次段のフリップフロップＦ１２のデータ端Ｄに接続され、フリップフロップＦ１２のＱ出力端は、ＭＵＸＭ２５，Ｍ１３を介して次段の冗長フリップフロップＦＲ１１のデータ端Ｄに接続される。また、冗長フリップフロップＦＲ１１のＱ出力端は、ＭＵＸＭ２６を介してスキャン出力端子Ｏｓに接続される。
【００９０】
次に、クロックＣＬＫに同期して、フリップフロップＦ１１，Ｆ１２及び冗長フリップフロップＦＲ１１はデータ端Ｄのデータを出力端Ｑから出力する。即ち、初段のフリップフロップＦ１１にはスキャン入力端子Ｉｓからのテスト信号（この場合には“０”）が入力され、次段のフリップフロップＦ１２には初段のフリップフロップＦ１１のＱ出力が入力される。各フリップフロップのＱ出力は次段のフリップフロップに順次転送され、最終段のフリップフロップ（図４の例では冗長フリップフロップＦＲ１１）のＱ出力は、ＭＵＸ２６からスキャン出力端子Ｏｓに出力される。なお、転送モード中においては、スキャン入力端子Ｉｓには論理値“０”のテスト信号を供給し続ける。
【００９１】
下記表４は、１段以上の冗長フリップフロップを含む７段のフリップフロップで図４と同様のフリップフロップ救済回路を構成した場合において、転送モードにおけるクロックＣＬＫ毎の各フリップフロップＦＦ０〜ＦＦ７のＱ出力を示している。なお、７段目のフリップフロップＦＦ７の出力がスキャン出力端子Ｏｓにテスト結果ＳＣＡＮ  ＯＵＴとして得られる。
【００９２】
表４
┌─────┬───┬───┬───┬───┬───┬───┬───┐
│          │ FF1  │ FF2  │ FF3  │ FF4  │ FF5  │ FF6  │ FF7  │
├─────┼───┼───┼───┼───┼───┼───┼───┤
│１回目    │  ０  │  ０  │  ０  │  １  │  ０  │  ０  │  ０  │
├─────┼───┼───┼───┼───┼───┼───┼───┤
│２回目    │  ０  │  ０  │  ０  │  １  │  １  │  ０  │  ０  │
├─────┼───┼───┼───┼───┼───┼───┼───┤
│３回目    │  ０  │  ０  │  ０  │  １  │  １  │  １  │  ０  │
├─────┼───┼───┼───┼───┼───┼───┼───┤
│４回目    │  ０  │  ０  │  ０  │  １  │  １  │  １  │  １  │
└─────┴───┴───┴───┴───┴───┴───┴───┘
上記表４は、７段のフリップフロップのうち４段目のフリップフロップＦＦ４に故障が生じており、フリップフロップＦＦ４はデータ端Ｄに入力されるデータの論理値に拘わらず、“１”を出力する場合の例を示している。
【００９３】
転送モード直後に、クロックＣＬＫに同期して、各フリップフロップＦＦ１〜ＦＦ７からＱ出力が出力される。上記表４の「１回目」はこの場合における各フリップフロップＦＦ１〜ＦＦ７のＱ出力を示している。ステップＳＴ１，ＳＴ２の一括書込みモードにおいては、各フリップフロップＦＦ１〜ＦＦ７のデータ端Ｄには論理値が“０”のデータを与えており、各フリップフロップＦＦ１〜ＦＦ７が正常であれば、クロックＣＬＫに同期して各フリップフロップＦＦ１〜ＦＦ７はＱ出力として“０”を出力する。
【００９４】
表４の例では、少なくともフリップフロップＦＦ４に不良が生じていることが分かる。転送モード直後の２つ目のクロックＣＬＫによって、各フリップフロップＦＦ１〜ＦＦ７はＱ出力を次段のフリップフロップに転送する。フリップフロップＦＦ５には１回目の転送において、フリップフロップＦＦ４から論理値が“１”のＱ出力がデータ端Ｄに与えられており、２回目のクロックＣＬＫによって、フリップフロップＦＦ５は“１”を出力する。更に、３回目、４回目のクロックＣＬＫによって、フリップフロップＦＦ４のＱ出力は順次次段のフリップフロップに転送され、４回目のクロックＣＬＫに同期して、最終段のフリップフロップＦＦ７から出力される。
【００９５】
スキャン出力端子Ｏｓには最終段のフリップフロップＦＦ７の出力が現れる。スキャン出力端子Ｏｓには、転送モード直後の１回目の転送においてフリップフロップＦＦ７の出力が与えられる。そして、転送モード直後の２回目の転送時には、転送モード直後の１回目のフリップフロップＦＦ６の出力が、フリップフロップＦＦ７を介して転送されてスキャン出力端子Ｏｓに現れる。同様に、転送モード直後の３回目の転送時には、転送モード直後の１回目のフリップフロップＦＦ５の出力が、フリップフロップＦＦ６，ＦＦ７を介してスキャン出力端子Ｏｓに転送される。即ち、１回目〜７回目の転送におけるスキャン出力端子Ｏｓの出力を観察することで、各フリップフロップＦＦ７〜ＦＦ１が、“０”入力に対していずれの論理値を出力したかを判断することができる。
【００９６】
表４の例では、転送モード開始から４回目の転送によって“１”がスキャン出力端子Ｏｓに現れたので、フリップフロップＦＦ４が“０”入力に対して、“１”を出力したことが分かる。制御部２７はステップＳＴ４において、“０”入力に対して“１”を出力したフリップフロップを特定する。
【００９７】
ところで、フリップフロップは故障が生じると、入力に拘わらず、出力が“０”又は“１”に固定される。従って、“０”入力に対して“０”を出力したことだけで故障判定を行うことはできない。そこで、ステップＳＴ５〜ＳＴ８において、テスト信号を論理値“１”に設定して、一括書込み及び転送モードを実行する。
【００９８】
制御部２７は、ステップＳＴ８において、ステップＳＴ７の１回目〜７回目の転送におけるスキャン出力端子Ｏｓの出力を観察する。これにより、各フリップフロップＦＦ７〜ＦＦ１が、“１”入力に対していずれの論理値を出力したかを判断することができる。そして、制御部２７はステップＳＴ４，ＳＴ８の判定結果によって、故障位置を特定する（ステップＳＴ９）。
【００９９】
例えば、ステップＳＴ７の１回目〜７回目の転送におけるスキャン出力端子Ｏｓの出力が全て“１”である場合には、制御部２７は、フリップフロップＦＦ４のみに故障が生じているものと判断する。また、例えば、ステップＳＴ７の３回目の転送におけるスキャン出力端子Ｏｓの出力が“１”である場合には、制御部２７は、フリップフロップＦＦ４，ＦＦ５に故障が生じているものと判断する。制御部２７は、判定結果に基づいて不揮発性素子２８への書込みを行う。
【０１００】
このように、本実施の形態においては、全フリップフロップへの一括書込みを可能にしており、論理値“０”又は“１”の２回の書込みと、フリップフロップの個数に応じた数のクロックによる転送によって、故障の有無及び故障位置を検出することができる。これにより、フリップフロップの良不良のテスト時間を第２の実施の形態に比べて著しく短縮することが可能である。
【０１０１】
また、上記実施の形態においては、ＭＵＸＭ２４，Ｍ２５，Ｍ２６は、前段のフリップフロップＦ１１，Ｆ１２の出力を選択するか、或いは、前段のスキャンフリップフロップをスキップさせて、それよりも前の段の出力を選択するかを決定する。即ち、これらのＭＵＸＭ２４，Ｍ２５，Ｍ２６は、テストモードにおけるスキャン経路の切換えに用いられる。従って、例えば、ｍ段のフリップフロップを有する装置において、最終段からｍ−５段までにおいて前段のスキャンフリップフロップの出力をスキップさせた場合には、初段からｍ−７段目までのフリップフロップの検査が可能である。
【０１０２】
即ち、上記実施の形態においては、検査をスキップするスキャンフリップフロップを適宜設定可能である。従って、上記実施の形態においては、必ずしも全部のフリップフロップ及び冗長フリップフロップの検査を行う必要はなく、任意の段のフリップフロップの検査が可能である。例えば、故障フリップフロップを検出した場合には、故障フリップフロップを冗長フリップフロップに置き換えた後、故障フリップフロップの前段のフリップフロップから初段のフリップフロップまでのフリップフロップの検査を行えばよい。即ち、故障フリップフロップの置き換えを行った後には、再度全フリップフロップの検査を行う必要はなく、検査時間を一層短縮することができる。
【図面の簡単な説明】
【０１０３】
【図１】本発明の第１の実施の形態において採用する基本回路を示す回路図。
【図２】図１の動作を説明するためのタイミングチャート。
【図３】第１の実施の形態に係る半導体集積回路装置を示す回路図。
【図４】本発明の第２の実施の形態に係る半導体集積回路装置を示す回路図。
【図５】図４のフリップフロップ救済回路を含む論理回路部を有するＬＳＩの構成を示すブロック図。
【図６】第２の実施の形態における入出力経路を説明するための説明図。
【図７】第２の実施の形態におけるスキャン経路を説明するための説明図。
【図８】第２の実施の形態におけるスキャン経路を説明するための説明図。
【図９】第２の実施の形態におけるスキャン経路を説明するための説明図。
【図１０】第２の実施の形態における入出力経路を説明するための説明図。
【図１１】第２の実施の形態における入出力経路を説明するための説明図。
【図１２】本発明の第３の実施の形態を示すフローチャート。
【図１３】第３の実施の形態におけるスキャン経路を説明するための説明図。
【図１４】第３の実施の形態におけるスキャン経路を説明するための説明図。
【符号の説明】
【０１０４】
Ｍ５，Ｍ６，Ｍ１１〜Ｍ１３，Ｍ２１〜Ｍ２６…マルチプレクサ、Ｆ１１，Ｆ１２…フリップフロップ、ＦＲ１１…冗長フリップフロップ。  
【図１】
2007096918.tif 000003
【図２】
2007096918.tif 000004
【図３】
2007096918.tif 000005
【図４】
2007096918.tif 000006
【図５】
2007096918.tif 000007
【図６】
2007096918.tif 000008
【図７】
2007096918.tif 000009
【図８】
2007096918.tif 000010
【図９】
2007096918.tif 000011
【図１０】
2007096918.tif 000012
【図１１】
2007096918.tif 000013
【図１２】
2007096918.tif 000014
【図１３】
2007096918.tif 000015
【図１４】
2007096918.tif 000016