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
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