21.07.2013 Aufrufe

pdf-Datei mit 72-dpi-Fotos - FG Mikroelektronik, TU Berlin

pdf-Datei mit 72-dpi-Fotos - FG Mikroelektronik, TU Berlin

pdf-Datei mit 72-dpi-Fotos - FG Mikroelektronik, TU Berlin

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Technische Universität <strong>Berlin</strong><br />

Institut für <strong>Mikroelektronik</strong><br />

Lukas Bauer<br />

Dissertation<br />

Perspektiven des modernen ASIC-Designs<br />

Kapitel 4.4<br />

Seite 67<br />

zugrunde liegende Haftfehlermodell für RAMs ohnehin nur eingeschränkt anwendbar ist. Bei<br />

RAMs beobachtet man neben statischen Haftfehlern (stuck at), die ca. 50% der Fehler ausmachen,<br />

auch dynamische Fehler der Art, dass eine Zelle z. B. auf 1 gesetzt, aber nicht gelöscht<br />

werden kann (transition fault). Des weiteren kann der Zellinhalt <strong>mit</strong> der Zeit verlorengehen (data<br />

rentention fault), und man beobachtet die gegenseitige Beeinflussung benachbarter Zellen (coupling<br />

fault). Im Extremfall von kombinierter statischer und dynamischer Beeinflussung von Speicherzellen<br />

verliert eine Zelle nur dann ihren Inhalt, wenn mehrere Nachbarzellen auf einer Seite<br />

durch einen Schreibvorgang umkippen und gleichzeitig die anderen Zellen in direkter Umgebung<br />

bestimmte statische Werte enthalten (neighborhood pattern sensitivity fault).<br />

Die statistische Verteilung der auftretenden Fehlerklassen ist von der Technologie und den Konstruktionsprinzipien<br />

der Speicher abhängig und wird von den meisten Halbleiterherstellern ständig<br />

überwacht und analysiert. Außerdem wird seit vielen Jahren an Algorithmen zum<br />

Speichertest geforscht, so dass heute Standardalgorithmen wie z. B. „March-C“ [24] bekannt<br />

sind, die bei akzeptablen Testzeiten alle statistisch relevanten Fehler detektieren. Die Implementation<br />

dieser Algorithmen in Hardware (BIST, built in self test) ist relativ einfach, erfordert aber<br />

Multiplexer vor den Adress- und <strong>Datei</strong>neingangsleitungen der RAMs, um diese im Testmodus<br />

kontrollieren zu können. Als Alternative zum Selbsttest kann in einem SoC auch die integrierte<br />

CPU den Speicher testen, was in Abschnitt 5.1.2 ausführlich erläutert wird.<br />

Zu beachten ist bei jedem Verfahren eines Speichertests, dass die Simulation den Speicher stets<br />

als fehlerfrei melden wird. Es sollte daher unbedingt auch eine Simulation <strong>mit</strong> einem künstlich<br />

fehlerhaften RAM-Modell durchgeführt werden, um zu prüfen, ob der Speichertest korrekt<br />

implementiert wurde. Falls ein solches Modell nicht zur Verfügung steht, können stattdessen sporadisch<br />

Speicherstellen während der Laufzeit der Simulation umbesetzt werden, was durch einen<br />

direkten Zugriff auf die der Speichermatrix zugrunde liegende Datenstruktur möglich sein sollte.<br />

Bei allen Belangen der Testbarkeit sollte schon parallel zur Synthesephase die korrekte Implementation<br />

kontrolliert und simuliert werden, um Verzögerungen im Zeitplan der Layouterstellung<br />

durch zu spät entdeckte Fehler zu vermeiden.<br />

Die Einhaltung der Timingvorgaben schließlich sollte, wie bereits in Abschnitt 4.3.2 erläutert<br />

wurde, nicht allein durch Simulationen überprüft werden, da diese zwar stochastisch Timing-<br />

Fehler aufdecken können, aber keine systematische Überprüfung aller Timing-Pfade erlauben. Es<br />

sollte daher zusätzlich eine statische Timing-Analyse durchgeführt werden.<br />

So weit wird wohl jedem erfahrenen Designer der Ablauf der Verifikationsprozesse auf Netzlistenebene<br />

vertraut sein. Die Funktionsfähigkeit des ASICs ist da<strong>mit</strong> aber noch lange nicht garantiert,<br />

da stillschweigend Annahmen gemacht werden, die durchaus nicht immer zutreffen<br />

müssen. Dies betrifft insbesondere<br />

● die Korrektheit der verwendeten Libraries und Modelle,<br />

● die Korrektheit der Verifikationsprogramme und deren richtige Anwendung,<br />

● die korrekte und vollständige Formulierung von Timing-Vorgaben für Synthese und statische<br />

Timing-Analyse sowie<br />

● die vollständige funktionale Überdeckung der Schaltungsfunktionen durch die Testmuster<br />

der Cross-Simulation.<br />

Die genannten Punkte sollen im Folgenden im Detail erläutert und zum Teil anhand von konkret<br />

beobachteten Beispielen belegt werden.<br />

Bei fehlerhaften Libraries ist zu unterscheiden, ob das Simulationsmodell oder die Synthesebibliothek<br />

fehlerhaft ist. Im ersten Fall, wie es beim Verilog-Modell eines XOR-Gatters <strong>mit</strong> drei

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!