ASIC-Verfeinerung Muss ich alle möglichen Kombinationen überprüfen?

7

Ich mache derzeit eine ASIC Black Box-Überprüfung.

Angenommen, ich habe ein Modul mit 200 Eingangsports mit jeweils 12 Bit Breite und einen Ausgangsport mit 64 Bit Breite. Sagen wir, es ist rein kombinatorisch im Inneren.

                                  [11:0]      +------------+
                 inputport 0   ------/------> |            |
                      .        -------------> |            |       [63:0]
                      .        -------------> |     duv    | --------/----> outputport
                      .        -------------> |            |
                 inputport 200 -------------> |            |
                                              +------------+

Muss ich zum Testen des Ausgabeports alle möglichen Kombinationen aller 200 Eingabeports testen?

Wenn nein, was ist dann ein guter Weg, um ein solches Modul zu überprüfen?

Gibt es eine gute Möglichkeit, alle Eckfälle zu überwachen?

Werden die Fehler irgendwann während des Prozesses auftreten?

e19293001
quelle
6
Sie können es versuchen, aber 2 ist 10 . Niemand kann sich eine solche Zahl vorstellen. Zum Vergleich beträgt die Anzahl der Pikosekunden seit dem Urknall 10 . 240072230
Stevenvh
3
Ohne weitere Details nicht zu sagen. Jetzt sehen wir nur noch eine Box mit 2464 E / A, und Sie fragen, wie Sie sie testen sollen. Was ist da drin?
Stevenvh
1
Sie brauchen auf jeden Fall Insiderwissen, um hier gute Arbeit zu leisten. Übrigens ist dies eine reine kombinatorische Schaltung oder hat sie einen Zustand (Speicher) im Inneren? Das würde die Sache noch komplizierter machen! Und möchten Sie den stationären Ausgang oder auch das Timing (Verzögerung) testen? Oder möchten Sie sogar das Fehlen von Störungen (unerwünschte Zwischenausgaben) überprüfen?
Wouter van Ooijen
1
Bedeutet "Black Box", dass Sie auch keine Ahnung haben, welche Funktion der IC korrekt haben würde? Die mir bekannte Generierungsmethode für Testmuster basiert auf einem genauen Modell, wie die Gates verbunden sind. Dann können Sie eine Reihe von Testmustern generieren, die einen großen Prozentsatz von Fehlern mit einer relativ kleinen Reihe von Eingabemustern erkennen. Dies ist etwas, was für die Anzahl der Eingaben, über die Sie sprechen, nicht von Hand gemacht werden kann. Sie müssen dort Software verwenden. Der Begriff, nach dem Google sucht, lautet "automatische Testmustergenerierung".
0x6d64
2
Führen Sie eine Überprüfung durch, weil Sie Herstellungsfehler vermuten, oder führen Sie eine Überprüfung durch, weil Sie den Verdacht haben, dass sie (von Natur aus) nicht der Spezifikation entspricht? Ist jedes Ausgangsbit von jedem Eingang abhängig oder gibt es unabhängige Funktionen? Gibt es ungültige Eingabekombinationen, die beseitigt werden können? Ist dies ein eigenständiges Modul oder ist dies ein Untermodul in Ihrem Chip?
W5VO

Antworten:

8

Sie haben eine absurde Anzahl möglicher Eingabesätze in Ihrem Eingabebereich. Sie können nicht alle testen, Punkt. Sie müssen eine Teilmenge der Eingabesätze testen und eine lohnende Heuristik verwenden, um die Sätze auszuwählen, die Sie testen.

Folgendes müssen Ihre Tests tun (dies ergibt sich aus den DO-254-Testempfehlungen, die mein Unternehmen verwendet):

  • Jeder Ausgang muss mindestens einmal geändert werden
  • Jeder Eingang muss mindestens einmal geändert werden

Das ist ein Minimum, kein Maximum. In solchen Fällen führen wir eine MCDC-Analyse (Minimum Condition Decision Coverage) durch, um festzustellen, welche anderen Eingabesätze wir testen müssen. Ich habe es immer so erklärt:

Stellen Sie sich vor, Ihre Black Box ist ein UND-Gatter mit 200 Eingängen. Sie können nicht jeden einzelnen Eingabesatz testen, also testen Sie eine Teilmenge des gesamten Eingaberaums. Zuerst folgen Sie den Regeln, die ich oben angegeben habe - Sie müssen mindestens zwei Fälle testen: einen, bei dem die Ausgabe 0 / False ist, und einen anderen, bei dem die Ausgabe 1 / True ist. Für das UND-Gatter ist dies einfach: alle 0 / Falsch und alle 1 / Richtig. Das beweist, dass sich Ihre Ausgabe ändern kann. Als nächstes wählen Sie Eingabesätze so aus, dass es einen Eingabesatz gibt, für den jeder Eingang der entscheidende Faktor in der Ausgabe ist. Für ein UND-Gatter mit 200 Eingängen erhalten Sie 200 verschiedene Eingangssätze: Der erste hat alle Eingänge True mit Ausnahme von Eingang Nr. 1, der zweite hat alle Eingänge True mit Ausnahme von Nr. 2 und so weiter. Mit dieser Methode überprüfen Sie, ob jede Eingabe eine unabhängige Auswirkung auf die Ausgabe hat. Wenn eine Eingabe falsch ist, ist dies nicht der Fall.

Sie sagten, Ihre Logik sei kombinatorisch. Dies ist vielen Latches / Flip-Flops vorzuziehen, aber immer noch nicht perfekt. Sie müssen von der Ausgabe rückwärts arbeiten, um Eingabesätze zu bestimmen, für die jede einzelne Eingabe eine entscheidende Auswirkung auf die Ausgabe hat. Wenn Ihre Logik kompliziert ist, haben Sie viel Arbeit vor sich, aber dies ist die schnellste und umfassendste Methode zum Testen Ihrer Logik-Blackbox.

Was die praktischen Aspekte betrifft, sind Sie allein. Das Unternehmen, für das ich arbeite, verwendet kundenspezifische Hardware, um systeminterne Black-Box-Tests auf Pin-Ebene von FPGAs (und theoretisch von ASICs, wenn Sie uns ein Teil zur Verfügung stellen könnten, das auf eine Platine gebracht werden kann) mit Betriebsgeschwindigkeit durchzuführen. Es ist umfassend und automatisiert, aber jede Testvorrichtung ist für das jeweilige Projekt maßgeschneidert. Für diesen Ansatz ist daher ein Vertrag erforderlich, bei dem nicht nur Artikel von der Stange gekauft und selbst kombiniert werden.

Eines der Probleme, die durch unseren Ansatz behoben werden, besteht darin, einfach alle Drähte anzuschließen. Ich denke, die meisten Leute würden einen obszön großen Logikanalysator vorschlagen, aber Sie haben Tausende von Pins, sodass Sie Teilmengen von Pins gleichzeitig testen müssen. Einer der positiven Aspekte des von uns verwendeten Ansatzes ist, dass alle Pins jederzeit überwacht werden, sodass Sie sehen können, dass sich die zu ändernden Ausgänge ändern, aber auch, dass sich die Ausgänge, die sich nicht ändern sollten, nicht ändern. Sie können das nicht bekommen, wenn Sie einen Logikanalysator mit weniger Pins als der Anzahl Ihrer Ein- / Ausgänge verwenden.

AngryEE
quelle
10

OK, Black Box ist kein Problem, solange Sie die Funktionalität kennen. Sie benötigen ungefähr 64 logische Funktionen in (maximal) 2400 Variablen.

Im schlimmsten Fall haben Sie ein nicht testbares Produkt. Dies ist beispielsweise der Fall, wenn jeder der 64 Ausgänge tatsächlich von allen Eingangszuständen abhängt. Ich stelle mir vor, dass Werte verschiedener Ports auf Gleichheit oder größer als verglichen werden und diese Ergebnisse in einer logischen Kombination verwendet werden. In diesem Fall können Sie Werte um den Vergleichswert herum testen, wodurch die Anzahl der Kombinationen drastisch verringert werden kann.

Angenommen, Ausgang Y sollte hoch sein, wenn Port A> Port B ist. Sie können den Wert 0x25 auf Port B anwenden und überprüfen, was der Ausgang für die Werte 0x24, 0x25 und 0x26 von Port A ist. Wiederholen Sie diesen Vorgang für 0x211 und 0xE5A (ich bin nur Zahlen erfinden). Dann haben Sie 2 reduziert24 = 16 777 216 Kombinationen zu 9.

Möglicherweise haben Sie hier ein Problem. Selbst wenn dies tatsächlich der Vergleich ist, den Sie durchführen müssen, kann das Ergebnis intern sein und erst nach einer Logikfunktion mit ähnlichen internen Ergebnissen herauskommen. So machen Sie ein nicht testbares Produkt.

Ich hätte das Design in mehrere ASICs aufgeteilt, bei denen Zwischenergebnisse von einem ASIC zum nächsten gehen. Auf diese Weise müssen Sie möglicherweise nur testenÖ(N.) Kombinationen anstelle von Ö(N.). 1000 Milliarden Tests mögen unmöglich sein, aber 1 Million ist keine so große Zahl. Es kann auch die E / A-Anzahl verringern, wenn voneinander unabhängige Funktionen vorhanden sind.

Eine Lösung für den einzelnen Chip könnte darin bestehen, Testpads für Zwischenergebnisse auf dem Chip zu haben, damit sie mit fliegenden Sonden auf dem Wafer getestet werden können .

stevenvh
quelle