スタックアット故障は、集積回路内の製造上の欠陥を模倣するために故障シミュレータや自動テストパターン生成(ATPG)ツールで使用される特定の故障モデルです。個々の信号とピンは論理「1」、「0」、「X」に固定されていると想定されます。 [ 1 ]
例えば、テスト生成時に入力を論理1の状態にすることで、特定のテストパターンでその動作をする製造上の欠陥を検出できるようにします。同様に、出力ピンを切り替えることができない欠陥回路の動作をモデル化するために、入力を論理0にすることもできます。ただし、すべての故障をスタックアット故障モデルで解析できるわけではありません。静的ハザード、すなわち分岐信号に対する補償によって、このモデルではテスト不可能な回路が生じる場合があります。また、冗長回路は、設計上、単一の故障によって出力に変化が生じないため、このモデルではテストできません。
単一ラインスタックは、デジタル回路で使用される故障モデルです。これは、設計テストではなく、製造後のテストに使用されます。このモデルは、デジタル回路内の1つのラインまたはノードが論理ハイまたは論理ローに固定されている状態を想定しています。ラインが固定されている状態を故障と呼びます。
デジタル回路は以下のように分類できます。
この故障モデルは、ゲートレベル回路、または記憶要素から分離できる順序回路のブロックに適用されます。理想的には、ゲートレベル回路は考えられるすべての入力を適用して正しい出力が得られることを確認することで完全にテストされますが、これはまったく非現実的です。2つの32ビット数を加算する加算器では、2 64 = 1.8×10 19回のテストが必要となり、0.1 ns/テストで58年かかります。スタックアット故障モデルでは、1つのゲートの入力のうち1つだけが一度に故障すると想定しており、複数の入力に故障がある場合でも、単一の故障を検出できるテストで複数の故障を容易に検出できると想定しています。
この故障モデルを使用するには、各ゲートの各入力ピンが順に接地されていると仮定し、回路に故障があることを示すテストベクトルを作成します。テストベクトルは、回路の入力に適用するビットの集合と、回路の出力で期待されるビットの集合です。検討対象のゲートピンが接地されていて、このテストベクトルが回路に適用された場合、出力ビットの少なくとも1つが、テストベクトル内の対応する出力ビットと一致しません。接地されたピンのテストベクトルを取得した後、各ピンを順に論理1に接続し、別のテストベクトルセットを使用して、これらの条件下で発生する故障を検出します。これらの故障はそれぞれ、単一スタックアット0(sa-0)故障または単一スタックアット1(sa-1)故障と呼ばれます。
このモデルは、1970年代から1980年代にかけて主流だったトランジスタ・トランジスタ・ロジック( TTL )において非常に有効であったため、メーカーは「スタックアット故障検出率」と呼ばれる数値で回路のテスト精度を宣伝していました。この数値は、テストプロセスで検出可能なすべてのスタックアット故障の割合を表しています。同じテストモデルはCMOSにもある程度有効ですが、すべてのCMOS故障を検出できるわけではありません。これは、CMOSにはスタックオープン故障と呼ばれる故障モードが発生する可能性があり、これは1つのテストベクトルでは確実に検出できず、2つのベクトルを順次適用する必要があるためです。また、このモデルでは、バス接続やアレイ構造を駆動するピンで発生する、隣接する信号線間のブリッジング故障も検出できません。それでも、単一のスタックアット故障の概念は広く使用されており、いくつかの追加テストによって、業界は許容範囲内の低い不良回路数を出荷することが可能になっています。
このモデルに基づくテストは、いくつかの要素によって促進されます。