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 65<br />

Welche Systemfunktionen sich <strong>mit</strong> welchem Entwicklungsaufwand realisieren lassen und zu<br />

welchen Mehrkosten an Siliziumfläche sie führen oder ob die Aufteilung der auszuführenden<br />

Systemfunktionen zwischen Hardware und Software sinnvoll gewählt ist, sind Fragen, die vom<br />

Kunden oft nicht alleine beantwortet werden, da ihm das genaue Verständnis der technischen<br />

Möglichkeiten meistens fehlt. Die endgültige Systemkonzeption entsteht daher in der Regel während<br />

der technischen Vorverhandlungen zwischen Kunde und Designer.<br />

Anschließend wird die Spezifikation immer detaillierter ausgearbeitet. Spätestens dann, wenn es<br />

darum geht, z. B. die exakte Funktion einzelner Steuerbits zu definieren, ist aber meist der ASIC-<br />

Designer gefragt, da nur dieser die genaue Anzahl und Bedeutung der zur Steuerung der einzelnen<br />

Funktionen benötigten Registerbits etc. kennt bzw. da diese Details von der von ihm zu findenden<br />

Hardwarelösung abhängig sind. Es ergibt sich so<strong>mit</strong> ein fließender Übergang zwischen der<br />

Spezifikationsphase und der Design-Entry-Phase. Dies gilt insbesondere bei der Verwendung<br />

grafischer HDL-Programme, da bei diesen nicht mehr alle Details verbal, sondern vielfach direkt<br />

in HDL spezifiziert werden.<br />

4.4.2.3 Kontrolle statt ausschließlicher Simulation in der Design-Entry-Phase<br />

Die Design-Entry-Phase ist die kreativste Phase eines ASIC-Designs. Ausgehend von der<br />

Systemkonzeption bzw. der verbalen Spezifikation wird eine geeignete Lösung entworfen und als<br />

Schematic, in Form einer HDL-<strong>Datei</strong> oder <strong>mit</strong>tels grafischem HDL, also stets in computerlesbarer<br />

Form, eingegeben. Da sich dieser Schritt aufgrund der nicht computerlesbaren Zielvorgaben<br />

einer automatischen Verifikation entzieht, ist der Designer in dieser Phase am stärksten gefordert,<br />

die Korrektheit der eingegebenen Lösungsansätze zu überprüfen.<br />

Das klassische Prüfverfahren stellt hierbei die Simulation der Schaltung dar, bei der Testmuster<br />

erzeugt werden und die Reaktion der Schaltung anhand von grafischen Signalverläufen visuell<br />

begutachtet wird. Da letzteres bei Änderungen und Erweiterungen der Schaltung wiederholt<br />

erforderlich ist (und evtl. <strong>mit</strong> nachlassender Sorgfalt geschieht), erscheint es vorteilhafter, die<br />

erwarteten Reaktionen der Schaltung als Abfragen in der Simulationsdatei zu formulieren und so<br />

ggf. automatisch Fehlermeldungen zu erhalten. Bei Designs <strong>mit</strong> integrierter CPU kann dies sogar<br />

in Form von Programmen geschehen, die von der CPU ausgeführt werden. So wurden z. B. die<br />

UARTs in einem universellen Microcontroller simuliert, indem die zwei UARTs in der Simulationsdatei<br />

Chip-extern <strong>mit</strong>einander verbunden wurden und programmgesteuert Daten zwischen<br />

ihnen übertragen und ausgewertet wurden. Optional können dabei in der Testumgebung künstlich<br />

Übertragungsfehler generiert werden. An die Stelle der wiederholten visuellen Begutachtung von<br />

Kurvenformen tritt so die einmalige (und nicht zu unterschätzende) Prüfung, ob das ausgeführte<br />

Microcontrollerprogramm alle Fehler korrekt melden würde. Gleichzeitig ist menschliches Versagen<br />

bei der Interpretation der Simulationsergebnisse ausgeschlossen.<br />

Jede Simulation ist aber nur so gut, wie sie den Funktionsumfang der Schaltung überdeckt. Hier<br />

wird immer wieder übersehen, dass neben den erwünschten Schaltungsfunktionen auch getestet<br />

werden muss, ob unerwünschte Nebeneffekte auftreten. Soll beispielsweise ein Controller mehrere<br />

komplexe Startbedingungen überprüfen, so reicht es nicht aus, nur diese zu simulieren, da<br />

da<strong>mit</strong> nicht sichergestellt ist, dass der Controller nicht auch startet, wenn eine Startbedingung<br />

unvollständig erfüllt ist. Auch bei Registern wird zwar meist kontrolliert, ob sich ein Register an<br />

der spezifizierten Adresse schreiben und lesen lässt, es wird aber oft darauf verzichtet zu prüfen,<br />

ob es z. B. bei Schreibzugriffen auf falsche Adressen unverändert bleibt.<br />

Um all dies zu simulieren, wäre ein extrem hoher Simulationsaufwand erforderlich. Mit FPGA-<br />

Prototypenboards lässt sich bei solchen Details zwar die zeitraubende Simulation durch Tests in<br />

(evtl. skalierter) Echtzeit ersetzen, es bleibt aber der Aufwand für die Durchführung der einzel-

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!