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
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Perspektiven des modernen ASIC-Designs<br />
Lukas Bauer
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 />
D83<br />
Zeichen der Technischen Universität <strong>Berlin</strong> im Bibliotheksverkehr<br />
von der Fakultät IV (Elektrotechnik und Informatik) der Technischen Universität <strong>Berlin</strong><br />
zur Erlangung des akademischen Grades „Doktor der Ingenieurwissenschaften“ – Dr.-Ing. –<br />
genehmigte Dissertation,<br />
verfasst in der Zeit vom 20.09.2000 bis 20.11.2001,<br />
eingereicht am 28.11.2001,<br />
Tag der wissenschaftlichen Aussprache: 15.05.2002<br />
Promotionsausschuss:<br />
Vorsitzender: Prof. Dr.-Ing. Ernst Obermeier, <strong>TU</strong> <strong>Berlin</strong><br />
Gutachter: Prof. Dr. rer. nat. Otto Manck, <strong>TU</strong> <strong>Berlin</strong><br />
Gutachter: Prof. Dr.-Ing. Hans Weinerth, <strong>TU</strong> <strong>Berlin</strong><br />
(zus. Gutachten: Prof. Dr.-Ing. Ulrich Golze, <strong>TU</strong> Braunschweig)<br />
Diese Dissertation kann als .<strong>pdf</strong>-<strong>Datei</strong> (<strong>72</strong> <strong>dpi</strong> und 600 <strong>dpi</strong>) geladen oder als Buch bestellt werden:<br />
http://mikro.ee.tu-berlin.de/~bauer/index.php3<br />
Printed in Germany<br />
Copyright © 2001 Lukas Bauer<br />
Titelblatt<br />
Seite 2<br />
All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or trans<strong>mit</strong>ted, in any<br />
form or by any means (electronic, mechanical, photocopying, recording, or otherwise), without the prior written permission<br />
of the author.
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 />
Inhaltsverzeichnis<br />
Seite 3<br />
1 Das Wachstum der <strong>Mikroelektronik</strong> als Herausforderung des Designers 5<br />
2 ASICs – Anwendungsspezifische integrierte Schaltungen 6<br />
2.1 Historische Entwicklung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
2.1.1 Von den Anfängen der <strong>Mikroelektronik</strong> zur TTL-bestückten Leiterplatte. . . . 6<br />
2.1.2 Das ASIC als Bindeglied zwischen Standardkomponenten . . . . . . . . . . . . . . . 7<br />
2.1.3 Totalintegration zum „System on a Chip“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />
2.2 Einsatz von ASICs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />
2.2.1 Motivation für den ASIC-Einsatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />
2.2.2 Märkte und Einsatzfelder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
2.2.3 Die Konkurrenz der Standardprodukte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
3 Gegenwärtige technologische und wirtschaftliche Randbedingungen 14<br />
3.1 Technologischer Fortschritt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
3.1.1 Wachstumsgesetze der <strong>Mikroelektronik</strong>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
3.1.2 Gegenwärtige Grenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
3.2 Wirtschaftliche Restriktionen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />
3.2.1 Explodierende NRE-Kosten im Submikron-Bereich . . . . . . . . . . . . . . . . . . . 21<br />
3.2.2 Stückkosten und Mindeststückzahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />
4 Zeitgemäße Entwurfsstrategien 24<br />
4.1 Modernes Digitaldesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />
4.1.1 Fehlervermeidung durch Automatisierung und Abstraktion . . . . . . . . . . . . . 24<br />
4.1.2 Grafisches VHDL als personen- und maschinenlesbare Spezifikation. . . . . . 25<br />
4.1.3 Logiksynthese als etabliertes Mittel der Produktivitätssteigerung . . . . . . . . . 35<br />
4.1.4 Verkürzung von Entwicklungszeiten durch IPs und Design Re-Use . . . . . . . 39<br />
4.2 Verifikation durch FPGA-Prototypenboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42<br />
4.2.1 Hardware-Software-Co-Design <strong>mit</strong> skalierten ASIC-Äquivalenten. . . . . . . . 42<br />
4.2.2 Tests im realen Umfeld statt Simulationen <strong>mit</strong> unpräzisen Modellen . . . . . . 44<br />
4.3 Layouterstellung und Zeitverhalten hochkomplexer ASICs . . . . . . . . . . . . . . . . . . . 47<br />
4.3.1 Wachsender Einfluss von Metallisierungskapazitäten . . . . . . . . . . . . . . . . . . 47<br />
4.3.2 Systematische Ansätze zur Beherrschung des Post-Layout-Timings . . . . . . . 50<br />
4.3.3 Neue Aufgaben der Place & Route Tools im Submikron-Bereich . . . . . . . . . 54<br />
4.4 Design Flow und Verifikation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60<br />
4.4.1 Ein vollständiger, moderner Design Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . 60<br />
4.4.2 Die Lücke im Verifikationsablauf als Damoklesschwert . . . . . . . . . . . . . . . . 63<br />
5 Perspektiven des modernen ASIC-Designs 74<br />
5.1 Testkonzepte komplexer Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />
5.1.1 Strukturtests <strong>mit</strong> modifizierten Scan-Path-Verfahren . . . . . . . . . . . . . . . . . . . 74<br />
5.1.2 Software-Speichertests <strong>mit</strong> Ausmaskierung defekter Bereiche . . . . . . . . . . . 77<br />
5.1.3 Selbsttest und digitale Kalibrierung von Analogfunktionen. . . . . . . . . . . . . . 81<br />
5.2 Strukturwandel in der Systemarchitektur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88<br />
5.2.1 Zukünftige Aufbau- und Verbindungstechniken. . . . . . . . . . . . . . . . . . . . . . . 88<br />
5.2.2 Programmierbarkeit und Konfigurierbarkeit eines „System on a Chip“. . . . . 91<br />
5.2.3 Neubewertung von Speicher- und Logikintegration . . . . . . . . . . . . . . . . . . . . 94<br />
5.2.4 Neue Kosten- und Marktstrukturen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
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 />
Inhaltsverzeichnis<br />
Seite 4<br />
6 Zusammenfassung und Ausblick 99<br />
Lebenslauf 101<br />
Danksagung 102<br />
Kurzfassung (Abstract) 103<br />
English Abstract 104<br />
Glossar 105<br />
Literaturverzeichnis 111<br />
Wachstum der <strong>Mikroelektronik</strong>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111<br />
Schaltungstechnik, Schaltungsentwurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112<br />
Design Flow, CAE Tools, Halbleiterhersteller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113<br />
Zitate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114<br />
ASICs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115<br />
ASIC Gallery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
1. Kapitel<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
Das Wachstum der <strong>Mikroelektronik</strong> als Herausforderung<br />
des Designers<br />
Kapitel 1<br />
Seite 5<br />
Wer <strong>mit</strong> 15 Jahren sein erstes 1.000-Teile-Puzzle löst, betrachtet dies als den krönenden<br />
Abschluss einer rasanten Steigerung. Viel größere Puzzles sind nicht vorstellbar.<br />
Wer <strong>mit</strong> 30 Jahren sein erstes 1.000.000-Teile-Puzzle zusammensetzt, hat <strong>Mikroelektronik</strong> studiert<br />
und weiß, dass er entsprechend dem Moore’schen Gesetz 1 fünf Jahre später 10 Millionen<br />
Teile – bzw. Gatter – in ein ASIC integrieren wird.<br />
Doch es gibt einen Unterschied: Beim Puzzeln ist Probieren erlaubt, und jeder Fehler fällt sofort<br />
auf. Ein fertiges Puzzle, das Fehler aufweist, ist nicht denkbar. Der ASIC-Designer hingegen hat<br />
bei jedem Gatter und jeder Verbindung die Möglichkeit, unbemerkte Fehler einzubauen, und ein<br />
einziger Fehler reicht aus, um das gefertigte ASIC unbrauchbar zu machen. Selbst bei einer<br />
Designsicherheit pro Gatter von 99,999% liegt die Wahrscheinlichkeit für ein korrektes 10.000-<br />
Gatter-ASIC nur bei 90%, bei einem 100.000-Gatter-Design bei 37% und bei einer Million Gattern<br />
unter 0,005%, d. h. von 20.000 ASIC-Projekten wäre eines erfolgreich. Reparaturen von<br />
Fehlern im gefertigten ASIC sind dabei ausgeschlossen, und ein Fehlversuch verursacht einen<br />
Schaden von einer Million Dollar. Sind härtere Spielregeln denkbar?<br />
Der stetige technologische Fortschritt hat ein seit über 40 Jahren unverändert anhaltendes exponentielles<br />
Wachstum der Schaltungskomplexitäten ermöglicht, das den ASIC-Entwickler zwingt,<br />
in regelmäßigen Abständen seine Designmethoden nicht bloß zu verbessern, sondern zu revolutionieren,<br />
um in Produktivität und Designsicherheit <strong>mit</strong> diesem Wachstum <strong>mit</strong>halten zu können.<br />
So hat der Verfasser die Logiksynthese, die automatische Erzeugung von Schaltungen aus einer<br />
Verhaltensbeschreibung, und grafische HDL-Programme, die eine intuitivere Beschreibung von<br />
Funktionsabläufen erlauben, im Rahmen eines Praktikums am Institut für <strong>Mikroelektronik</strong> der<br />
<strong>TU</strong> <strong>Berlin</strong> eingeführt und <strong>mit</strong> Erfolg in den meisten seiner bisher 19 ASIC-Projekte eingesetzt.<br />
Im Laufe seiner zehnjährigen Beschäftigung <strong>mit</strong> dem ASIC-Design – dieser Zeitraum geht <strong>mit</strong><br />
einer Verhundertfachung der Schaltungskomplexitäten einher – konnte er dabei mehrere Generationen<br />
von CAE-Programmen kennenlernen und die faszinierende Entwicklung bis hin zu Transistorgeometrien<br />
weit unterhalb von einem Mikrometer <strong>mit</strong>verfolgen, die zusätzliche gravierende<br />
Änderungen im ASIC-Design erfordert. So müssen im Deep-Submicron-Bereich bei der Layouterstellung<br />
physikalische Effekte berücksichtigt werden, die früher eine untergeordnete Rolle<br />
gespielt haben, und völlig neue Algorithmen eingesetzt werden, um das Zeitverhalten der Schaltungen<br />
weiterhin beherrschen zu können.<br />
Nach einer indirekten Definition des ASIC-Begriffs im 2. Kapitel und einer differenzierten<br />
Betrachtung der Wachstumsgesetze der <strong>Mikroelektronik</strong> in Kapitel 3 sollen daher im 4. Kapitel<br />
ausführlich zeitgemäße Lösungen der Probleme bei Entwurf, Layouterstellung und Verifikation<br />
hochkomplexer ASICs dargestellt werden, die in der Praxis erprobt worden sind.<br />
Die Zukunft der ASIC-Entwicklung schließlich soll in Kapitel 5 anhand ausgewählter Bereiche<br />
diskutiert werden, in denen sich nicht nur bisherige Trends fortsetzen, sondern in denen sich völlig<br />
neuen Strukturen ergeben.<br />
1. Das Moore’sche Gesetz [53] beschreibt die Verzehnfachung der Komplexität integrierter Schaltungen<br />
alle fünf Jahre (vgl. Abschnitt 3.1.1, „Wachstumsgesetze der <strong>Mikroelektronik</strong>“, auf Seite 14).
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
2. Kapitel<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
ASICs – Anwendungsspezifische integrierte Schaltungen<br />
2.1 Historische Entwicklung<br />
2.1.1 Von den Anfängen der <strong>Mikroelektronik</strong> zur TTL-bestückten Leiterplatte<br />
Kapitel 2<br />
Seite 6<br />
Eine fundamentale Voraussetzung für die Konstruktion aktiver Analogschaltungen oder stabil<br />
arbeitender Digitalelektronik stellt die Verfügbarkeit spannungs- oder stromverstärkender Bauelemente<br />
dar. Lange Zeit kamen hierfür nur Elektronenröhren oder im Digitalbereich Relais in<br />
Frage, deren Herstellungskosten und deren begrenzte Lebensdauer die Komplexität der Schaltungen<br />
stark li<strong>mit</strong>ierten: Ein Elektronenröhrenrechner des Typs UNIVAC von 1946 (8 Tonnen,<br />
125kW, 1000 Rechenoperationen pro Sekunde, ab 1951 kommerziell erhältlich für 1 Million US-<br />
Dollar) enthielt ca. 5000 Röhren und konnte im statistischen Mittel nur einige Stunden lang<br />
betrieben werden, bevor eine Röhre ausfiel.<br />
Mit Erfindung des Transistors im<br />
Jahre 1947 (s. Abbildung 2-1) stand<br />
erstmals ein verschleißfreies, stromverstärkendesFestkörper-Bauelement<br />
zur Verfügung, das zwar<br />
anfangs noch sehr teuer war, sich<br />
aber aufgrund seiner Zuverlässigkeit<br />
und seiner elektrischen Eigenschaften<br />
immer mehr gegenüber den älteren<br />
Bauteilen durchsetzte. Ab 1957<br />
wurden Transistoren zu mehreren auf einer einzigen Scheibe aus Halbleitermaterial gefertigt<br />
(Planartechnologie), um anschließend getrennt verarbeitet zu werden.<br />
1958 hatte dann Jack Kilby die Idee, auch andere Bauteile wie<br />
Widerstände und Kondensatoren <strong>mit</strong> den gleichen fotografischen<br />
Verfahren und Diffusionsprozessen auf demselben Stück Halbleitermaterial<br />
herzustellen wie die Transistoren selbst. Indem er<br />
die Bauteile anschließend <strong>mit</strong> feinen Drähten verband, fertigte er<br />
so die erste monolithische integrierte Schaltung, einen „Phase-<br />
Shift Oscillator“, bestehend aus einem Transistor und einigen<br />
weiteren Bauteilen (Abbildung 2-2). Wenig später gelang es<br />
sogar, auch die Verbindungen zwischen den Bauelementen in<br />
einem Arbeitsschritt herzustellen, indem die Oberfläche der<br />
Halbleiterscheibe metallisiert und die Metallschicht nach einer<br />
Abbildung 2-1: Prototyp des<br />
ersten Transistors, erfunden<br />
1947 von Shockley, Bardeen<br />
und Brattain.<br />
Ein Plexiglasdreieck, dessen<br />
Schenkel getrennt <strong>mit</strong> Goldfolie<br />
belegt sind, wird auf ein<br />
Germaniumplättchen gedrückt,<br />
wodurch im Halbleitermaterial<br />
golddotierte Gebiete entstehen<br />
(Foto: Bell Laboratories).<br />
Abbildung 2-2: Labormuster der<br />
ersten integrierten Schaltung von<br />
1958 (Foto: Texas Instruments)<br />
fotografisch übertragenen Vorlage partiell weggeätzt wurde, so dass nur die gewünschten Verbindungen<br />
übrigblieben. Hier<strong>mit</strong> war der Grundstein gelegt, <strong>mit</strong> wenigen Arbeitsschritten elektronische<br />
(Teil)schaltungen unabhängig von der Anzahl der enthaltenen Bauteile zu fertigen, was bei<br />
nahezu unveränderten Prinzipien durch Verkleinerung der Strukturen bis heute ein ungeahntes<br />
Wachstum der Schaltungskomplexitäten ermöglicht hat.<br />
Bereits 1961 stellte Texas Instruments den ersten IC-basierten Mikrocomputer vor, der aus 587<br />
digitalen integrierten Schaltungen, namentlich RS-Flipflops, NOR-Gattern und Treibern,
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 2.1<br />
Seite 7<br />
bestand. Die Komplexität der Logikbausteine wurde in den folgenden Jahren schrittweise gesteigert,<br />
und ICs wurden als kommerzielles Produkt verfügbar. Das bekannteste Beispiel ist die 1964<br />
ebenfalls von Texas Instruments eingeführte Bausteinfamilie 5400 (bzw. 7400), in der diverse<br />
Gatter, Flipflops und einfache Logikbaugruppen in TTL-Technologie als integrierte Schaltungen<br />
im bis heute nahezu unveränderten DIP14-Gehäuse angeboten wurden. 1968 folgte von RCA die<br />
stromsparende CMOS-Logikfamilie CD4000.<br />
Der erste monolithisch integrierte Mikroprozessor (Abbildung<br />
2-3) wurde 1971 von Intel entwickelt. Die Integration<br />
stellte eine Notlösung <strong>mit</strong> unzureichender Performance dar,<br />
da die Designer nicht in der Lage waren, den geforderten<br />
Chipsatz von acht ICs im Zeitplan zu entwickeln. Der Auftraggeber<br />
brach das Projekt daraufhin ab, Intel wurden so<br />
aber die Entwicklungskosten finanziert, und <strong>mit</strong> dem gewonnenen<br />
Know-How konnte Intel Nachfolgeprodukte realisieren<br />
und bis heute eine marktbeherrschende Stellung<br />
behalten.<br />
Mit den seither allgemein erhältlichen Logikbausteinen,<br />
Mikroprozessoren sowie RAMs standen auch den Elektronikentwicklern<br />
außerhalb der IC-Herstellerfirmen die erforderlichen<br />
Grundelemente zur Verfügung, um alle<br />
erdenklichen Digitalschaltungen bis hin zu Computersystemen aufzubauen. Da hierbei ein Großteil<br />
der irregulären systemspezifischen Logik aus einzelnen Flipflops und Gattern, also unter Verwendung<br />
von ICs geringster Komplexität, zusammengefügt werden musste, entstanden oft<br />
„Gattergräber“ in der Form riesiger Leiterplatten von mehreren 1000 cm 2 Größe, die dicht <strong>mit</strong><br />
TTL-ICs bestückt waren.<br />
Die Möglichkeit, spezifische Teilschaltungen als eigenes IC zu realisieren, blieb dabei den Halbleiterherstellern<br />
vorbehalten; außerhalb dieser Unternehmen scheiterte dies an Know-how- und<br />
Kostenbarrieren, da die IC-Hersteller zwar teilweise Auftragsentwicklungen durchführten, sich<br />
aber nicht darauf einließen, ICs nach Kundenentwürfen zu fertigen. Hierzu fehlte es in der<br />
Anfangszeit auch noch an geeignet standardisierten Herstellungsprozessen <strong>mit</strong> wohldefinierten<br />
Transistorparametern: Man steuerte die elektrischen Eigenschaften einer Schaltung nicht wie<br />
heute ausschließlich über Maskengeometrien, sondern vielfach über Variationen der Prozessparameter<br />
wie z. B. der Dotierungsprofile. Das IC-Design galt daher jahrelang als Geheimwissenschaft<br />
weniger Spezialisten.<br />
2.1.2 Das ASIC als Bindeglied zwischen Standardkomponenten<br />
Abbildung 2-3: Intel 4004, der erste<br />
4-Bit-Mikroprozessor von 1961 <strong>mit</strong><br />
2300 Transistoren, im Keramikgehäuse<br />
<strong>mit</strong> Holzdeckel (Foto: Intel)<br />
Ab Anfang der 1980er Jahre wurde das IC-Design dann endlich der Öffentlichkeit zugänglich.<br />
Zum einen erschien <strong>mit</strong> dem „Mead Convay“ [23] das erste Standardwerk zum VLSI-Design,<br />
zum anderen entwickelte AMI die erste Familie von Gate Arrays, zu denen das fast legendäre<br />
UA4 <strong>mit</strong> knapp 800 Gattern gehörte. Der hierbei zugrunde liegende Gedanke, Chips <strong>mit</strong> Arrays<br />
von CMOS-Transistoren auf vorgefertigten Wafern anzubieten, auf denen die schaltungsspezifischen<br />
Verbindungen unter Verwendung einer einzigen individuellen Metallisierungsmaske hergestellt<br />
werden konnten, machte das IC-Design erstmals finanzierbar und aufgrund der fest<br />
definierten Transistorparameter auch beherrschbar.<br />
Der Begriff des ASICs, der anwendungsspezifischen integrierten Schaltung, wurde eingeführt,<br />
und die Vorteile der Gate-Array-Technologien wurden weltweit von Universitäten genutzt, um<br />
ASIC-Design in Theorie und Praxis zu lehren.
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 2.1<br />
Seite 8<br />
Auch im kommerziellen Bereich erkannte man schnell die Vorteile spezifischer ICs. Neben höheren<br />
Schaltungsgeschwindigkeiten und einem weitgehenden Schutz vor illegalen Schaltungsnachbauten<br />
erlaubten ASICs eine erhebliche Reduktion der Systemkosten, die sich aus den<br />
Einsparungen an Leiterplattenfläche, Montagekosten und Bauteilkosten zusammensetzt. Angesichts<br />
der Tatsache, dass ohne weiteres 100 ICs zu einem ASIC vereinigt werden konnten, waren<br />
insbesondere die Einsparungen im Leiterplattenbereich enorm.<br />
Im Sinne einer Kostenoptimierung des Gesamtsystems wurde daher meist so viel digitale Logik<br />
wie möglich in das ASIC integriert, bis eine feste Obergrenze wie die in einem Gate Array enthaltene<br />
Gatteranzahl oder die maximal verfügbare Anzahl an Pins – in den 80er Jahren meist nur<br />
40 bis 68 – erreicht war. Aufgrund ihrer Komplexität galten dabei alle Mikroprozessoren und<br />
Speicher als „grundsätzlich nicht integrierbar“, und bei Peripheriebausteinen <strong>mit</strong> parallelen<br />
Schnittstellen sprach die Anschlusszahl meist gegen die Integration. In einem Computersystem<br />
stellte daher die „Glue Logic“ zwischen derartigen Standardkomponenten ein typisches Einsatzgebiet<br />
für ein ASIC dar.<br />
Abbildung 2-4 zeigt ein typisches Beispiel für eine Teilintegration der Logik eines Computersystems;<br />
eine höhere Integrationsdichte war aus Gründen der Komplexität und des Pin Counts der<br />
verwendeten Bausteine nicht möglich.<br />
2.1.3 Totalintegration zum „System on a Chip“<br />
Das anhaltende Wachstum der Komplexitäten in der <strong>Mikroelektronik</strong> und die fortlaufende Weiterentwicklung<br />
der Gehäusetechnologien haben dazu geführt, dass heute ASICs <strong>mit</strong> Millionen<br />
von Gattern und Hunderten von Pins kostengünstig realisiert werden können. Da<strong>mit</strong> sind die<br />
klassischen Grenzen der ASIC-Integration weitgehend entfallen, und in konsequenter Fortsetzung<br />
der Kostenoptimierung kommt es immer häufiger vor, dass alle digitalen Komponenten<br />
eines Systems in einem einzigen ASIC untergebracht werden können. Falls dabei zur Systems-<br />
GAL1<br />
(MMU)<br />
16-Bit-CPU MC 68000<br />
GAL2<br />
(DMA)<br />
ROM<br />
RAM<br />
ROM<br />
RAM<br />
ISDN-S0<br />
Abbildung 2-4: Ein 16-Bit-Microcomputer zum Anschluss an den DMA-Bus „ACSI“ eines Atari Heimcomputers<br />
als Beispiel für den Einsatz von „ASICs“. Hier wurden vom Verfasser, 1991 noch Student, aus Kostengründen zwei<br />
programmierbare GALs eingesetzt, um ca. 400 Gatteräquivalente zu integrieren. Die verbleibenden Komponenten<br />
(CPU, Speicher, Takt- und Reset-Generator sowie einige Bustreiber) waren typisch für die frühen 90er Jahre.
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 2.2<br />
Seite 9<br />
teuerung auch eine CPU integriert wird und das ASIC so<strong>mit</strong> auch alle Schnittstellen und Speicherblöcke<br />
sowie die Firmware enthält, spricht man vom „System on a Chip“ (SoC).<br />
Die offensichtlichen Vorteile der Totalintegration wie die Einsparungen an Leiterplattenkosten,<br />
die erhöhte Zuverlässigkeit und das verbesserte Zeitverhalten gegenüber einer Mehrchiplösung<br />
sprechen dafür, dass sich der Gedanke des „System on a Chip“, unterstützt vom anhaltenden<br />
technologischen Fortschritt, immer weiter durchsetzen wird. Der Schwerpunkt dieser Arbeit soll<br />
daher auf dem Entwurf und den Zukunftsperspektiven hochkomplexer digitaler ASICs liegen.<br />
Zunächst sollen aber typische Einsatzfelder von ASICs, die gegenwärtigen Grenzen der Systemintegration<br />
sowie die Kosten- und Stückzahlproblematik beleuchtet werden.<br />
2.2 Einsatz von ASICs<br />
2.2.1 Motivation für den ASIC-Einsatz<br />
Integrierte Schaltungen werden heute in einer unüberschaubaren Vielzahl von Anwendungen in<br />
allen Bereichen des Lebens eingesetzt. Bei der Produktentwicklung sind die Motive für den Einsatz<br />
anwendungsspezifischer Schaltkreise sehr vielfältig und keineswegs auf kommerzielle<br />
Gesichtspunkte beschränkt.<br />
Im Extremfall ist die Entwicklung eines ASICs trivialerweise unverzichtbar, wenn aus technischen<br />
Gründen eine Realisierung <strong>mit</strong> Standardkomponenten und diskreten Bauteilen nicht möglich<br />
ist. Dies ist beispielsweise dann der Fall, wenn neue Algorithmen in Hardware implementiert<br />
werden sollen, die noch nicht in Standardkomponenten realisiert worden sind und für deren<br />
geforderte Performance eine Implementation in programmierbarer oder diskreter Logik ausscheidet;<br />
des weiteren, wenn die Performance gegenüber den besten verfügbaren Standardkomponenten<br />
gesteigert werden soll oder wenn die zulässigen mechanischen Dimensionen des Produkts<br />
einen Aufbau aus Einzelkomponenten verbieten.<br />
Doch auch in weniger extremen Situationen erlauben es ASICs häufig, diverse Eigenschaften des<br />
zu realisierenden Produktes entscheidend zu verbessern oder dem Unternehmen sonstige Wettbewerbsvorteile<br />
zu verschaffen:<br />
● ASICs reduzieren die Systemkosten:<br />
Durch die Integration des Funktionsinhalts vieler ICs geringer Komplexität in ein ASIC<br />
lassen sich die Systemkosten drastisch reduzieren. Es ergeben sich Einsparungen bei der<br />
Leiterplattenfläche, den Montagekosten und den Bauteilkosten (incl. Beschaffung und<br />
Lagerhaltung). Im Vergleich zu den Herstellungskosten der einzelnen ICs werden IC-<br />
Gehäusekosten und Siliziumflächen (Summe der Chipgrößen) eingespart. Dass die<br />
Gesamtsiliziumfläche beim Zusammenfügen einzelner ICs zu einem ASIC drastisch<br />
verringert wird, ergibt sich aus einem Größenvergleich der internen Gatter <strong>mit</strong> den Padzellen<br />
im I/O-Bereich des ICs. Da auf den Pads vergleichsweise riesige Bonddrähte aufgesetzt<br />
werden müssen und die Ausgangstreiber Kapazitäten auf der Leiterplatte<br />
umladen müssen, die um Größenordnungen über den Chip-internen Lastkapazitäten liegen,<br />
sind I/O-Zellen oft 100 mal so groß wie interne Gatter und nehmen bei ICs geringer<br />
Komplexität einen erheblichen Teil der Siliziumfläche ein, die beim Zusammenfügen zu<br />
einem ASIC eingespart wird.<br />
● ASICs bieten in Spezialanwendungen eine höhere Performance:<br />
Während für allgemeine Anwendungen eine Vielzahl von hochoptimierten Mikroprozessoren<br />
und digitalen Signalprozessoren angeboten wird, deren Performance kaum zu<br />
überbieten ist, werden in spezifischen Anwendungen oft spezielle Algorithmen benötigt,
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 2.2<br />
Seite 10<br />
die in Hardware abgebildet werden müssen, um eine maximale Performance zu erreichen.<br />
Die günstigste Gesamtlösung besteht meist aus einer integrierten CPU <strong>mit</strong>tlerer<br />
Komplexität und parallel dazu arbeitenden Hardware-Rechenwerken für die rechenzeitintensiven<br />
Funktionen der spezifischen Anwendung. Ein so aufgebautes ASIC kann<br />
durch seine massive Parallelität ein Vielfaches der Performance gegenüber einem leistungsstarken<br />
Mikroprozessor <strong>mit</strong> entsprechender Software erreichen.<br />
● ASICs sparen Strom:<br />
Insbesondere bei batteriebetriebenen Geräten ist die Stromaufnahme der Schaltung relevant.<br />
Da bei einem individuell auf das Produkt zugeschnittenen ASIC nur die tatsächlich<br />
benötigten Schaltungsfunktionen Strom verbrauchen, stellen ASICs oft die stromsparendste<br />
Lösung dar. Nicht nur beim Handy kann die Lebensdauer des Akkus ein entscheidendes<br />
Vergleichskriterium bei der Kaufentscheidung sein, und deshalb ist dieser<br />
Aspekt nicht zu unterschätzen.<br />
● ASICs sind kleiner:<br />
Was für den Stromverbrauch mobiler Geräte gilt, gilt erst recht für deren Formfaktor.<br />
Durch die Integration aller Systemkomponenten in ein einziges ASIC lässt sich die<br />
jeweils kleinste Bauform erreichen.<br />
● ASICs können die Beschaffungsproblematik vermeiden:<br />
Schwankende Preise und Lieferzeiten bis hin zur Abkündigung von Produkten oder<br />
monatelangen Lieferengpässen sind bei Standardkomponenten keine Seltenheit, bei<br />
ASICs hingegen sind Kosten und Termine aufgrund fester Lieferverträge kalkulierbar.<br />
Die im Jahr 2000 extreme Beschaffungsproblematik bei Flash-Speichern war daher<br />
sicher ein Grund für manche „System on a Chip“-Integration.<br />
● ASICs steigern die Zuverlässigkeit des Systems:<br />
Die Zuverlässigkeit eines Systems ist von der Komplexität der ICs fast vollkommen<br />
unabhängig. Entscheidend ist die Anzahl der Bauteile und Verbindungen, da im Bereich<br />
der Leiterplatte mechanische Spannungen und Korrosion auftreten können. Falls viele<br />
oder alle Systemfunktionen in einem ASIC integriert werden können, steigt die Zuverlässigkeit<br />
des Systems erheblich.<br />
● ASICs dienen als Kopierschutz:<br />
Der wirtschaftliche Schaden durch den illegalen Nachbau elektronischer Geräte kann<br />
für die betroffenen Unternehmen bis zum Bankrott führen. Solange nur Standardkomponenten<br />
auf einer Leiterplatte assembliert werden, gibt es keinen wirksamen Schutz<br />
gegen Raubkopien. Auch ein Abschleifen des Aufdrucks der integrierten Schaltungen<br />
erschwert lediglich die Analyse der Schaltung. ASICs hingegen erlauben einen fast perfekten<br />
Kopierschutz und machen bei Kryptographieanwendungen ein Ausspähen interner<br />
Daten nahezu unmöglich.<br />
Im Vergleich zu einer Lösung aus Standardkomponenten – falls eine solche existiert – bezahlt der<br />
Auftraggeber die aufgeführten Vorteile zunächst <strong>mit</strong> den Entwicklungs- und NRE-Kosten der<br />
ASIC-Integration, aber auch <strong>mit</strong> einer verlängerten Entwicklungszeit und dem Risiko eines<br />
Fehlschlags. Obwohl die Abwägung zwischen Chancen und Risiken stets individuell erfolgen<br />
muss, zeigt sich doch, dass in bestimmten Märkten und Einsatzfeldern in der Regel die Vorteile<br />
einer ASIC-Entwicklung überwiegen. Welche Bereiche das sind und wie durch den ASIC-Einsatz<br />
Marktstrukturen verändert werden können, soll im Folgenden dargestellt werden.
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
2.2.2 Märkte und Einsatzfelder<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
Kapitel 2.2<br />
Seite 11<br />
Eine Vergrößerung des Gewinns ist sicher das wichtigste kommerzielle Ziel in allen Industriezweigen,<br />
wobei der Gewinn eng <strong>mit</strong> dem Umsatz, dem Produkt aus Stückzahl und Preis der verkauften<br />
Produkte, verknüpft ist. In den meisten Industriezweigen ist diese Größe auf den<br />
Gesamtmarkt bezogen eng li<strong>mit</strong>iert, so dass lediglich ein Konkurrenzkampf um die Verteilung<br />
des Marktes geführt werden kann.<br />
Die <strong>Mikroelektronik</strong>-Industrie stellt hier insofern eine Ausnahme dar, als das exponentielle<br />
Wachstum zu solch rasanten Leistungssteigerungen oder Preissenkungen führt, dass hierdurch<br />
völlig neue Märkte <strong>mit</strong> teilweise explosionsartigem Wachstum geschaffen werden können. Die<br />
Beispiele hierfür (Computer, Internet, Mobilfunk, TV-/Audio-/Videogeräte etc.) sind äußerst<br />
vielfältig, während sich in den letzten 50 Jahren nur wenige wirklich neue nicht-elektronische<br />
Produkte verbreiten konnten und das Verbreitungstempo z. B. des Automobils vergleichsweise<br />
moderat war.<br />
In der <strong>Mikroelektronik</strong>branche beobachtet man die folgenden Expansionsphänomene:<br />
● Ein Erreichen neuer Leistungsklassen erweitert Märkte.<br />
Die Taktfrequenz und Performance eines Mikroprozessors, die Datenrate einer Schnittstelle<br />
oder die Auflösung und Bildqualität eines digitalen Videosystems stellen Leistungsmerkmale<br />
dar, die stetigen Verbesserungen unterliegen. Der Kunde ist<br />
naturgemäß bereit, für das Mehr an Leistung einen entsprechend höheren Preis zu<br />
bezahlen 1 . Durch deutliche Steigerungen gegenüber dem Stand der Technik kann ein<br />
Unternehmen nicht nur der Konkurrenz Marktanteile abgewinnen, sondern evtl. auch<br />
das Gesamtmarktvolumen vergrößern, wenn die gesteigerte Leistung erstmals für neue<br />
Anwendungen und Einsatzgebiete ausreicht oder die bessere Qualität der Endprodukte<br />
mehr Kunden zu Käufen bewegt. Derartige Entwicklungen spielen sich derzeit beispielsweise<br />
bei PCs und Spielkonsolen, Netzwerkkomponenten (Gigabit Ethernet) und<br />
digitalen Video-Aufzeichnungsgeräten ab.<br />
Mit Ausnahme von Parallelrechnern, die aus einer gesteigerten Anzahl käuflicher<br />
Mikroprozessoren zusammengesetzt werden können, sind die beschriebenen Verbesserungen,<br />
die stets ein Vordringen in den absoluten High-End-Bereich bedeuten, ohne die<br />
Entwicklung spezieller ICs nicht möglich. Dabei ist es aufgrund der hohen NRE-Kosten<br />
und Risiken den finanzkräftigen Unternehmen vorbehalten, die gesteigerte Leistung<br />
durch Ausnutzen der modernsten Halbleitertechnologien zu erreichen. Die Chancen<br />
kleiner und <strong>mit</strong>tlerer Unternehmen, <strong>mit</strong> ASICs in neue Leistungsklassen vorzustoßen,<br />
bleiben darauf beschränkt, neuartige Algorithmen und Architekturen zu erfinden.<br />
● Ein Unterschreiten von Preisbarrieren erschließt neue Märkte.<br />
Da Kaufentscheidungen anhand von Qualität und Preis eines Produktes gefällt werden,<br />
ist eine Kostenreduktion der andere Weg, zusätzlichen Absatz zu erzeugen. Vielfach<br />
zeigt sich, dass Preissenkungen zu einer weit überproportionalen Stückzahl-Steigerung<br />
führen, so dass sich der Gesamtumsatz sogar erhöht. Die dafür erforderliche Kostenreduktion<br />
muss allerdings signifikant über die kontinuierliche Kostendegression der Einzelkomponenten<br />
eines Systems hinausgehen und ist heute in den meisten Fällen nur<br />
durch eine Single-Chip-Integration möglich. Dabei kann anhand der Komplexität zwischen<br />
verschiedenen Produktklassen unterschieden werden:<br />
1. Die stetige Kostendegression der <strong>Mikroelektronik</strong> führt jedoch z. B. bei Mikroprozessoren über einen<br />
längeren Zeitraum betrachtet zu annähernd konstanten Preisen bei steigender Performance.
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 2.2<br />
Seite 12<br />
„System on Chip“-ICs hoher Komplexität werden ausschließlich in Märkten <strong>mit</strong> großen<br />
Stückzahlen eingesetzt, typischerweise in hochwertigen Consumer-Produkten wie<br />
DVD-Playern, Settop-Boxen, Digitalkameras, Handys oder Spielkonsolen, also in<br />
Systemen <strong>mit</strong> komplexer Programmier- oder Konfigurierbarkeit und hoher Performance.<br />
Abweichend vom typischen ASIC-Anwender sind die Hersteller derartiger Endprodukte<br />
meist große Unternehmen, die über eigene Halbleiterfabriken und Entwicklungsabteilungen<br />
verfügen.<br />
Als „Mini-SoC“ sollen hier Low-Cost-ICs definiert werden, die alle Systemfunktionen<br />
eines stark reduzierten Systems in einem Chip integrieren. Es gibt Anwendungen <strong>mit</strong><br />
wenigen Schnittstellen und fest definierten Funktionen, so dass beispielsweise der Programmspeicher<br />
durch ein sehr kleines ROM ersetzt werden kann. Neben der reduzierten<br />
Flexibilität sind gegenüber den High-End-Produkten des jeweiligen Bereichs oft auch<br />
Abschläge an der Performance oder dem Benutzerinterface erlaubt. Typische Beispiele<br />
sind Chipkarten <strong>mit</strong> Kryptographiefunktionen, intelligente Zugangskontrollsysteme<br />
(Wegfahrsperre), einfache Telespiele („Tamagochi“) sowie alle Consumer-Produkte des<br />
jeweils unteren Preissegments, die als komplexitäts- und kostenmäßig reduzierte<br />
Systeme zu Massenprodukten werden können.<br />
In Systemen ohne Controller schließlich können die einfachen Funktionen über hartverdrahtete<br />
Logik realisiert werden, so dass man trotz der Totalintegration auf einem<br />
Chip nicht mehr vom SoC spricht. Oft handelt es sich um batteriebetriebene oder fremdgespeiste<br />
Systeme <strong>mit</strong> Chipflächen im Bereich von 1mm 2 , die aus Platz- und Kostengründen<br />
in Chip-on-Board-Technologie aufgebaut werden. Typische Anwendungen sind<br />
Telefonkarten, intelligente Sensoren, Digitaluhren, Taschenrechner im Scheckkartenformat<br />
oder Melodien piepende Grußkarten.<br />
Insbesondere die Vertreter der letzten Kategorie zeigen deutlich, wie durch reine<br />
Kostensenkung Märkte geschaffen werden können. Wenn eine Melodien piepende<br />
Grußkarte kaum mehr kostet als eine (angenehm) stille Karte, wird sie (ungeachtet der<br />
ökologischen Bedenklichkeit batteriebetriebener Wegwerfprodukte) bei Unterschreiten<br />
einer gewissen Preisdifferenz gekauft.<br />
● Eine Verbesserung des Preis-Leistungs-Verhältnisses erlaubt eine Expansion in<br />
etablierten Märkten.<br />
Während sich die bisher beschriebenen Phänomene üblicherweise in Märkten abspielen,<br />
die aufgrund der hohen Stückzahlen für große Unternehmen interessant sind und nicht<br />
selten von diesen dominiert werden, werden die typischen ASICs vor allem von kleinen<br />
und <strong>mit</strong>tleren Unternehmen in Bereichen <strong>mit</strong> <strong>mit</strong>tleren Stückzahlen eingesetzt: Die<br />
Umsätze müssen einerseits groß genug sein, um die Entwicklungs- und NRE-Kosten<br />
einer ASIC-Entwicklung zu rechtfertigen, andererseits aber nicht so hoch, dass die „Big<br />
Player“ <strong>mit</strong> enormen Investitionen und SoC-Integrationen eine marktbeherrschende<br />
Stellung erreichen.<br />
ASICs werden daher häufig in Märkten eingesetzt, die noch Produkte <strong>mit</strong> Mehrchip-<br />
Lösungen erlauben. Dabei kann das ASIC in einer „Nahezu-SoC“-Lösung die Hauptfunktionen<br />
des Systems umfassen, wobei evtl. große Speicher und Peripheriekomponenten<br />
wie z. B. Ethernet-Phy’s extern angeschlossen werden, oder das ASIC kann neben<br />
einem käuflichen Microcontroller eingesetzt werden und nur die systemspezifischen<br />
Spezialfunktionen enthalten.<br />
Das ASIC ist dabei üblicherweise auf ein konkretes Produkt zugeschnitten und kann<br />
dessen Preis-Leistungs-Verhältnis oft ausreichend verbessern, um den Marktanteil des
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 2.2<br />
Seite 13<br />
Herstellers gegenüber der Konkurrenz zu vergrößern, was insbesondere für kleinere<br />
Unternehmen ein enormes Wachstum ergeben kann. Typische etablierte Märkte dieser<br />
Art sind der Telekommunikationssektor, die Mess- und Regelungstechnik, die Industrieautomatisierung<br />
und die beginnende Haustechnik.<br />
2.2.3 Die Konkurrenz der Standardprodukte<br />
Auch wenn es in den letzten Jahren zu einer Vermischung beider Arten integrierter Schaltungen<br />
gekommen ist (vgl. Abschnitt 5.2.4), sollen hier die klassischen Unterschiede zwischen ASICs<br />
und Standardprodukten beschrieben werden.<br />
Standardkomponenten werden von großen Unternehmen, meist den Halbleiterherstellern selbst,<br />
entwickelt und so allgemein wie möglich gehalten, um einen möglichst breiten Kundenkreis <strong>mit</strong><br />
vielen Anwendungen anzusprechen. Der Integrationsgrad ist deutlich geringer als der eines<br />
„System on a Chip“, meistens werden sogar nur einzelne Schnittstellen oder Funktionsgruppen<br />
als Standardprodukt angeboten, die vom Kunden zu Systemen zusammengestellt werden.<br />
Die Möglichkeiten, auf Funktionen und Eigenschaften der angebotenen ICs Einfluss zu nehmen,<br />
sind für kleine und <strong>mit</strong>tlere Unternehmen nahe bei null, da sich die Hersteller von Standardkomponenten<br />
nur daran orientieren, welche Produkte sich in großen Stückzahlen <strong>mit</strong> Gewinn vermarkten<br />
lassen. Dem Kleinunternehmer bleibt so oft nur die Möglichkeit, sich der manchmal fast<br />
monopolartig angebotenen Standardkomponenten zu bedienen: „Friss oder stirb!“<br />
Erst bei <strong>mit</strong>tleren Stückzahlen, im Durchschnitt ab ca. 100.000 Exemplaren, lohnt sich die Investition<br />
in eine ASIC-Entwicklung, um zu einer individuellen, in Preis und Leistung optimal auf<br />
ein Produkt zugeschnittenen Lösung zu gelangen. Um den <strong>mit</strong> dem ASIC erreichbaren Wettbewerbsvorteil<br />
nicht auch der Konkurrenz zu bieten, sind die Lieferverträge der ASIC-Kunden <strong>mit</strong><br />
dem Halbleiterhersteller bzw. einem als „Fabless ASIC Provider“ fungierenden Designhaus in<br />
aller Regel von exklusiver Natur; die Kunden sind sogar oft bereit, für die exklusive Belieferung<br />
<strong>mit</strong> ihrem ASIC höhere Preise oder ungünstigere Konditionen zu akzeptieren: Das ASIC soll<br />
Alleinstellungsmerkmale nur für das eigene Produkt bieten.<br />
Dies erlaubt die folgenden Definitionen:<br />
● Das ASIC ist eine Lösung für ein Produkt.<br />
● Das Standard-IC ist eine Lösung für einen Markt.<br />
Die Hauptvorteile von Standardkomponenten sind dabei ihre sofortige Verfügbarkeit und die<br />
geringen Herstellungskosten, die daraus resultieren, dass Entwicklungs- und NRE-Kosten bei<br />
den hohen Stückzahlen anteilig nur wenig ins Gewicht fallen. Andererseits werden vom gewinnorientierten<br />
Hersteller Aufschläge erhoben, die insbesondere bei monopolartig angebotenen Produkten<br />
enorm sein können.<br />
Das günstigere Preis-Leistungs-Verhältnis lässt sich daher oft <strong>mit</strong> ASICs erzielen. In einem ASIC<br />
kann der integrierte Funktionsumfang darüber hinaus optimal auf das zu realisierende Produkt<br />
zugeschnitten werden. Beim Einsatz von Standardkomponenten müssen häufig Funktionen <strong>mit</strong><br />
eingekauft werden, die gar nicht benötigt werden, während zusätzliche Leistungsmerkmale nur<br />
über teure externe Erweiterungen realisiert werden können. Beim ASIC hingegen können Funktionsumfang,<br />
Performance, Speichergrößen etc. individuell optimiert werden, ohne dass solche<br />
Mehrkosten entstehen. Im Vergleich zu Standardlösungen erlaubt es ein ASIC daher oft, zum<br />
gleichen Preis das entscheidende zusätzliche Merkmal <strong>mit</strong> anzubieten, das den Markterfolg herbeiführt.
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
3. Kapitel<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
Gegenwärtige technologische und wirtschaftliche<br />
Randbedingungen<br />
3.1 Technologischer Fortschritt<br />
3.1.1 Wachstumsgesetze der <strong>Mikroelektronik</strong><br />
Kapitel 3<br />
Seite 14<br />
Das exponentielle Wachstum der <strong>Mikroelektronik</strong>, das seit vier Jahrzehnten etwa alle fünf Jahre<br />
zu einer Verzehnfachung der Schaltungskomplexitäten führt, ist nicht nur eine faszinierende Entwicklung,<br />
die in anderen Industriezweigen oder an den Wertpapierbörsen vergeblich auch nur<br />
annähernd Vergleichbares sucht. Das Wachstum stellt auch eine Gesetzmäßigkeit dar, die es<br />
erlaubt, bereits während der Konzeptionsphase eines Produktes abzuschätzen, welcher Funktionsumfang<br />
sich bei Produktionsbeginn, also etwa sechs bis zwölf Monate später, in einem ASIC<br />
integrieren lassen wird.<br />
Prediction is very difficult, especially about the future.<br />
Niels Bohr<br />
Angesichts einer Wachstumsrate von fast 60% per anno ist es für den Geschäftsmann durchaus<br />
ein signifikanter Unterschied, ob er für die Kalkulation und Produktdefinition aktuelle Komplexitätswerte<br />
zugrundelegt oder ob er den voraussichtlichen technologischen Fortschritt während der<br />
Entwicklungszeit <strong>mit</strong> einplant. Im Folgenden sollen daher die Wachstumstrends der <strong>Mikroelektronik</strong><br />
untersucht werden, und es soll dargestellt werden, warum die Annahme eines in naher<br />
Zukunft weiterhin konstanten Wachstums im ASIC-Geschäft gefahrlos möglich erscheint.<br />
Bereits 1965 formulierte Intel-Mitbegründer Gordon Moore das wohl wichtigste Wachstumsgesetz<br />
der <strong>Mikroelektronik</strong>, das nach ihm benannte Moore’sche Gesetz [53], demzufolge sich die<br />
Komplexität integrierter Schaltungen jedes Jahr verdoppelt. Die wenigen Daten der noch sehr<br />
jungen Entwicklung extrapolierte er damals zwar etwas zu optimistisch – im langjährigen Durchschnitt<br />
wuchsen die Komplexitäten bis heute etwa alle 18 Monate um den Faktor zwei – doch<br />
erkannte Moore früh den exponentiellen Charakter des Wachstums.<br />
Andere Analysten untersuchten später die Performance von Mikroprozessoren und vermeldeten<br />
noch spektakulärere Ergebnisse. Hierbei muss aber berücksichtigt werden, dass bei Prozessoren<br />
eine Vermischung von Schaltzeiten der Gatter und Zugriffszeiten der Speicher stattfindet, die<br />
unterschiedlichen Wachstumsraten folgen, und dass die Architekturprinzipien der Mikroprozessoren<br />
starken Änderungen unterliegen. Eine unverfälschte Aussage über den technologischen<br />
Fortschritt ist daher nur bei Betrachtung der Einzelparameter möglich, von denen nun diejenigen<br />
untersucht werden sollen, die für das ASIC-Design aus technischer Sicht relevant erscheinen; die<br />
Kostenentwicklung wird dann in Abschnitt 3.2 dargestellt.<br />
Die Abbildungen 3-1 bis 3-15 auf Seite 16 bis 19 wurden generiert, indem aus der Literatur Diagramme<br />
und Einzelwerte zur historischen Entwicklung der betrachteten Parameter entnommen,<br />
um aktuelle Daten ergänzt und gemeinsam <strong>mit</strong> den Zielvorgaben der „SIA Roadmap“ [1], [2],<br />
[3], [4] in jeweils einem Diagramm dargestellt wurden. Die Vorgaben der SIA, einer internationalen<br />
Vereinigung von Halbleiterherstellern, haben dabei fast den Charakter von selbsterfüllenden<br />
Prophezeiungen, da die einzelnen Unternehmen enorme Summen investieren, um die Vorgaben
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 3.1<br />
Seite 15<br />
einzuhalten oder gar zu überbieten. Tatsächlich zeigt sich im Vergleich der Roadmaps von 1994<br />
bis 1999, dass die wesentlichen Ziele stets höher gesteckt bzw. zeitlich nach vorne verschoben<br />
werden mussten.<br />
Durch die gemeinsame Darstellung historischer, aktueller und prognostizierter Werte werden in<br />
den Diagrammen teilweise sehr lang anhaltende Trends sichtbar. Die Darstellung erfolgt überwiegend<br />
im logarithmischen Maßstab, wodurch das exponentielle Wachstum <strong>mit</strong> langjährig konstanten<br />
Wachstumsraten deutlich wird.<br />
In den Abbildungen 3-1 und 3-2 wird zunächst das Wachstum der Schaltungskomplexitäten<br />
gezeigt. Dargestellt werden die Größe von DRAMs in Bits und die Transistorzahl von Mikroprozessoren,<br />
die das klassische Untersuchungsobjekt des Moore’schen Gesetzes sind. Die beliebteste<br />
Formulierung für das Wachstum der DRAM-Größen, die eine Vervierfachung alle drei Jahre<br />
hervorhebt, orientiert sich dabei an der historisch bedingten Schrittweite des Speicherwachstums:<br />
Aufgrund des Multiplexens von Reihen- und Spaltenadressen in einem DRAM erlaubt eine<br />
Erweiterung um eine Adressleitung sofort eine Vervierfachung der Speichergröße. Da Drei-Jahres-Abstände<br />
auch produktionstechnisch sinnvoll sind, hat sich diese Schrittweite bis heute etabliert.<br />
Die Grundlage des Wachstums ist dabei die technologische Weiterentwicklung der Lithographieprozesse,<br />
die zu einer Verringerung der Strukturbreite, d. h. der Kanallänge der Transistoren<br />
(Abbildung 3-3) führt. Da sich viele andere Geometriegrößen wie z. B. die Metallisierungsabstände<br />
(metal pitch) in etwa proportional zur Strukturbreite ebenfalls verkleinern, steigt die<br />
erreichbare Zelldichte quadratisch <strong>mit</strong> dem Kehrwert der Kanallänge an (Abbildung 3-4).<br />
Die vergrößerte Zelldichte kann das Wachstum der Schaltungskomplexitäten jedoch nicht allein<br />
erklären. Einen weiteren Beitrag liefert eine stetige Vergrößerung der Chipflächen (vgl. Abbildung<br />
3-5). Dabei erlaubt die höhere Dichte allein einen Komplexitätsanstieg bei DRAMs von<br />
32% p. a. 1 , der zusammen <strong>mit</strong> dem Flächenwachstum von 20% p. a. zu einem Gesamtanstieg der<br />
Speichergröße von 58% p. a. 2 entsprechend Abbildung 3-1 führt.<br />
Möglich wird das Flächenwachstum in erster Linie durch eine drastische Verringerung der<br />
Defektdichte bei der Fertigung. Um 1975 lag der Yield eines 20mm 2 -Chips noch bei ca. 60%.<br />
Rechnet man diesen auf einen heutigen 400mm 2 -Speicherchip um, ergäbe sich eine Ausbeute<br />
von nur noch 0,6 20 ≈ 0,0037%, die jede wirtschaftliche Produktion unmöglich machen würde.<br />
Durch extreme Reinraumbedingungen und die weitgehende Automatisierung konnte die Defektdichte<br />
aber so stark reduziert werden, dass sich das dargestellte Flächenwachstum bei gleichzeitig<br />
noch vergrößertem Yield erreichen ließ.<br />
Die treibende Kraft der dargestellten Entwicklungen waren lange Zeit die hochvolumigen Standardprodukte,<br />
allen voran Speicher und Mikroprozessoren, in deren Kielwasser die ASICs nur<br />
verzögert vom technologischen Fortschritt profitierten. In den vergangenen Jahren haben ASICs<br />
aber, wie Abbildung 3-3 deutlich zeigt, zu den Speichern aufgeschlossen und stellen heute<br />
gemeinsam <strong>mit</strong> den Mikroprozessoren die Technologietreiber dar.<br />
In den Abbildungen 3-6 bis 3-15 auf Seite 16 bis 19 wurde die Entwicklung weiterer Parameter<br />
dargestellt, auf die erst im weiteren Verlauf dieser Arbeit Bezug genommen wird. Der Übersichtlichkeit<br />
wegen wurden sie aber gemeinsam in diesem Kapitel gesammelt. So zeigt Abbildung 3-6<br />
das Wachstum der Anschlusszahl von IC-Gehäusen, das vor allem auf die vergrößerte Busbreite<br />
paralleler Speicherinterfaces zurückzuführen ist.<br />
1. Längenreduktion 13% p. a. aus Abbildung 3-3; 1 / 0,87 2 ≈ 1,32<br />
2. 1,32 ⋅ 1,20 ≈ 1,58
100G<br />
10G<br />
1G<br />
100M<br />
10M<br />
1M<br />
100k<br />
10k<br />
1000<br />
100<br />
10<br />
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
Komplexität von DRAMs<br />
(Bits)<br />
1k<br />
4k<br />
16k<br />
64k<br />
256k<br />
Trend:<br />
Faktor 10 in 5 Jahren<br />
(Faktor 4 in 3 Jahren)<br />
1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010<br />
Abbildung 3-1: Die Komplexität von DRAMs [10]<br />
folgt streng einem exponentiellen Wachstumstrend.<br />
50μ<br />
20μ<br />
10μ<br />
5μ<br />
2μ<br />
1μ<br />
0.5μ<br />
0.2μ<br />
0.1μ<br />
50n<br />
Strukturbreite<br />
(drawn gate length)<br />
256<br />
1k<br />
4k<br />
16k<br />
64k<br />
256k<br />
1M<br />
1M<br />
4M<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
16M<br />
64M<br />
256M<br />
1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010<br />
Abbildung 3-3: Das Kernziel der Technologen ist eine<br />
Verringerung der Transistor-Kanallängen [4], [11].<br />
1000<br />
500<br />
400<br />
300<br />
200<br />
100<br />
50<br />
40<br />
30<br />
20<br />
10<br />
DRAM-Trend<br />
×0,5 in 5 Jahren<br />
(-13% p.a.)<br />
4M<br />
Chipfläche (DRAM, μP)<br />
(mm2 )<br />
8080<br />
8086<br />
4k<br />
4004<br />
1k<br />
16k<br />
286<br />
386<br />
256k<br />
64k<br />
16M<br />
64M<br />
1G<br />
256M<br />
1G<br />
4G<br />
4G<br />
16G<br />
16G<br />
ASIC-Trend<br />
×0,5 in 4 Jahren<br />
(-16% p.a.)<br />
1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010<br />
Abbildung 3-5: Die Komplexitätszunahme ist zum Teil<br />
auf die wachsende Chipgröße zurückzuführen [3], [10].<br />
1M<br />
4M<br />
4G<br />
Alpha 21364 0.25μ<br />
Pentium 0.8μ<br />
1G<br />
486<br />
256M<br />
P4 0.18μ<br />
64M P II 0.35μ<br />
Pentium 0.6μ<br />
16M P II 0.25μ<br />
P III E, 0.18μ<br />
Pentium 0.35μ<br />
Trend:<br />
+20% p.a.<br />
16G<br />
100G<br />
10G<br />
1G<br />
100M<br />
10M<br />
1M<br />
100k<br />
10k<br />
1000<br />
100<br />
10<br />
Komplexität von Mikroprozessoren<br />
(Transistoren)<br />
DRAM-Trend<br />
(+58% p.a.)<br />
8080<br />
4004<br />
8086<br />
286 386<br />
erstes kommerzielles IC: 1 Flipflop (2 T + 8 R)<br />
μP-Trend<br />
(+43% p.a.)<br />
Kapitel 3.1<br />
Seite 16<br />
Alpha 21464<br />
Alpha 21364<br />
IBM Power 4<br />
Alpha 21264 Pentium 4<br />
Alpha 21164 Pentium III E<br />
Pentium III<br />
Pentium II<br />
Pentium Pro<br />
Pentium<br />
486<br />
1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010<br />
Abbildung 3-2: Irreguläre Strukturen in Mikroprozessoren<br />
führen dort zu einem langsameren Wachstum [20].<br />
1M<br />
500k<br />
200k<br />
100k<br />
50k<br />
20k<br />
10k<br />
5k<br />
2k<br />
1k<br />
500<br />
200<br />
100<br />
50<br />
20<br />
10<br />
Zelldichte<br />
(Gatter/mm2 im Core-Bereich)<br />
Maximaldichte<br />
(lückenlose Packung)<br />
Trend: quadratisch<br />
(n/A ~ 1/l 2 )<br />
nutzbare Dichte<br />
(geroutet)<br />
10μ 5μ 3μ 2μ 1.5μ 1.0μ .7μ .5μ .35μ .25μ .18μ .13μ .1μ<br />
Abbildung 3-4: Die Zelldichte steigt <strong>mit</strong> dem Quadrat<br />
der inversen Kanallänge an [20], [45].<br />
10k<br />
5k<br />
2k<br />
1000<br />
500<br />
200<br />
100<br />
50<br />
20<br />
10<br />
Pin-Anzahl<br />
(oben) max. Gehäuse-Pinzahl<br />
(unten) Pinzahl von Mikroprozessoren<br />
Trend:<br />
+14% p.a.<br />
8080 8086 (DIL)<br />
4004 (DIL)<br />
486 (PGA)<br />
386 (PGA)<br />
286 (PGA)<br />
Alpha 21364<br />
(LGA)<br />
Alpha 21264 (PGA)<br />
P III (μPGA)<br />
P4 (μPGA)<br />
Pentium II (LGA)<br />
Pentium Pro (PGA)<br />
Pentium (PGA)<br />
1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010<br />
Abbildung 3-6: Auch die Pin-Anzahl ist bisher exponentiell<br />
gewachsen [1], [3], [4], [14], [20].
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 3.1<br />
Seite 17<br />
Abbildung 3-8 zeigt die Zunahme der Taktfrequenz von Mikroprozessoren, Abbildung 3-9 die<br />
Entwicklung der Zugriffszeiten von DRAMs und Abbildung 3-10 die Verzögerungszeit eines<br />
Gatters in verschiedenen Technologien. An elektrischen Parametern sind in Abbildung 3-11 die<br />
Core-Versorgungsspannung, in Abbildung 3-12 der Leistungsverbrauch pro Gatter und in Abbildung<br />
3-13 die Leistungsaufnahme von Mikroprozessoren dargestellt. Schließlich wurden noch<br />
die Wafergröße (Abbildung 3-14) und die Maskenanzahl (Abbildung 3-15) dargestellt.<br />
Die für den ASIC-Designer entscheidende Frage nach der zukünftigen Entwicklung, also der<br />
Extrapolierbarkeit der Kurven, konzentriert sich dabei auf die Verringerung der Strukturbreite<br />
(Abbildung 3-3), da dieser Parameter wie geschildert das Komplexitätswachstum dominiert und<br />
sich auch die Schaltungsgeschwindigkeit direkt aus der Kanallänge der Transistoren ergibt.<br />
Mathematisch betrachtet ist die Extrapolation der Kurven dabei trivial, da sich die Kernparameter<br />
rein exponentiell <strong>mit</strong> langjährig konstanten Wachstumsraten verhalten. Fraglich ist jedoch, wie<br />
lange diese Entwicklung noch unverändert anhalten wird.<br />
Die in den vergangenen Jahrzehnten am häufigsten hierzu gestellte Prognose besagt, das Wachstum<br />
werde noch ca. drei bis vier Jahre unverändert anhalten und dann in eine Sättigung übergehen.<br />
Zu dieser Abschätzung verleiten die stets bevorstehenden produktionstechnischen Barrieren.<br />
Die gegenwärtig angedachten Lösungen erlauben eine Fortsetzung der Trends über den genannten<br />
Zeitraum, einem weiteren Wachstum stehen aber derzeit unlösbare Hindernisse entgegen.<br />
Dass diese Sättigung bis heute nicht eingetreten ist, ist dem in der Prognose unterschätzten<br />
menschlichen Erfindungsgeist zu verdanken, der, motiviert durch die Bedürfnisse eines gigantischen<br />
Wachstumsmarktes, stets neue Lösungen hervorgebracht hat, <strong>mit</strong> denen die fertigungstechnischen<br />
Schwierigkeiten umgangen werden konnten. Hierzu zählten in der Vergangenheit<br />
beispielsweise der Übergang von Aluminium-Gates zu selbstjustierenden Polysilizium-Gates, die<br />
Einführung von Fotomasken im 10:1-Maßstab zur Belichtung von Wafer-Teilbereichen (Reticles)<br />
und die Verwendung von ultraviolettem Licht zur Belichtung.<br />
Darüber, wann das exponentielle Wachstum<br />
dennoch in eine Sättigung übergehen wird, kann<br />
aus heutiger Sicht nur spekuliert werden. Unbestritten<br />
ist, dass physikalische Grenzen für die<br />
Konstruktion von MOSFETs existieren. Fraglich<br />
ist jedoch, wo genau diese liegen und ob<br />
nicht Transistoren nach anderen Konstruktionsprinzipien<br />
denkbar sind, für die andere Grenzen<br />
gelten. Eine Spekulation hierüber soll nicht Teil<br />
dieser Arbeit sein. Stattdessen soll eine pragmatische<br />
Antwort gegeben werden: Für die konkrete<br />
Evaluierung von ASIC-Projekten ist<br />
angenehmerweise nur eine kurzfristige Extrapolation<br />
der Kurven erforderlich, da von der<br />
Produktplanung bis zur Prototypenfertigung in<br />
der Regel nur sechs bis zwölf Monate vergehen<br />
und auch ein von vornherein eingeplanter<br />
Abbildung 3-7: Die Überführung von Labormustern<br />
zur Serienreife erscheint kalkulierbar.<br />
Umstieg auf die nächstkleinere Technologie („Shrink“) aufgrund der kurzen Produktzyklen<br />
allenfalls drei Jahre in die Zukunft geplant wird. Eine solche kurzfristige Extrapolation sollte<br />
insofern erlaubt sein, als die Weiterentwicklung bereits verfügbarer Labormuster von Transistoren<br />
zur Serienreife erheblich einfacher ist als das Vordringen zu kleineren Strukturbreiten.<br />
Gemäß Abbildung 3-7 tritt hier ein Vorlauf von ca. sechs Jahren auf, der eine ausreichende Planungssicherheit<br />
für ASIC-Entwicklungen bietet.<br />
5n<br />
10n<br />
20n<br />
50n<br />
0.1μ<br />
0.2μ<br />
0.5μ<br />
1.0μ<br />
2.0μ<br />
5.0μ<br />
Labormuster des ersten Transistors<br />
Serienreife der ASIC-Technologie<br />
Spekulation<br />
logische Entwicklung<br />
Δt ≈ 6 Jahre<br />
➔ Sicherheit für die Zukunft<br />
der ASIC-Entwicklung!<br />
1980 1990 2000 2010 2020 2030
10G<br />
5G<br />
2G<br />
1G<br />
500M<br />
200M<br />
100M<br />
50M<br />
20M<br />
10M<br />
5M<br />
2M<br />
1M<br />
500k<br />
200k<br />
100k<br />
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
Taktfrequenz von Mikroprozessoren<br />
(Hz)<br />
4004<br />
8080<br />
8086 286<br />
1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010<br />
Abbildung 3-8: Taktfrequenzen von über 1GHz waren<br />
vor 10 Jahren noch fast unvorstellbar [9], [20].<br />
10n<br />
5n<br />
2n<br />
1n<br />
500p<br />
200p<br />
100p<br />
50p<br />
20p<br />
10p<br />
386<br />
486<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
Alpha 21264 Pentium 4<br />
Alpha 21164 Pentium III<br />
Pentium II<br />
Pentium Pro<br />
Pentium<br />
Trend:<br />
+33% p.a.<br />
5μ 3μ 2μ 1.5μ 1.0μ .7μ .5μ .35μ .25μ .18μ .13μ .1μ 70n 50n<br />
Abbildung 3-10: Typische Verzögerungszeiten eines<br />
Gatters in verschiedenen Technologien [6], [44], [45]<br />
100μ<br />
50μ<br />
20μ<br />
10μ<br />
5μ<br />
2μ<br />
1μ<br />
500n<br />
200n<br />
100n<br />
50n<br />
20n<br />
10n<br />
5n<br />
2n<br />
1n<br />
Verzögerungszeit eines Gatters<br />
(NAND2, typisch, fanout=3)<br />
V CC = 5V für l ≥ 0,5μ<br />
V CC ~ l für l ≤ 0,5μ<br />
Leistungsverbrauch eines Gatters<br />
(typisch, in μW/Gatter/MHz)<br />
V CC = 5V für l ≥ 0,5μ<br />
V CC ~ l für l ≤ 0,5μ<br />
5μ 3μ 2μ 1.5μ 1.0μ .7μ .5μ .35μ .25μ .18μ .13μ .1μ 70n 50n<br />
Abbildung 3-12: Leistungsverbrauch pro schaltendem<br />
Gatter in verschiedener Technologien [20], [46]<br />
300<br />
250<br />
200<br />
150<br />
100<br />
50<br />
0<br />
Zugriffszeit von DRAMs<br />
(RAS cycle time, ns)<br />
neue Core-<br />
Architekturen<br />
alter Trend:<br />
-4,5% p.a.<br />
SDRAM<br />
Kapitel 3.1<br />
Seite 18<br />
FCRAM (Fujitsu)<br />
1980 1985 1990 1995 2000 2005 2010<br />
Abbildung 3-9: Die Geschwindigkeit von DRAMs<br />
nahm lange Zeit nur moderat zu [18], [20].<br />
15V<br />
14V<br />
13V<br />
12V<br />
11V<br />
10V<br />
9V<br />
8V<br />
7V<br />
6V<br />
5V<br />
4V<br />
3V<br />
2V<br />
1V<br />
0V<br />
Versorgungsspannung<br />
(Core)<br />
Trend:<br />
proportional (V ~ l)<br />
10μ 5μ 3μ 2μ 1.5μ 1.0μ .7μ .5μ .35μ .25μ .18μ .13μ .1μ<br />
Abbildung 3-11: Die Spannungsfestigkeit der dünnen<br />
Gateoxide lässt heute keine 5V-Corespannung mehr zu.<br />
1000<br />
500<br />
200<br />
100<br />
50<br />
20<br />
10<br />
5<br />
2<br />
1<br />
0.5<br />
0.2<br />
0.1<br />
Leistungsaufnahme von Mikroprozessoren<br />
(Watt)<br />
4004<br />
8080<br />
8086 286<br />
386<br />
Alpha 21264 SIA<br />
Alpha 21164<br />
Pentium II<br />
Pentium III<br />
Pentium Pro<br />
Pentium<br />
Trend:<br />
+22% p.a.<br />
1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010<br />
Abbildung 3-13: Entwicklung der Leistungsaufnahme<br />
von Mikroprozessoren [4], [16], [20]<br />
486<br />
Pentium 4
20<br />
18<br />
16<br />
14<br />
12<br />
10<br />
8<br />
6<br />
4<br />
2<br />
0<br />
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
Wafergröße<br />
(Zoll)<br />
1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010<br />
Abbildung 3-14: In modernen Technologien wird heute<br />
bereits <strong>mit</strong> 300mm-Wafern gearbeitet.<br />
3.1.2 Gegenwärtige Grenzen<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
Kapitel 3.1<br />
Seite 19<br />
Neben den aktuellen Daten einer kontinuierlichen Entwicklung, die sich aus den Diagrammen im<br />
letzten Abschnitt ablesen lassen, sind für den ASIC-Designer auch andere technologische Grenzen<br />
und Möglichkeiten von Interesse, insbesondere dann, wenn mehr als nur digitale Logik integriert<br />
werden soll.<br />
Dies betrifft zum einen die Integration von Speichern. Während sich SRAMs geringer Dichte in<br />
jedem CMOS-Prozess integrieren lassen, werden für DRAMs, Flash-Speicher oder hochdichte<br />
SRAMs spezielle Prozessvarianten <strong>mit</strong> zusätzlichen Maskenebenen und Prozessschritten benötigt.<br />
Dabei schließen sich die Verwendung von DRAM und die von Flash gegenwärtig aus: Die<br />
Vielzahl an unterschiedlichen Prozessschritten ergäbe eine zu geringe Ausbeute in der Fertigung.<br />
CMOS-Prozessvarianten für „DRAM + Logik“ oder „Flash + Logik“ hingegen stehen <strong>mit</strong> akzeptablem<br />
Yield zur Verfügung.<br />
Eine interessante Alternative zum gewöhnlichen SRAM stellt das seit Ende 1998 von MoSys<br />
angebotene RAM-Makro „1T-SRAM“ [28] dar. Dabei handelt es sich im Kern um ein dynamisches<br />
RAM <strong>mit</strong> einer 1-Transistor-Zelle, die unter Einhaltung der Design Rules gewöhnlicher<br />
CMOS-Prozesse konstruiert wurde. Die Ansteuerung des Makros erfolgt aber dank einer integrierten<br />
Refresh- und Interfacelogik wie bei einem gewöhnlichen synchronen SRAM. Das 1T-<br />
SRAM ist in verschiedenen Technologien und Speicherkonfigurationen gegen Lizenzgebühren<br />
erhältlich. Der Vorteil liegt in einer deutlichen Flächenreduktion gegenüber gewöhnlichen<br />
SRAMs <strong>mit</strong> 6-Transistor-Zelle bei vergleichbarer Zugriffsgeschwindigkeit.<br />
Weitere Hindernisse auf dem Weg zur „System on Chip“-Integration stellen technologische Spezialitäten<br />
dar. Analoge Präzisionsschaltungen, hohe Ströme und Spannungen, integrierte optoelektronische<br />
Bauelemente oder On-Chip Sensorik erfordern Varianten der Herstellungsprozesse,<br />
die derzeit nicht <strong>mit</strong> hochintegrierten CMOS-Prozessen vereinbar sind. Allerdings bieten Silicon<br />
Foundries wie TSMC bereits sogenannte „generische Prozesse“ an, in denen sich der Kunde aus<br />
verschiedenen Standardoptionen einen individuellen Technologiedurchlauf zusammenstellen<br />
kann. So können DRAM- oder Flash-Prozesse gewählt und die Anzahl der Metallisierungsmas-<br />
100<br />
50<br />
40<br />
30<br />
20<br />
10<br />
5<br />
4<br />
3<br />
2<br />
1<br />
Maskenanzahl<br />
(oben) typ. Gesamtmaskenanzahl<br />
(unten) max. verf. Metall-Ebenen<br />
NMOS<br />
PMOS<br />
NMOS<br />
NMOS (2metal)<br />
CMOS (single well)<br />
CMOS<br />
4m<br />
5m<br />
CMOS (3m)<br />
CMOS (3m)<br />
CMOS (twin well, 2m)<br />
CMOS+Flash (5m)<br />
1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010<br />
Abbildung 3-15: Die Verdrahtbarkeit hochkomplexer<br />
Schaltungen erfordert immer mehr Ebenen [3], [4], [12].
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 3.1<br />
Seite 20<br />
ken frei bestimmt werden. Im I/O-Bereich können dickere Oxide für 5V-Kompatibilität oder eine<br />
spezielle Implantation zur Erhöhung der ESD-Festigkeit eingekauft werden. Für analoge Funktionsgruppen<br />
schließlich sind optional Prozessvarianten erhältlich, in denen sich lineare, symmetrische<br />
und hochkapazitive MIM-Kapazitäten („Metal-Insulator-Metal“) realisieren lassen.<br />
Eine Ausnutzung der hier<strong>mit</strong> zur Verfügung stehenden Möglichkeiten erfordert allerdings zuweilen<br />
ein Full-custom-Design von Teilmodulen, wenn nicht alle benötigten Elemente in der gleichen<br />
Technologie als Bibliothekselemente des Herstellers oder als IP erhältlich sind. So fehlt es<br />
derzeit besonders häufig an speziellen Pads und Interface-Modulen sowie an A/D- und D/A-<br />
Wandlern in Deep-Submicron-Technologien.
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
3.2 Wirtschaftliche Restriktionen<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
3.2.1 Explodierende NRE-Kosten im Submikron-Bereich<br />
Kapitel 3.2<br />
Seite 21<br />
Das Wachstum der <strong>Mikroelektronik</strong> erfordert technologisch gesehen ein ständiges Vordringen in<br />
neue Grenzbereiche. Es konnte bis heute aufrecht erhalten werden, da stets die li<strong>mit</strong>ierenden Faktoren<br />
durch einen Umstieg auf neue Fertigungsverfahren umgangen werden konnten. Dies erfordert<br />
aber zum Teil äußerst kostenintensive Geräte und Materialien. So verlangen die immer<br />
höheren Anforderungen an die Defektdichte bei der Herstellung nach extremen Reinraumbedingungen,<br />
die nur noch in personenfreien Fabriken bei fast 100%iger Automatisierung aller Prozessschritte<br />
einzuhalten sind. Die Automatisierung, die immer aufwändigeren Prozessschritte<br />
sowie die gesteigerte Präzision von Lithographie, Metrologie, Schichtstärken, Temperatur- und<br />
Konzentrationsprofilen haben die Kosten für eine Halbleiterfabrik auf mehrere Milliarden US-<br />
Dollar ansteigen lassen (vgl. Abbildung 3-18 auf Seite 22).<br />
Während diese Kosten bei den durchsatzoptimierten Fabriken auf eine entsprechend höhere produzierte<br />
Siliziumfläche umgelegt werden können, entwickeln sich die bei jedem Design erforderlichen<br />
Maskenkosten zu einer echten Einstiegsbarriere für das ASIC-Design. Das Problem bei<br />
der Lithographie besteht darin, dass die Wellenlänge des zur Belichtung verwendeten UV-Lichtes<br />
(heute 193nm) nicht in dem Maße reduziert werden konnte wie die Strukturbreite, da für kleinere<br />
Wellenlängen kaum noch optisch transparente Materialien zur Verfügung stehen.<br />
Bei der Belichtung von Strukturen in der Größenordnung der Wellenlänge führt die Beugung des<br />
Lichtes bereits zu einer Verkürzung von Linienenden und zu Verrundungen von Ecken. Abhilfe<br />
schaffen hier OPC-Masken (vgl. Abbildung 3-16), deren überproportional feinere Strukturen<br />
aber wegen der größeren Datenmengen auch deutlich erhöhte Maskenschreibzeiten erfordern.<br />
Abbildung 3-16: Bei OPC-Masken („Optical Proxi<strong>mit</strong>y Correction“) werden Verkürzungen von Linienenden und<br />
Verrundungen an den Ecken (2. v. links) durch feine Nebenstrukturen (2. v. rechts) ausgeglichen [7].<br />
Spätestens bei Technologien von 0,25μm werden<br />
sogar „Phase Shift Masks“ benötigt. Bei der<br />
Belichtung von Linien <strong>mit</strong> Strukturbreiten unterhalb<br />
der Wellenlänge führt die Beugung am Spalt<br />
bei herkömmlichen Masken dazu, dass von beiden<br />
Seiten Licht unter die dunklen Teile gestreut wird<br />
und sich dort summiert (konstruktive Interferenz),<br />
wodurch der Kontrast minimal werden kann.<br />
Wird hingegen (vgl. Abbildung 3-17) unter jeder<br />
zweiten durchlässigen Linie eine Erhebung oder<br />
Vertiefung auf die Maske gebracht, die die Phase<br />
um 180° dreht, wird aus der konstruktiven Interferenz<br />
eine destruktive, die zur weitgehenden Auslöschung<br />
der gebeugten Lichtanteile führt und<br />
Abbildung 3-17: Erhöhung der Auflösung durch<br />
destruktive Interferenz bei Phasenshift-Masken [15]
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 3.2<br />
Seite 22<br />
Belichtungen im Bereich unterhalb der Wellenlänge erst ermöglicht. Theoretisch lassen sich so<br />
Strukturen belichten, deren Breite der halben Wellenlänge entspricht.<br />
OPC- und Phasenshift-Masken haben die NRE-Kosten im Submikron-Bereich in bis dahin<br />
unvorstellbare Höhen getrieben (vgl. Abbildung 3-19). Da im Memory- und Mikroprozessorbereich<br />
aufgrund der gewaltigen Umsätze aber selbst Maskenkosten von über einer Million US-<br />
Dollar toleriert werden, werden zum Nachteil der ASIC-Kunden auch keine übermäßigen<br />
Anstrengungen unternommen, die NRE-Kosten gering zu halten.<br />
10B<br />
5B<br />
2B<br />
1B<br />
500M<br />
200M<br />
100M<br />
50M<br />
20M<br />
10M<br />
Kosten pro Fab (US$)<br />
bipolar bipolar<br />
5 μm<br />
3 μm<br />
2 μm<br />
1.5 μm<br />
0.25 μm<br />
0.35 μm<br />
0.5 μm<br />
0.7 μm<br />
1 μm<br />
0.13 μm/0.1 μm<br />
0.18 μm<br />
1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010<br />
Abbildung 3-18: Die Kosten für eine Halbleiterfabrik<br />
haben 1 Milliarde US-Dollar längst überschritten [17].<br />
3.2.2 Stückkosten und Mindeststückzahlen<br />
Trotz des gewaltigen Anstiegs der Kosten für eine Halbleiterfabrik konnten die Waferpreise pro<br />
Siliziumfläche in etwa konstant gehalten werden, da die Wafergröße und die fortschreitende<br />
Automatisierung zu einem entsprechend gesteigerten Durchsatz der Fabriken geführt haben.<br />
10<br />
9<br />
8<br />
7<br />
6<br />
5<br />
4<br />
3<br />
2<br />
1<br />
0<br />
0.5 μm<br />
0.6 μm<br />
0.8 μm<br />
1.0 μm<br />
0.35 μm<br />
0.25 μm<br />
Trend:<br />
Faktor 10<br />
in 10 Jahren<br />
Herstellungskosten (US¢/mm 2 )<br />
0.18 μm<br />
1995 1996 1997 1998 1999 2000 2001 2002<br />
Abbildung 3-20: Wafer-Herstellungskosten pro mm 2 in<br />
verschiedenen Technologien [8]<br />
So zeigt Abbildung 3-20, dass zu jedem Zeitpunkt eine etwa gleichbleibende Preisspanne von ca.<br />
3¢/mm 2 für eine veraltete Technologie bis ca. 8¢/mm 2 für eine sehr fortschrittliche Technologie<br />
1M<br />
500k<br />
200k<br />
100k<br />
50k<br />
20k<br />
10k<br />
5k<br />
2k<br />
1k<br />
NRE-Kosten (US$)<br />
(Masken- und Prototypenfertigung)<br />
Gate Array<br />
Standard Cell<br />
Trend:<br />
Faktor 2<br />
p. Generation<br />
10μ 5μ 3μ 2μ 1.5μ 1.0μ .7μ .5μ .35μ .25μ .18μ .13μ .1μ<br />
Abbildung 3-19: Gleichzeitig explodieren wegen der<br />
aufwändigen Maskenherstellung die NRE-Kosten.<br />
2.0<br />
1.8<br />
1.6<br />
1.4<br />
1.2<br />
1.0<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
0.0<br />
Gehäusekosten (US¢/Pin)<br />
DIL<br />
PQFP<br />
BGA<br />
1980 1985 1990 1995 2000 2005 2010<br />
Abbildung 3-21: Gehäusekosten pro Pin für preiswerte<br />
Plastikgehäuse im Consumer-Bereich [4]
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 3.2<br />
Seite 23<br />
existiert, wobei sich allerdings die Strukturbreiten der jeweiligen Technologien <strong>mit</strong> dem technologischen<br />
Fortschritt verschieben. Innerhalb einer Strukturbreite ist naturgemäß eine Kostendegression<br />
zu beobachten.<br />
Da die Komplexität moderner ASICs geringfügig schneller zunimmt als die erreichbare Gatterdichte,<br />
steigen die Chipflächen und so<strong>mit</strong> die Preise historisch gesehen stetig leicht an. (Eine<br />
andere Interpretation ist die, dass die geringere Defektdichte von der Ausbeute her größere Chipflächen<br />
erlaubt, die aus Gründen einer maximalen Systemintegration sofort ausgenutzt werden.)<br />
Angesichts der steigenden Pinzahlen komplexer ASICs werden auch die Gehäusekosten immer<br />
interessanter. Die historische Konstante liegt hier bei ca. 1¢/Pin (vgl. Abbildung 3-21). Für die<br />
Zukunft ist hier eine Abnahme zu erwarten: Zum einen erhöht bei den hochpoligen BGA-Gehäusen<br />
eine weiter ansteigende Pin-Anzahl kaum noch die Substratkosten, so dass lediglich die<br />
Bondkosten als untere Grenze zu berücksichtigen sind, und zum anderen könnte es in diesem<br />
Jahrzehnt zu einem Durchbruch bei den bondfreien Gehäusen („Flip Chip“) kommen.<br />
Zusammenfassend lässt sich feststellen, dass die immer höhere Integrationsdichte bei konstanten<br />
Siliziumpreisen eine immer weitergehende Systemintegration bis hin zum „System on a Chip“<br />
voll unterstützt, dass sich die explodierenden NRE-Kosten aber zu einer echten Einstiegsbarriere<br />
für das ASIC-Geschäft entwickeln könnten.<br />
Hinzu kommt, dass auch die Entwicklungskosten hochkomplexer ASICs stark zunehmen und<br />
immer häufiger auch Teilmodule als Fremdleistung („IP“) eingekauft werden müssen, um die<br />
maximal zulässige Entwicklungszeit von üblicherweise ca. sechs Monaten nicht zu überschreiten.<br />
Außerdem werden bei hoher Systemintegration auch „Hard Macros“ des Halbleiterherstellers<br />
oder von Fremdanbietern benötigt. Hierunter fallen z. B. embedded CPUs, größere RAMs,<br />
Flash-Macros oder Ethernet-Phy’s. Während konventionelle Halbleiterhersteller ihren Kunden<br />
derartige Macros oft kostenlos zur Verfügung stellen, lassen sich die reinen Silicon Foundries<br />
diese in der Regel teuer bezahlen. Auf diese Weise können sich die gesamten NRE-, IP- und Entwicklungskosten<br />
bei einem SoC bereits heute auf mehrere Millionen US-Dollar summieren.<br />
Ein weiteres Hindernis stellen Mindeststückzahlen dar, die von den Halbleiterherstellern gefordert<br />
werden. Wenn eine Silicon Foundry wie TSMC 4,8 Millionen 8-Zoll-Wafer im Jahr (2001)<br />
produziert, was etlichen Milliarden IC’s entspricht, wird klar, dass <strong>mit</strong>unter auch ASIC-Projekte,<br />
die dem Kunden als ehrgeizig erscheinen, vom potentiellen Hersteller als uninteressant abgelehnt<br />
werden.<br />
Die Konsequenz ist neben einem für viele Kunden kaum noch tragbaren finanziellen Risiko, dass<br />
sich die Entwicklung hochkomplexer ASICs nur noch rentiert, wenn Stückzahlen in der Größenordnung<br />
von 1 Million Stück erreicht werden können. Die Anzahl der ASIC-Designs im High-<br />
End-Bereich ist daher stark rückläufig.<br />
Die Chance für alle ASIC-Entwickler besteht aber darin, dass moderne SoCs wegen ihrer Programmierbarkeit<br />
so flexibel und universell einsetzbar gestaltet werden können, dass immer mehr<br />
Applikationen <strong>mit</strong> dem gleichen ASIC realisiert werden können. Auf diese Weise können insgesamt<br />
durchaus interessante Stückzahlen erreicht werden.
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
4. Kapitel<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
Zeitgemäße Entwurfsstrategien<br />
4.1 Modernes Digitaldesign<br />
4.1.1 Fehlervermeidung durch Automatisierung und Abstraktion<br />
Kapitel 4<br />
Seite 24<br />
Da die technologische Entwicklung einem ungebremsten Wachstum der Designkomplexitäten<br />
bis auf weiteres nicht entgegenzustehen scheint, soll in dieser Arbeit nun die Nutzbarkeit der<br />
Ressourcen hinterfragt werden. Wenn bei den Entwürfen nicht bloß die Bitbreite bzw. der Grad<br />
an Parallelität steigt, sondern die Schaltungen auch inhaltlich immer komplexer werden, droht in<br />
der Spezifikations- und Entwurfsphase der zeitliche und personelle Aufwand in unzumutbarem<br />
Maße zu steigen. Gleichzeitig sinkt die Wahrscheinlichkeit, dass ein gefertigter Chip beim ersten<br />
Versuch fehlerfrei funktioniert, extrem schnell ab: Sie potenziert 1 sich bei konstanter Fehlerwahrscheinlichkeit<br />
pro Gatter <strong>mit</strong> einem Komplexitätsmaß, das seinerseits exponentiell wächst.<br />
Beide Faktoren machen eine wirtschaftliche Produktentwicklung unmöglich, sofern nicht die<br />
Produktivität der Designer in dem Maße gesteigert und das Fehlerrisiko pro Gatter in dem Maße<br />
reduziert werden kann, in dem der Umfang der Schaltung zunimmt. Da aber weder Fleiß noch<br />
Disziplin der Designer den Wachstumsraten der <strong>Mikroelektronik</strong> folgen können, ist eine Revolution<br />
der Designmethoden in regelmäßigen Abständen unabdingbar.<br />
Im Bereich der Layouterzeugung sind diese Revolutionen – die Einführung der CAD-Programme<br />
und der automatischen Place & Route Tools – weitgehend abgeschlossen, und beim Schaltungsentwurf<br />
wird die Logiksynthese inzwischen allgemein als Mittel zur Produktivitätssteigerung<br />
und Fehlervermeidung akzeptiert.<br />
Der Gewinn für den Designer ergibt sich dabei aus dem immer höher werdenden Abstraktionsgrad.<br />
Während die rein manuelle Layouterstellung noch eine intensive Beschäftigung <strong>mit</strong> jedem<br />
Transistor voraussetzte, muss beim Einsatz der Logiksynthese noch nicht einmal die Gatterrepräsentation<br />
der Schaltung bekannt sein. Bei der Umsetzung der Verhaltensbeschreibung in ein Layout<br />
ist heute zumindest theoretisch ein voller Automatismus ohne Benutzereingaben und ohne<br />
Risiko möglich. Aus der Computerunterstützung („Computer Aided Design“, CAD) ist in diesem<br />
Bereich schon heute eine fast vollständige Übernahme der Arbeiten durch Computerprogramme<br />
(„Electronic Design Automation“, EDA) geworden, so dass sich der Engpass beim IC-Design<br />
immer mehr zur (HDL-)Spezifikation hin verschiebt, die zusammen <strong>mit</strong> der Simulation und Fehlerbeseitigung<br />
auf dieser Ebene oft schon mehr als 75% der Arbeitszeit eines ASIC-Designs<br />
beansprucht.<br />
Derzeit ist es jedoch bei einigen Designern noch gängige Praxis, eine Spezifikation teils verbal,<br />
teils grafisch zu formulieren und sie anschließend per Hand in eine HDL-Beschreibung umzusetzen.<br />
Dieser aufwändige Arbeitsschritt sowie die erforderliche Fehlerkorrektur in der entstandenen,<br />
unübersichtlichen Textdatei verlangen auch hier einschneidende Veränderungen. Angesichts<br />
der ständig steigenden Komplexität der Schaltungen werden heute erheblich bessere Spezifikationsformen<br />
benötigt als zig-tausend Zeilen lange VHDL-Beschreibungen, um durch höhere<br />
Abstraktion <strong>mit</strong> geringerem Aufwand mehr Gatter entwerfen zu können.<br />
1. Für mathematische Laien sei angemerkt, dass der Wahrscheinlichkeitswert, der etwas kleiner als 1 ist,<br />
durch das Potenzieren <strong>mit</strong> einem großen Wert deutlich kleiner als 1 werden kann.
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.1<br />
Seite 25<br />
Es wird daher eine modernere Darstellungsform als VHDL benötigt, an die die folgenden Anforderungen<br />
gestellt werden:<br />
● Die neue Darstellungsform muss übersichtlicher sein als VHDL.<br />
● Die Automatisierung der Logiksynthese muss erhalten bleiben oder ausgedehnt werden.<br />
● Der Grad an Abstraktion muss steigen, d. h. die Darstellungsform muss so kompakt<br />
sein, dass pro eingegebener Zeile noch mehr Gatter beschrieben (und automatisch<br />
erzeugt) werden als bei alleiniger Anwendung der Logiksynthese.<br />
Diese Anforderungen werden nur von grafisch orientierten Programmen erfüllt.<br />
4.1.2 Grafisches VHDL als personen- und maschinenlesbare Spezifikation<br />
4.1.2.1 Grafische HDL-Programmierung am Beispiel „Speedchart“<br />
Grafische HDL-Eingabetools erlauben es heute, Schaltpläne, Datenpfade und vor allem<br />
Zustandsmaschinen direkt am Bildschirm zu zeichnen und zu simulieren. Durch die Kombination<br />
verschiedener Eingabeformate, eine hierarchische Gliederung und die zweidimensionale<br />
Anordnung selbst erklärender grafischer Beschreibungselemente entsteht eine übersichtliche,<br />
gleichermaßen personen- und maschinenlesbare Form der Spezifikation, die optimal geeignet ist,<br />
alle anderen Spezifikationsformen zu ersetzen bzw. zu vereinheitlichen, und die gleichzeitig in<br />
einen synthetisierbaren HDL-Text compiliert werden kann.<br />
Ein solches grafisches HDL-Programm, „Speedchart“, wurde vom Verfasser dieser Arbeit 1993<br />
am Institut für <strong>Mikroelektronik</strong> der <strong>TU</strong> <strong>Berlin</strong> eingeführt und bereits mehrfach <strong>mit</strong> Erfolg bei<br />
kommerziellen ASIC-Entwicklungen eingesetzt. Durch einen intensiven Kontakt <strong>mit</strong> den Programmierern<br />
konnte das Programm sogar in einigen Punkten <strong>mit</strong> gestaltet werden. Zwar konnte<br />
die Herstellerfirma Speed ihre finanziellen Probleme nicht lösen, so dass seit ihrer Insolvenz im<br />
Jahre 1997 das Programm nicht mehr weiterentwickelt wurde, doch Speed hatte als Pionier der<br />
Methodik bis dahin einen so großen Vorsprung zu allen Konkurrenten herausgearbeitet, dass<br />
Speedchart noch heute vielerseits als das beste Tool seiner Art angesehen wird. Aus diesem<br />
Grund sollen im Folgenden die grafischen HDL-Programme am Beispiel Speedchart besprochen<br />
werden.<br />
Der Produktivitätsgewinn liegt auch bei den grafischen HDL-Programmen primär in der gesteigerten<br />
Abstraktion. Die Darstellungsform der Spezifikation nähert sich der Denkweise des Designers<br />
immer mehr an, der sich nicht mehr <strong>mit</strong> der HDL-Prozessverwaltung und ähnlichen,<br />
letztlich unproduktiven Formalitäten beschäftigen muss, sondern sich auf das Wesentliche<br />
beschränken kann. So wird die Ablaufsteuerung durch Zustände und Transitionen grafisch<br />
beschrieben und die Hardwarebeschreibungssprache nur noch eingesetzt, um Bedingungsabfragen,<br />
Signalzuweisungen und -operationen zu formulieren, wobei jedes der verbleibenden Elemente<br />
bei der Synthese mehr Gatter beschreibt als bei allen anderen Spezifikationsformen.<br />
4.1.2.2 Speedchart als grafischer HDL-Browser<br />
In seiner einfachsten Funktion, die beispielsweise im Datenpfad-Bereich zur Anwendung kommen<br />
wird, dient Speedchart nur als grafisch gestalteter Browser für HDL. Auf oberster Ebene<br />
kann dabei ein Schaltplan grafisch erstellt werden. Die im Schaltplan platzierten und verdrahteten<br />
Zellen können zur hierarchischen Gliederung tiefer liegende Schaltplanseiten oder aber synchrone<br />
oder asynchrone Codeblöcke enthalten, die in VHDL, Verilog oder wahlweise in einer<br />
VHDL-ähnlichen, formal vereinfachten Sprachversion verfasst werden können.
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.1<br />
Seite 26<br />
Bereits in dieser Funktion erleichtert das Programm die Arbeit des Designers ganz außerordentlich.<br />
Betrachtet man z. B. eine einfache Verbindung zwischen zwei Modulen, so besteht diese nur<br />
noch aus drei grafischen Elementen: dem Ausgangspin des Quellmoduls, der Leitung und dem<br />
Eingangspin des Zielmoduls. Bei der Übersetzung werden diese zusammen <strong>mit</strong> den zugehörigen<br />
Signaldefinitionen etc. in formal korrektes VHDL oder Verilog übersetzt. Dem steht die manuelle<br />
Eingabe von nicht weniger als sieben Zeilen VHDL gegenüber, die bei modulweiser Partitionierung<br />
auf drei VHDL-<strong>Datei</strong>en verteilt sind. Bei herkömmlicher Arbeitsweise erfordert die Erstellung<br />
einer solchen Verbindung, die drei <strong>Datei</strong>en zunächst zu suchen (anhand des Namens, an den<br />
man sich „so ungefähr“ erinnert), sie in einem Editor zu öffnen, die passenden Stellen für die<br />
neuen Einträge zu suchen, die Änderungen einzutragen etc. In Speedchart geschieht dies alles in<br />
einer integrierten grafischen Umgebung, in der die passenden Editoren bereits beim Anklicken<br />
eines Objekts zum Editieren der richtigen Stelle einer <strong>Datei</strong> geöffnet werden. Ebenso ist es bei<br />
syntaktischen Fehlern nicht mehr erforderlich, in einer <strong>Datei</strong> anhand einer Zeilennummer den<br />
Fehler zu lokalisieren: Hier reicht ein Anklicken der Fehlermeldung, um zur richtigen Zeile im<br />
Editor zu springen.<br />
Ein weiterer signifikanter Vorteil liegt in der zweidimensionalen und hierarchischen Anordnung<br />
der Module, die sich dem menschlichen Erinnerungs- und Orientierungsvermögen offenbar<br />
wesentlich leichter erschließt als zeilenbasierte und da<strong>mit</strong> eindimensionale HDL-Texte. Kein<br />
Mensch kann in zigtausend Zeilen umfassenden Textdateien den Überblick über genaue Positionen,<br />
geschweige denn Zeilennummern einzelner Elemente behalten. In der zweidimensionalen<br />
Grafik hingegen bieten Positionen, Größen und Verbindungsmuster zwischen den Zellen gut einprägsame<br />
Orientierungspunkte, so dass man sich erfahrungsgemäß auch nach Monaten noch in<br />
einem komplexen Design voll zurechtfindet.<br />
4.1.2.3 Grafische Eingabe von Zustandsmaschinen<br />
Während die soeben vorgestellten Browser-Funktionen für VHDL zum Teil sicher auch von<br />
anderen modernen Editoren und Simulatoren geboten werden, zeichnen sich die grafischen HDL-<br />
Programme durch die Möglichkeit aus, dass die auf Schaltplanebene platzierten Zellen neben<br />
VHDL-Texten auch andere, grafische Darstellungsformen von Modulen enthalten können. So ist<br />
es möglich, Wahrheitstafeln kombinatorischer Logikblöcke zu erstellen, die ebenfalls automatisch<br />
in VHDL übersetzt werden können. Außerdem können vorhandene oder selbst erstellte<br />
Symbole auf Schaltplanebene platziert werden, um z. B. Einzelgatter unkompliziert verwenden<br />
zu können.<br />
Die mächtigste Funktion besteht aber in<br />
der direkten grafischen Eingabe von<br />
State Machines am Bildschirm (vgl.<br />
Abbildung 4-1). Die zweidimensionale<br />
Darstellung von Zustandsmaschinen ist<br />
für den Designer noch immer die übersichtlichste<br />
Darstellungsform; und während<br />
in der Vergangenheit Papier und<br />
Bleistift oder getrennte Zeichenprogramme<br />
verwendet werden mussten, um<br />
diese zu entwerfen, kann dies <strong>mit</strong> grafischen<br />
HDL-Programmen voll integriert<br />
geschehen. Es entsteht eine übersichtliche,<br />
hierarchisch geordnete Beschreibung,<br />
die von Mensch und Maschine<br />
D_1<br />
entry<br />
C: Clear=’1’<br />
A: Wert:="0000";<br />
A: Wert:="0000";<br />
A: Wert:=Wert+"0001";<br />
Diagram Variables:<br />
Wert(4): logic;<br />
gleichermaßen verstanden wird und so<strong>mit</strong> optimal zur Spezifikation geeignet ist, dabei aber auf-<br />
1<br />
3<br />
S1<br />
Count<br />
0<br />
2<br />
Subdiag Actions of <br />
A: Wert_hi_out:=Wert(3 downto 2);<br />
C: Start=’1’<br />
C: Stop=’1’<br />
C: UpNDown=’0’<br />
A: Wert:=Wert-"0001";<br />
Abbildung 4-1: Eine einfache Zustandsmaschine<br />
Stop
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.1<br />
Seite 27<br />
grund der direkten Übersetzbarkeit auch einen direkten Ausgangspunkt für die Logiksynthese<br />
darstellt.<br />
Die verwendeten grafischen Grundelemente sind dabei selbst erklärend. So sind Zustände über<br />
Transitionen <strong>mit</strong>einander verbunden, wobei jede Transition eine beliebig komplexe Übergangsbedingung<br />
besitzen kann und beim stets synchronen Zustandsübergang Aktionen („transition<br />
actions“) ausgeführt werden können. Hat keine den aktuellen Zustand verlassende Transition<br />
eine erfüllte Bedingung, so verharrt die Maschine in diesem Zustand. Sind mehrere Bedingungen<br />
erfüllt, so wird aufgrund der vergebenen Prioritäten nur die am höchsten priorisierte Transition<br />
durchlaufen.<br />
Für jedes Modul, das Zustandsmaschinen enthält, lässt sich ein Clock-Signal und ein wahlweise<br />
synchrones oder asynchrones Reset-Signal definieren. Die Zustandsmaschinen starten beim<br />
Reset im definierten Zustand „entry“. In jedem Modul können interne Signale und Variablen definiert<br />
werden, wobei Booleans, Vektoren, Integers und Felder erlaubt sind. Diese werden genauso<br />
wie die Ausgangssignale des Moduls beim Reset auf die Werte zurückgesetzt, die bei der Definition<br />
evtl. angegeben wurden. Innerhalb eines Moduls können mehrere Zustandsmaschinen in<br />
nebeneinander liegenden „subdiagrams“ angeordnet werden, die in nebenläufige Prozeduren<br />
übersetzt werden. Neben den synchronen Zustandsmaschinen können auch asynchrone Anweisungen<br />
in den „subdiagram actions“ eingegeben werden.<br />
Zur Vereinfachung dienen außerdem „entry actions“, die synchron beim Betreten eines Zustandes<br />
ausgeführt werden, „exit actions“, das genaue Gegenstück dazu, und asynchrone „state<br />
actions“, die ausgeführt werden, solange sich die Zustandsmaschine im zugehörigen Zustand<br />
befindet. Eine weitere Vereinfachung stellen „drop through states“ dar. Diese durch eine gestrichelte<br />
Begrenzung gekennzeichneten Zustände können innerhalb eines Taktes betreten und wieder<br />
verlassen werden, falls eine herausführende Transition eine wahre Bedingung enthält. Dabei<br />
erfolgt der synchrone Zustandsübergang direkt in den Folgezustand, wobei aber die „transition<br />
actions“ der herein- und herausführenden Transitionen ausgeführt werden.<br />
Eine besondere Art der hierarchischen Gliederung von Zustandsmaschinen stellen „hierarchical<br />
states“ dar. Unter diesen Zuständen, die durch eine doppelte Begrenzungslinie gekennzeichnet<br />
werden, befindet sich eine weitere hierarchische Ebene, die wiederum mehrere parallel liegende<br />
Subdiagramme <strong>mit</strong> Zustandsmaschinen enthalten kann. Beim Betreten des hierarchischen<br />
Zustandes laufen dabei alle State Machines der unteren Ebene von ihrem „entry“-Zustand aus<br />
los. Der hierarchische Zustand wird verlassen, wenn alle Zustandsmaschinen der unteren Hierarchieebene<br />
in einem besonderen „exit“-Zustand angekommen sind oder eine aus dem hierarchischen<br />
Zustand herausführende Transition eine erfüllte Bedingung besitzt.<br />
Alle Zuweisungen in „transition actions“, „entry actions“ und „exit actions“ werden dabei synchron<br />
<strong>mit</strong> dem spezifizierten Clock-Signal ausgeführt, und bei der Synthese werden für die<br />
Signale, die Ziel der Zuweisungen sind, entsprechend Flipflops eingesetzt. Asynchrone Aktionen<br />
hingegen werden ständig ausgeführt und ergeben nach der Synthese rein kombinatorische Logiken.<br />
Mit diesen wenigen Konventionen ist die Gesamtbeschreibung des ASICs, bestehend aus Schaltplanebenen,<br />
Codeblöcken und Zustandsmaschinen, auch sofort von jedem Fremden zu verstehen<br />
und als anschauliche Dokumentation zu verwenden. Gleichzeitig ist der Umgang <strong>mit</strong> graphischen<br />
HDL-Programmen wesentlich einfacher zu erlernen als die Programmierung in reinem<br />
VHDL oder Verilog, da von den HDL-Sprachelementen nur Bedingungsabfragen, Signalzuweisungen<br />
und -operationen benutzt werden, die jedem Programmierer aus beliebig vielen anderen<br />
Programmiersprachen bekannt sind. Die speziellen formalen Konstruktionen der Hardwarebeschreibungssprachen<br />
zur Prozessverwaltung, Entity- und Architecture-Deklaration etc. müssen
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.1<br />
Seite 28<br />
nicht erlernt werden, sondern werden bei der Beschreibung von den grafischen Elementen abgelöst<br />
und bei der Übersetzung in korrektes Verilog oder VHDL automatisch erzeugt.<br />
4.1.2.4 Integrierte Simulationsmöglichkeiten<br />
Zur Fehlererkennung verfügt Speedchart über einen sehr komfortablen, integrierten Simulator.<br />
Hierzu können zunächst Testmuster in einer wiederum formal vereinfachten HDL-Version eingegeben<br />
und bei Bedarf in VHDL oder Verilog übersetzt werden. Die Speedchart-interne Simulation<br />
kann aber auch ohne Übersetzung sofort gestartet werden. Die Auswahl der darzustellenden<br />
Signale und Variablen, Ports und Wires kann textuell oder durch Anklicken in der Grafik geschehen.<br />
Bei der Simulation können die Werte der ausgewählten Objekte gleichzeitig als Liste der<br />
momentanen Werte und als Kurvenformen dargestellt werden, wobei bei ausgewählten Zustandsmaschinen<br />
der Name des aktuellen Zustandes angezeigt wird und bei Vektoren und Integers verschiedene<br />
Zahlenformate gewählt werden können. Als Besonderheit werden während der<br />
Simulation die gerade aktiven Zustände und die durchlaufenen Transitionen in den Zustandsmaschinen<br />
grafisch hervorgehoben, so dass eine anschauliche Animation entsteht.<br />
Während der integrierte Simulator das Design nicht compiliert und daher zwar schnell anläuft,<br />
aber relativ langsam simuliert, unterstützt Speedchart auch die Anbindung eines externen Simulators<br />
wie z. B. Verilog-XL oder Modelsim. Hierbei werden Design und Stimuli in die entsprechende<br />
Hardwarebeschreibungssprache übersetzt und der externe Simulator gestartet. Durch die<br />
Integration Speedchart-eigener Routinen in das ausführbare Programm des externen Simulators<br />
ist es dabei weiterhin möglich, den Simulator interaktiv zu steuern und Kurvenformen während<br />
der Simulation <strong>mit</strong>laufen zu lassen.<br />
Zusätzlich bietet Speedchart die Möglichkeit, in der Darstellung als Kurvenformen die Ergebnisse<br />
verschiedener Simulationen zu vergleichen und die Unterschiede grafisch hervorzuheben.<br />
Hierdurch kann z. B. überprüft werden, ob eine Schaltungsänderung unerwünschte Nebeneffekte<br />
hat, indem <strong>mit</strong> Testmustern, die die unveränderten Funktionen stimulieren, Simulationen der<br />
alten und neuen Schaltung durchgeführt und die Ergebnisse verglichen werden. Außerdem<br />
besteht die Möglichkeit, Simulationsergebnisse von extern durchgeführten Simulationen einzuladen.<br />
Es kann so<strong>mit</strong> auch eine Cross-Simulation von Verhaltensbeschreibung und synthetisierter<br />
Netzliste in Speedchart ausgewertet werden.<br />
4.1.2.5 Klassische Entwurfsmethoden und grafisches VHDL im Vergleich<br />
Um den immer höher werdenden Grad der Abstraktion und anschließend den Produktivitätsgewinn<br />
beim Vergleich von Schematics, VHDL-Texten und grafischem HDL quantitativ beurteilen<br />
zu können, wurden Untersuchungen an zehn Beispielschaltungen durchgeführt. Die Module, die<br />
in Tabelle 4-1 aufgeführt sind, sind Teilmodule eines ISDN-Controllers [A-17] <strong>mit</strong> integrierter<br />
ARM7-RISC-CPU. Sie wurden als typische Teilschaltungen aus dem Controller- und Datenpfadbereich<br />
ohne große Redundanz und ohne Arithmetik- oder Speichereinheiten ausgewählt.<br />
Als Vergleichsmaß wurden dabei keine Komplexitätsmaße benutzt, da diese den intellektuellen<br />
Gehalt einer Schaltung wiedergeben und so<strong>mit</strong> bei unterschiedlichen Repräsentationen der gleichen<br />
Schaltung stets denselben Wert ergeben hätten, sondern Kennzahlen für den Umfang einer<br />
Repräsentation, indem für den Vergleich die Anzahl der jeweils die Schaltung vollständig<br />
beschreibenden Elemente bestimmt wurde:
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 />
Name der Anzahl graf. Symbole und Textzeilen Anzahl<br />
Beispielschaltung graf. HDL VHDL Schematic Gatter<br />
HDLC Controller (Teilmodul) 1036 1307 4805 5362<br />
General Purpose I/O 290 397 1632 2509<br />
System Timer 489 604 2914 4110<br />
Interrupt Controller einer UART 82 165 394 523<br />
Audio Codec Interface 429 611 2034 2533<br />
SDRAM Controller 354 648 1065 841<br />
PCM Highway (Teilmodul) 535 752 2794 3662<br />
FIFO 8x9Bit 87 171 807 1089<br />
Glue Logic für ARM7-CPU 151 229 427 508<br />
Pin Multiplexer 336 429 596 650<br />
Summe 3789 5313 17468 21787<br />
Tabelle 4-1: Komplexitäten einiger Module in verschiedenen Darstellungsformen<br />
Setzt man die Summen der Komplexitäten ins Verhältnis, so ergibt sich, dass im Mittel<br />
im Schematic pro Symbol oder Leitung 1,25 Gatter,<br />
im VHDL-Code pro Textzeile in der Synthese 4,10 Gatter,<br />
in grafischem HDL pro Zustand, Transition oder Textzeile 5,75 Gatter<br />
Kapitel 4.1<br />
Seite 29<br />
beschrieben werden. Bei Schaltungen, die speicherähnliche Strukturen, Multiplizierer, Busse<br />
großer Breite oder mehrfache Instanziierungen identischer Module enthalten, kann der Gewinn<br />
im Abstraktionsgrad sogar noch wesentlich höher ausfallen. Dies gilt insbesondere für die<br />
zukünftige Entwicklung des ASIC-Designs, da die Bitbreite der zu verarbeitenden Daten stetig<br />
ansteigt.<br />
Die oben genannten Zahlen für VHDL und Schematic beziehen sich dabei auf die vom grafischen<br />
HDL-Programm generierte VHDL-<strong>Datei</strong> und auf die daraus synthetisierte Schaltung. Im Vergleich<br />
zu manuell erstellten VHDL-Texten und Schematics kommt G. Müller bei ähnlichen<br />
Untersuchungen [32] zum Ergebnis, dass<br />
VHDL-Code im Vergleich zum Schematic 3,5 - 4,5 mal kompakter und<br />
grafisches HDL im Vergleich zum Schematic 15 - 23 mal kompakter<br />
ist. Der Unterschied zwischen beiden Untersuchungen wird teilweise auf die gewählten Beispiele<br />
und teilweise darauf zurückzuführen sein, dass beim Schematic Entry im Gegensatz zur Logiksynthese<br />
keine besonders gut optimierte Struktur erzeugt wird.<br />
Während diese Zahlen in erster Linie die Kompaktheit der Darstellungsform messen, sind sie<br />
gleichzeitig auch repräsentativ für den Arbeitsaufwand bei der direkten Eingabe der Schaltungen<br />
in der jeweiligen Darstellungsform, da die verschiedenen Elemente sich näherungsweise gleich<br />
schnell erstellen lassen. Dies ist allerdings von der Wahl des Editors abhängig, da sich Editoren<br />
für die gleiche Darstellungsform in der Geschwindigkeit der Bedienbarkeit deutlich unterscheiden<br />
können. Hier schneidet Speedchart durch eine Vielzahl von Shortkeys, Maustastenfunktionen<br />
und die automatische Generierung von Objekten sehr gut ab.<br />
Nicht berücksichtigt sind die Vorarbeiten, die bei Verwendung der konservativen Eingabeformate<br />
erforderlich sind. So steht vor der Eingabe eines Schematics in der Regel die Planung der<br />
zugrunde liegenden Zustandsmaschinen und die Aufstellung der Übergangs- und Ausgangsmatrizen<br />
auf dem Papier, bevor die entsprechenden Logikgleichungen in Gatter zerlegt und eingegeben<br />
werden können. Auch die Vorteile der grafischen HDL-Programme in den Simulations- und<br />
Korrekturphasen sind unberücksichtigt.
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.1<br />
Seite 30<br />
Nicht zuletzt muss auch der „Spaßfaktor“ eines Eingabewerkzeugs beurteilt werden, da dieser die<br />
Produktivität eines Designers ganz erheblich beeinflussen kann. Durch die gesteigerte Übersicht<br />
und den Komfort grafischer HDL-Programme entsteht bei den Programmierern insgesamt der<br />
nReset<br />
Clk<br />
Start<br />
Stop<br />
Clear<br />
UpNDown<br />
Zaehler<br />
nReset<br />
Clk<br />
Start<br />
Stop<br />
Clear<br />
UpNDown<br />
FSM<br />
Wert_hi_out<br />
Wert_hi_out (2)<br />
D_1<br />
entry<br />
C: Clear=’1’<br />
A: Wert:="0000";<br />
Jan 29 2001 15:50:49 CELL_Zaehler_fsm_syn.vhd<br />
Page 1<br />
¡ ¡ ¢ ¡ ¡ ¡ ¡ ¡ ¡ ¢ ¡ ¡ ¡ ¡ ¡ ¢ ¡ ¡ ¡ ¡ ¡ ¢ ¡ ¡ ¡ ¡ ¡ ¡ ¢ ¡ ¡ ¡ ¡ ¡ ¢ ¡ ¡ ¡ ¡ ¡ ¢ ¡ ¡ ¡ ¡ ¡ ¡ ¢ ¡ ¡ ¡ ¡ ¡ ¢<br />
¡ £¢¤¡¥¡¦¨§©¢¡§¡¢¤¡§¥¡¥¡¡§¡¡¥§¡¡¦¡¡¢¦¡¦¡¢<br />
¡<br />
¢¢¢¡¡¢¡¢¡<br />
¡ ¦¢¥¡¦¡§¢¦ ¢©¥¡¡¡<br />
¡ ¨¢§¢¨ ¢ ¡¨¢¡¡<br />
¡<br />
¡ ¡¦¢¢¤¡¢¦¡§¦¢¦¡¦§¡¡ ¡§¢¢¤¢©<br />
¡ ¦¡¡¤ ¡<br />
¡§¢¡ ¤¡¢¤¦ ¨¢§¢¨ ¡ ¡¢¡¡<br />
¡<br />
¡ ¡ ¢ ¡ ¡ ¡ ¡ ¡ ¡ ¢ ¡ ¡ ¡ ¡ ¡ ¢ ¡ ¡ ¡ ¡ ¡ ¢ ¡ ¡ ¡ ¡ ¡ ¡ ¢ ¡ ¡ ¡ ¡ ¡ ¢ ¡ ¡ ¡ ¡ ¡ ¢ ¡ ¡ ¡ ¡ ¡ ¡ ¢ ¡ ¡ ¡ ¡ ¡ ¢<br />
¡<br />
¥¡¤¢¢§¡¡¢ ©¦ ¡¢ ¡ ¡ ¡¡¡ §¢¥¢¥<br />
¥¡¤¢¢§¡¢<br />
¡¢ ¡ ¡ ¢ §¥¡¥<br />
©¦ ¢ ¡¡¡¡¢ §¢¥¡¥<br />
©¦<br />
¡ £¡ ¡<br />
¢¢¢¢¢¡¨<br />
¡ £¢¡¡¡ ¡ £¡¨¡¡¢¢ ¡<br />
¢¡¢¢ ¡¢<br />
¡<br />
¢¡¡¡¡¢ ¡¢<br />
¡ ¢§¡§¢¦¨¡¡¢ §¡¦¥¦¡ ¢¢§¡¤¡<br />
¡<br />
¤¡¨¤¢¢¦¢¦¡¨¢§¡¢¦ ¡<br />
§¡¡¢¢¤¡©¢¡¦¢ ¢ ¡¤¡<br />
¡¦ ¡§¢¡¦ ¡¢¦¤¡ ¦¡¢¡ ¢©¡¢ ¡ ¢<br />
©¡¡¢¦¤¢<br />
§¢¦¥¦¡ ¢ ¢§¢ ¦¡¡¡<br />
¢ ¢§¡¤¢<br />
¦¡¡¡ §¢¦¥¦¡ ¢ ¢§¢ ¢§¡§¢¦¢¡¡¡§¡¦¥¡¦¡<br />
¥¡¤¢¢§¡¡¢ ©¦ ¡¢ ¡ ¡ ¡¡¡ §¢¥¢¥<br />
¥¡¤¢¢§¡¢<br />
¡¢ ¡ ¡ ¢ §¥¡¥<br />
©¦<br />
¢ ¡¡¡¡¢ §¢¥¡¥<br />
©¦ ¢ ¡¡¡§¡¦¥¡¦¡ ¢ ¢§¡ §¥¡¥<br />
©¦<br />
¢ ¤¡ ¢¡¢ ¥ ¢ ¢¡<br />
¦¢¢¤¡¡¡¡§¡¦¥¡¦¡<br />
¢ ¢¡<br />
¡¡ ¢ ¢¡<br />
¥¦¡§¡ ¢ ¢¡<br />
¡¡§¡¡<br />
¤ ©¢ ¡ ¡¡ ¢¢ ¢¢¡ ¢¢¡<br />
¢¡¢ ¢ ¢¡<br />
¡¦¢¦¡ ¢ ¢¡<br />
¦¡¡<br />
§¢¦¥¦¡ ¢ ¡ ¦¢¤¦¢¢¥§¡¡§¡¤<br />
¦¡¡¡<br />
¢ §¡¡¢¨¡¡¡§¡¦¥¦¢ ¢ ¤¡<br />
§¡¡¢¢¤¡©¢¡¦¡¢¡¡¡¢¤¡<br />
¡¤¢¢§¢¥¦¡¡ ¡ ¢¡¢¡¡ ¢¡¡<br />
§¡¡¤¡¦¡¡©¢¢¦¨¡¡¡§¡¦¥¡¦¡<br />
¡§¢¡¦ ¡¦<br />
§¡¡¢¢¤¡©¢¡¦¡¢¡¡¡¨¡¢¡ §¡¦¡¥¦¡ ¢§¡¡§¡¡¡¤¡¦¡¡©¡¦¤¡¢¡ ¢<br />
¡¤¢¢§¢¥<br />
¡ ¢¢¡¡ ¢¦¤<br />
¡¡¡¦¢¡¦¡¡ ¢¦¤ ¦¡¡ ¤ ©¢¨¦¡¡ ¢¡<br />
<br />
<br />
¡¤¢¡¡¡¦¡ ¦¢¡¦¡ ¢¥<br />
¦¢¡¡¡¦¡<br />
¢ ¡¢ ¢¡¨¡¢£ ¢<br />
¤¢ ¢¦¤ ¢§¢¦ ¤¡<br />
¢¡¢¡¦¢©¢¡¦¨¢§¥¡¦<br />
¦¡¡¢¡¡¢ ¢¢¦¦¡¢¡¨<br />
CELL_Zaehler_fsm_syn.vhd<br />
A: Wert:="0000";<br />
A: Wert:=Wert+"0001";<br />
1<br />
3<br />
S1<br />
Count<br />
0<br />
2<br />
Diagram Variables:<br />
Wert(4): logic;<br />
Subdiag Actions of <br />
A: Wert_hi_out:=Wert(3 downto 2);<br />
C: Start=’1’<br />
C: Stop=’1’<br />
C: UpNDown=’0’<br />
A: Wert:=Wert-"0001";<br />
Stop<br />
Jan 29 2001 15:50:49 CELL_Zaehler_fsm_syn.vhd<br />
¦¢§¢¦ ¦¡¢§¡¥¦ <br />
¦¡¤<br />
¡ ¢¡¢¡¢¡ ¡ §¢¡¢¢¡©¡¦¦¡ ¤ ¡¦¢¦¡ ¢¢¦<br />
¦¤<br />
¢¢¦¡©¡¢¨¢ ¤¡ ¡¢¦<br />
¢<br />
¦¢¥¢¡¤¨¢¥¡¦¡§¡¢¦¡ ¦¡¡¨¡¡¡<br />
¢<br />
¡¢¦ ¦¢¥¢¡¤¡¡¡¢¨<br />
¦¢¥¢¦ ¦¡¡¨¦¡¡<br />
¦¡¡¨¦¡¡<br />
¢¢¦ ¢¨¢ ¤¡§¡¡¨ ¢¦<br />
¦¡¤<br />
¢¦ ¤¡<br />
¦¢¥¡¡¤¨¥¦¡§¡ ¦¡¡<br />
¢¡<br />
¦¢¥¡¡¤¢¡¢ ¦¡¡<br />
¢¡<br />
¢¡<br />
¦¡¡ ¢¡ <br />
¦¢¥¡¦<br />
¦¡¤ ¢¢¦¢¢<br />
¦¤<br />
¡¢¦ ¢ ¤¡<br />
¦¡¡¨¡¡¡ ¢ ¡©<br />
¦¢¥¢¡¤¨¢¥¡¦¡§¡¢¦¡<br />
¡¢¦ ¦¡¡¨¦¡¡ ¢ ¡©<br />
¦¢¥¢¡¤¡¡¡¢¨<br />
¦¡¡¨¦¡¡ ¦¢¥¢¦<br />
¢ ¡©<br />
¦¡<br />
¦¢¥¡¡¤ ¢¥¨ ¢§¢¥ ¦¦¢¢¦<br />
¢§¥¦ <br />
¢<br />
¦¡¢¡¢¡¦¢¡¡¢¤ ¡ ¡¡¢¢¡¢¡<br />
¦¤¡<br />
§¡¦¥¦¢ ¢ §¡¡ ¡ ¦¢¦¢¡¤¢§¡¡¤¡¦¡<br />
¦¡¡¡¡<br />
Abbildung 4-2: Eine einfache Zustandsmaschine in verschiedenen Repräsentationsformen (grafisches VHDL, textuelles<br />
VHDL, synthetisiertes Schematic). Deutlich wird vor allem der Unterschied in der Verständlichkeit für Dritte<br />
– man versuche zunächst, die Schaltung im Schematic zu verstehen.<br />
1
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.1<br />
Seite 31<br />
Eindruck, in grafischem HDL im Vergleich zum Schematic Entry ca. 20-30 mal komplexere<br />
Schaltungen <strong>mit</strong> subjektiv gleichem Aufwand und größerem Spaß entwerfen zu können.<br />
Die Vorteile bei der Verwendung grafischer HDL-Programme gegenüber der reinen Programmierung<br />
in HDL lassen sich wie folgt zusammenfassen:<br />
● Grafische HDL-Programme bieten eine Integration von HDL-Browserfunktionen, der<br />
grafischen Eingabe von Zustandsmaschinen und der Simulation in einem Programm und<br />
können so<strong>mit</strong> alle anderen derartigen Spezifikationsformen und Entwurfsverfahren<br />
ersetzen bzw. vereinheitlichen.<br />
● Grafisches HDL ist einfacher zu erlernen, komfortabler zu bedienen, wesentlich übersichtlicher<br />
und intuitiver zu verstehen als textuelles HDL und ist wegen der gleichzeitigen<br />
Übersetzbarkeit in synthetisierbares VHDL oder Verilog eine ideale personen- und<br />
maschinenlesbare Form der Spezifikation.<br />
● Durch diese Vorteile und die kompaktere Darstellungsform wird gegenüber reinem<br />
HDL ein enormer Produktivitätsgewinn erzielt.<br />
Trotz dieser Vorteile beobachtet man insbesondere bei erfahrenen HDL-Programmierern immer<br />
wieder eine Reserviertheit gegenüber der grafischen HDL-Programmierung, die sich wie folgt<br />
begründen lässt:<br />
● Ein HDL-Programmierer, der seit vielen Jahren erfolgreich nach konservativen Methoden<br />
arbeitet, sieht ungern ein, dass diese Methoden in Zukunft unzureichend sein werden<br />
– viele Menschen lernen erst aus negativen Erfahrungen. Er könnte auch befürchten,<br />
dass er bei einem Umstieg auf grafisches HDL wieder ganz von vorne anfangen müsste<br />
– was nicht korrekt ist, da sich Erfahrung <strong>mit</strong> reinem HDL äußerst positiv auf die grafische<br />
HDL-Programmierung auswirkt.<br />
● HDL-Programmierer bemängeln den reduzierten HDL-Sprachumfang der grafischen<br />
Programme – der in Hinblick auf eine problemlose Synthetisierbarkeit aber sicher sinnvoll<br />
ist. Im Folgenden soll sogar ausgeführt werden, dass weitere, selbst auferlegte<br />
Restriktionen einen wichtigen Beitrag zu einer deterministischen, technologieunabhängigen<br />
Synthetisierbarkeit darstellen.<br />
4.1.2.6 Empfehlenswerte Restriktionen und Konventionen<br />
Auch wenn sich grafische HDL-Programme und die Hardwarebeschreibungssprachen selbst vielseitig<br />
einsetzen lassen, kann es doch angebracht sein, sich in der Verwendung der zur Verfügung<br />
stehenden Sprachelemente zu beschränken. Dabei sollten zum einen solche Konstruktionen vermieden<br />
werden, die bei der Logiksynthese problematische Schaltungselemente erzeugen, und<br />
zum anderen sollten die HDL-Formulierungen selbst so verständlich und übersichtlich wie möglich<br />
gewählt werden.<br />
Als Schaltungselement sind insbesondere Latches zu vermeiden. Eine synchrone Schaltung ohne<br />
Latches verhält sich invariant gegenüber statischen und dynamischen Hazards sowie Laufzeitunterschieden<br />
in der Logik, solange nur die Setup- und Holdbedingungen der Flipflops eingehalten<br />
werden. Latches hingegen können bei statischen Hazards am Gate-Eingang oder bei Laufzeitunterschieden<br />
zwischen fast gleichzeitig wechselnden Daten- und Gate-Signalen zu einem unerwünschten<br />
Verhalten führen. Das Auftreten von Hazards und die Reihenfolge, in der Daten- und<br />
Gate-Signal wechseln, kann dabei von minimalen Laufzeitdifferenzen entschieden werden, wie<br />
sie durch Layoutkapazitäten hervorgerufen werden. Ein deterministischer Ausgang der Logiksynthese<br />
und die Unabhängigkeit der Funktion vom Layout werden bei vollsynchronen Schaltun-
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.1<br />
Seite 32<br />
gen ohne Latches als selbstverständlich vorausgesetzt, sind bei Verwendung von Latches aber aus<br />
diesen Gründen nicht immer gewährleistet.<br />
Zwar können auch Latches so eingesetzt werden, dass ihr Verhalten deterministisch bleibt, indem<br />
z. B. Daten- und Gate-Signal direkt von einem Flipflop erzeugt werden und gleichzeitig sichergestellt<br />
wird, dass sich in dem Takt, in dem das Gate-Signal inaktiv wird, das Datensignal nie<br />
ändert. Doch es erfordert einige Sorgfalt, dies sicherzustellen, und es ist denkbar, dass unbeabsichtigte<br />
Abweichungen von dieser Regel in einer Simulation nicht erkannt werden, aber nach<br />
dem Layout auftreten. Da man die Latches in der Regel <strong>mit</strong> geringerem Aufwand durch Flipflops<br />
ersetzen kann, besteht in den seltensten Fällen die Notwendigkeit, Latches einzusetzen. Hinzu<br />
kommt, dass auch in weit verbreiteten Syntheseprogrammen und in FPGA-Software Trivialfehler<br />
im Umgang <strong>mit</strong> Latches beobachtet wurden.<br />
Beim Einsatz von (grafischen) HDL-Programmen besteht aber auch die Gefahr, unbeabsichtigt<br />
Latches zu beschreiben. Wenn in asynchronen Zuweisungen einem Signal unter bestimmten<br />
Bedingungen kein neuer Wert zugewiesen wird, setzt das Syntheseprogramm ein Latch ein, um<br />
den alten Wert zu speichern. Meistens ist dieses Verhalten gar nicht beabsichtigt, sondern es<br />
wurde nur in einer If-then-else- oder Case-Anweisung die Zuweisung auf das Signal in einem der<br />
Fälle vergessen. Es sollte daher anhand der Netzliste oder der bei der Synthese ausgegebenen<br />
Informationen kontrolliert werden, ob nicht beabsichtigte Latches eingesetzt wurden, da diese<br />
unnötige Logik erzeugen und zu den beschriebenen Problemen führen können.<br />
Auch Flipflops, die gleichzeitig einen asynchronen Set- und Reset-Eingang besitzen, können<br />
problematisch sein, da es keine allgemeine Konvention gibt, welcher der Eingänge höher priorisiert<br />
ist. Sie werden erzeugt, wenn als Reset-Wert eines Signals keine Konstante verwendet wird.<br />
Auch wenn sichergestellt ist, dass Set- und Reset-Eingang nie gleichzeitig aktiv sind, kann das<br />
Syntheseprogramm dies nicht erkennen und wird darauf achten, dass das Flipflop im Konfliktfall<br />
den in HDL spezifizierten Wert annimmt. Falls aber in der verwendeten Library die Priorität von<br />
Set und Reset anders geregelt ist als in der HDL-Beschreibung (oder gar kein Flipflop <strong>mit</strong> Set<br />
und Reset zur Verfügung steht), wird das Syntheseprogramm die Umsetzung des Elements abbrechen.<br />
Eine technologieunabhängige Synthetisierbarkeit ist daher nicht mehr gewährleistet.<br />
Auch im Datenpfadbereich sollte darauf geachtet werden, welche Schaltungen aus den HDL-Formulierungen<br />
erzeugt werden. So sind Multiplizierer zwar äußerst einfach zu beschreiben, ergeben<br />
aber evtl. sehr große Schaltungen <strong>mit</strong> langen Laufzeiten. Hier ist zu überlegen, ob eine<br />
Ausführung in einem Takt überhaupt erforderlich ist, da anderenfalls Pipelinestrukturen eingesetzt<br />
werden können oder die Multiplikation sogar durch schrittweise Shift-Operationen und<br />
Additionen ersetzt werden kann. Entsprechend sind auch Speicherstrukturen wie z. B. FIFOs einfach<br />
zu beschreiben, doch der Einsatz eines RAMs kann eine erhebliche Flächeneinsparung<br />
gegenüber der vom Syntheseprogramm üblicherweise gewählten Struktur aus Flipflops bringen.<br />
Durch strukturnahe Beschreibungsformen lassen sich in vielen Bereichen Schaltungsgröße<br />
und Laufzeiten zum Teil deutlich verringern. Dies bedeutet nicht, dass einzelne Logikgleichungen<br />
per Hand nach de Morgan auf eine Minimalform gebracht werden müssen – hier findet die<br />
Logiksynthese besser und schneller ein Optimum –; aber gerade bei arithmetischen Funktionen<br />
fehlt es der Logiksynthese oft an der nötigen Kreativität für Optimierungen. Die Ausdrücke<br />
„A>5“ und „A≤4“ werden beispielsweise nicht als komplementäre Bedingungen erkannt, so dass<br />
es durchaus sinnvoll ist, den zweiten Ausdruck als „not A>5“ zu formulieren und so einen der<br />
Vergleicher in der Synthese zu sparen. Auch bei einer Addition von mehr als zwei Werten kann<br />
erheblich gespart werden, hier stellt eine Carry-Save-Struktur das Optimum bezüglich Fläche<br />
und Laufzeit dar, bei der parallel liegende Volladdierer jeweils drei Summanden zu einem Summen-<br />
und einem Carry-Wort addieren und nur die Summation der letzten zwei verbleibenden<br />
Werte <strong>mit</strong> einem gewöhnlichen Addierer erfolgt.
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.1<br />
Seite 33<br />
Wie man sieht, lassen sich die Hardwarebeschreibungssprachen bei Kenntnis der Arbeitsweise<br />
der Syntheseprogramme so einsetzen, dass die Logiksynthese in der Arbeit unterstützt statt<br />
behindert wird und so ein optimales Ergebnis erzielt wird. Doch auch die Verständlichkeit der<br />
HDL-Texte für den Menschen kann und muss deutlich erhöht werden, indem einige Konventionen<br />
und selbst auferlegte Restriktionen eingehalten werden.<br />
So sollte negative Logik (low-aktive Signale) nur eingesetzt werden, wo Chip-externe Signale<br />
dies erfordern, da sonst immer „um die Ecke gedacht“ werden muss. Alle low-aktiven Signale<br />
sollten in ihrem Namen als solche gekennzeichnet werden (z. B. durch Voranstellen eines „n“<br />
wie in „nCS_EXTRAM“).<br />
Auch sollten eindeutige, inhaltlich aussagekräftige Signalnamen und leicht nachvollziehbare<br />
Formulierungen von Verknüpfungen verwendet werden. So wird die recht kryptisch anmutende<br />
Bedingung<br />
nBusy and not nInit<br />
bei Vermeidung der direkten Bool’schen Verknüpfungen zu<br />
nBusy = 1 and nInit = 0,<br />
unter Verwendung positiver Logik zu<br />
Busy = 0 and Init = 1,<br />
und schließlich durch die Benutzung selbsterklärender Signalnamen und die Verwendung der<br />
Logikwerte „true“ und „false“ zu der intuitiv zu verstehenden und flüssig lesbaren Formulierung<br />
Controller_busy = false and Init_done = true.<br />
Der Schreibaufwand ist hier zwar geringfügig höher, doch aus der leichteren Verständlichkeit<br />
und der reduzierten Fehlerwahrscheinlichkeit ergibt sich insgesamt eine Zeitersparnis, so dass<br />
letzten Endes die Vorteile der längeren, aber eindeutigen Schreibweise überwiegen.<br />
Ferner sollte darauf geachtet werden, dass die Funktion der Schaltung nach Möglichkeit invariant<br />
gegenüber der Reihenfolge sein sollte, in der die erzeugten HDL-Befehle stehen. Falls beispielsweise<br />
einer Variablen in zwei parallel liegenden Subdiagrammen unter verschiedenen,<br />
einander nicht ausschließenden Bedingungen unterschiedliche Werte zugewiesen werden, wird<br />
das Verhalten der Schaltung davon abhängen, in welcher Reihenfolge der Simulator bzw. das<br />
Syntheseprogramm die Anweisungen ausführen. Zwar lässt sich diese Reihenfolge in Speedchart<br />
über Prioritäten der Subdiagramme festlegen, wenn diese jedoch nicht eingetragen wurden, ist<br />
die Ausführungsreihenfolge nur davon abhängig, welches Subdiagramm zuerst erstellt wurde. Da<br />
sich diese jedoch <strong>mit</strong> einem sorglos ausgeführten Cut-and-paste-Vorgang ändern kann, besteht<br />
die Gefahr eines scheinbar nicht deterministischen Verhaltens. Das Problem kann durch einen<br />
sauberen Design-Stil vermieden werden, bei dem Zuweisungen auf eine Variable nur in jeweils<br />
einem Subdiagramm in einer vollständigen If-then-else-Anweisung erfolgen.<br />
Ähnliches gilt für die Vorinitialisierung von Variablen. So wird durch die Formulierung<br />
A := ‘0’;<br />
if [condition] then<br />
A := ‘1‘;<br />
end if;<br />
zwar eine Zeile gegenüber der vollständigen If-then-else-Konstruktion gespart; dies geht aber zu<br />
Lasten der Designsicherheit und Lesbarkeit.
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.1<br />
Seite 34<br />
Eine besondere Aufmerksamkeit muss auch der korrekten Verwendung der VHDL-Begriffe<br />
„signal“ und „variable“ gewidmet werden, die auch in Speedchart zur Verfügung stehen. Eine<br />
„variable“ nimmt bei Ausführung der HDL-Zuweisung den neuen Wert sofort an (in Verilog entspricht<br />
dies der Zuweisung <strong>mit</strong> „=“), während ein „signal“ den neuen Wert erst einen infinitesimal<br />
kleinen Zeitschritt später annimmt (so auch in Verilog bei der Zuweisung <strong>mit</strong> „
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 />
4.1.3 Logiksynthese als etabliertes Mittel der Produktivitätssteigerung<br />
4.1.3.1 Vorteile der Logiksynthese<br />
Kapitel 4.1<br />
Seite 35<br />
Logiksynthese, die automatische Schaltungsgenerierung aus einer Spezifikation, hat sich in den<br />
vergangenen Jahren als die beste Methode etabliert, komplexe Digitalschaltungen systematisch<br />
und auf Anhieb nahezu fehlerfrei zu entwerfen. Der Ausgangspunkt ist dabei eine funktionale<br />
Verhaltensbeschreibung der Schaltung in einer Hardwarebeschreibungssprache wie VHDL oder<br />
Verilog, die auch von einem grafischen HDL-Programm generiert worden sein kann.<br />
Die Vorteile der Logiksynthese liegen dabei auf der Hand. An die Stelle einer intensiven<br />
Beschäftigung <strong>mit</strong> einzelnen Logikgleichungen tritt ein Automatismus, der sowohl den Entwicklungsaufwand<br />
als auch die Fehlerwahrscheinlichkeit deutlich reduziert. Quantitativ wurde der<br />
Gewinn durch Verwendung der Logiksynthese bereits in Abschnitt 4.1.2.5 untersucht.<br />
Gleichzeitig bleibt der HDL-Text technologieunabhängig, ist aber in jede beliebige Technologie<br />
synthetisierbar, so dass theoretisch noch in letzter Minute vor Abgabe der Netzliste ein Halbleiterhersteller<br />
ausgewählt bzw. die Technologie gewechselt werden kann.<br />
4.1.3.2 Ablauf der Logiksynthese<br />
Bei der Logiksynthese werden in einem ersten Schritt alle zum Design gehörenden HDL-<strong>Datei</strong>en<br />
eingelesen und nach einfachen Entwurfsalgorithmen für digitale Schaltungen in eine zunächst<br />
noch technologieunabhängige Schaltungsrepräsentation umgesetzt. Nur dort, wo evtl. Elemente<br />
der Zielbibliothek direkt instanziiert wurden, werden diese bereits eingesetzt. Für alle synchron<br />
zugewiesenen Signale werden in diesem Schritt generische Flipflops der entsprechenden Bit-<br />
Breite eingesetzt, wobei auch die Zustandsregister von State Machines in der benötigten Breite<br />
generiert werden und die Zustandscodierung festgelegt wird.<br />
Die Ansteuergleichungen für die Dateneingänge der Flipflops werden genau wie alle anderen<br />
kombinatorischen Logikteile aus generischen Grundelementen aufgebaut, wobei der HDL-<br />
Beschreibung genau gefolgt wird und z. B. Zuweisungen aus If-then-else- und Case-Anweisungen<br />
zunächst stets über Multiplexer realisiert werden. Bei den generischen Elementen wird dabei<br />
zunächst keine Rücksicht auf deren Verfügbarkeit in der Zieltechnologie genommen, und es werden<br />
noch keine Optimierungen durchgeführt. Bei Benutzung arithmetischer Funktionen im HDL-<br />
Text werden ebenfalls nur generische Addierer etc. eingesetzt, ohne dass bereits eine Architektur<br />
hierfür festgelegt wird.<br />
Bevor die so erzeugte, technologieunabhängige Version der Schaltung unter Verwendung geeigneter<br />
Bibliotheken in eine Schaltung auf Gatterebene in der Zieltechnologie umgesetzt wird,<br />
empfiehlt es sich, die Clock-Signale und Timing-Anforderungen der Schaltung zu definieren,<br />
da<strong>mit</strong> bei der Auswahl der Implementationsformen von Addierern etc. die Geschwindigkeitsanforderungen<br />
von vornherein berücksichtigt werden können.<br />
In der nun folgenden Mapping-Phase werden die generischen Elemente durch zur Verfügung stehende<br />
Elemente der Zielbibliothek ersetzt, wobei evtl. bereits eine geringfügig andere Struktur<br />
verwendet werden muss. Bei arithmetischen Elementen wird zunächst geprüft, ob geeignete,<br />
schon optimiert vorliegende Makroblöcke in der Zielbibliothek enthalten sind. Anderenfalls werden<br />
die benötigten Elemente nach Entwurfsalgorithmen und Schaltungsprinzipien, die wiederum<br />
Bibliotheken entstammen, aus Einzelgattern der gewählten Technologie konstruiert.<br />
Der nächste Schritt ist die Optimierung der Schaltung unter Berücksichtigung der Vorgaben<br />
(constraints) für Designgröße, Zeitverhalten etc. Falls keine Constraints angegeben wurden, wird<br />
nur auf die Schaltungsgröße (max. area) optimiert. So wird unter anderem bei mehrfach instanzi-
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.1<br />
Seite 36<br />
ierten Elementen geprüft, ob diese wirklich parallel benötigt werden. Anderenfalls können z. B.<br />
die alternativ auszuführenden Anweisungen „B := A + 2“ und „B := A + 3“ <strong>mit</strong> einem einzigen<br />
Addierer realisiert werden, an dessen einen Eingang umschaltbar eine der beiden Konstanten<br />
angelegt wird.<br />
Die häufigsten Constraints sind Timing-Vorgaben, die sich auch indirekt aus der Frequenz eines<br />
definierten Clock-Signals ergeben können. Um sie einzuhalten, wird die Schaltung nach de Morgan<br />
umstrukturiert, und es werden evtl. schnellere Architekturen der arithmetischen Elemente<br />
ausgewählt. Vorgaben für Mindestlaufzeiten von Signalen, die sich auch aus einem angenommenen<br />
Clock Skew für sehr kurze Pfade zwischen Flipflops ergeben können, werden durch Einsatz<br />
von Verzögerungselementen (buffer) behoben.<br />
Falls Vorgaben für die maximale Belastung einzelner Gatterausgänge (max. fanout), maximale<br />
Netzkapazitäten (max. capacitance) oder die maximale Anstiegszeit von Signalflanken (max.<br />
transition) angegeben wurden oder in den Technologiebibliotheken enthalten sind, werden im<br />
Bemühen um deren Einhaltung Gatter <strong>mit</strong> stärkeren Treibern eingesetzt, Buffer eingefügt oder<br />
Lasten auf mehrere parallele treibende Gatter verteilt.<br />
Bei der Optimierung auf mehrere verschiedenen Constraints kann oft nur ein Kompromiss gefunden<br />
werden, da sich z. B. eine kleine Fläche und eine hohe Geschwindigkeit gegeneinander tauschen,<br />
aber nicht gleichzeitig perfektionieren lassen. Das Syntheseprogramm optimiert daher auf<br />
ein Minimum einer Kostenfunktion, in die alle Verletzungen von Constraints einfließen, wobei<br />
der Anwender die Priorisierung verschiedener Arten von Constraints bestimmen kann. Die<br />
Designgröße wird dabei in der Regel nur optimiert, solange die übrigen Verletzungen dadurch<br />
nicht erhöht werden.<br />
Da<strong>mit</strong> die Optimierung nicht vorzeitig in einem lokalen Minimum der Kostenfunktion im Parameterraum<br />
der möglichen Schaltungsänderungen endet, arbeitet die Optimierung nach Algorithmen<br />
des Simulated Annealing und wird erst abgebrochen, wenn alle Vorgaben erreicht wurden<br />
oder der vom Anwender vorgegebene zeitliche Aufwand für die Synthese überschritten wurde.<br />
4.1.3.3 Fortschritte in den Synthese-Libraries<br />
In den vergangenen Jahren sind die Syntheseprogramme ganz erheblich weiterentwickelt worden.<br />
Dies betrifft zum einen die Ausführungsgeschwindigkeiten und die Algorithmen bei der<br />
Optimierung, die es erlauben, bei ähnlichen Programmlaufzeiten immer komplexere Schaltungen<br />
zu synthetisieren und die Schaltungen immer besser zu optimieren. Zum anderen betrifft es die<br />
bei der Synthese verwendeten Bibliotheken, und zwar sowohl diejenigen, die vom Hersteller der<br />
Syntheseprogramme <strong>mit</strong>geliefert werden und z. B. unterschiedliche Architekturpläne von arithmetischen<br />
Elementen enthalten, als auch die Bibliotheken der Halbleiterhersteller, die längst<br />
nicht mehr nur Beschreibungen der Grundgatter enthalten.<br />
In den Libraries der Hersteller der Syntheseprogramme waren dabei zunächst diverse arithmetische<br />
Elemente wie Addierer, Subtrahierer und Multiplizierer, Vergleicher, Inkrementierer und<br />
Dekrementierer enthalten, wobei jedes Element in der Bitbreite der Operanden parametrisierbar<br />
ist. Zusätzlich sind heute viele Elemente in einer immer höher werdenden Zahl besonders schneller<br />
Architekturen verfügbar; so ist ein Addierer in der DesignWare Library [41] von Synopsys<br />
heute in den fünf synthetisierbaren Architekturen Ripple Carry, Carry Look-Ahead, Fast Carry<br />
Look-Ahead, Brent-Kung Architecture und Conditional Sum verfügbar, Multiplizierer als Carry-<br />
Save Array oder Booth-Coded Wallace Tree. Außerdem wird der Umfang der verfügbaren Elemente<br />
ständig erweitert, so umfasst die DesignWare Library heute weit über 100 Komponenten<br />
in über 160 Architekturen, vom Barrel Shifter und Prioritätsencoder über Dividierer und Wurzelfunktionen<br />
bis hin zu trigonometrischen Funktionen.
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.1<br />
Seite 37<br />
Doch auch die Halbleiterhersteller bieten immer umfangreichere Bibliotheken an. Während<br />
deren Umfang in der Anfangszeit der Logiksynthese nur geringfügig über das absolute Minimum<br />
– ein Flipflop und ein NAND-Gatter – hinausging, enthält heute die Bibliothek STD90 [44] von<br />
Samsung eine Vielzahl von Komplexgattern und Elemente verschiedener Treiberstärken, insgesamt<br />
ca. 430 interne Standardzellen. Im I/O-Bereich stehen ca. 400 Padzellen <strong>mit</strong> unterschiedlichen<br />
Eingangspegeln, Treiberstärken, Slew Rates und Spannungstoleranzen sowie Variationen<br />
<strong>mit</strong> Pullup- bzw. Pulldown-Widerständen, Sch<strong>mit</strong>t-Trigger-Charakteristik, Open-Drain-Varianten<br />
etc. zur Auswahl.<br />
Zusätzlich stellen viele Halbleiterhersteller die Modelle von Makros wie z. B. CPU-Cores oder<br />
RAMs in einem für das Syntheseprogramm lesbaren Format einschließlich der erforderlichen<br />
Timing-Informationen zur Verfügung, so dass bei der Logiksynthese auch das Timing an den<br />
Schnittstellen der Makros berücksichtigt werden kann.<br />
Um das Post-Layout-Timing möglichst genau er<strong>mit</strong>teln zu können, enthalten die Technologiebibliotheken<br />
schließlich noch sogenannte Wire Load Models; das sind aus Ergebnissen statistischer<br />
Untersuchungen gewonnene Formeln, die es erlauben, die Metallisierungskapazitäten im Layout<br />
in Abhängigkeit von der Blockgröße und der Anzahl der Lasten an jedem Gatterausgang abzuschätzen.<br />
4.1.3.4 Zusätzliche konstruktive Funktionen der Syntheseprogramme<br />
Während die bisher beschriebenen Funktionen nur der reinen Logiksynthese dienen, also einer<br />
Umsetzung einer HDL-Beschreibung in eine Netzliste ohne funktionale Änderungen, bieten<br />
moderne Syntheseprogramme darüber hinaus noch diverse Möglichkeiten, die Schaltungen auch<br />
konstruktiv zu verändern und erweitern.<br />
Dies betrifft zunächst die Auswahl von Pads. Die Entscheidungen darüber, welche Ports der<br />
Schaltung Pads erhalten sollen und welche Typen von Pads eingesetzt werden sollen, stellen<br />
zusätzliche Informationen neben der funktionalen Beschreibung der Schaltung dar. Da die Verfügbarkeit<br />
der exakten Typen von der verwendeten Library abhängt, werden die Angaben zur<br />
Auswahl der Pads meistens zusammen <strong>mit</strong> anderen technologiespezifischen Informationen nicht<br />
über HDL-Attribute beschrieben, sondern als Befehle in einer speziellen Script-Sprache im Synthesescript<br />
zusammengefasst.<br />
Noch massiver können moderne Syntheseprogramme beim Einbau von Teststrukturen in die<br />
Schaltungsstruktur eingreifen. So ist es beispielsweise für den Scan-Path-Betrieb erforderlich,<br />
alle Flipflops in einem Design zu Schieberegisterketten zu verschalten. Diese Struktur in HDL<br />
funktional zu beschreiben wäre nicht nur äußerst arbeitsintensiv, sondern würde auch den Vorteil<br />
der Abstraktion durch die HDL-Programmierung wieder aufheben: Es wäre eine Beschäftigung<br />
<strong>mit</strong> den einzelnen Flipflops in Zustandsregistern von Zustandsmaschinen erforderlich, auf die in<br />
HDL normalerweise verzichtet werden kann. Es ist daher sehr sinnvoll, dass moderne Syntheseprogramme<br />
einen Scan Path anhand der bei der Synthese entstandenen Schaltungsstruktur <strong>mit</strong>tels<br />
einfacher Algorithmen in das Design einbauen können. Optionale Steuerinformationen zur<br />
Anzahl der Pfade, zur Auswahl und Reihenfolge der Flipflops innerhalb der Ketten sowie zu den<br />
als Kettenein- und -ausgänge zu verwendenen Pins können wiederum im Synthesescript untergebracht<br />
werden.<br />
Falls Boundary-Scan-Strukturen (JTAG) nach IEEE1149.1 [27] eingefügt werden sollen, kann<br />
dies ebenfalls durch das Syntheseprogramm geschehen, das hierfür über spezielle Bibliotheken<br />
verfügt und sogar den TAP-Controller synthetisieren kann, ohne dass dessen Funktion im Detail<br />
in HDL spezifiziert werden muss; lediglich einige Parameter wie die Befehlsregisterlänge, die zu<br />
unterstützenden JTAG-Befehle <strong>mit</strong> ihrer Codierung, die Typauswahl der jeweiligen Boundary-
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.1<br />
Seite 38<br />
Scan-Zellen an jedem Port und die Verdrahtungsreihenfolge sind im Synthesescript zu spezifizieren.<br />
Im Datenpfadbereich ist Synopsys sogar in der Lage, die Verteilung von kombinatorischer Logik<br />
relativ zu vorhandenen Pipeline-Stufen zu verändern („distribute logic“), um durch eine gleichmäßige<br />
Logiktiefe zwischen den Pipeline-Stufen eine maximale Taktfrequenz zu erreichen. Dies<br />
ermöglicht es, die einfache und abstrakte Beschreibung der arithmetischen und logischen Funktionen<br />
beizubehalten und dennoch eine optimale Pipeline-Struktur zu erreichen.<br />
Mit speziellen Befehlen im Synthesescript schließlich ist es zusätzlich möglich, die Schaltung<br />
per Hand zu modifizieren, indem Elemente platziert, gelöscht, umverdrahtet oder anders gruppiert<br />
werden. So kann eine Umstrukturierung der Schaltungshierarchie durchgeführt werden, um<br />
die modulare Layouterstellung zu unterstützen, es können weitere technologiespezifische Elemente<br />
wie beispielsweise Power Pads, Clock-Oszillatoren oder Bus Holder an bidirektionalen<br />
Bussen eingefügt werden, und beim Einbau von Teststrukturen können die erforderlichen Steuersignale<br />
und Testmultiplexer korrekt angeschlossen werden.<br />
Die modifizierenden Funktionen sollten nach Möglichkeit nur dort eingesetzt werden, wo technologiespezifische<br />
Anpassungen das erfordern, und nicht, um Funktionalitäten dort zu ändern,<br />
wo das auch in der HDL-Beschreibung möglich wäre. Nur so ist eine klare Trennung der funktionalen<br />
Spezifikation in HDL und der technologiespezifischen Umsetzung im Synthesescript<br />
gewährleistet.<br />
Eine wesentliche Funktion, die Synthese des Clock Trees, wird man bei den Syntheseprogrammen<br />
allerdings vergeblich suchen, da geringe Werte von Clock Skew und Durchlaufzeit nur<br />
erreicht werden können, wenn durch kürzestmögliche Verdrahtungslängen im Clock Tree minimale<br />
und gleichmäßig verteilte Lasten auch im Layout gewährleistet bleiben. Da die Synthese<br />
das Layout aber nicht kontrollieren kann, sollte der Clock Tree erst im Place-&-Route-Programm<br />
nach der Positionierung der Flipflops erzeugt werden.
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 />
4.1.4 Verkürzung von Entwicklungszeiten durch IPs und Design Re-Use<br />
Kapitel 4.1<br />
Seite 39<br />
Der Gedanke, durch die Wiederverwendung bereits entwickelter Schaltungsteile wertvolle Entwicklungszeit<br />
(im Sinne des Aufwandes und des Zeitplans) einzusparen, drängt sich jedem auf,<br />
der ähnliche Schaltungsblöcke oder Grundfunktionen zum wiederholten Male einsetzt bzw.<br />
benötigt. Als integrierte Schaltungen noch per Schematic Entry erstellt wurden, verwendeten die<br />
Designer daher viel Zeit für die Erstellung ganzer Bibliotheken von Grundelementen für den persönlichen<br />
Bedarf, in denen z. B. Addierer in verschiedenen Bitbreiten und Architekturen archiviert<br />
wurden. Seit der Einführung der Logiksynthese sind solche Arbeiten auf dieser Ebene<br />
jedoch nicht mehr erforderlich, da solche Funktionsgruppen geringer oder <strong>mit</strong>tlerer Komplexität<br />
voll parametrisiert automatisch aus einer so kurzen HDL-Beschreibung erzeugt werden – oft<br />
reicht ein einziger Operator –, dass diese ohne zeitlichen Nachteil bei jeder Verwendung neu eingegeben<br />
werden kann.<br />
Mit der steigenden Komplexität der ASICs bis hin zum „System on a Chip“ (SoC) ergibt sich<br />
aber eine neue Struktur, in der oft zehn und mehr umfangreiche, in sich abgeschlossene Module<br />
zu erkennen sind, die optimal für eine Wiederverwendung geeignet erscheinen. Im Wesentlichen<br />
handelt es sich dabei um Datenverarbeitungsmodule wie embedded CPUs, digitale Signalprozessoren<br />
oder Einheiten zur Codeumsetzung, Kryptographie oder Kompression von Daten sowie<br />
um Schnittstellenmodule, zu denen alle Interfaces zur Außenwelt zu rechnen sind, angefangen<br />
von General Purpose I/Os über UARTs bis hin zu komplexen Hochgeschwindigkeitsschnittstellen<br />
wie z. B. Ethernet.<br />
Neben der Wiederverwendung selbst entwickelter Module, dem Design Re-Use, besteht bei standardisierten<br />
Modulen auch die Möglichkeit, IPs (Intellectual Properties) eines Dienstleisters<br />
einzukaufen. Um sein Know-how zu schützen, liefert dieser die Schaltung oft in der Form codierter<br />
HDL-<strong>Datei</strong>en oder als Synopsys-DesignWare-Komponente, was eine Synthese in beliebige<br />
Zieltechnologien ermöglicht, aber keinen Einblick in die Quelldaten erlaubt, oder er liefert eine<br />
bereits in die Zieltechnologie umgesetzte Netzliste. Falls eine Variation von Schaltungsparametern<br />
unterstützt wird, können bei der Synthese sogar generische Parameter wie z. B. FIFO-Größen<br />
und Busbreiten angegeben werden, so dass das IP an die individuellen Anforderungen<br />
angepasst werden kann.<br />
Halbleiterhersteller selbst bieten ihre IPs häufig sogar als fertig platzierte und verdrahtete Layoutblöcke<br />
(Hard Macros) an, von denen der ASIC-Designer ein Simulationsmodell und ggf. ein<br />
Abstract oder Phantom-Layout erhält, welches für die Layouterstellung des Gesamtchips die<br />
Größe und die Anschlusspositionen des Macros definiert. Der Vorteil für den Halbleiterhersteller<br />
liegt dabei im optimalen Know-How-Schutz, für den ASIC-Entwickler im optimierten und wohldefinierten<br />
Post-Layout-Zeitverhalten des Schaltungsteils.<br />
Zusätzlich zur Schaltung selbst und ihrer Dokumentation wird <strong>mit</strong> dem IP im Idealfall noch, falls<br />
erforderlich, die Treibersoftware <strong>mit</strong>geliefert, und zur Simulation kann eine Test Bench zur Verfügung<br />
gestellt werden. Darüber hinaus hat sich in mehreren Projekten gezeigt, dass der Wert<br />
eines IPs für den Designer ganz entscheidend davon bestimmt wird, ob der Anbieter in der Lage<br />
ist, technischen Support für den Designer in Form von möglichst direkten Kontakten zum Entwickler<br />
des IPs zu leisten und auf Änderungswünsche oder Fehlermeldungen flexibel zu reagieren.<br />
IPs ohne geeigneten Support erwiesen sich in der Praxis als wertlos.<br />
Eine wesentliche Voraussetzung für den Einsatz von IPs stellt die Standardisierung der Module<br />
dar, die es erlaubt, bei einem Höchstmaß an Abstraktion durch bloße Nennung eines Fachbegriffs<br />
oder durch Verweis auf eine Norm selbst hochkomplexe Datenübertragungs- oder Datenverarbeitungsfunktionen<br />
präzise zu charakterisieren. Auf diese Kernfunktionen bleibt die Standardisierung<br />
aber auch beschränkt. So definieren Schnittstellennormen zwar die Protokolle auf den
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.1<br />
Seite 40<br />
Schnittstellen selbst, nicht aber Details der Realisierung wie die interne Registerbelegung des<br />
Moduls, die Aufteilung von Funktionen zwischen Hardware und Software oder das Businterface<br />
zum Mikroprozessor, so dass hier viele Freiheiten verbleiben. Zur Integration eines IPs in das<br />
eigene System sind daher seitens der Software individuelle Treiber erforderlich, seitens des Businterfaces<br />
eine Anpassung des Moduls an das System oder die Konstruktion einer entsprechenden<br />
Umsetzlogik.<br />
Eine Standardisierung der Prozessorbusse könnte dieses Problem entschärfen, ist aber bis heute<br />
nicht erfolgreich realisiert worden, da verschiedene Mikroprozessorarchitekturen sowie firmenpolitische<br />
Entscheidungen eine herstellerübergreifende Normierung erschweren. Außerdem müssen<br />
bei der Definition eines Bussystems Kompromisse zwischen der Komplexität der<br />
Busfunktionen wie z. B. DMA- oder Multi-Master-Fähigkeit und der Zugriffsgeschwindigkeit<br />
eingegangen werden, was ebenfalls für individuell unterschiedliche Konzepte sprechen kann. Ein<br />
reines „Zusammenstecken“ von Mikroprozessor und IPs wird daher in den seltensten Fällen<br />
möglich sein.<br />
Die Vorteile für den ASIC-Designer bei der Wiederverwendung eigener Module sind offensichtlich;<br />
bei der Verwendung fremder IPs stellt sich jedoch die Frage, ob die Zeitersparnis den Kaufpreis<br />
rechtfertigt. Bei einer solchen Evaluierung wird der Wert eines IPs oft unterschätzt, indem<br />
nur die Entwicklungszeit für HDL-Codierung, Simulation und Debugging betrachtet wird und<br />
die nicht zu unterschätzende Einarbeitungszeit in die Spezifikation bzw. Norm der immer komplexeren<br />
Schnittstellen und Datenverarbeitungseinheiten vernachlässigt wird. Der Einsatz von<br />
IPs reduziert gerade die Spezifikationsphase auf ein absolutes Minimum und kann daher enorm<br />
zu einem sauberen Top-down-Design-Stil beitragen. Darüber hinaus werden die Risiken bei der<br />
Implementation bisher unbekannter Funktionen oft unterschätzt, die entfallen, wenn ein IP-Lieferant<br />
über eine Realisierung verfügt, die bereits erfolgreich in anderen ASICs oder Testchips ein-<br />
ISDN-S0<br />
S0<br />
S0<br />
S0 Interface<br />
(Switching Buffer)<br />
GPIO USB<br />
16 I/Os<br />
ISDN-S0<br />
USB V1.1<br />
2 Clk / 2 FSC / 4 PFS / 8 PCM-Hiway SDI/SDO<br />
PCMH<br />
clk + sync<br />
DTMF<br />
Decoder<br />
UART<br />
RS 232<br />
PCM<br />
Hiway<br />
High Speed Bus<br />
PCM<br />
Hiway<br />
PCM<br />
Hiway<br />
Software Switching Unit<br />
(Switching Buffer)<br />
Timer IRQ<br />
PLL<br />
(*8)<br />
12.288 MHz,<br />
48 MHz, Sysclk<br />
FSC PLL<br />
Int. Memory<br />
RAM / ROM<br />
Ext. Memory<br />
+<br />
SDRAM Ctrl.<br />
Abbildung 4-3: Blockschaltbild eines Netzwerk- und Telekommunikations-ASICs<br />
[A-19], dessen Komponenten zu einem großen<br />
Teil aus zwei zuvor entwickelten ASICs übernommen oder als<br />
IP eingekauft wurden. Es muss angemerkt werden, dass keines der<br />
Teilmodule ohne Änderungen wiederverwendet werden konnte;<br />
im Mittel wurden ca. 20% der Funktionalität überarbeitet, um der<br />
veränderten Systemarchitektur und den Erweiterungs- und Verbesserungswünschen<br />
gerecht zu werden.<br />
3-Lane<br />
Data<br />
Switch<br />
HDLC<br />
Contr.<br />
DMA<br />
Data<br />
Instr.<br />
4* MII-Interface (ext. Phy)<br />
Ethernet<br />
MAC<br />
DMA<br />
(*4)<br />
(*4)<br />
DMA Bus („INBUS“)<br />
Glue<br />
Logic<br />
Ethernet<br />
MAC<br />
DMA<br />
ARM9TDMI<br />
CPU<br />
ICE Breaker / TAP<br />
SDRAM + Flash + SRAM Debug<br />
IP<br />
Design Re-Use<br />
Hard Macro<br />
New
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.1<br />
Seite 41<br />
gesetzt wurde und deren Normkonfor<strong>mit</strong>ät zertifiziert wurde. Letzteres kann auch bei den<br />
Verhandlungen über die ASIC-Entwicklung entscheidend dazu beitragen, das Vertrauen des<br />
potentiellen Auftraggebers zu gewinnen.<br />
Bei einem massiven Einsatz von IPs und Design Re-Use kann sich das Tätigkeitsbild des ASIC-<br />
Designers deutlich verändern. Der Designer wird zum Systemintegrator, der als Interface zwischen<br />
Kunde und Halbleiterhersteller fungiert und dessen Aufgaben kaum noch in der kreativen<br />
Schaltungsentwicklung, sondern überwiegend in der Systemkonzeption und in der Ablaufsteuerung<br />
von Logiksynthese, Simulation und Verifikation liegen.<br />
Angesichts der enormen Komplexität eines modernen „System on a Chip“ liegt in der so erreichbaren<br />
Risikominimierung und der Verkürzung der Entwicklungszeiten der Schlüssel zur marktgerechten<br />
Produktentwicklung.
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 />
4.2 Verifikation durch FPGA-Prototypenboards<br />
4.2.1 Hardware-Software-Co-Design <strong>mit</strong> skalierten ASIC-Äquivalenten<br />
Kapitel 4.2<br />
Seite 42<br />
Die stark ansteigenden NRE-Kosten, die in Deep-Submicron-Technologien bereits mehrere<br />
100.000 US-Dollar betragen können, sowie die in der Gatteranzahl und dem Funktionsumfang<br />
extrem gesteigerten Schaltungskomplexitäten moderner ASICs begründen den Wunsch nach<br />
weiteren Kontrollmechanismen, um eine akzeptable Designsicherheit zu erreichen.<br />
Moderne wiederprogrammierbare Logikbausteine (FPGAs) und der Einsatz der Logiksynthese<br />
erlauben es, die Schaltungen zur Risikominimierung vor der Umsetzung in ein ASIC zunächst<br />
automatisch in ein FPGA zu übersetzen und dieses im realen Umfeld zu testen. Ein Evaluation<br />
Board kann dabei neben einem oder mehreren FPGAs weitere Komponenten der Schaltungsperipherie<br />
enthalten, die im Idealfall in der Gesamtheit dem später <strong>mit</strong> dem ASIC zu realisierenden<br />
System entsprechen (vgl. Abbildung 4-4).<br />
Heute stehen FPGAs zur Verfügung, die nahezu eine Million nutzbare Gatteräquivalente enthalten<br />
und es so<strong>mit</strong> ermöglichen, alle wesentlichen Komponenten eines ASICs <strong>mit</strong> Ausnahme von<br />
Analogfunktionen und großen Speichern in einem FPGA-Baustein unterzubringen. Ihr Preis von<br />
über 1000 US-Dollar macht sie zwar für Serienlieferungen unbrauchbar, erlaubt aber durchaus<br />
den Einsatz auf Prototypenboards.<br />
Nachteilig ist, dass selbst die modernsten FPGAs stets nur geringere Taktfrequenzen erlauben als<br />
die entsprechenden ASIC-Technologien. Dies ist auf die erforderliche Konfigurierbarkeit der<br />
Bausteine zurückzuführen, die realisiert wird, indem Logikblöcke <strong>mit</strong> programmierbaren Wahrheitstafeln<br />
eingesetzt werden und programmierbare Verbindungen zu den sehr großzügig auf vielen<br />
Metallisierungsebenen ausgelegten Signalnetzen hergestellt werden können. Die Laufzeiten<br />
Netzteil<br />
3 Phy’s<br />
10/100<br />
Ethernet<br />
HomePNA/<br />
Ethernet<br />
Phy<br />
ARM7 ARM9<br />
digitale Logik<br />
(ASIC-äquivalent)<br />
LEDs<br />
RS232<br />
FPGA<br />
Flash Flash<br />
SDRAM<br />
SDRAM<br />
SRAM SRAM<br />
Audio Codecs<br />
<strong>mit</strong> SLICs<br />
(analoge A/B Anschlüsse)<br />
LEDs<br />
USB<br />
ISDN-S0 ISDN-S0<br />
Abbildung 4-4: Ein modernes Evaluation Board kann neben einem FPGA, das der digitalen Logik des späteren<br />
ASICs entspricht, noch diverse Peripheriekomponenten enthalten, so hier ein Board für eine Ethernet-fähige Telekommunikationsanlage.
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.2<br />
Seite 43<br />
durch die programmierbaren Schalter zusammen <strong>mit</strong> den hohen Kapazitäten der teilweise den<br />
gesamten Chip umspannenden Signalleiterbahnen führen dazu, dass programmierbare Logik<br />
historisch schon immer um einen Faktor von ca. 3 langsamer war als Standardzell-Designs. Als<br />
Abhilfe ist es daher in der Regel erforderlich, die Systeme in der Zeit zu skalieren und das<br />
FPGA-Board um einen entsprechenden Faktor langsamer zu betreiben als später das ASIC.<br />
Die Verwendung von Evaluation Boards ist nicht unumstritten. So bemängeln Kritiker unter<br />
anderem die folgenden Punkte:<br />
● Entwicklung, Fertigung, Inbetriebnahme und Test des Evaluation Boards bedeuten<br />
einen erheblichen zeitlichen Aufwand, der bei nicht ausreichender Parallelisierung zu<br />
Verzögerungen im Terminplan führen kann.<br />
● Die oft erforderliche Skalierung in der Zeit bereitet Probleme, wenn die Umgebung des<br />
Systems sich nicht ebenfalls skalieren lässt. Dies kann z. B. bei Bussystemen und<br />
Schnittstellen <strong>mit</strong> konstanter Takt- oder Datenrate der Fall sein. 1<br />
● Der Test am FPGA gibt ein falsches Gefühl der Sicherheit. An die Stelle sorgfältiger<br />
Kontrollen und Simulationen könnte eine „Bastler-Mentalität“ treten: Da alle Fehler<br />
beim FPGA nach ihrer Entdeckung noch korrigiert werden können, ist die Motivation<br />
geringer, Fehler von vornherein durch ausreichende Sorgfalt auszuschließen. Falls die<br />
Testüberdeckung am Evaluation Board zu gering ist oder die ASIC-Netzliste nicht mehr<br />
ausreichend verifiziert wird, steht dies dem eigentlichen Ziel, der Risikominimierung,<br />
entgegen.<br />
● Die Tests am Evaluation Board befreien nicht davon, für Cross-Simulationen und zur<br />
Erzeugung von Testvektoren auch Simulationstestmuster zu erstellen und zu simulieren.<br />
Diese Argumente sind nicht von der Hand zu weisen und mögen in einigen kleinen Designs ausschlaggebend<br />
sein, auf FPGA Boards zu verzichten. Bei modernen, hochkomplexen ASICs hingegen<br />
stehen, insbesondere wenn sie eine CPU enthalten, andere Vorteile im Vordergrund, die in<br />
diesem Kapitel erläutert werden sollen.<br />
Einer der Hauptvorteile der Evaluierung auf einem FPGA Board ist die Möglichkeit, die in jedem<br />
System <strong>mit</strong> integrierter CPU erforderliche Software bereits auf dem Evaluation Board entwickeln<br />
und testen zu können. Dieses Hardware-Software-Co-Design 2 ermöglicht einen wesentlich<br />
schnelleren Fortschritt und mehr Design-Sicherheit als die getrennte Entwicklung von Hardware<br />
und Software:<br />
● Beim Hardware-Software-Co-Design testen sich Hardware und Software gegenseitig in<br />
ihrer geplanten Funktion. Hierdurch wird die Testüberdeckung der Hardware gesteigert,<br />
und Unzulänglichkeiten in der Spezifikation fallen bei der Softwareerprobung auf. Wenn<br />
im Ergebnis des Co-Designs das Evaluation Board die Anforderungen an das Endprodukt<br />
erfüllt, ist sichergestellt, dass das ASIC die im Produkt benötigten Teile der Spezifikation<br />
erfüllt und diese sinnvoll spezifiziert sind, wobei letzteres nicht trivial ist.<br />
1. Das Problem der Skalierung kann bei Schnittstellen mir geringer Datenrate gelöst werden, indem die<br />
Frequenzteiler zur Erzeugung des Bittaktes etc. programmierbar gehalten werden und so die Original-<br />
Datenrate erreicht wird. Bei höherfrequenten Schnittstellen kann stattdessen der Datenaustausch zwischen<br />
zwei skaliert laufenden Evaluation Boards getestet werden.<br />
2. Der Begriff Hardware-Software-Co-Design wird hier im Sinne von Co = concurrent (nebenläufig) verwendet<br />
und bezeichnet die parallele, gleichzeitige Entwicklung von Hardware und Software und nicht,<br />
wie sonst üblich, den gemeinsamen Entwurf von Hardware und Software in einer einheitlichen<br />
Beschreibungssprache.
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.2<br />
Seite 44<br />
● Der gemeinsame Test von Hardware und Software kann am Evaluation Board um viele<br />
Größenordnungen schneller erfolgen als in einer digitalen Simulation. Das FPGA dient<br />
als Hardware-Emulator.<br />
● Test und Inbetriebnahme der Software können parallel zur Entwicklungs- und Produktionszeit<br />
des ASICs erfolgen, was einen erheblichen Vorteil im Zeitplan bedeutet.<br />
Sofern die zuvor genannten Risiken beachtet werden, können Evaluation Boards daher eine<br />
Schlüsselrolle bei der Risikominimierung und der Verkürzung von Entwicklungszeiten komplexer<br />
SoCs einnehmen.<br />
4.2.2 Tests im realen Umfeld statt Simulationen <strong>mit</strong> unpräzisen Modellen<br />
Neben der Vereinfachung des Hardware-Software-Co-Designs erlauben FPGA-Prototypenboards<br />
wesentlich schnellere, intensivere und realistischere Tests der Hardware als reine Digitalsimulationen.<br />
Dies ist darauf zurückzuführen, dass Versuche im real existierenden Umfeld des zu entwickelnden<br />
Systems durchgeführt werden können, während bei einer Simulation die gegebenen<br />
Restriktionen der Modelle in Hinblick auf deren Verfügbarkeit, Korrektheit, Genauigkeit und<br />
Umfang nur eingeschränkte Aussagen erlauben. Im Folgenden soll dies anhand einiger Beispiele<br />
erläutert und weiter ausgeführt werden.<br />
Das erste ASIC, bei dessen Entwicklung der Verfasser positive Erfahrungen <strong>mit</strong> einem FPGA-<br />
Prototypen sammeln konnte, war ein TV-Bildmustergenerator [A-5], der als Testgerät für Satellitenempfangsanlagen<br />
verschiedene Testbilder erzeugen und als BAS-Fernsehsignal <strong>mit</strong> Graustufen<br />
ausgeben konnte, indem zwei Widerstände als 2-Bit-D/A-Wandler eingesetzt wurden.<br />
Vor der Realisierung des ASICs in einer 0,8μ-CMOS-Technologie von AMS wurde der Digitalteil<br />
der Schaltung in einem Xilinx FPGA getestet. Dies war erforderlich, da eine Software-Simulation<br />
nur beschränkt möglich und aussagekräftig war: Die Simulationszeiten wären bei 320.000<br />
Pixeln pro Vollbild, acht Testbildern und zwei Interlaced-Modi äußerst lang gewesen. Eine Hardware-Emulation<br />
hingegen war in Echtzeit möglich. Bei der Simulation hätten die sequentiell ausgegebenen<br />
Bildmusterdaten außerdem in eine zweidimensionale Darstellungsform umgewandelt<br />
werden müssen, um die Korrektheit prüfen zu können. Der Hardware-Emulator hingegen konnte<br />
die erzeugten Bilder direkt auf einem TV-Monitor darstellen. Dabei konnte auch überprüft werden,<br />
ob die Synchronisations-Signale im Interlaced-Mode und im Non-Interlaced-Mode korrekt<br />
erkannt wurden. Die Lage des Bildes und der nicht dargestellten Randbereiche konnte überprüft<br />
und das Bild daraufhin leicht verschoben werden, und es konnte er<strong>mit</strong>telt werden, bei welcher<br />
Pixelfrequenz quadratische Pixel entstehen. Diese Informationen waren der gängigen Literatur<br />
nicht zu entnehmen und hätten in Messungen er<strong>mit</strong>telt werden müssen.<br />
Zusätzlich konnten subjektive Eindrücke des Betrachters direkt getestet werden. So wurde neben<br />
dem Eindruck der Testbilder auch geprüft, ob die Blinkfrequenzen und Puls-Pausen-Verhältnisse<br />
einer angeschlossenen Leuchtdiode zur Indikation der Batteriespannung als angenehm empfunden<br />
wurden. Die Werte wurden daraufhin verändert, um optimale Ergebnisse zu erzielen.<br />
Darüber hinaus fiel ein Konzeptionsfehler auf: Die Pixelfrequenz war zunächst willkürlich auf<br />
11,0592 MHz festgelegt worden, da gerade ein solcher Quarzoszillator zur Hand war. Bei Pixelfolgen,<br />
bei denen sich weiße und schwarze Pixel abwechseln, entstand daher am Videoausgang<br />
ein Rechtecksignal <strong>mit</strong> 5,53 MHz. Da beim PAL-System die Bandbreite des Luminanz-Signals<br />
deutlich geringer ist und bei 5,50 MHz die durch eine Bandsperre stark unterdrückte Tonträgerfrequenz<br />
liegt, wurde dieser spektrale Anteil fast auf null gedämpft und anstelle der alternieren-
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.2<br />
Seite 45<br />
den Pixelfolge ein einheitlicher Grauwert dargestellt. Die Pixelfrequenz wurde daher auf 8 MHz<br />
reduziert. Ob dieser Effekt ohne den Test am Monitor bemerkt worden wäre, muss bezweifelt<br />
werden.<br />
Ein anderer Hardware-Test an einem FPGA-Board, der ebenfalls wertvolle Fehlerhinweise lieferte,<br />
wurde in der Verantwortung von G. Müller bei der Entwicklung eines ASICs zur Anbindung<br />
beliebiger Drucker an eine Ethernet-Schnittstelle durchgeführt. Zur Realisierung dieser<br />
Schnittstelle wurde auf dem Evaluation Board wie bei dem zu entwickelnden ASIC ein externer<br />
Baustein („Phy“) eingesetzt, um die unterste physikalische Ebene der Ethernet-Datenübertragung<br />
einschließlich der analogen Signalaufbereitung und der Takt- und Bitgewinnung zu übernehmen.<br />
Die höheren Ebenen („MAC-Layer“ bis zur MII-Schnittstelle) wurden in Hardware und Software<br />
auf dem ASIC bzw. FPGA integriert. Dies erlaubte es, bereits <strong>mit</strong> dem Evaluation Board ausführliche,<br />
direkt auf das ASIC übertragbare Tests durchzuführen, was zum Teil beim Ethernet-Konsortium<br />
der University of New Hampshire [37] geschah. Bei den Tests reagierte das Evaluation<br />
Board im Falle von Kollisionen auf dem Ethernet-Bus einwandfrei, wenn es sich um Kollisionen<br />
<strong>mit</strong> einer zweiten Einheit handelte. Es war jedoch beim Entwurf nicht beachtet worden, dass auch<br />
beim Verkehr zwischen einer zweiten und dritten Einheit untereinander Kollisionen auftreten<br />
können, was dazu führt, dass Fragmente von Datenpaketen auf dem Bus sichtbar sind. Derartige<br />
unvollständige Pakete sollten ignoriert werden, führten aber bei der ersten Implementation der<br />
Schaltung zu Systemabstürzen. Nach einer entsprechenden Änderung bescheinigte das Ethernet-<br />
Konsortium die Korrektheit des Evaluation Boards, und auch das anschließend gefertigte ASIC<br />
verhielt sich dementsprechend einwandfrei.<br />
Dieses Beispiel zeigt eindrucksvoll, dass auch eine detaillierte Spezifikation, wie sie für die<br />
Ethernet-Schnittstelle gegeben war, alles andere als eine Konstruktionsanleitung für die entsprechende<br />
Hardwarelösung darstellt und dass der „Faktor Mensch“ bei der Umsetzung stets Risiken<br />
birgt, die durch Tests in Hardware im realen Umfeld minimiert werden können.<br />
Auch bei der Entwicklung eines ASICs zur Steuerung einer ISDN-Telekommunikationsanlage<br />
[A-17] <strong>mit</strong> USB-Anschluss konnten die USB-Schnittstelle und der ISDN-S0-Anschluss bereits<br />
auf einem Evaluation Board getestet und die Normkonfor<strong>mit</strong>ät zertifiziert werden.<br />
Zusammenfassend kann man feststellen, dass Simulationsmodelle bisweilen fehlerhaft oder<br />
unpräzise sind, oft nicht das gesamte Umfeld des geplanten Systems abdecken und zum Teil<br />
schlicht nicht zu beschaffen sind – man versuche einmal, das Verhalten eines Peripheriegeräts an<br />
einem Windows-PC einschließlich dessen Treibersoftware zu simulieren oder Modelle der tatsächlich<br />
verwendeten (und deutschlandweit nicht einheitlichen) Datenprotokolle auf dem ISDN-<br />
Netz der Telekom zu erhalten!<br />
An Evaluation Boards hingegen können auch komplexe Abläufe und Interaktionen <strong>mit</strong> realen<br />
Hardwarekomponenten und Softwarepaketen auf einfache Weise getestet werden. Falls Analogmakros<br />
integriert werden sollen, können diese, wenn der Halbleiterhersteller gehäuste Muster<br />
(„Bondouts“) zur Verfügung stellt, ebenfalls auf dem Evaluation Board untergebracht und <strong>mit</strong><br />
erprobt werden. Dies war z. B. bei Audio-Codecs der Fall, die auf dem ASIC für die ISDN-Telekommunikationsanlage<br />
integriert wurden. Erst durch Tests an den real vorliegenden Codecs<br />
konnte festgestellt werden, dass die von Samsung entwickelten Codecs bei der Ansteuerung <strong>mit</strong><br />
„A-law“-codierten Daten in Abweichung von der Norm G711 und in Abweichung vom gelieferten<br />
Datenblatt die ungeraden Datenbits und nicht die geraden Datenbits invertierten, was zu<br />
einem kompletten Ausfall der Baugruppen geführt hätte, wenn es nicht bemerkt und korrigiert<br />
worden wäre.<br />
Die möglichen Rückschlüsse aus den Hardware-Tests reichen dabei sogar so weit, dass <strong>mit</strong> Hilfe<br />
der Evaluation Boards Systeme realisiert werden können, die fehlertolerant gegenüber Normver-
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.2<br />
Seite 46<br />
letzungen bei angeschlossenen Rechnern oder Peripheriegeräten sind. Diese Eigenschaft ist nicht<br />
zu unterschätzen, da ein diesbezüglich nicht fehlertolerantes System, auch wenn es selbst seine<br />
Spezifikation und alle Normen erfüllt, dennoch als inkompatibel zu bestimmten Geräten bezeichnet<br />
werden würde und daher nur eingeschränkt geeignet wäre, sich auf dem Markt durchzusetzen.<br />
Die real beobachteten Normverletzungen betreffen in der Regel technische Details und Sonderfälle,<br />
die in vielen Anwendungen unbemerkt bleiben, und sind darauf zurückzuführen, dass<br />
moderne Schnittstellen und Protokolle immer komplexer und die Kombinationsmöglichkeiten<br />
von Hardware- und Softwarekomponenten immer vielfältiger werden.<br />
Im Falle der USB-Schnittstelle scheint die Fachwelt vor diesem Problem bereits kapituliert zu<br />
haben: Wer für ein USB-Device oder für ein System <strong>mit</strong> USB-Schnittstelle eine Zulassung beim<br />
USB Implementers Forum beantragt, erlebt dort keinen wohldefinierten Konfor<strong>mit</strong>ätstest an<br />
einem eigens dafür entwickelten Testgerät bzw. dafür programmierten IC-Tester, sondern muss<br />
die Zeremonie eines „USB Plug Festival“ über sich ergehen lassen, bei dem sein Gerät an ca. 30<br />
Stationen die Kompatibilität zu anderen USB-Geräten im Praxistest nachweisen muss und sich<br />
„USB Certified“ nennen darf, wenn ca. 85% der Tests erfolgreich absolviert wurden. Während<br />
das Zusammenspiel <strong>mit</strong> den dabei auftretenden Kombinationen von Hardware und Software im<br />
Normalfall erst am fertiggestellten Gerät getestet werden kann, erlauben Evaluation Boards<br />
natürlich auch hier einen vorgezogenen Test.
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 />
4.3 Layouterstellung und Zeitverhalten hochkomplexer ASICs<br />
4.3.1 Wachsender Einfluss von Metallisierungskapazitäten<br />
Als etwa 1980 die ersten Place-&-Route-Programme für<br />
digitale integrierte Schaltungen auf den Markt kamen,<br />
war für den ASIC-Designer im Bereich der Layouterstellung<br />
die Welt in Ordnung. Die mühsame manuelle<br />
Verdrahtung, deren Zeitaufwand <strong>mit</strong> der Komplexität<br />
der Schaltungen unangenehm angestiegen war, wurde<br />
durch den Einsatz automatischer Programme abgelöst,<br />
die unter Verwendung relativ einfacher Algorithmen in<br />
der Lage waren, digitale Standardzellen gemäß einer<br />
vorgegebenen Netzliste zu platzieren und nahezu fehlerfrei<br />
zu verbinden. Da in der Regel zwei Metallisierungsebenen<br />
zur Verfügung standen, wurden die<br />
Standardzellen in Reihen zwischen Versorgungsspan-<br />
Kapitel 4.3<br />
Seite 47<br />
nungsleitungen platziert, die horizontalen Verbindungen in Kanälen zwischen diesen Reihen ausgeführt<br />
und die Querverbindungen auf der zweiten Metallebene erstellt (vgl. Abbildung 4-5).<br />
Da die Place-&-Route-Programme algorithmisch und programmtechnisch in kleinen Schritten<br />
immer weiter verbessert wurden, um bei schnellerer Arbeitsweise immer bessere Ergebnisse zu<br />
erzielen, und gleichzeitig die Rechenleistung der eingesetzten Computer anstieg, konnten im<br />
Laufe der Zeit immer komplexere Layouts in der gleichen Zeit generiert werden. So galt die Layouterzeugung<br />
über 15 Jahre lang als gelöste Aufgabe.<br />
Die Aufgabe was deshalb beherrschbar, weil für die noch relativ geringen Schaltungskomplexitäten<br />
von einigen zehntausend Gattern und die damaligen Technologien <strong>mit</strong> zwei Metallisierungsebenen<br />
und Strukturbreiten von mindestens 0,8μm noch einfache Gesetze galten. Dies betrifft<br />
vor allem die zur Länge proportionalen Kapazitäten der zur Verdrahtung eingesetzten Leiterbahnen<br />
und die daraus resultierenden Verzögerungszeiten der treibenden Gatter. Für diese gilt im<br />
linear angenäherten Modell<br />
tdelay = tintrinsic + k( Σ Cinputs + Cwire ), (GL 4-1)<br />
wobei in den damals zur Verfügung stehenden Technologien die intrinsische Verzögerungszeit<br />
der Gatter tintrinsic und die sich aus den Kapazitäten der angeschlossenen Gattereingänge ergebende<br />
Verzögerungszeit kΣ Cinputs deutlich größer waren als der Anteil, der aus den Metallisierungskapazitäten<br />
Cwire resultierte. So<strong>mit</strong> war schon bei der Synthese der größte Teil der<br />
Laufzeiten genau bekannt und der Einfluss des Layouts gering.<br />
Gleichzeitig konnten die<br />
Kapazitäten als alleinige<br />
Kapazitäten nach Masse<br />
betrachtet werden. Das kapazitive<br />
Übersprechen zwischen<br />
benachbarten Leitungen<br />
konnte vernachlässigt werden,<br />
da die Höhe der Leiterbahnen<br />
(vgl. Abbildung 4-6) klein<br />
gegenüber ihrer Breite und<br />
der Abstand zur nächsten Leiterbahn<br />
groß gegenüber der<br />
1μ<br />
Abbildung 4-5: Standardzell-Layout <strong>mit</strong><br />
zwei Metallisierungsebenen<br />
5μ Technologie 0,25μ Technologie<br />
5μ<br />
0.4μ 0.4μ<br />
5μ<br />
Metal2 1μ<br />
1μ<br />
Metal1<br />
1μ<br />
Substrat<br />
Abbildung 4-6: In modernen Technologien wird<br />
durch veränderte Leiterbahngeometrien (Querschnitte)<br />
das kapazitive Übersprechen zwischen<br />
benachbarten Signalleitungen immer stärker.<br />
0.32μ<br />
Substrat<br />
0.32μ
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.3<br />
Seite 48<br />
Oxiddicke zwischen den Metallisierungslagen bzw. dem Substrat war. Da in den beiden Metallisierungsebenen<br />
unterschiedliche Vorzugsrichtungen (horizontal/vertikal) vorherrschten, kam es<br />
praktisch nie vor, dass zwei Signalbahnen kapazitiv eng gekoppelt auf verschiedenen Lagen<br />
übereinander über längere Strecken parallel liefen, lediglich an Kreuzungsstellen war der<br />
Abstand gering, die Fläche der Überdeckung konnte aber wiederum vernachlässigt werden. Auch<br />
ein Kreuzen vieler anderer Signale konnte aufgrund des im Mittel konstanten Gegenpotentials<br />
wie das Kreuzen von Masseflächen behandelt werden. Ein nennenswertes Übersprechen zwischen<br />
Signalen trat daher nicht auf.<br />
Wenn die Metallisierungskapazitäten in dieser Zeit doch einmal zu Verletzungen der Timing-Vorgaben<br />
führten, so betraf dies, wenn die Vorgaben nicht insgesamt zu streng waren, in der Regel<br />
nur wenige statistische Ausreißer, deren Beseitigung <strong>mit</strong> wenigen Iterationen möglich war,<br />
indem die <strong>mit</strong> zu langen Leitungen verbundenen Gatter durch manuelle Eingriffe enger beieinander<br />
platziert wurden oder durch eine bis zur Logiksynthese zurückführende Iteration die Schaltung<br />
im kritischen Pfad umstrukturiert wurde. Solange die Nebenwirkungen derartiger<br />
Änderungen auf alle anderen Pfade gering waren, konnte so in überschaubarer Zeit eine Gesamtlösung<br />
aller Timing-Vorgaben erreicht werden.<br />
Die in diesem Zeitraum geltenden Gesetze für die Layouterstellung lassen sich wie folgt zusammenfassen:<br />
● Die Verdrahtung erfolgte durch „Channel Router“ auf zwei Metallisierungsebenen.<br />
● Die Metallisierungskapazitäten konnten als reine Kapazitäten nach Masse betrachtet<br />
werden. Ihr Beitrag zu den Gesamtverzögerungszeiten war gering.<br />
● Falls in der Metallisierung lange Leitungen zu Verletzungen der Timing-Vorgaben führten,<br />
konnten diese durch Schaltungs- und Platzierungsänderungen in wenigen Iterationen<br />
beseitigt werden.<br />
In der zweiten Hälfte der 90er Jahre, als die Schaltungskomplexitäten 100.000 Gatter deutlich<br />
überschritten und die Strukturbreiten ca. 0,5μm erreichten, stellte man in der Branche nach und<br />
nach fest, dass die Layouterstellung und die Einhaltung der Post-Layout-Timingvorgaben<br />
immer mühsamer geworden waren, ohne aber die Ursachen klar zu erkennen. ASIC-Projekte,<br />
deren Zeitplan allein in der Phase der Layouterstellung und Timing-Kontrolle um sechs bis zwölf<br />
Monate überschritten wurde, waren durchaus keine Seltenheit. Der saubere Top Down Design<br />
Flow, der durch die Logiksynthese und die automatischen Place-&-Route-Programme möglich<br />
geworden war, führte nur noch bei solchen Designs zum Erfolg, die vom Timing her äußerst<br />
unkritisch waren oder deren strenge Partitionierung eine Einzelbehandlung mehrerer Blöcke<br />
geringer Komplexität nach den alten Regeln erlaubte.<br />
In komplexen Designs hingegen nahm der Anteil der Routingfläche beim Channel Routing <strong>mit</strong><br />
steigender Gatteranzahl überproportional zu und dominierte bald die Chipfläche. Gleichzeitig<br />
explodierten auch die relativen Leiterbahnlängen bzw. -kapazitäten, wodurch die lastbedingten<br />
Verzögerungszeiten kC wire die Laufzeiten t intrinsic der Gatter überstiegen (vgl. Abbildung 4-7 auf<br />
Seite 49). Da bei der Logiksynthese auf der Grundlage statistischer Wire Load Models für alle<br />
Leitungen nur der durchschnittlich zu erwartende Wert der Lastkapazität angenommen werden<br />
kann, führten unvermeidbare statistische Ausreißer bei den Kapazitäten im Layout unweigerlich<br />
zu Unterschieden zwischen Pre-Layout- und Post-Layout-Timing. Da solche statistischen Ausreißer<br />
aufgrund der Schaltungskomplexität immer gehäufter auftraten und der Anteil der layoutbedingten,<br />
bei der Logiksynthese noch nicht vorhersagbaren Verzögerungszeiten an den<br />
Gesamtpfaden enorm anstieg, wurden die Timingvorgaben bei der Layouterstellung so oft und so<br />
gravierend verletzt, dass die Probleme weder durch eine akzeptable Anzahl von Iterationen <strong>mit</strong>
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.3<br />
Seite 49<br />
inkrementellen Änderungen noch durch Einplanung vertretbarer Reserven im Pre-Layout-Timing<br />
gelöst werden konnten.<br />
Um den wachsenden Routingflächen<br />
und den statistischen Ausreißern bei<br />
den Metallisierungskapazitäten entgegenzuwirken,<br />
wurden in einem ersten<br />
Lösungsansatz von den Herstellern<br />
der Place-&-Route-Programme die<br />
Bemühungen intensiviert, die Optimierung<br />
der Zellplatzierung noch<br />
weiter zu verbessern. Es zeigte sich<br />
jedoch, dass bei komplexen Designs<br />
<strong>mit</strong> einer großen Zahl von Ausreißern<br />
ab einem gewissen Punkt jede weitere<br />
Optimierung der kritischen Pfade<br />
neue kritische Pfade erzeugte und die<br />
Anzahl der erforderlichen Iterationen<br />
ins Unermessliche stieg, da eine Platzierungsänderung<br />
zur Verringerung<br />
Abbildung 4-7: Anteilige Verzögerungszeiten durch Gatter und<br />
Metallisierungskapazitäten in Submikron-Technologien, dargestellt<br />
für konstante Leitungslängen (Bild: SIA [3]).<br />
Die unrealistische Skalierung der Y-Achse (vgl. Abbildung 3-10<br />
auf Seite 18) wurde hier unverändert aus der Quelle übernommen.<br />
des Abstandes zweier Zellen diese in der Regel zur Mitte des Blockes hin verschiebt, wodurch<br />
die Abstände zwischen anderen Zellen steigen. Bei einer Beschränkung auf zwei Metallisierungsebenen<br />
erlaubt die Technologie keine kompakte und kapazitätsarme Verdrahtung komplexer<br />
Layouts, was nicht auf Mängel der eingesetzten Software, sondern auf physikalische<br />
Restriktionen zurückzuführen ist.<br />
Ein anderer Ansatz bestand darin, sich in Iterationen zwischen dem Syntheseprogramm und dem<br />
Layoutprogramm einer Lösung anzunähern, wobei die nach Layouterstellung bekannten Metallisierungskapazitäten<br />
in einer sdf-<strong>Datei</strong> gespeichert und vom Syntheseprogramm eingelesen wurden<br />
(„Back-Annotation“). Dieses war nun in der Lage, auf der Grundlage exakter Daten die<br />
Schaltung an den kritischen Stellen umzustrukturieren, wozu z. B. (vgl. Abschnitt 4.1.3) Buffer<br />
eingefügt, Lasten auf mehrere parallele Treiber aufgeteilt oder Logikpfade dadurch verkürzt werden<br />
können, dass redundante Logik parallel aufgebaut wird, um die Logiktiefe zu reduzieren. Bei<br />
arithmetischen Elementen kann entsprechend eine günstigere Architektur gewählt werden.<br />
Neben der Notwendigkeit, Iterationsvorgänge zwischen zwei Programmen manuell auszuführen,<br />
bestand der Hauptnachteil dieser Vorgehensweise darin, dass die Umstrukturierungen stets<br />
Nebenwirkungen haben, die das Zeitverhalten wiederum unberechenbar machen: Jedes neu eingefügte<br />
Gatter und jede geänderte Verbindung unterliegt wieder den Unwägbarkeiten der Pre-<br />
Layout-Analyse, und da die zu bekämpfenden kritischen Pfade durch unerwartet große Entfernungen<br />
im Layout entstanden sind, wäre es illusorisch anzunehmen, dass sich bei der Umstrukturierung<br />
derselben Pfade die neuen Gatter und Verbindungen kapazitätsarm verdrahten lassen.<br />
Eine akzeptable Lösung stellten so<strong>mit</strong> auch diese Iterationen nicht dar.<br />
Die entscheidende Hilfe kam schließlich in der Form zusätzlicher Metallisierungsebenen von<br />
den Technologen: Es gelang ihnen, geeignete mechanische Verfahren zu entwickeln, um die<br />
Waferoberfläche nach jedem Oxidationsvorgang plan zu schleifen. Dies erlaubte erstmals eine<br />
fast unbegrenzte Anzahl von Metallisierungsebenen, was ohne die Planarisierung nicht möglich<br />
gewesen war: Die über den Leiterbahnen aufwachsenden Profile hätten in den höheren Ebenen zu<br />
einem Abreißen an solchen Kanten geführt, die sich aus übereinanderliegenden Leiterbahnrändern<br />
ergeben hätten. In einer modernen 0,25μ-Technologie stehen heute bis zu fünf Metallisierungsebenen<br />
zur Verfügung, für 2003 plant TSMC eine 0,1μ-Technologie <strong>mit</strong> neun Ebenen.
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.3<br />
Seite 50<br />
Zusätzlich wurden Verfahren zum Auffüllen der Durchkontaktierungslöcher entwickelt, die ein<br />
Stapeln von Durchkontaktierungen erlauben, während zuvor zwischen zwei Durchkontaktierungen<br />
ein oft unnötiges Stück Leiterbahn einzufügen war. Hierdurch wurden einfachere Geometrien<br />
beim Lagenwechsel ermöglicht.<br />
In der Summe der Maßnahmen und durch den immer geringer werdenden Metal Pitch konnten<br />
die Routing-Ressourcen ganz erheblich gesteigert werden. Die Motivation der Halbleiterhersteller<br />
war dabei in erster Linie die Kosteneinsparung durch geringere Siliziumflächen. Während<br />
jede zusätzliche Metallisierungsebene nur zwei Masken benötigt und so<strong>mit</strong> in vergleichsweise<br />
geringem Maße in die Kosten eingeht, kann die kompaktere Verdrahtung die Chipfläche in ganz<br />
entscheidendem Maße verkleinern.<br />
Mit der erhöhten Lagenanzahl führten die Anbieter der CAE-Programme wenig später auch neue<br />
Routingverfahren ein. Es war nicht mehr erforderlich, sich bei der Verdrahtung auf Routingkanäle<br />
zwischen den Standardzellreihen zu konzentrieren, sondern es wurde nun die gesamte Fläche<br />
über den Standardzellen zur Verdrahtung genutzt. Hierzu wurde eine neue Generation von<br />
Standardzellen entwickelt, deren interne Verdrahtung möglichst ausschließlich in der untersten<br />
Metallisierungsebene erfolgte, um in den höheren Ebenen maximale Freiheiten zu erlauben. Im<br />
Extremfall konnten die Standardzellen nun dicht gepackt platziert werden, wobei jede zweite<br />
Reihe an ihrer Längsachse gespiegelt wurde, um selbst die Versorgungsspannungsschienen lükkenlos<br />
aneinander fügen zu können. Die Signalverdrahtung erfolgte nun <strong>mit</strong>tels Area Routing in<br />
den Metallisierungsebenen von Ebene zwei aufwärts.<br />
Während das Problem der explodierenden Routingflächen durch die Mehrebenenverdrahtung zur<br />
vollen Zufriedenheit gelöst worden war, wurde das Timing der Schaltungen durch diese Maßnahmen<br />
zwar ebenfalls verbessert, da die geringeren Distanzen zu reduzierten Leiterbahnkapazitäten<br />
führten, das Hauptproblem der statistischen Ausreißer und der resultierenden Unterschiede zwischen<br />
Pre-Layout- und Post-Layout-Timing bestand aber weiterhin. Auch die Einführung von<br />
Isolatoren, die eine niedrigere Dielektrizitätskonstante als SiO 2 (ε r = 4,1) aufweisen, wie z. B.<br />
FSG (Fluorinated Silicon Glass, ε r = 3,5), trug zwar dazu bei, die Metallisierungskapazitäten zu<br />
senken, löste aber weder das genannte Problem, noch wurden die Kapazitäten ausreichend reduziert,<br />
um <strong>mit</strong> den bisherigen iterativen Verfahren das Post-Layout-Timing beherrschen zu können.<br />
Ansätze zur systematischen Lösung des Problems sollen daher im folgenden Abschnitt<br />
vorgestellt werden.<br />
4.3.2 Systematische Ansätze zur Beherrschung des Post-Layout-Timings<br />
In Deep-Submicron-Technologien dominieren die Metallisierungskapazitäten immer mehr das<br />
Zeitverhalten einer integrierten Schaltung. Ihre Beherrschung entscheidet darüber, ob ein sauberer<br />
Top Down Design Flow weiterhin aufrecht erhalten werden kann, oder ob die Unterschiede<br />
zwischen den statistisch modellierten Wireload-Annahmen des Syntheseprogramms und den realen<br />
Metallisierungskapazitäten des Layouts dazu führen, dass die Anzahl an aufwändigen, vom<br />
Place & Route Tool zum Syntheseprogramms zurückführenden Iterationen ins Unermessliche<br />
steigt. Im Folgenden soll daher noch einmal etwas detaillierter aufgeschlüsselt werden, von welchen<br />
Parametern die Lastkapazitäten abhängig sind und welche Ansätze für eine Reduktion der<br />
Kapazitäten sich aus den einzelnen Parametern in einer modernen Submikron-Technologie ergeben<br />
können:
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.3<br />
Seite 51<br />
Die Eingangskapazitäten der zu treibenden Gatter stehen <strong>mit</strong> Auswahl der Technologie und der<br />
Standardzellbibliothek <strong>mit</strong> ihren spezifischen Transistorgeometrien (W/L) fest. Auch die <strong>mit</strong>tlere<br />
Anzahl der Lasten pro Gatterausgang wird größtenteils von den Gattern der Bibliothek bestimmt:<br />
Sie entspricht dem Verhältnis aller Eingangs- und Ausgangspins der verwendeten Gatter. In der<br />
Praxis liegt der Wert bei den meisten Libraries zwischen 2,8 und 3,4. Die statistische Verteilung<br />
der Lasten ist von Details der Schaltungsarchitektur abhängig, und lediglich der Maximalwert<br />
kann bei der Logiksynthese durch entsprechende Constraints begrenzt werden.<br />
Die Blockgröße (in Gattern) beeinflusst den <strong>mit</strong>tleren Abstand der <strong>mit</strong>einander zu verbindenden<br />
Gatter und so<strong>mit</strong> die Länge und Kapazität der Signalleiterbahnen. Eine Reduktion der Blockgröße<br />
wäre durch eine Partitionierung der Gesamtschaltung in kleinere Einheiten möglich, dies<br />
bereitet jedoch neue Probleme an den Schnittstellen und bedeutet einen hohen Arbeitsaufwand;<br />
in manchen Systemen ist eine Partitionierung auch nicht ohne Änderungen der Architektur zu<br />
erreichen. Der Ansatz ist daher nur ergiebig, insoweit die Schaltung von vornherein eine Partitionierung<br />
erlaubt. Generell kann man beobachten, dass die ASIC-Designer aus Zeit- und Komfortgründen<br />
nach Programmen verlangen, <strong>mit</strong> denen immer komplexere Blöcke möglichst in einem<br />
Stück beherrscht werden können. Auf keinen Fall darf die Anzahl der Blöcke in dem Maße<br />
ansteigen wie die Komplexität der Gesamtschaltung.<br />
Auch die Dichte der Zellen beeinflusst die Leiterbahnlängen. Sie hängt von den Abmessungen<br />
der Standardzellen sowie von deren Abstand ab. Da in modernen Technologien die Zellen lükkenlos<br />
aneinandergefügt und in den höheren Metallisierungsebenen verdrahtet werden können,<br />
ist die Dichte der Zellen von der Platzierung unabhängig geworden. Die Zellgrößen werden in<br />
der Regel vom Halbleiterhersteller bzw. vom Anbieter der Bibliothek stark optimiert. So kann<br />
zwar evtl. die dichteste von mehreren zur Verfügung stehenden Bibliotheken gewählt werden,<br />
darüber hinaus hat der Designer aber keinen Einfluss mehr auf die Dichte der Zellen.<br />
Die Leiterbahnlängen hängen stark von der relativen Positionierung der <strong>mit</strong>einander zu verbindenden<br />
Gatter ab. Die stets stattfindende Optimierung der Platzierung ist aber sehr rechenzeitintensiv<br />
und nähert sich nur sehr langsam asymptotisch einem Optimum, da jede Iteration neue<br />
kritische Pfade erzeugt (vgl. Abschnitt 4.3.1). Das Zeitli<strong>mit</strong> für die Optimierung übermäßig zu<br />
erhöhen ist daher kaum sinnvoll; die komplexen irregulären Verbindungsmuster typischer Controllerschaltungen<br />
entsprechen einfach nicht der Struktur der zweidimensionalen Zellmatrix im<br />
Layout.<br />
Im Datenpfadbereich hingegen liegen teilweise zweidimensional strukturierte Schaltungen vor,<br />
wenn z. B. Daten unter Beibehaltung ihrer Bitbreite sequentiell durch eine Vielzahl arithmetischer<br />
oder logischer Elemente und Registerstufen laufen. Hier wäre es in jedem Fall sinnvoll, die<br />
Informationen über die Bitnummern (Zeilen) und die Zugehörigkeit der Einzelelemente zu den<br />
vektorisierten Funktionsgruppen (Spalten) aus der Synthese an das Layoutprogramm zu übergeben,<br />
da<strong>mit</strong> die zweidimensionale Struktur der Schaltung nicht mühsam aus der Netzliste rückgewonnen<br />
werden muss, sondern direkt beibehalten werden kann. Durch die dann mögliche<br />
weitgehende Gleichbehandlung der Teilschaltungen für jedes Bit der Operanden werden statistische<br />
Ausreißer bei den Leiterbahnlängen vermieden und so sehr schnelle Schaltungen erzeugt.<br />
Außerdem bietet sich die Möglichkeit, bei der Optimierung der Platzierung ganze Spalten <strong>mit</strong><br />
allen Bits gleichzeitig gegen andere Spalten zu tauschen, so dass nur noch das geringere Problem<br />
der Vertauschung in einer Dimension zu lösen ist und sich daher nach extrem verkürzter Rechenzeit<br />
eine optimale Platzierung ergibt.<br />
Nachdem sich aus Blockgröße, Gatterdichte und Platzierung die Abstände der zu verbindenden<br />
Knoten ergeben haben, ist noch die Leiterbahnführung für deren Länge entscheidend. In<br />
modernen Technologien stehen heute <strong>mit</strong> den vielen Metallisierungsebenen so große Routing-<br />
Ressourcen zur Verfügung, dass als Leiterbahnlänge überwiegend die Manhatten-Distanz, defi-
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.3<br />
Seite 52<br />
niert als Summe aus X- und Y-Abstand, erreicht wird, also rechtwinklig ohne Umwege verdrahtet<br />
werden kann. Die Länge der Verbindung ist dabei maximal um den Faktor 2<br />
größer als der<br />
Abstand. Lediglich durch 45°−Routing oder in der Theorie durch Zulassen beliebiger Winkel<br />
kann die Länge und da<strong>mit</strong> die Kapazität noch reduziert werden.<br />
Da die wesentlichen Technologieparameter wie die minimale Leiterbahnbreite oder die Dielektrizitätskonstante<br />
des Isolators feststehen, ergibt sich aus der Länge der Leiterbahn ihre Kapazität.<br />
Einen wesentlichen Einfluss auf die längenbezogene spezifische Kapazität haben dabei aber die<br />
Abstände zu den Nachbarleitungen. Diese könnten in kritischen Pfaden erhöht werden, indem<br />
zeitkritische Signale auf den höheren Metallisierungsebenen <strong>mit</strong> der dort geringeren längenspezifischen<br />
Kapazität zum Substrat verlegt werden und ihre direkte Umgebung frei von anderen<br />
Metallisierungen gehalten wird. Dieses Verfahren wird derzeit noch wenig eingesetzt, bietet aber<br />
ein nicht zu unterschätzendes Potential für gezielte Verringerungen von Metallisierungskapazitäten<br />
einzelner Netze.<br />
Insgesamt bieten sich also in den ausgereizten modernen Technologien eher geringe Möglichkeiten,<br />
die Leiterbahnkapazitäten weiter zu verringern. Da nach Gleichung 4-1 der (heute dominierende)<br />
lastabhängige Teil der Verzögerungszeiten aber auch linear vom Ausgangswiderstand<br />
(bzw. dem Faktor k) des treibenden Gatters abhängig ist, bietet sich hier ein praktikabler Ansatz<br />
zur Beherrschung des Timings im Layoutprogramm: Die nicht mehr vermeidbaren statistischen<br />
Ausreißer bei den Metallisierungskapazitäten werden toleriert, aber in kritischen Pfaden dadurch<br />
kompensiert, dass die jeweiligen Treiber durch äquivalente Gatter <strong>mit</strong> größerer Treiberstärke<br />
ersetzt werden. Man spricht vom Timing Driven Buffer Sizing (TDBS). Falls ein entsprechendes<br />
Gatter nicht zur Verfügung steht, können Buffer eingefügt werden (Buffer Insertion), und im<br />
umgekehrten Fall, dass aufgrund unerwartet kleiner Metallisierungskapazitäten ein vorhandener<br />
Buffer mehr Delay erzeugt, als durch seine Treiberstärke gewonnen wird, kann dieser entfernt<br />
werden (Buffer Deletion).<br />
Diese Lösung ist insofern geeignet, die aufwändigen, zur Logiksynthese zurückführenden Iterationszyklen<br />
zu vermeiden, als die beschriebenen Maßnahmen der Umstrukturierung lokal im Layoutprogramm<br />
durchgeführt werden können und die Nebenwirkungen auf andere Pfade gering<br />
sind: Zum einem kommt es in geringem Maße zu einer Vergrößerung des Layouts und so<strong>mit</strong> zu<br />
einer Änderung der Verdrahtungslängen anderer Pfade, wenn die eingesetzte Zelle <strong>mit</strong> höherer<br />
Treiberstärke auch flächenmäßig größer ist als die Originalzelle; dies kann aber vermieden werden,<br />
indem die Zellen zunächst <strong>mit</strong> geringen Lücken platziert werden. Zum anderen hat die Vergrößerung<br />
des Treibers eine Rückwirkung auf die Eingangskapazität des Gatters und so<strong>mit</strong> auf<br />
das Netz, das den Eingang treibt; aufgrund des Umsetzungsfaktors des verstärkenden Gatters und<br />
der Dominanz der Metallisierungskapazitäten gegenüber den Eingangskapazitäten kann dies<br />
jedoch vernachlässigt werden.<br />
Eine wesentliche Voraussetzung für die Anwendbarkeit des Timing Driven Buffer Sizing ist die<br />
Fähigkeit des Layoutprogramms, den Erfolg der Maßnahmen sofort selbst beurteilen zu können,<br />
da<strong>mit</strong> die lokalen Iterationen zum Erfolg führen. Hierzu sind Post-Layout-Simulationen keinesfalls<br />
geeignet, da sie zu extrem aufwändigen Designzyklen führen würden, in denen Timing Violations<br />
manuell abgelesen werden müssten. Außerdem können Post-Layout-Simulationen zwar<br />
stochastisch Timing-Fehler aufdecken, sie erlauben aber keine systematische Analyse aller<br />
Pfade.<br />
Eine systematische Lösung hingegen erlaubt eine im Layoutprogramm integriert durchgeführte<br />
Statische Timing-Analyse (STA), bei der nach Definition der Clock-Signale <strong>mit</strong> ihren Phasen<br />
und Taktperioden und weiteren Timing-Anforderungen die Laufzeiten aller Pfade zwischen<br />
Flipflops sowie von und zu Ein- und Ausgängen der Schaltung gleichzeitig berechnet und <strong>mit</strong><br />
den Vorgaben verglichen werden. Im günstigsten Fall berücksichtigt der Timing Analyser sogar
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.3<br />
Seite 53<br />
den individuellen Clock Skew für Quell- und Zielregister jedes Pfades und addiert ihn vorzeichenbehaftet<br />
zur zulässigen Signallaufzeit. Dadurch eröffnet sich dem Designer sogar die Möglichkeit,<br />
kritische Pfade durch eine künstliche Verzögerung des Taktes am Zielregister zu<br />
entschärfen und so dem Clock Skew eine völlig neue Bedeutung zu geben.<br />
Während früher bei der Layouterstellung auf geringste Flächen und Verdrahtungslängen optimiert<br />
wurde, ist dies in Deep-Submicron-Technologien nicht mehr sinnvoll. Eine lückenlose Platzierung<br />
der Standardzellen macht die Flächenoptimierung hinfällig, und eine konstante<br />
Li<strong>mit</strong>ierung aller einzelnen Lastkapazitäten ohne Berücksichtigung der zulässigen Laufzeiten der<br />
jeweiligen Gesamtpfade ist ebenfalls nur vordergründig sinnvoll. Die statische Timing-Analyse<br />
ermöglicht heute einen Wandel zu laufzeitgesteuerten Optimierungen unter Berücksichtigung der<br />
Gesamtpfade, die sich wie folgt zusammenfassen lassen:<br />
● Beim Timing Driven Placement wird als Kostenfunktion bei der Optimierung der Platzierung<br />
nicht wie früher üblich die Gesamtmetallisierungslänge verwendet, sondern<br />
eine Bewertung der kritischen Pfade im Design. Außerdem können im Datenpfadbereich<br />
Elemente gleicher Bitbreite zu regulären, dichten Matrizen gruppiert werden. Es<br />
ergeben sich gleiche Leitungslängen für jedes Bit, wodurch statistische Ausreißer und<br />
so<strong>mit</strong> kritische Pfade größtenteils von vornherein vermieden werden können. Gleichzeitig<br />
wird dadurch eine timinggesteuerte Optimierung der Platzierung ganzer Spalten von<br />
Elementen ermöglicht, die als Optimierung in nur einer Dimension schneller zum Erfolg<br />
führt.<br />
● Durch Timing Driven Buffer Sizing einschließlich Buffer Insertion und Buffer Deletion,<br />
also durch einfache lokale Eingriffe in die Schaltungsstruktur, werden die negativen<br />
Auswirkungen der Metallisierungskapazitäten des Layouts durch eine Anpassung<br />
von Treiberstärken an die Lastkapazitäten kompensiert.<br />
● Beim Timing Driven Routing wird die Verdrahtung nicht nur auf kürzestem Wege<br />
durchgeführt, sondern es kann auch darauf geachtet werden, dass in kritischen Pfaden<br />
größere Abstände zu Nachbarleiterbahnen eingehalten werden und kritische Signale in<br />
den höheren Metallisierungsebenen <strong>mit</strong> der dort geringeren längenspezifischen Kapazität<br />
zum Substrat verlegt werden.<br />
Insbesondere durch das Timing Driven Buffer Sizing wird es dabei möglich, das Post-Layout-<br />
Timing komplexer Blöcke ohne Partitionierung beim Layout zu beherrschen und ASICs in Technologien<br />
bis ca. 0,25μ ohne große Iterationen in einem sauberen Top Down Design Flow zu entwerfen.<br />
In Technologien von 0,18μ Strukturbreite und darunter wird aber der Einfluss der Metallisierungskapazitäten<br />
(vgl. Abbildung 4-7 auf Seite 49) so groß, dass trotz Einsatz der genannten<br />
timinggesteuerten Algorithmen bei der Layouterstellung unangenehm viele Iterationen entstehen,<br />
die innerhalb des Place-&-Route-Programms oft nicht mehr zum Erfolg führen. Die Ursache<br />
liegt wiederum in den statistischen Wireload-Modellen, die der Logiksynthese zugrundeliegen.<br />
In Very-Deep-Submicron-Technologien beobachtet man, dass der Anteil und die Streubreite der<br />
realen metallisierungsbedingten Verzögerungszeiten so extrem werden, dass auch bei wiederholden<br />
Platzierungsänderungen immer wieder derart kritische Pfade entstehen, dass auch durch<br />
Timing Driven Buffer Sizing die Zeitvorgaben nicht erreicht werden können.<br />
Langfristig müssen daher Logiksynthese und Layouterzeugung zu einer gemeinsamen Aufgabe<br />
verschmelzen, die von einem einzigen Programm ausgeführt wird, welches so bei exakter<br />
Kenntnis der realen Verdrahtungskapazitäten erstmals in der Lage ist, Strukturänderungen durchzuführen,<br />
die nicht auf die bloße Anpassung von Treiberstärken beschränkt sind.
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.3<br />
Seite 54<br />
Einen ersten Schritt in diese Richtung hat der Softwarehersteller Cadence <strong>mit</strong> seinem Ansatz der<br />
„Physically Knowledgeable Synthesis Technology“ (PKS) gemacht, bei dem vom Syntheseprogramm<br />
auch die Platzierung und eine grobe Verdrahtung durchgeführt werden. Dies ermöglicht<br />
es, die logische Struktur der Schaltung und die physikalische Anordnung der Zellen im Layout<br />
gleichzeitig zu optimieren. Mit Kenntnis der Platzierung können bei der die Optimierung begleitenden<br />
Timing-Analyse die Metallisierungskapazitäten ganz erheblich genauer abgeschätzt werden<br />
als beim konservativen Ansatz über Wireload Models. Cadence gibt an [43], die<br />
Abschätzungen seien auf 5% genau.<br />
Nach der Synthese wird die Netzliste zusammen <strong>mit</strong> den Platzierungsvorgaben an ein Layoutprogramm<br />
übergeben, das die Clock Tree Synthese, die endgültige Verdrahtung und eine exakte<br />
Timing-Analyse, ggf. <strong>mit</strong> Korrekturen über Timing Driven Buffer Sizing, durchführt. Geringe<br />
Abweichungen von der vorgegebenen Platzierung und von den Timingabschätzungen der Logiksynthese<br />
können vor allem bei Schaltungsteilen <strong>mit</strong> sehr dichter Verdrahtung entstehen, wenn<br />
diese ein Auflockern der Platzierungsdichte oder eine Umwegverdrahtung erfordert.<br />
Mit Sicherheit ist die PKS-Technologie der reinen Timing-gesteuerten Layouterzeugung weit<br />
überlegen und <strong>mit</strong> leichten Abstrichen dazu geeignet, auch moderne ASICs höchster Komplexität<br />
top-down zu entwerfen. Für die Zukunft ist zwar da<strong>mit</strong> zu rechnen, dass die Ungenauigkeiten der<br />
PKS-Technologie <strong>mit</strong> dem weiter wachsenden Einfluss der Metallisierung zunehmen werden,<br />
man kann jedoch erwarten, dass dafür die Softwareentwicklung bis hin zur vollständigen Verschmelzung<br />
von Synthese und Layouterzeugung perfektioniert werden wird und daher in absehbarer<br />
Zeit keine unüberwindbaren Hindernisse im Bereich der Layouterstellung auftreten<br />
werden.<br />
4.3.3 Neue Aufgaben der Place & Route Tools im Submikron-Bereich<br />
Das Vordringen in den Deep-Submicron-Bereich stellt bei der Layouterstellung höchste Anforderungen<br />
an die eingesetzte Software. Die Programme müssen dabei nicht nur <strong>mit</strong> den exponentiell<br />
wachsenden Schaltungskomplexitäten ohne nennenswerte Zunahme der Rechenzeiten <strong>mit</strong>halten<br />
können, was andere Algorithmen erfordert, sondern sie müssen darüber hinaus immer mehr neue<br />
Aufgaben bewältigen, die sich aus den modifizierten Herstellungsverfahren und veränderten physikalischen<br />
Gesetzen ergeben. Eine Vielzahl physikalischer Effekte spielte in den Technologien<br />
bis zu 1μm nur eine untergeordnete Rolle, muss aber in Deep-Submicron-Technologien bei der<br />
Layouterzeugung und der Parasitic Extraction berücksichtigt werden, da anderenfalls fertigungstechnische<br />
Probleme zu einer sehr geringen Ausbeute führen könnten oder aufgrund von ungenauen<br />
Timing-Analysen ein generelles Fehlverhalten der ASICs auftreten könnte. Da sowohl die<br />
geforderten Programmfunktionen als auch die zu entflechtenden Schaltungen immer komplexer<br />
werden, wird eine völlig neue Generation von Place & Route Tools benötigt.<br />
Dies betrifft zum einen den Grad der Automatisierung. Um zu verhindern, dass <strong>mit</strong> der Komplexität<br />
auch die Anzahl der erforderlichen Bedienungsschritte exponentiell ansteigt, muss für den<br />
Anwender der Layoutaufwand pro Gatter entsprechend reduziert werden. An die Stelle einer<br />
Computerunterstützung (CAD/CAE) muss die weitgehende Automatisierung des IC-Designs<br />
(Integrated Circuit Design Automation, ICDA) treten.
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.3<br />
Seite 55<br />
Zum anderen drohen die Rechenzeiten der Programme unzumutbar zu werden, da die Anzahl der<br />
auszuführenden Operationen beim Placement und Routing <strong>mit</strong> einer Potenz der Leitungsanzahl<br />
zunimmt, die Rechenleistung der eingesetzten Workstations aber nicht im gleichen Maße steigt.<br />
Dieses Problem kann nur durch effizientere, nur linear wachsende Algorithmen gelöst werden.<br />
Einen wesentlichen Beitrag zur Automatisierung und zur Verkürzung der Programmlaufzeiten<br />
pro Gatter stellt das in Abschnitt 4.3.2 vorgestellte Timing Driven Buffer Sizing dar, da hierdurch<br />
die Anzahl der Iterationen bei der Optimierung der Platzierung verringert werden kann und große<br />
bis zur Logiksynthese zurückführende Designzyklen wegfallen. Das erste Programm, das diesen<br />
Ansatz verfolgte, war 1996 „Epoch“ von Cascade Design Automation, das bei der Entwicklung<br />
eines 3D-Grafikprozessors <strong>mit</strong> 5 Millionen Transistoren [A-10] eingesetzt wurde.<br />
Neben timinggesteuerten Platzierungs- und Verdrahtungsfunktionen umfasst Epoch außerdem<br />
Memory- und Standardzellgeneratoren. Bei Verwendung einer technologieübergreifenden<br />
Bibliothek ist die Software in der Lage, die in der gewählten Technologie benötigten Zellen<br />
anhand von Technologieparametern als Layout zu erzeugen und ihr Zeitverhalten zu analysieren.<br />
Dies ermöglicht einen schnellen Technologiewechsel ohne Adaption der Library und stellt für<br />
das Timing Driven Buffer Sizing unabhängig von den Bibliotheken der Hersteller alle Zellen in<br />
ausreichend vielen Treiberstärken zur Verfügung.<br />
Besonders vorteilhaft ist ein solches technologieübergreifendes Library-Konzept bei Speichern<br />
und Pad-Zellen, da wegen der einheitlichen Zell- und Signalnamen die technologiespezifische<br />
Sonderbehandlung entfallen kann. Gleichzeitig wird ein Höchstmaß an Flexibilität und Automatisierung<br />
erreicht: Bei Speichern genügt die Auswahl des Speichertyps und die Angabe der Parameter<br />
wie Adresslänge und Wortbreite; das Layout des Speichers wird daraufhin automatisch<br />
generiert und eingesetzt.<br />
Für den I/O-Bereich können sogar in Abhängigkeit von Pad-Anzahl und Core-Fläche automatisch<br />
Pad-Zellen <strong>mit</strong> beliebigem Aspect Ratio (Kantenlängenverhältnis) erzeugt werden. Ohne<br />
diese Funktion ist die Auswahl in der Regel auf höchstens zwei Pad-Geometrien beschränkt, so<br />
dass sich bei Schaltungen <strong>mit</strong> sehr wenigen I/Os (Core Li<strong>mit</strong>ed Designs) Lücken zwischen den<br />
Pad-Zellen und bei sehr hochpoligen ASICs (Pad Li<strong>mit</strong>ed Designs) Freiflächen im Core-Bereich<br />
ergeben. In beiden Fällen kann durch die optimale Anpassung der Padgeometrien Chipfläche eingespart<br />
werden.<br />
Bemerkenswert war für die damalige Zeit auch der Grad der Automatisierung von Epoch bei der<br />
gesamten Layouterstellung. Zumindest theoretisch konnte ein komplettes Design, bestehend aus<br />
Standardzellgruppen, Datenpfaden, Multiplizierern, Speichern und Pad-Zellen, von der Netzliste<br />
ausgehend in einem Durchgang automatisch in ein vollständiges Layout unter Einhaltung der<br />
Timing-Vorgaben umgesetzt werden. Ungünstigerweise blieb die Qualität der programmtechnischen<br />
Umsetzung von Epoch weit hinter der algorithmischen Konzeption zurück. Diverse Einschränkungen,<br />
Programmabstürze und teilweise gravierende Fehler in der Timing-Analyse<br />
führten dazu, dass sich das Programm am Markt nicht durchsetzten konnte.<br />
So war auch die Layouterstellung des 3D-Grafikprozessors nur möglich, indem teilweise durch<br />
Manipulationen der internen Datenbasis von Epoch und teilweise sogar durch Modifikationen der<br />
ausführbaren Programme selbst Unzulänglichkeiten ausgeglichen wurden, so z. B. Fehler bei<br />
der parametrisierten Erzeugung von Addierern und eine Beschränkung des Pad Pitch auf minimal<br />
100μm. Auch beim Power-Routing musste eine eigene Lösung entwickelt werden, da Epoch<br />
nicht in der Lage war, die Leiterbahnbreite an die jeweilige Strombelastung anzupassen und so<br />
die Einhaltung der zulässigen Stromdichte zu gewährleisten. Da Epoch beim Routing nur drei<br />
Metallisierungsebenen unterstützte, der verwendete 0,35μ-CMOS-Prozess von TSMC aber vier
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.3<br />
Seite 56<br />
Layer erlaubte, bot es sich an, Ebene vier für die Versorgungsspannungsverdrahtung zu verwenden.<br />
Dazu wurde unter Epoch auf den Ebenen eins bis drei eine Power-Verdrahtung <strong>mit</strong> einer Leiterbahnbreite<br />
von ca. 10μm erstellt, die ausreichend war, um jeden Layout-Block für sich <strong>mit</strong> Strom<br />
zu versorgen, die aber nicht dazu ausgelegt war, den aufsummierten Gesamtströmen standzuhalten<br />
– die Stromaufnahme des ASICs betrug drei Ampere, woraus sich eine erforderliche Gesamtleiterbahnbreite<br />
von 3000μm ergibt. Um diese zu erreichen, wurden auf Ebene vier großzügig<br />
dimensionierte Versorgungsspannungsbahnen als diagonales Streifenmuster von abwechselnden<br />
V CC - und Massebahnen verlegt, wobei die Streifen im Padbereich an die umlaufenden Versorgungsspannungsringe<br />
angeschlossen wurden (vgl Abbildung 4-8).<br />
Um die Verbindungen zwischen dem<br />
Power-Routing der unteren Ebenen<br />
und den Streifen auf der vierten Ebene<br />
nicht manuell erstellen zu müssen,<br />
wurde das Verifikationsprogramm<br />
„Vampire“ von Cadence entgegen dessen<br />
eigentlicher Konzeption <strong>mit</strong> Erfolg<br />
dazu eingesetzt, diese Verbindungen<br />
automatisch zu generieren, indem<br />
überall dort Durchkontaktierungen und<br />
gegebenenfalls Metallpads eingefügt<br />
wurden, wo Versorgungsspannungsleiterbahnen<br />
gleicher Polarität übereinander<br />
verliefen und ein Einfügen der<br />
Verbindungen möglich war, ohne<br />
Kurzschlüsse zu anderen Leiterbahnen<br />
zu erzeugen oder Design Rules zu verletzen.<br />
Metal 4, führt Ground<br />
Anschluss<br />
der Power-<br />
Streifen an<br />
den Padring<br />
Metal 4, führt Power<br />
Vias zu darunter liegenden<br />
Ground- (bzw. Power-) Leitungen<br />
Abbildung 4-8: Powerverdrahtung als diagonales Streifenmuster<br />
auf der obersten Metallisierungsebene (Bild nach [38])<br />
Die beschriebene Notlösung mag ungewöhnlich erscheinen, ist aber keinesfalls untypisch für die<br />
Layouterstellung hochkomplexer ASICs. Im Grenzbereich der handhabbaren Komplexitäten, zu<br />
dem der entworfene Grafikprozessor <strong>mit</strong> fünf Millionen Transistoren 1998 durchaus gerechnet<br />
werden konnte, ist es in der Regel nicht möglich, <strong>mit</strong> nur einem Layoutprogramm den gesamten<br />
Umfang der erforderlichen Arbeiten abzudecken. In finanzstarken Unternehmen wird daher ein<br />
extremes „Tool Picking“ betrieben, indem für jede Aufgabe das jeweils beste verfügbare Programm<br />
eingekauft wird und für Spezialaufgaben und Konvertierungsfunktionen gegebenenfalls<br />
eigene Programme geschrieben werden. Da der Zwang zur Benutzung der besten Tools im High-<br />
End-Bereich aber <strong>mit</strong> enormen Softwarekosten einhergeht, müssen im universitären Bereich und<br />
in kleineren Unternehmen stattdessen die beschriebenen Behelfslösungen erlaubt sein, zumal aus<br />
der Not heraus gelegentlich Konzepte entstehen, die algorithmisch angenehm einfach und doch<br />
universell einsetzbar sind.<br />
An physikalischen Effekten, die erstmals in Deep-Submicron-Technologien berücksichtigt werden<br />
müssen, sind zunächst solche zu nennen, die die Integrität der Logikpegel gefährden. Im<br />
I/O-Bereich ist hier vor allem der Ground Bounce problematisch. Dieser Effekt tritt auf, wenn<br />
viele Ausgangspins einer integrierten Schaltung gleichzeitig schalten und die Umladeströme in<br />
den Masseleitungen, Bonddrähten etc. zu einem so hohen Spannungsabfall führen, dass sich der<br />
Massepegel des ICs gegenüber dem des Systems im Augenblick des Schaltens deutlich verschiebt<br />
und eine logische 0 an Ausgängen des ICs vom System nicht mehr als 0 erkannt wird.<br />
Der Effekt wird durch eine hohe Pinzahl und durch hohe Schaltgeschwindigkeiten begünstigt
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.3<br />
Seite 57<br />
und tritt daher bei modernen ASICs verstärkt auf. Abhilfe schaffen kann eine vergrößerte Anzahl<br />
von Masseanschlüssen, der Einsatz von Gehäusen <strong>mit</strong> niedriger Impedanz oder ggf. eine zeitlich<br />
leicht versetzte Ansteuerung der Ausgangstreiber von Bussen.<br />
Doch auch im Core-Bereich eines ASICs können in Deep-Submicron-Technologien Logikpegel<br />
verfälscht werden. Mit dem immer geringer werdenden Metal Pitch steigen die Ohm’schen<br />
Widerstände der Leiterbahnen und die Kopplungskapazitäten zu benachbarten Bahnen. Wenn<br />
zwei Leiterbahnen über eine längere Strecke parallel geführt werden, kann es daher in immer<br />
stärkerem Maße zu einem Übersprechen der Signale kommen, insbesondere dann, wenn die<br />
eine Leitung von einem schwachen Treiber konstant gehalten werden soll und die Nachbarleitung<br />
<strong>mit</strong> hoher Flankensteilheit schaltet. Falls der resultierende kurzzeitige Spannungseinbruch größer<br />
als der Störabstand zur Schaltschwelle ist und daher nachfolgende Gatter unerwünscht schalten,<br />
kann es zu einem Fehlverhalten der Schaltung kommen. Ausschlaggebend dafür ist, ob die<br />
gesamte resultierende Schaltaktivität bis zur nächsten aktiven Taktflanke zur Ruhe gekommen ist.<br />
Da<strong>mit</strong> derartige Untersuchungen nicht erforderlich werden, muss das Übersprechen vom Layoutprogramm<br />
generell bekämpft werden. Der übliche Ansatz besteht darin, Leiterbahnen nicht über<br />
beliebig lange Distanzen parallel zu führen, sondern ab einer bestimmten Streckenlänge die<br />
Anordnung der Bahnen zu variieren. Dabei wird in der Regel eine feste Grenzlänge zugrundegelegt,<br />
um keine aufwändigen Berechnungen anhand der Treiberstärke, Flankensteilheit und Kopplungskapazität<br />
der beteiligten Bahnen durchführen zu müssen. Falls es der Platz erlaubt, können<br />
auch Massebahnen zwischen den Signalbahnen angeordnet werden, die eine abschirmende Wirkung<br />
haben (Signal Shielding).<br />
Ein Problem stellt in Deep-Submicron-Technologien auch die maximal zulässige Stromdichte<br />
in Leiterbahnen dar. Bezüglich der Versorgungsspannungsnetze beherrschen moderne Layoutprogramme<br />
die Berechnung der Stromaufnahme der einzelnen Blöcke und sind in der Lage, die<br />
Metallisierungsbreite entsprechend den jeweils fließenden Teilströmen zu variieren. Bei Signalleiterbahnen<br />
hingegen würde eine Anpassung der Breiten an den tatsächlichen Bedarf einen<br />
unverhältnismäßig hohen Aufwand bedeuten, zumal der durchschnittlich fließende Strom von der<br />
Schaltrate (Switching Factor) der einzelnen Netze abhängt, die nicht ohne funktionale Simulationen<br />
er<strong>mit</strong>telt werden kann. Signalnetze sind daher schon immer einheitlich <strong>mit</strong> der Minimalbreite<br />
verdrahtet worden. Da in modernen Technologien aber bei näherungsweise unveränderten Umladeströmen<br />
der Leiterbahnquerschnitt sehr gering geworden ist, wird heute die maximale Stromdichte<br />
in Signalleiterbahnen immer öfter überschritten, wenn keine Gegenmaßnahmen getroffen<br />
werden, was die Zuverlässigkeit und Langzeitstabilität des ICs beeinträchtigen kann. Abhilfe<br />
wird üblicherweise dadurch geschaffen, dass die Anzahl der Lasten pro Gatterausgang (Fanout)<br />
bei der Logiksynthese beschränkt wird.<br />
Ein weiteres Problem tritt bereits bei der Fertigung der integrierten Schaltungen auf. Da in Deep-<br />
Submicron-Technologien die Leiterbahnbreiten und -abstände geringer sind als ihre Dicke, müssen<br />
bei der Fertigung nahezu senkrechte Wände erzeugt werden. Dies ist aufgrund der Unterätzung<br />
beim Nassätzen nicht mehr zu gewährleisten, so dass in modernen Prozessen <strong>mit</strong> Plasma<br />
geätzt wird. Beim Plasmaätzen werden die reaktiven Teilchen von einem elektrischen Feld senkrecht<br />
zur Waferoberfläche bewegt, wodurch das gewünschte, stark anisotrope Ätzverhalten und<br />
da<strong>mit</strong> nahezu senkrechte Profile erreicht werden. Die entgegengesetzten Ladungen von Wafer<br />
und Plasma können jedoch dazu führen, dass sich auf den gerade freigelegten Leiterbahnen<br />
Ladungsträger sammeln („Antenna Effect“) und die sich aufbauende Spannung das dünne Gate-<br />
Oxid von angeschlossenen Transistoren zerstört. Dies geschieht vorwiegend dann, wenn eine<br />
lange Leiterbahn an das Gate eines kleinen Transistors angeschlossen ist und die Verbindung<br />
zum Treiber des Signals (also zu Drain-Gebieten) noch fehlt, weil diese über höhere, noch nicht<br />
gefertigte Metallisierungsebenen verläuft. Zur Vermeidung dieses Effekts kann die Leiterbahn in<br />
der Nähe des Gate-Anschlusses kurz über eine höhere Ebene umgeleitet werden. Beim Ätzen der
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.3<br />
Seite 58<br />
unteren Ebene ist die lange Bahn aus diese Weise vom Gate isoliert, und das Leiterbahnstück auf<br />
der oberen Ebene ist so kurz, dass sich darauf beim Ätzen der oberen Ebene kaum Ladung<br />
ansammelt. In Technologien bis ca. 0,5μ war das zulässige Verhältnis von Leiterbahnlänge zu<br />
Gate-Größe noch so groß, dass es nur sehr selten zum beschriebenen Effekt kam und selbst ohne<br />
Kontrollen noch eine akzeptable Ausbeute bei der Fertigung erreicht werden konnte. In 0,35μ−<br />
Technologien wurde meist beim abschließenden DRC auf Verstöße gegen die Antenna Rules<br />
geprüft, um die dargestellten Änderungen dann per Hand vorzunehmen. In Very-Deep-Submicron-Technologien<br />
schließlich häufen sich die Regelverstöße derart, dass automatische Korrekturverfahren<br />
unverzichtbar werden. Im Idealfall berücksichtigt das Layoutprogramm bereits<br />
beim Routing die entsprechenden Regeln durch geeignete Konstruktionsprinzipien.<br />
Während die bisher beschriebenen<br />
Effekte neue Anforderungen<br />
an die Place-&-Route-<br />
Programme bei der Verdrahtung<br />
stellen, muss auch die<br />
Timinganalyse aufgrund der<br />
neuen physikalischen Effekte<br />
um zusätzliche Funktionen<br />
und modifizierte Algorithmen<br />
erweitert werden. So war<br />
es bei der Extraktion der<br />
parasitären Kapazitäten in<br />
5μ Technologie, 2D-Extraktion 0,25μ, 3D-Extraktion<br />
Substrat Substrat<br />
Abbildung 4-9: Veränderte Leiterbahngeometrien erfordern in Deep-Submicron-Technologien<br />
eine 3D-Extraktion parasitärer Kapazitäten. Eine 2D-<br />
Extraktion würde im rechten Bild keine Kapazitäten erkennen.<br />
älteren Technologien durchaus ausreichend, sich auf die vertikalen Kapazitäten aller sich überlappender<br />
Leiterbahnen zu beschränken (2D-Extraktion). Mit den veränderten Leiterbahngeometrien<br />
(vgl. Abbildung 4-9) ist dies in Deep-Submicron-Technologien aber nicht mehr möglich, da<br />
die horizontalen Kapazitäten zwischen benachbarten Leiterbahnen die vertikalen bereits überstiegen<br />
haben. Es ist daher eine 3D-Extraktion unter Berücksichtigung der räumlichen Anordnung<br />
der Leiterbahnen erforderlich. Außerdem spielt der Ohm’sche Widerstand der immer schmaler<br />
werdenden Bahnen eine immer größere Rolle. Während er in älteren Technologien gegenüber<br />
dem Bahnwiderstand der treibenden Transistoren zu vernachlässigen war, übersteigt er diesen<br />
heute bei langen Leitungen. Um die resultierenden Verzögerungszeiten <strong>mit</strong> hinreichender Genauigkeit<br />
zu berechnen, muss daher eine RC-Delay-Analyse durchgeführt werden, bei der lange Leiterbahnen<br />
in Abschnitte zerlegt werden, Widerstand und Kapazität jedes Segments er<strong>mit</strong>telt<br />
werden und hieraus zusammen <strong>mit</strong> dem Ausgangswiderstand des Treibers die Signallaufzeiten<br />
nach Formeln für RC-Ketten berechnet werden.<br />
Auch das kapazitive Übersprechen zwischen den Signalnetzen kann einen Einfluss auf die Verzögerungszeiten<br />
haben, wenn zwei benachbarte Leitungen gleichzeitig schalten. Während für das<br />
Umladen der Kapazität bei der Timinganalyse der Spannungshub ΔU entsprechend der Versorgungsspannung<br />
angesetzt wird, kann dieser sich verdoppeln, falls das Nachbarsignal invers zur<br />
betrachteten Leiterbahn schaltet, oder sich auf null reduzieren, falls beide Leiterbahnen die gleiche<br />
Spannungstransition durchlaufen. Die anteilige Verzögerungszeit ändert sich entsprechend.<br />
Da eine Analyse der Schaltvorgänge zustandsabhängig und da<strong>mit</strong> extrem komplex wäre,<br />
beschränkt man sich derzeit darauf, lange Parallelführungen von Leiterbahnen wie beschrieben<br />
zu vermeiden.<br />
Neben der Layouterstellung und Timingkontrolle muss bei jedem ASIC-Design eine geometrische<br />
und logische Schaltungsverifikation (DRC, LVS) durchgeführt werden. Mit Ausnahme der<br />
neu eingeführten Antenna Rules sind die Regelsätze seit Jahren nahezu unverändert geblieben,<br />
doch wachsen die Programmlaufzeiten gerade hier unangenehm schnell an. Eine Lösung stellen<br />
seit einigen Jahren hierarchische Verifikationsprogramme dar. Während das Layout beim klas-
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.3<br />
Seite 59<br />
sischen Ansatz „flach“ untersucht wird, d. h. alle Strukturen unabhängig von ihrer Block- oder<br />
Zellzugehörigkeit gleichberechtigt behandelt werden, beginnen diese Programme wie z. B. „Dracula“<br />
und „Vampire“ von Cadence bei den untersten Zellen der hierarchischen Gliederung, z. B.<br />
den Standardzellen, um zunächst dort die Layoutgeometrien auf Regelverstöße zu überprüfen<br />
(DRC) bzw. die Teillayouts <strong>mit</strong> den korrespondierenden Schematics zu vergleichen (LVS). In<br />
den höheren Ebenen müssen dann nur noch die Verbindungen zwischen den Zellen, ihre<br />
Abstände etc. untersucht werden. Angesichts der Tatsache, dass in modernen ASICs oft Tausende<br />
von Flipflops oder Logikgattern einer Sorte verwendet werden, die auf diese Weise nur noch je<br />
ein einziges Mal verifiziert werden müssen, ist sofort einsichtig, dass sich die Rechenzeiten so<br />
um mehr als eine Größenordnung reduzieren. Insbesondere bei Speicherblöcken ist die hierarchische<br />
Verifikation vorteilhaft, da ein- und zweidimensionale Matrizen gleicher Elemente erkannt<br />
und gesondert behandelt werden, um auch den Aufwand für die Verifikation der Verbindungen<br />
zwischen den Zellen zu minimieren. Die genannten hierarchischen Verifikationsprogramme wurden<br />
bei der Entwicklung eines 3D-Grafikprozessors [A-10] erfolgreich eingesetzt, auch wenn die<br />
hierarchische Vorgehensweise es erforderte, spezielle Extract Rules zu schreiben, um auch Verbindungen<br />
zwischen benachbarten Zellen erkennen zu können, die vom Layoutprogramm über<br />
überlappende Wannen hergestellt wurden. Die Programmlaufzeiten betrugen bei 5 Millionen<br />
Transistoren ca. 24 Stunden, eine Verifikation <strong>mit</strong> klassischen Programmen wäre hier kaum<br />
durchführbar gewesen.
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
4.4 Design Flow und Verifikation<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
4.4.1 Ein vollständiger, moderner Design Flow<br />
Kapitel 4.4<br />
Seite 60<br />
Während bisher Lösungen einzelner Aufgaben im Entwurfsprozess betrachtet wurden, soll nun<br />
der gesamte Ablauf einer ASIC-Entwicklung einschließlich der Schnittstellen zwischen den<br />
Umsetzungsprozessen beleuchtet werden. Abbildung 4-10 zeigt exemplarisch einen empfehlenswerten<br />
Design Flow bei Verwendung eines grafischen HDL-Programms.<br />
Grobspezifikation:<br />
● teilweise verbal<br />
● z. T. ungenau und unvollständig<br />
● evtl. Beschreibung der Ziele und<br />
nicht der Lösungen<br />
● evtl. Beschreibung des Umfeldes<br />
und nicht des ASICs (indirekte<br />
Spezifikation des ASICs), z. B. bei<br />
externen Speichern<br />
grafische HDL-Spezifikation:<br />
● takt- und bitgenau<br />
● strukturorientiert auch in Verhaltensbeschreibungen<br />
● personen- und maschinenlesbar<br />
textuelle HDL-Spezifikation:<br />
● technologieunabhängig<br />
● synthetisierbar<br />
Synthese-Script<br />
(Ablauf, Timing-Constraints etc.)<br />
Synthese-Bibliotheken<br />
(arithmetische u. log. Funktionen)<br />
Technologie-Bibliotheken<br />
(Gatter, Flipflops, Pads, Speicher)<br />
Steuerung<br />
KonstruktionsprinzipienKonstruktions-<br />
elemente<br />
Schaltung in der Zieltechnologie:<br />
● incl. Teststrukturen<br />
● Einhaltung der Timing-Vorgaben<br />
Erprobung am<br />
Evaluation<br />
Board,<br />
Korrekturen<br />
Blockschaltbilder<br />
verbale Spezifikation<br />
if a
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 61<br />
Ausgegangen wird dabei von einer Grobspezifikation, die gemischt in verschiedenen Formaten<br />
wie umgangssprachlichen Beschreibungen, Blockschaltbildern oder Timing-Diagrammen vorliegen<br />
kann und die in der Regel weder vollständig noch präzise ist. Zwar erlaubt es die Standardisierung<br />
von Modulen und Schnittstellen, große Schaltungsteile durch einen bloßen Verweis auf<br />
die entsprechenden Normen zu spezifizieren; doch diese Abstraktion kann dazu führen, dass<br />
weder die Anbindung der Module an das Gesamtsystem noch ihre wesentlichen Parameter wie<br />
z. B. der Datendurchsatz genau spezifiziert bzw. die Erfordernisse hinreichend abgeschätzt werden.<br />
Nach einer detaillierten Abstimmung der Anforderungen an das ASIC beginnt der ASIC-Designer<br />
dann, Lösungen zu den umrissenen Aufgaben zu finden, die sich in Hardware <strong>mit</strong> vertretbarem<br />
Aufwand realisieren lassen, und diese in grafischem HDL in Form von Schematics,<br />
Zustandsmaschinen und textuellem HDL einzugeben. Es entsteht eine vollständige, takt- und bitgenaue<br />
Spezifikation der Hardwarelösung <strong>mit</strong> den in Abschnitt 4.1.2 ausgeführten Vorteilen.<br />
Zur Kontrolle kann die Beschreibung innerhalb des grafischen HDL-Programms simuliert und<br />
daraufhin ggf. korrigiert werden. An diesen kreativen Teil des Entwurfsprozesses schließt sich<br />
die heute weitgehend automatisierte Umsetzung in die Zieltechnologie an. Dazu wird die grafische<br />
HDL-Beschreibung vom Programm in textuelles VHDL oder Verilog übersetzt, wobei nur<br />
eine Untermenge der zulässigen HDL-Sprachkonstruktionen verwendet wird, um die Synthetisierbarkeit<br />
sicherzustellen. Die Simulations-Testmuster werden gleichfalls übersetzt, so dass eine<br />
erste Cross-Simulation auf HDL-Ebene möglich ist, deren Ergebnisse <strong>mit</strong> denen aus dem grafischen<br />
HDL-Programm verglichen werden können.<br />
Bei der Logiksynthese wird die Verhaltensbeschreibung unter Verwendung von Synthese- und<br />
Technologiebibliotheken, durch ein Synthesescript gesteuert, in eine Netzliste in der Zieltechnologie<br />
umgesetzt, wobei auch Teststrukturen eingefügt werden können und Timing-Vorgaben<br />
berücksichtigt werden.<br />
Die Netzliste kann in VHDL oder Verilog aus dem Syntheseprogramm exportiert werden. Eine<br />
Edif-Netzliste wäre als Schnittstelle zum nachfolgend eingesetzten Place-&-Route-Programm<br />
ebenfalls möglich, erlaubt aber keine Cross-Simulation auf Ebene der synthetisierten Schaltung.<br />
Zur Verifikation kann die Netzliste zunächst, wie in Abschnitt 4.2 erläutert, in eine Verbindungsliste<br />
für ein FPGA umgesetzt werden, um die Schaltung auf einem Prototypen-Board im realen<br />
Umfeld in Echtzeit testen und evtl. das Zusammenspiel <strong>mit</strong> der parallel entwickelten Software<br />
erproben zu können.<br />
Für die Fertigung des ASICs wird die Netzliste von einem Place-&-Route-Programm in ein Layout<br />
umgesetzt, dessen Korrektheit durch DRC und LVS überprüft werden sollte. Weitere Cross-<br />
Simulationen auf Ebene der Netzliste und des Layouts dienen dabei nicht nur der funktionalen<br />
Verifikation, sondern (parallel zur statischen Timing-Analyse) auch der Kontrolle des Zeitverhaltens<br />
der Schaltung. Um dieses simulieren zu können, werden von Syntheseprogramm statistische<br />
Abschätzungen des Zeitverhaltens bzw. vom Place-&-Route-Programm die anhand der Metallisierungskapazitäten<br />
des Layouts berechneten exakten Signallaufzeiten in Form einer sdf-<strong>Datei</strong><br />
zusammen <strong>mit</strong> der Netzliste an den Simulator übergeben.<br />
Die Erzeugung der Testvektoren für den Produktionstest der ASICs kann auf Basis der Simulationen<br />
auf Netzlisten-Ebene geschehen, wobei die oft funktional orientierten Testmuster der<br />
Cross-Simulation um strukturorientierte Tests wie z. B. Speichertests und Simulationen des Scan<br />
Path ergänzt werden sollten. Die Testvektoren müssen für den Produktionstest in ein tabellarisches<br />
Format gebracht werden, in dem pro Zeitschritt die an jeden Eingang des ASICs anzulegenden<br />
Werte und die Erwartungswerte jedes Ausgangs aufgelistet sind. Bei bidirektionalen Pins<br />
muss zusätzlich die Richtung (Ein- oder Ausgang) ersichtlich sein.
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 62<br />
Zu beachten ist dabei die Einschränkung der IC-Tester, die es erlauben, für jeden Pin nur einen<br />
innerhalb jedes Zeitschritts identischen Offset einzustellen, zu dem Eingangssignale angelegt<br />
werden, bzw. einen Zeitpunkt oder ein Zeitfenster, in dem die Ausgangssignale abgefragt und <strong>mit</strong><br />
den Sollwerten verglichen werden. Bereits bei der Erstellung der Stimuli sollte auf derartige einheitliche<br />
Zeitpunkte geachtet werden.<br />
Der Halbleiterhersteller Samsung unterstützt<br />
den Designer bei der Umsetzung der<br />
Testvektoren durch Beistellung eines Programmpakets<br />
(„satest2“, [42]), welches<br />
gemäß Abbildung 4-11 diverse Konvertierungs-<br />
und Kontrollfunktionen umfasst. In<br />
einem Control File definiert der Designer<br />
dazu die Offsets und Abtastzeitpunkte aller<br />
Pins, die internen Signale zur Richtungssteuerung<br />
der bidirektionalen Pins sowie<br />
weitere für den Tester relevante Informationen<br />
wie Taktperiode, Pinbelegung, Eingangspegel<br />
und Ausgangslasten.<br />
Anhand des Control Files wird zunächst<br />
eine Steuerdatei erzeugt, welche den eingesetzten<br />
Simulator Verilog-XL bei der Simulation<br />
veranlasst, sämtliche Ein- und<br />
Ausgangssignale sowie die benötigten<br />
internen Kontrollsignale bidirektionaler<br />
Pins in eine vcd-<strong>Datei</strong> zu schreiben, die die<br />
Signalverläufe exakt protokolliert.<br />
Stimuli<br />
Verilog<br />
Simulation<br />
Verilog-XL<br />
Waveforms<br />
vcd-Format<br />
Testvektoren<br />
tabellarisch<br />
Stimuli<br />
Verilog<br />
sdf-<strong>Datei</strong><br />
Netzliste<br />
Verilog<br />
Simulation<br />
Verilog-XL<br />
Waveforms<br />
vcd-Format<br />
Testvektoren<br />
worst case<br />
Simulation<br />
Verilog-XL<br />
Waveforms<br />
vcd-Format<br />
Testvektoren<br />
best case<br />
Nach einer automatischen Kontrolle, ob die im Control File definierten Offsets der Eingangssignale<br />
in jedem Takt eingehalten werden und sich so<strong>mit</strong> des Zeitverhalten der Simulation vom<br />
Tester korrekt nachbilden lässt, erfolgt die Umsetzung in eines von mehreren tabellarischen Formaten<br />
der Tester. Zusätzlich wird kontrolliert, ob alle Ausgangssignale innerhalb der definierten<br />
Zeitfenster der Abtastung konstant sind.<br />
Da<strong>mit</strong> keine Unterschiede zwischen der Simulation und dem physikalischen Test auftreten können,<br />
muss zusätzlich sichergestellt werden, dass diese Konstanz auch bei allen Streuungen der<br />
Prozess- und Betriebsparameter gewährleistet bleibt. Um dies zu überprüfen, werden die Eingangssignale<br />
aus der Testvektordatei wieder ins Verilog-Format rückübersetzt und für zwei<br />
erneute Simulationen verwendet, bei denen einmal die schnellsten und einmal die langsamsten<br />
Parametersätze für das Zeitverhalten eingestellt werden. Die Ergebnisse dieser Simulationen<br />
werden dann gemäß Abbildung 4-11 <strong>mit</strong> denen der ersten Simulation verglichen.<br />
Mit der Rückübersetzung und Resimulation der an das Testhaus abzugebenden Testvektordatei<br />
wird gleichzeitig auch die Konvertierung der Testvektoren in diese <strong>Datei</strong> verifiziert, und der<br />
Design Flow an dieser Stelle erscheint perfekt. Bei näherer Überlegung fällt jedoch auf, dass<br />
bezüglich der erwarteten Ausgangswerte ein Fehler in der Umsetzung vom vcd-Format in die<br />
Testvektordatei evtl. bei jedem der drei Umsetzungsvorgänge zu den gleichen Unterschieden führen<br />
und daher nicht bemerkt werden könnte. Dies erscheint zunächst harmlos, da ein Fehler die<br />
Funktionsfähigkeit des ASICs nicht beeinträchtigen würde; er könnte aber aufgrund des nicht<br />
erfolgreich durchzuführenden Produktionstests Verzögerungen und so<strong>mit</strong> finanzielle Folgeschäden<br />
nach sich ziehen. Viel gravierender waren sogar die Auswirkungen eines konkret beobachteten<br />
Fehlers bei der Umsetzung in das Testvektorformat: Die Ausgangswerte bidirektionaler<br />
Rückübersetzung<br />
Abgabe<br />
an das Testhaus<br />
worst<br />
case<br />
Ergebnisvergleich<br />
best<br />
case<br />
Abbildung 4-11: Nach der Konvertierung der Testvektoren<br />
für den Funktionstest werden diese für Kontrollsimulationen<br />
wieder in eine Stimuli-<strong>Datei</strong> rückübersetzt.
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 63<br />
Signale wurden vom eingesetzten Programm in allen Takten <strong>mit</strong> einem Richtungswechsel der<br />
bidirektionalen Pins völlig unnötig ausmaskiert und so<strong>mit</strong> vom Tester nicht <strong>mit</strong> den Sollwerten<br />
verglichen. Das Ergebnis war, dass bei einem ISDN-Controller-ASIC [A-17] die Ausgangswerte<br />
eines Speichertests komplett ausmaskiert und in der Folge ASICs <strong>mit</strong> defektem RAM nicht aussortiert,<br />
sondern zusammen <strong>mit</strong> den funktionsfähigen ASICs ausgeliefert wurden. Das Auslöten<br />
und Ersetzten der defekten ASICs verursachte enorme Kosten. Dieses Ereignis zeigt eindrucksvoll,<br />
wie wichtig eine gewissenhafte Verifikation wirklich aller Schritte im Entwurfsprozess eines<br />
ASICs ist, auch wenn in diesem Fall das unübersichtliche tabellarische Testvektorformat eine<br />
visuelle Prüfung stark erschwerte.<br />
4.4.2 Die Lücke im Verifikationsablauf als Damoklesschwert<br />
4.4.2.1 Die Notwendigkeit einer lückenlosen Verifikation<br />
„Der ASIC-Designer“, so ein ehemaliger Kommilitone [50] des Verfassers, „fürchtet zwei Dinge<br />
im Leben: dass ihm der Himmel auf den Kopf fällt und dass der Chip nicht funktioniert.“<br />
So trivial die Aussage „der Chip muss funktionieren“ auch sein mag, ist sie doch die wichtigste<br />
Grundeinstellung des ASIC-Designers. Nur wer die Forderung so weit verinnerlicht hat, dass er<br />
den Fehlerfall der Apokalypse gleichsetzt, kann im ASIC-Geschäft die notwendige Sorgfalt<br />
durchhalten, alle Teile des Designs und alle Schritte der Umsetzung bis zur Abgabe des Layouts<br />
hinreichend genau zu kontrollieren und zu verifizieren, so dass die verbleibende Fehlerwahrscheinlichkeit<br />
zu vernachlässigen ist.<br />
Dabei wird im Laufe der Zeit zum einen der Druck immer größer, einen Entwurf „first time<br />
right“ zu bewältigen, da die Kosten für ein Redesign explodieren – und zwar sowohl die NRE-<br />
Kosten moderner Technologien als auch die aus der zeitlichen Verzögerung eines Redesigns<br />
resultierenden Marktverluste der immer höhervolumigen Projekte. Zum anderen erfordern die<br />
exponentiell wachsenden Schaltungskomplexitäten eine immer perfektere Verifikation aller Einzelteile.<br />
Zur Erinnerung: Entwirft ein Designer eine Schaltung <strong>mit</strong> einer Fehlerwahrscheinlichkeit von<br />
10%, so wird er fünf Jahre später ein aus 10 derartigen Teilen zusammengesetztes Design entwerfen<br />
wollen, das noch <strong>mit</strong> p = 0,9 10 , also 35% Wahrscheinlichkeit funktioniert. Nur weitere<br />
fünf Jahre später muss er einen aus 100 derartigen Teilen bestehenden Chip konstruieren, der bei<br />
gleichen Einzelwahrscheinlichkeiten nur noch <strong>mit</strong> p = 0,9 100 funktionieren wird, was der unvorstellbar<br />
geringen Wahrscheinlichkeit von 0,003% entspricht. Mögliche Fehler in den Verbindungen<br />
der Einzelteile sind dabei noch nicht einmal berücksichtigt. Zwar kann die Sicherheit im<br />
Entwurf durch die vorgestellten modernen Methoden deutlich gesteigert werden, dies kompensiert<br />
aber nicht ganz das Wachstum der Komplexität, so dass eine erheblich gesteigerte Sorgfalt<br />
in der Verifikation unerlässlich ist.<br />
Außerdem bedeutet jede Anwendung von Automatismen wie z. B. der Logiksynthese, dass der<br />
Faktor Mensch zwar bei der Ausführung dieser Umsetzungsvorgänge herausfällt, doch es ist zu<br />
bedenken, dass bei der Programmierung der Tools oder bei der Erstellung der Bibliotheken Fehler<br />
unterlaufen sein können, die eine fehlerhafte Umsetzung zur Folge haben können. Eine lükkenlose<br />
Kontrolle der Ergebnisse aller Programmläufe ist daher unverzichtbar.<br />
Automatische Kontrollmechanismen müssen dabei von der HDL-Beschreibung bis zur GDSII-<br />
<strong>Datei</strong> des Layouts den gesamten Design Flow begleiten. Sie sollen sicherstellen, dass auf dem<br />
Wege dieser Umsetzung die Funktionalität unverändert geblieben ist. Dies ist aber nur gewährleistet,<br />
wenn die Kontrollmechanismen sowohl in der Breite die gesamte Schaltung (jedes Gatter)<br />
erfassen als auch in der Tiefe den gesamten Design Flow abdecken. Da ein funktionaler Vergleich
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 64<br />
einer HDL-Beschreibung <strong>mit</strong> einer GDSII-<strong>Datei</strong> nicht durchführbar ist, muss hierbei eine lükkenlose<br />
Kette einzelner Vergleichsschritte wie z. B. Cross-Simulationen und LVS aufrecht erhalten<br />
werden. Neben der Funktionalität müssen darüber hinaus noch die Design Rules, die Timing-<br />
Anforderungen, die Anforderungen an die Testbarkeit und bei Analogschaltungen deren geforderte<br />
Eigenschaften über den gesamten Streubereich aller Parameter eingehalten werden.<br />
Beim Design Entry, also der Erstellung der HDL-Beschreibung ausgehend von der Spezifikation,<br />
sind solche Vergleichsmethoden nicht einsetzbar, da die Spezifikation eines ASICs in der Regel<br />
teils verbal, teils über Blockschaltbilder erfolgt. Diese Darstellungsformen können nicht für<br />
einen automatischen Vergleich verwendet werden. Auch ergibt sich die Spezifikation im Detail<br />
oft nur dadurch, dass im Blockdiagramm eine externe Komponente wie z. B. ein Speicher dargestellt<br />
wird, auf die vom ASIC aus zugegriffen werden soll. Das Datenblatt des Speichers spezifiziert<br />
hierbei nur indirekt die Schnittstelle des ASICs. An die Stelle eines Vergleichs kann in<br />
dieser Phase daher nur eine Simulation treten, deren möglichst vollständige Überdeckung des<br />
Funktionsumfanges entscheidend für die verbleibende Fehlerwahrscheinlichkeit ist. Zusätzliche<br />
Sicherheit können hier die in Abschnitt 4.2 vorgestellten FPGA-Prototypenboards bieten.<br />
Doch dass der Chip funktioniert, d. h. dass das ASIC in der Anwendung seine vorgesehene Funktion<br />
fehlerfrei erfüllt, ist durch einen solchen Ablauf noch keineswegs gewährleistet. Auch auf<br />
dem Weg bis hin zur Spezifikation und noch bei der Abgabe der GDSII-<strong>Datei</strong> zur Fertigung des<br />
ASICs ist der Verifikationsablauf aufrecht zu erhalten.<br />
Die Erstellung eines ASICs lässt sich dabei in vier Phasen gliedern. Zu jedem der Punkte sollen<br />
im Folgenden anhand von Beispielen aus konkret realisierten Projekten die vorhandenen Risiken<br />
aufgezeigt werden und soweit gegeben geeignete Methoden einer lückenlosen Verifikation vorgestellt<br />
werden. Die vier Phasen sind<br />
1. die Konzeptions- und Spezifikationsphase bis hin zur verbalen Spezifikation,<br />
2. die manuelle Design Entry Phase bis hin zur – evtl. graphischen – HDL-Beschreibung,<br />
3. die Synthese der Netzliste einschließlich Teststrukturen unter Einhaltung der Timingvorgaben<br />
und<br />
4. die Layouterzeugung,<br />
und darüber hinaus ist eine Verifikation<br />
5. der Datenübergabe an allen Schnittstellen zwischen den eingesetzten Programmen<br />
erforderlich.<br />
4.4.2.2 Sorgfalt in der Konzeptions- und Spezifikationsphase<br />
Die Spezifikation eines ASICs unterliegt in der Regel der Verantwortung des Kunden, das Design<br />
Entry und die Synthese dem Designer. Die Layouterzeugung kann vom Designer oder bei Netzlistenabgabe<br />
vom Halbleiterhersteller, allerdings immer in enger Interaktion <strong>mit</strong> dem Designer,<br />
durchgeführt werden.<br />
Dennoch darf sich der ASIC-Designer nicht auf „seinen“ Teil der Arbeiten zurückziehen. Zwar<br />
mag er <strong>mit</strong> der Auftragserteilung juristisch nur dazu verpflichtet sein, ein ASIC zu entwerfen, das<br />
die Spezifikation erfüllt, doch de facto muss er den Kunden bereits in der Konzeptions- und Spezifikationsphase<br />
bei der Hand nehmen, um zu einer Lösung zu kommen, die den Anforderungen<br />
an das <strong>mit</strong> dem ASIC zu realisierende Produkt gerecht wird.<br />
Dies bedeutet nicht nur, dass der Designer jedes Detail der Spezifikation äußerst sorgfältig auf<br />
Korrektheit überprüfen muss, sondern dass er sogar die gesamte Konzeption hinterfragen muss.
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-
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 66<br />
nen Testfälle und das Risiko, Testfälle nicht bedacht zu haben. Neben den Tests und Simulationen<br />
müssen daher sorgfältige Kontrollen der eingegebenen Designs durchgeführt werden.<br />
Chr. v. Reventlow [31] empfiehlt hierzu, jedes erstellte Dokument von einer unabhängigen Person<br />
kontrollieren zu lassen, indem bei Schaltungen deren Funktion im Detail anhand des Entwurfes<br />
nachvollzogen wird. Ihm zufolge werden so neun von zehn Fehlern durch derartige<br />
Kontrollen gefunden und nur ein Fehler durch Simulation. Grafisches HDL eignet sich besonders<br />
gut für diese Vorgehensweise, da die Designs für andere Personen intuitiv zu verstehen sind.<br />
Darüber hinaus empfiehlt er, alle in den Entwürfen gefundenen Fehler genau zu protokollieren.<br />
Wenn in einem Schaltungsteil (von zwei bis vier Wochen Aufwand) deutlich weniger als fünf<br />
Fehler gefunden wurden, sei die Wahrscheinlichkeit hoch, dass nach deren Beseitigung die<br />
Schaltung ordnungsgemäß funktioniere. Waren aber ursprünglich wesentlich mehr als fünf Fehler<br />
enthalten, sei das Risiko zu hoch, den Schaltungsteil weiter zu korrigieren. Es sei sinnvoller,<br />
das Modul neu zu entwerfen, da nach seinen Beobachtungen ca. fünf gefundene Fehler einen<br />
weiteren Fehler verdecken.<br />
4.4.2.4 Automatische Verifikation in der Synthese-Phase<br />
Da die Synthese der Netzliste einen automatischen Umsetzungsvorgang darstellt, bietet sich hier<br />
eine Verifikation durch Computerprogramme an, wobei Kontrollmechanismen für die Funktion,<br />
die Testbarkeit und das Timing der Schaltung erforderlich sind.<br />
Die funktionale Übereinstimmung von HDL-Beschreibung und Netzliste lässt sich theoretisch<br />
nach den Regeln der Bool’schen Algebra beweisen. Die meisten Syntheseprogramme enthalten<br />
dazu bereits eine Verify-Option. Da aber anzunehmen ist, dass die integrierte Verifikation<br />
nach den gleichen Algorithmen arbeitet wie die Synthese, ist die Aussagekraft des Ergebnisses<br />
eher zweifelhaft, so dass ein unabhängiges Verifikationsprogramm eines anderen Anbieters vorteilhafter<br />
erscheint. In der Praxis hat der Verfasser es aber noch nie erlebt, dass ein Syntheseprogramm<br />
– korrekte Bibliotheken vorausgesetzt – funktional falsch synthetisiert hätte. Natürlich<br />
soll diese Aussage in keiner Weise davon befreien, die Übereinstimmung genau zu prüfen.<br />
Die geeignete, evtl. parallel einzusetzende Alternative besteht in einer Cross-Simulation, bei der<br />
die Ergebnisse der Simulationen von HDL-Beschreibung und Netzliste takt- und bitgenau verglichen<br />
werden. Die Sicherheit des Vergleichs ist dabei aber nur so gut wie die funktionale Überdeckung<br />
der Schaltung durch die verwendeten Testmuster.<br />
Bei allen Prüfverfahren ist zu bedenken, dass Synthesescripte häufig modifizierend in die Schaltung<br />
eingreifen, um an einigen Stellen technologieabhängige Änderungen zu implementieren. Es<br />
ist sicherzustellen, dass dies den Vergleich nicht beeinflusst.<br />
Die Testbarkeit der Schaltung kann überprüft werden, indem <strong>mit</strong> einem Fehlersimulator wie<br />
z. B. Verifault die tatsächlichen Testmuster simuliert werden, wobei die Testüberdeckung er<strong>mit</strong>telt<br />
wird. Fehler beispielsweise bei der Implementation eines Scan Path würden hierbei sofort<br />
auffallen. Erfreulicherweise gilt für diese Teststrukturen, dass sie beliebig „falsch“ implementiert<br />
sein dürfen, solange sie die Normalfunktion der Schaltung nicht beeinträchtigen und eine ausreichende<br />
Testüberdeckung gegeben ist.<br />
Andere Teststrukturen wie der Einbau von Boundary-Scan-Strukturen (JTAG) zielen nicht allein<br />
auf die Testbarkeit des ASICs, sondern bieten zusätzlich Diagnosemöglichkeiten und können<br />
zum Test der Leiterplatte verwendet werden. Daher reicht hier eine Fehlersimulation nicht aus,<br />
sondern es ist auch die funktionale Korrektheit zu prüfen.<br />
Integrierte Speicher, insbesondere RAMs, stellen bezüglich der Testbarkeit einen Sonderfall dar.<br />
In der Regel unterstützen die RAM-Modelle keine Fehlersimulation, da das hierbei meist
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
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 68<br />
Eingängen in einer Cascade-Library beobachtet wurde, zeigt die korrekt synthetisierte Schaltung<br />
in der Simulation evtl. ein fehlerhaftes Verhalten, dies birgt aber keine Risiken, da es beliebig<br />
unwahrscheinlich ist, dass sich ein Fehler im Entwurf und ein Fehler im Simulationsmodell kompensieren.<br />
Im zweiten Fall, der z. B. bei einem Synopsys-Modell eines Flipflops <strong>mit</strong> Set und<br />
Reset in einer Bibliothek von AMS auftrat, wurde die Schaltung falsch synthetisiert. Glücklicherweise<br />
(oder dank ausreichender Sorgfalt) wurde der Fehler anhand des korrekten Verilog-<br />
Modells in der Simulation bemerkt und korrigiert. Ebenso führte bei der Synthese einer Boundary-Scan-Struktur<br />
ein fehlerhaftes Modell einer Boundary-Scan-Zelle in einer Synopsys-internen<br />
Library zu einer Verletzung des IEEE-1149.1-Standards, der nur aufgrund einer sorgfältigen<br />
Simulation detektiert wurde. In beiden Fällen hätte der Chip anderenfalls nicht ordnungsgemäß<br />
funktioniert.<br />
Fatal kann es allerdings sein, wenn alle zur Verfügung stehenden Modelle einen identischen Fehler<br />
enthalten. Gleichzeitige Fehler im Synthese- und Simulationsmodell wurden zwar bisher<br />
nicht bemerkt, es ist aber schon vorgekommen, dass nur ein einziges (fehlerhaftes) Modell existierte.<br />
So stellten sich beim Verilog-Modell eines ARM7 RISC CPU Cores von Samsung funktionale<br />
Unterschiede zum realen Silizium heraus, wobei das Synopsys-Modell nur Timing-<br />
Informationen enthielt. Günstigerweise betrafen die Abweichungen nur die Reset-Phase, so dass<br />
der Chip [A-14] zwar auf dem Tester die Testvektoren nicht passierte (die entsprechende Meldung<br />
des koreanischen Testhauses ohne Detailinformationen sorgte für erhebliche Aufregung),<br />
der Chip aber korrekt eingesetzt werden konnte.<br />
Weniger erfreulich waren die Folgen eines ungenau modellierten Dualport-RAMs von Cascade.<br />
Eine falsch berechnete Hold Time führte zu einer Hold Violation und da<strong>mit</strong> zur Fehlfunktion<br />
eines 3D-Grafikprozessors <strong>mit</strong> fünf Millionen Transistoren [A-10], dessen Fertigungskosten in<br />
einer 0,35μ-CMOS-Technologie von TSMC sich allein auf $100.000 beliefen. Da hierbei die<br />
Berechnung der Timingwerte aus den Layoutdaten im Programm Cascade integriert geschah,<br />
hätte der Fehler nur bemerkt werden können, wenn zur unabhängigen Kontrolle <strong>mit</strong> einem externen<br />
Programm aus GDSII-Daten und Spice-Parametern das Zeitverhalten des RAMs extrahiert<br />
worden wäre – was einen extrem aufwändigen Arbeitsgang dargestellt hätte, der bei Abdeckung<br />
aller Teile des Gesamtchips untragbar lange Programmlaufzeiten bedeutet hätte. Pflege und Verkauf<br />
des Programms Cascade wurden wenig später eingestellt.<br />
Neben den Bibliotheken können auch die eingesetzten Verifikationsprogramme und Scripte<br />
fehlerhaft sein oder falsch angewendet werden. Nichts ist gefährlicher, als der Meldung einer<br />
erfolgreichen Verifikation blind zu vertrauen. So führte z. B. ein Kunde eine Cross-Simulation<br />
zwischen einem c-Programm und einer funktionalen Verilog-Beschreibung durch und benutzte<br />
zum Vergleich den Operator „!=“. Da in der Verilog-Beschreibung ein Fehler enthalten war, der<br />
zu komplett undefinierten Ausgangssignalen führte, wurde kein Fehler gemeldet, denn in Verilog<br />
liefert beim Vergleich <strong>mit</strong> einem undefinierten Signal bizarrerweise keiner der Vergleichsoperatoren<br />
„==“ und „!=“ einen wahren Wert, stattdessen sind „===“ bzw. „!==“ zu verwenden.<br />
Grundsätzlich sollte bei allen Vergleichsmechanismen zur Kontrolle einmal ein künstlicher Fehler<br />
eingebaut werden, um zu prüfen, ob dieser bemerkt wird.<br />
Zuweilen können aber auch Unterschiede zwischen der HDL-Beschreibung und der Netzliste<br />
gemeldet werden, die rein simulationstechnisch bedingt sind. Dies gilt insbesondere für die<br />
Reset-Phase, solange noch nicht alle Signale initialisiert sind. Hier kann eine Logikfunktion, die<br />
unabhängig von einem (undefinierten) Eingangssignal sein sollte, als synthetisierte Schaltung<br />
undefinierte Werte liefern, obwohl alle relevanten Eingangssignale definiert sind. Ein Beispiel ist<br />
der Ausdruck<br />
(A xor B) xor B,
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 69<br />
der als Ansteuergleichung innerhalb einer synchronen Schaltung unabhängig von B stets den<br />
Wert A liefern sollte, der aber in der Simulation undefiniert wird, wenn B nicht initialisiert wurde<br />
(vgl. auch Abbildung 4-12). Ein anderes Beispiel ist ein Multiplexer, an dessen Dateneingängen<br />
identische Werte anliegen, dessen Steuereingänge aber undefiniert sind. Derartige simulationstechnische<br />
Probleme sollten gelöst werden, indem konsequent alle Flipflops innerhalb der Schaltung<br />
einen asynchronen Reset erhalten. Eine Überprüfung kann anhand der in der Netzliste<br />
verwendeten Flipflop-Typen oder anhand der bei der Synthese ausgegebenen Informationen<br />
erfolgen.<br />
Was die Timing-Vorgaben für die<br />
Synthese und die statische Timing-<br />
Analyse betrifft, muss zum einen<br />
geprüft werden, ob diese vollständig<br />
sind. Dies geschieht am besten, indem<br />
das Syntheseprogramm benutzt wird,<br />
um alle Pfade zwischen Flipflops bzw.<br />
von und zu den Ein- und Ausgängen<br />
des Chips anzuzeigen, die keine Constraints<br />
für minimale und maximale<br />
Laufzeit besitzen. Zum anderen muss<br />
die Korrektheit der vorgegebenen Werte sichergestellt werden, wofür sich eine Kontrolle durch<br />
einen unabhängigen Designer anbietet.<br />
Besondere Aufmerksamkeit gebührt dabei dem Timing der Ein- und Ausgangssignale, da dieses<br />
von Chip-externen Kapazitäten abhängig ist, die z. B. <strong>mit</strong> dem Ausbau von angeschlossenen<br />
Speicherbänken variieren können. Hier ist genau zu überlegen, welche Lastverteilung den jeweils<br />
ungünstigsten Fall darstellt. Optimal wäre es, wenn die Syntheseprogramme es in Zukunft unterstützen<br />
würden, bei Angabe von Kapazitätsbereichen automatisch eine Fallunterscheidung<br />
durchzuführen. Bis dahin müssen evtl. mehrere Timing-Analysen <strong>mit</strong> verschiedenen Kapazitätsverteilungen<br />
durchgeführt werden.<br />
Was die vollständige funktionale Überdeckung der Schaltungsfunktionen durch die Testmuster<br />
der Cross-Simulation angeht, kann eine Fehlersimulation dabei helfen, unter Verwendung<br />
der Testmuster aus der Cross-Simulation ungetestete Bereiche aufzudecken. Sie erlaubt aber<br />
nicht die Beantwortung der Frage, ob wirklich alle Funktionen getestet wurden. So ist z. B. leicht<br />
denkbar, dass in einer Zustandsmaschine zwar alle Flipflops des Zustandsregisters jeweils beide<br />
möglichen Werte im Laufe der Simulation annehmen, dass in ihrer Kombination aber trotz vollständiger<br />
Testüberdeckung ein bestimmter Zustand beim Test nie erreicht wird und daher die<br />
Abdeckung der Funktionalität nicht optimal ist.<br />
Bevorzugt sollten daher Programme eingesetzt werden, die auf HDL-Ebene analysieren, welche<br />
Zustände und Transitionen durchlaufen werden, um so eine bessere Aussage über die funktionale<br />
Überdeckung zu erhalten. Speedchart bietet derartige Funktionen in einfacher Form ebenfalls an.<br />
4.4.2.5 Verifikation des Layouts<br />
nReset<br />
clk<br />
D Q<br />
Abbildung 4-12: Beispielschaltung, in der Flipflop B <strong>mit</strong> synchronem<br />
Reset (NAND-Gatter) nur in der Simulation stets undefiniert<br />
bleibt<br />
Das Ergebnis der Layouterstellung ist üblicherweise eine <strong>Datei</strong> im GDSII-Format, deren vollständige<br />
Verifikation <strong>mit</strong>tels automatischer Programme geschehen kann. Diese sollte die im Folgenden<br />
erläuterten Punkte umfassen:<br />
Beim Design Rule Check (DRC) wird überprüft, ob das Layout den Anforderungen des Halbleiterherstellers<br />
an Leiterbahnbreiten, -abstände und ähnliche Geometrien entspricht. Eine Verletzung<br />
könnte zu einer niedrigeren Ausbeute bei der Produktion oder zu Ausfällen im Betrieb des<br />
A<br />
a<br />
0<br />
0<br />
x<br />
x<br />
x<br />
B<br />
D Q<br />
x
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 70<br />
ASICs führen. Bei der Überprüfung der Geometrien sind die Grundalgorithmen seit vielen Jahren<br />
bekannt und in letzter Zeit nur um Funktionen zur hierarchischen Verifikation (vgl.<br />
Abschnitt 4.3.3) erweitert worden. Wenn ein Hersteller von Verifikationsprogrammen in diesen<br />
Algorithmen seine Kernkompetenz sieht, kann man auch da<strong>mit</strong> rechnen, dass er alles für eine<br />
korrekte programmtechnische Umsetzung tun wird. Desgleichen ist davon auszugehen, dass die<br />
Halbleiterhersteller die Design Rule Files <strong>mit</strong> äußerster Sorgfalt erstellen. Das Risiko nicht<br />
detektierter DRC-Fehler erscheint daher gering, solange die an den Halbleiterhersteller abgegebene<br />
GDSII-<strong>Datei</strong> und nicht nur die interne Datenbasis des Layout-Programms verifiziert wird<br />
(vgl. Abschnitt 4.4.2.6). Es sollte aber beachtet werden, dass Halbleiterhersteller zur Optimierung<br />
der Ausbeute oder bei geringfügigen Prozessänderungen oft noch nachträglich die Design<br />
Rules anpassen, so dass vor Abschluss eines Projekts noch einmal kontrolliert werden sollte, ob<br />
die verwendeten Design Rules noch aktuell sind.<br />
Beim LVS (Layout Versus Schematic) werden aus den Layout-Geometrien die Transistoren<br />
sowie evtl. andere Bauelemente <strong>mit</strong> ihren Anschlüssen und Verbindungen extrahiert und die<br />
dabei entstehende Netzliste <strong>mit</strong> einer Spice-Netzliste des Schematics verglichen. Wie schon beim<br />
DRC können auch hier die eingesetzten Algorithmen und Programme als hinreichend erprobt<br />
angesehen werden. Allerdings sollte hier nicht nur sichergestellt werden, dass die Layout-Netzliste<br />
aus der tatsächlich abgegebenen GDSII-<strong>Datei</strong> extrahiert wird, sondern auch, dass die Spice-<br />
Netzliste aus einer Repräsentationsform der Schaltung generiert wurde, die gleichzeitig Grundlage<br />
einer Cross-Simulation war (vgl. Abschnitt 4.4.2.6).<br />
Auf einen Electrical Rules Check (ERC) wird oft zu Unrecht verzichtet, er kann jedoch z. B.<br />
offene Eingänge und Netze <strong>mit</strong> weniger als zwei Anschlüssen detektieren und so zum einen bei<br />
erfolgreichem LVS noch Rückschlüsse auf fehlerhafte Netzlisten ermöglichen, zum anderen können<br />
durch einen ERC vor dem LVS Trivialfehler in der Verdrahtung nach wesentlich kürzeren<br />
Programmlaufzeiten gefunden werden als beim vollständigen Vergleich <strong>mit</strong> dem Schematic.<br />
Ein Hersteller von Place-&-Route-Programmen, „Avant!“, wirbt für seine Programme <strong>mit</strong> der<br />
Aussage, die generierten Layouts seien aufgrund spezieller Algorithmen von vornherein frei von<br />
DRC- und LVS-Fehlern („Correct by Construction“). Hiervon sollte sich der Designer jedoch<br />
nicht blenden lassen. Jedes ernsthafte Place-&-Route-Programm dürfte <strong>mit</strong> der Intention<br />
geschrieben worden sein, dass fehlerfreie Layouts erzeugt werden, und falls dennoch Fehler im<br />
Layout auftreten, sind diese auf Programmierfehler zurückzuführen. Der Term „Correct by Construction“<br />
ist da<strong>mit</strong> nur ein Schlagwort, das die eher zweifelhafte Behauptung untermauern soll,<br />
die Software sei frei von Fehlern.<br />
Neben DRC, ERC und LVS sollte im Layout auch überprüft werden, ob die Leiterbahnbreiten,<br />
die beim DRC nur <strong>mit</strong> einer Minimalbreite verglichen werden, den Anforderungen aufgrund der<br />
maximal zulässigen Stromdichte genügen. Die erforderliche Breite ist dabei proportional zur<br />
Summe der Ströme, die durch den jeweiligen Leiterbahnabschnitt fließt. Kurzfristige Stromspitzen<br />
können bei dieser Betrachtung vernachlässigt werden, da die Ausbildung der zerstörend wirkenden<br />
Elektromigration vom durchschnittlichen Strom abhängig ist. In Signalnetzen ist in der<br />
Regel der Strom so gering, dass die Minimalbreite ausreicht, allerdings wurden hier auch Ausnahmen<br />
z. B. in hochkapazitiven Clock-Netzen <strong>mit</strong> Superbuffer und sogar im unzureichenden<br />
Layout einer solchen Buffer-Zelle selbst beobachtet.<br />
Für die Versorgungsspannungsnetze ergeben sich die Einzelströme jedes Gatters zu<br />
I = fs ⋅ CL ⋅ UB , wobei die Lastkapazität CL und die Betriebsspannung UB bekannt sind, die<br />
Schaltfrequenz fS des Gatters aber vom Aktivitätsgrad der Schaltung abhängig ist. Dieser kann<br />
nur grob abgeschätzt werden oder aufgrund einer Simulation durch speziell eingefügte Funktionen<br />
des Simulators er<strong>mit</strong>telt werden; deren Ergebnis ist aber auch nur eingeschränkt aussagekräf-
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 71<br />
tig, da im normalen Betrieb des ASICs völlig andere Bedingungen als im für die Simulation<br />
gewählten Fall auftreten können.<br />
So schwierig wie die genaue Abschätzung des Aktivitätsgrades und so<strong>mit</strong> des jeweils fließenden<br />
Stromes ist auch die Überprüfung der Einhaltung der erforderlichen Leiterbahnbreite. Abschätzungen<br />
der diesbezüglichen Anforderungen können zwar im Place-&-Route-Programm gewonnen<br />
und beim Routing als Zielvorgaben berücksichtigt werden, die Verifikation der Einhaltung<br />
aber ist nicht allein anhand der zu prüfenden GDSII-<strong>Datei</strong> möglich, da die Informationen über<br />
die Erfordernisse in dieser nicht mehr enthalten sind. Wenn das Layout-Programm die eigenen<br />
Vorgaben an die Leiterbahnbreite aufgrund eines Programmfehlers nicht einhält oder sie falsch<br />
berechnet oder wenn bei manuellen Korrekturen versehentlich eine zu schmale Leiterbahnstelle<br />
entsteht, können solche Verletzungen der zulässigen Stromdichte nicht mehr erkannt werden.<br />
Eine zufrieden stellende automatische Lösung des Problems ist derzeit nicht bekannt, so dass nur<br />
eine optische Kontrolle der zum Glück meist sehr regelmäßigen Power-Verdrahtung möglich<br />
erscheint.<br />
Zur Verifikation des Post-Layout-Timings schließlich sollte für die Post-Layout-Simulation und<br />
die statische Timing-Analyse (vgl. Abschnitt 4.3.2) eine Extraktion parasitärer Kapazitäten<br />
und Widerstände (Parasitic Extraction) durchgeführt werden, wobei ein immer höherer Aufwand<br />
erforderlich wird, um die dominierenden Verzögerungszeiten durch die Metallisierung exakt zu<br />
berechnen. Da in Deep-Submikron-Technologien <strong>mit</strong> dem Gewicht der beschriebenen neuen<br />
Effekte wie Übersprechen und der erforderlichen dreidimensionalen Extraktion von Kapazitäten<br />
auch die Gefahr wächst, dass durch eine ungenaue Modellierung Timing-Verletzungen entstehen,<br />
ist dringend zu empfehlen, genug Reserve im Timing einzustellen, was bei Short Pathes erfahrungsgemäß<br />
nur einen geringen Overhead an Gattern aufgrund der einzufügenden Verzögerungselemente<br />
produziert.<br />
4.4.2.6 Verifikation an den Schnittstellen<br />
Wie in den vorigen Abschnitten ausgeführt wurde, ist ein direkter Vergleich der Spezifikation<br />
oder der HDL-Beschreibung <strong>mit</strong> dem Layout nicht durchführbar. An seine Stelle muss eine lükkenlose<br />
Kette einzelner Vergleichs- und Verifikationsschritte treten. Eine wesentliche Voraussetzung<br />
ist dabei, dass an allen Schnittstellen, an denen Daten von einem Programm zum nächsten<br />
oder zum Halbleiterhersteller übergeben werden, genau unterschieden wird zwischen der internen<br />
Datenbasis eines Programms und der <strong>Datei</strong>, über die die Daten ausgetauscht werden. Ein<br />
Beispiel soll verdeutlichen, welche Auswirkungen anderenfalls Fehler in den Export- und<br />
Importfunktionen der Programme haben können: Bei der Entwicklung eines Testbildgenerator-<br />
ASICs für Satelliten-TV-Empfänger [A-5] wurde als Netzliste für die Cross-Simulation eine<br />
Verilog-Netzliste verwendet, als Schnittstelle zum Place-&-Route-Programm aber eine Edif-<br />
Netzliste, da die Verilog-Importfunktion wegen fehlerhafter Libraries nicht korrekt arbeitete.<br />
Beide Netzlisten wurden vom Syntheseprogramm generiert und waren inhaltlich identisch, sie<br />
unterschieden sich jedoch in der Behandlung von konstanten Eingängen: In Verilog wurden die<br />
konstanten Netze von speziellen Zellen (logic1/logic0) getrieben, in Edif wurden die Netze lediglich<br />
speziell benannt (vdd!/gnd!). Die Verilog-Simulation arbeitete daher einwandfrei, beim Einlesen<br />
der Edif-Netzliste in das Place-&-Route-Programm hingegen entstanden lokale und so<strong>mit</strong><br />
offene Netze „vdd!“ und „gnd!“, obwohl beim Importieren ausgegeben wurde, es würden entsprechende<br />
globale Netze erzeugt. Das Ergebnis war ein nicht funktionsfähiges ASIC.<br />
Die Cross-Simulation sollte daher im Design Flow wesentlich weiter als nur bis zur internen<br />
Datenbasis des Syntheseprogramms reichen. Im Idealfall könnten aus der GDSII-<strong>Datei</strong> des Layouts<br />
eine Verilog-Netzliste und die parasitären Kapazitäten und Widerstände in Form einer sdf-<br />
<strong>Datei</strong> extrahiert werden, um so<strong>mit</strong> die Cross-Simulation so weit wie möglich ausdehnen zu kön-
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 <strong>72</strong><br />
nen. In der Praxis ist dies aber nur möglich, solange die Standardzellen im Layout als Hierarchiestufe<br />
erhalten bleiben, und bis heute scheitert eine solche Extraktion noch an den erforderlichen<br />
Programmen. Der letzte Ansatzpunkt einer Cross-Simulation ist derzeit die Datenbasis des Place-<br />
&-Route-Programms; eine Garantie für die Übereinstimmung der von dort exportierten Verilogund<br />
Spice-Netzliste gibt es im üblichen Design Flow aber nicht.<br />
Als Lösung dieses Problems wurden<br />
bereits in mehreren Projekten erfolgreich<br />
die Spice-Netzlisten aller Standardzellen,<br />
sofern nicht direkt<br />
verfügbar, aus der gesamten Netzliste<br />
des ASICs extrahiert, um in der wieder<br />
eingelesenen letzten Verilog-Netzliste<br />
die dort vorhandenen Standardzellen<br />
<strong>mit</strong> den Spice-Zellen unterlegen zu<br />
können. So entstanden aus den Verilog-Netzlisten<br />
Spice-Netzlisten für<br />
den LVS (Weg (2) in Abbildung 4-13),<br />
so dass sichergestellt war, dass die<br />
Cross-Simulation und der LVS auf<br />
Grundlage der identischen Schaltung<br />
durchgeführt wurden, ohne dass ein<br />
Risiko wegen unterschiedlicher<br />
Exportwege der Netzlisten bestanden<br />
hätte.<br />
Für die Verifikation des Layouts sollten<br />
DRC und LVS entsprechend auf<br />
Basis derjenigen GDSII-<strong>Datei</strong> durchgeführt<br />
werden, die an den Halbleiterhersteller<br />
abgegeben wird. Falls<br />
Verifikationsprogramme eingesetzt<br />
Spice (1)<br />
Netzliste<br />
Datenbasis<br />
P&R Progr.<br />
GDSII<br />
Layout<br />
Cross-<br />
Simulation<br />
Verilog<br />
Netzliste<br />
Spice (2)<br />
Netzliste<br />
Layout<br />
LVS (1) LVS (2)<br />
Netzliste<br />
Abbildung 4-13: Falls im Place-&-Route-Programm die interne<br />
(und als Verilog-<strong>Datei</strong> exportierte) Netzliste falsch in Layout und<br />
Spice-Netzliste umgesetzt wird, kann der Fehler trotz Cross-<br />
Simulation und LVS (1) unbemerkt bleiben.<br />
Alternativ sollte die Verilog-Netzliste <strong>mit</strong> Spice-Modellen der<br />
Standardzellen unterlegt werden und der LVS (2) auf der Basis<br />
der so entstehenden Spice-Netzliste durchgeführt werden.<br />
werden, die nicht auf GDSII-Daten, sondern nur auf einer internen Datenbasis eines Layout-Programms<br />
arbeiten können, reicht es nicht aus, dies vor der Erzeugung der GDSII-<strong>Datei</strong> zu tun.<br />
Stattdessen sollte die GDSII-<strong>Datei</strong> wieder in eine leere Library des Layout-Programms eingelesen<br />
werden, um dann diese zu verifizieren. Doch selbst hierbei trügt der Schein der absoluten<br />
Sicherheit. So wurde auf einem bei AMS gefertigten ASIC ein Logo als Zelle im Layout in<br />
einem von 1 verschiedenen Maßstab platziert. Das Wiedereinlesen der GDSII-<strong>Datei</strong> zeigte das<br />
Logo in seiner korrekten Größe, doch auf den Masken wurde es im Maßstab 1 einbelichtet, da die<br />
Software des Halbleiterherstellers skalierte Zellen in GDSII nicht unterstützte. Glücklicherweise<br />
resultierte hieraus keine Vergrößerung, sondern eine Verkleinerung, und da der Ursprung des<br />
Logos innerhalb von dessen Fläche lag, wurde es nicht verschoben. Anderenfalls hätte das in der<br />
Metallisierungsebene liegende Logo Kurzschlüsse produzieren können.
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 />
4.4.2.7 Der Zeitplan des Designs als größter Feind der sorgfältigen Verifikation<br />
Kapitel 4.4<br />
Seite 73<br />
Die vorangegangenen Ausführungen zum Zeitplan einer ASIC-Entwicklung und zur erforderlichen<br />
Sorgfalt der Verifikation lassen sich in den folgenden Zusammenhang bringen, der eine prekäre<br />
Situation verdeutlicht:<br />
● Ein ASIC-Design darf nur 6 Monate beanspruchen.<br />
● Das ASIC muss daher im ersten Versuch fehlerfrei funktionieren.<br />
● Um dies zu erreichen, ist jeder Arbeitsschritt 100%ig zu verifizieren.<br />
● Eine 100%ige Verifikation dauert unendlich lange.<br />
Zur Erläuterung: Die Entwicklungszeit eines ASICs darf ca. sechs Monate nur unwesentlich<br />
überschreiben, da sonst die technische Entwicklung das geplante Produkt überholt und die<br />
Gefahr besteht, dass ein Konkurrent ein vergleichbares Produkt schneller fertigstellt und so einen<br />
erheblichen Wettbewerbsvorteil erhält. Ein Redesign eines ASICs einschließlich der erforderlichen<br />
vollständigen Fehleranalyse und der Fertigung der neuen Muster beansprucht aber etwa<br />
weitere zwei bis vier Monate, was den genannten Zeitrahmen sprengen würde. Daher sowie aufgrund<br />
der Kosten durch Marktverluste und Redesign muss ein ASIC „first time right“ funktionieren.<br />
Da Murphy’s Gesetz [51], demzufolge alles schiefgeht, was schiefgehen kann, sich im<br />
ASIC-Geschäft allzu oft bewahrheitet (bzw. hier, bedingt durch die extremen Komplexitäten,<br />
alles schiefgeht, was nicht kontrolliert und simuliert wird), kann die Funktionsfähigkeit aber nur<br />
gewährleistet werden, wenn alle Schritte der Entwicklung und Umsetzung 100%ig verifiziert<br />
werden.<br />
Teil einer wirklich 100%igen Verifikation müsste z. B. eine Extraktion parasitärer Kapazitäten<br />
zwischen jedem Leiterbahnabschnitt und jedem anderen Leiterbahnabschnitt sein, gefolgt von<br />
einer vollständigen Spice-Simulation von extremer Genauigkeit, die alle Betriebszustände<br />
abdeckt. Diese Verifikation ließe sich nur eingeschränkt parallelisieren und würde als Analogsimulation<br />
eines komplexen digitalen ASICs Millionen Jahre dauern, wo<strong>mit</strong> sich im Widerspruch<br />
zum ersten Punkt der Kreis schließt; eine wirtschaftliche ASIC-Entwicklung scheint bei perfekter<br />
Verifikation unmöglich und ohne diese ein Glücksspiel zu sein.<br />
Beim Aufwand für die Verifikation muss daher ein Kompromiss gefunden werden, um in überschaubarer<br />
Zeit alle wesentlichen Schritte des Designprozesses hinreichend genau abzudecken.<br />
Eine zu intensive Verifikation würde den zeitlichen Rahmen sprengen, im Fall unverrückbar<br />
zugesicherter Liefertermine des ASICs ergeben sich sogar (wie auch bei MPW-Runs) feste<br />
Abgabetermine, an denen evtl. zwangsweise <strong>mit</strong> etwas Mut zum Risiko das Design abgegeben<br />
werden muss, ohne dass alle geplanten Verifikationsschritte durchgeführt werden konnten. Es ist<br />
daher dringend zu empfehlen, von vornherein genug Zeit für die Verifikation einzuplanen und<br />
Probeläufe aller wichtigen Schritte durchzuführen, um die Gefahr unerwarteter Probleme zu<br />
minimieren und die Programmlaufzeiten zu er<strong>mit</strong>teln.<br />
Die bisherigen Ausführungen über die Verifikation sollten die ASIC-Designer unter den Lesern<br />
zumindest etwas dafür sensibilisiert haben, wo überall im Design Flow eine Verifikation erforderlich<br />
ist und wie diese erfolgen kann, an welchen Stellen hingegen die Hoffnung begründet sein<br />
kann, sich auf die Korrektheit fundamentaler Daten und Algorithmen verlassen zu können. Der<br />
Gewinner im „Glücksspiel ASIC-Design“ ist dabei der, der die Herausforderung der exponentiell<br />
wachsenden Komplexitäten annimmt und dem es aufgrund seiner Erfahrung zumindest in den<br />
meisten Fällen gelingt, ein ASIC im ersten Versuch fehlerfrei zu entwerfen.
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
5. Kapitel<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
Perspektiven des modernen ASIC-Designs<br />
5.1 Testkonzepte komplexer Systeme<br />
5.1.1 Strukturtests <strong>mit</strong> modifizierten Scan-Path-Verfahren<br />
Kapitel 5<br />
Seite 74<br />
Einen wesentlichen Aspekt beim Entwurf integrierter Schaltungen, auf den bisher nur kurz eingegangen<br />
wurde, stellt die Testbarkeit der Schaltung dar. Da produktionstechnisch bedingt stets<br />
Ausfälle von Teilbereichen eines ASICs, in der Regel Defekte einzelner Gatter, möglich sind und<br />
selbst ein Defekt eines einzelnen Gatters zu einer Fehlfunktion der Gesamtschaltung führen<br />
kann, ist ein möglichst vollständiger Produktionstest jedes gefertigten ICs unumgänglich.<br />
Ein reiner Funktionstest kann dabei heutzutage in angemessener Zeit nur noch einen Bruchteil<br />
aller Gatterfunktionen abdecken. Problematisch ist z. B. ein Test von Schnittstellen <strong>mit</strong> niedriger<br />
Datenrate oder die Verifikation von Zählern, die seltene Ereignisse zählen. Durch den gezielten<br />
Einbau von Teststrukturen an derartigen Stellen können beispielsweise Vorteiler von Zählern<br />
beim Test überbrückt werden, was einen beschleunigten funktionsnahen Test ermöglicht. Bei<br />
hochkomplexen Systemen ist der Arbeitsaufwand hierfür aber sehr hoch und der Effekt nicht ausreichend.<br />
Ein Produktionstest wird deshalb üblicherweise als reiner Strukturtest durchgeführt, bei dem<br />
ohne Bezug zur Normalfunktion der Schaltung versucht wird, die Funktion aller Einzelgatter zu<br />
prüfen. Zu diesem Zweck können, z. B. im Verlauf der Logiksynthese, automatisch Teststrukturen<br />
in die Schaltung eingebaut werden, die es erlauben, die interne Logik von außen zu kontrollieren<br />
und zu observieren. In der Regel geschieht das durch Einbau eines Scan Path, indem alle<br />
Flipflops der Schaltung in einem Testmodus zu Schieberegisterketten verschaltet werden. So<br />
können beliebige Werte seriell in alle Flipflops geschoben und so an die Eingänge der kombinatorischen<br />
Logikblöcke angelegt werden, und die Ausgangswerte der Logik können in die<br />
Flipflops übernommen, seriell herausgeschoben und an den Ausgängen der Schiebeketten <strong>mit</strong><br />
Sollwerten verglichen werden.<br />
Das Verfahren erlaubt einen vollständigen Funktionstest aller Gatter, erfordert aber eine hohe<br />
Testzeit, da für jeden Nutztakt im Parallelbetrieb der Flipflops, in dem die Logik getestet wird,<br />
ein serieller Schiebevorgang erforderlich ist, dessen Taktanzahl von der Anzahl der Flipflops in<br />
der längsten Kette bestimmt wird. Zur Erzeugung der Testvektoren sollte sinnvollerweise ein<br />
automatischer Testpattern-Generator (ATPG) eingesetzt werden, um einen möglichst kurzen<br />
Satz von Eingangsvektoren zu er<strong>mit</strong>teln, <strong>mit</strong> denen die kombinatorische Logik zwischen den<br />
Registern optimal getestet werden kann.<br />
Falls kein ATPG-Programm zur Verfügung steht, können behelfsweise auf Kosten der Testüberdeckung<br />
Zufallswerte verwendet werden, um die Logik zu stimulieren. In diesem Fall hat sich<br />
gezeigt, dass sich durch eine modifizierte Vorgehensweise beim Scan Test ein deutlich besseres<br />
Verhältnis von Testzeit zu Testüberdeckung erreichen lässt. Dazu kann zum einen anstelle eines<br />
einzigen Paralleltaktes zwischen zwei Schiebevorgängen eine zufällige Anzahl von Paralleltakten<br />
durchgeführt werden, wobei die Ausgangsdaten der Logik als Ergebnis des ersten Taktes zu Eingangsdaten<br />
im nächsten Takt werden. Des weiteren hat es sich bewährt, nicht immer die kompletten<br />
Schieberegisterinhalte seriell herauszuschieben und durch neue Zufallsdaten zu ersetzen,<br />
sondern eine geringere, ebenfalls stochastisch variierte Anzahl von Schiebetakten durchzuführen,
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 5.1<br />
Seite 75<br />
so dass Ausgangswerte in den Ketten verbleiben und nur etwas weiter transportiert werden.<br />
Beide Modifikationen sollten jedoch nicht übertrieben werden, da die Gefahr besteht, dass die<br />
statistische Verteilung der zum weiteren Test verwendeten Ausgangswerte deutlich schlechter<br />
wird, als dies bei reinen Zufallswerten beim normalen Scan-Test der Fall ist. Durch eine Variation<br />
beider Parameter konnte in der Praxis eine Verkürzung der Testzeit bei gleicher Testüberdeckung<br />
um Faktoren zwischen drei und zehn erzielt werden.<br />
Ein anderes Verfahren des Strukturtests <strong>mit</strong>tels Zufallswerten basiert auf der Verwendung linear<br />
rückgekoppelter Schieberegister (Linear Feedback Shift Register, LFSR). Wird in ein Schieberegister<br />
eine XOR-Verknüpfung geeigneter Abgriffe aus der Kette zurückgekoppelt, kann dieses<br />
als Pseudo-Zufallszahlengenerator eingesetzt werden [29]. In einer anderen Betriebsart können<br />
zusätzlich Eingangswerte per XOR-Funktion eingebracht werden, wo<strong>mit</strong> das LFSR zum Signaturregister<br />
wird: Jede Änderung eines beliebigen Eingangswertes führt zu einer abweichenden<br />
Signatur. Es ist möglich, normale Flipflops <strong>mit</strong> einer umschaltbaren Logik zu umgeben, die wahlweise<br />
Betriebsarten als Zufallsgenerator, Signaturregister, Schieberegister oder als normale<br />
Flipflops erlaubt; man spricht vom BILBO (Built In Logic Block Observer).<br />
Ersetzt man in einer Schaltung alle Flipflops durch<br />
BILBOs, so kann die kombinatorische Logik zwischen<br />
ihnen automatisch <strong>mit</strong>tels der generierten Zufallswerte<br />
stimuliert und gleichzeitig eine Signatur über die Ausgangswerte<br />
gebildet werden (Built In Self Test,<br />
BIST). Ein Auslesen der Signatur und ein Vergleich<br />
<strong>mit</strong> einem Sollwert liefern das Testergebnis.<br />
Der Vorteil des Verfahrens liegt in der erhöhten Testgeschwindigkeit,<br />
da serielle Schiebetakte im Gegensatz<br />
zum Scan-Test nur einmalig am Ende des Tests erfolgen<br />
müssen. Die Nachteile liegen im Mehraufwand an<br />
Scan path<br />
BILBO<br />
Teilnetzwerk<br />
BILBO<br />
Eingänge<br />
Ausgänge<br />
BILBO<br />
Teilnetzwerk<br />
BILBO<br />
Abbildung 5-1: Selbsttest <strong>mit</strong>tels linear rückgekoppelter<br />
Schieberegister (nach [38])<br />
Logik und darin, dass übliche Syntheseprogramme einen automatischen Einbau derartiger Teststrukturen<br />
nicht unterstützen.<br />
Eine interessante Variante des Tests <strong>mit</strong> BILBOs wurde bei der Entwicklung eines 3D-Grafikprozessors<br />
gewählt. Das ganz überwiegend aus Datenpfaden bestehende 1,3-Millionen-Gatter-<br />
Design [A-10] wurde vom Auftraggeber direkt in Verilog spezifiziert und sollte um Teststrukturen<br />
ergänzt und unter Einhaltung der Timing-Vorgaben in ein Layout umgesetzt werden. Die<br />
Datenpfade enthielten dabei vektorisierte Elemente wie Addierer, Multiplizierer und Multiplexer<br />
sowie Flipflops als Pipeline-Stufen.<br />
Der Einsatz eines Scan-Path-Verfahrens zum Test hätte bei diesem ASIC angesichts von über<br />
50.000 Flipflops und der Logiktiefe in den Datenpfaden wohl jeden automatischen Testpattern-<br />
Generator überfordert. Außerdem wäre das Verhältnis von Schiebetakten zu Nutztakten selbst bei<br />
Verwendung vieler paralleler Ketten sehr ungünstig ausgefallen. Alle Flipflops durch BILBOs zu<br />
ersetzen scheiterte hingegen an geeigneten automatischen Verfahren zum Einbau der BILBOs<br />
und hätte wegen der zusätzlichen Logik die sehr günstige matrixartige Anordnung der vektorisierten<br />
Elemente im Layout der Datenpfade stark beeinträchtigt.<br />
Es wurde daher ein eigenes Verfahren zum Test von Datenpfaden entwickelt, bei dem nur an den<br />
Ein- und Ausgängen eines großen Schaltungsblocks in der Größenordnung von 200.000 Gattern<br />
Generator- bzw. Signatur-BILBOs eingebaut wurden (vgl. Abbildung 5-2 rechts), während die<br />
Pipeline-Register innerhalb der Blöcke unverändert gelassen wurden. Die Schwierigkeit bestand<br />
lediglich darin, die Steuereingänge der Datenpfade während des Tests so zu schalten, dass sich<br />
auch im hinteren Teil der Pipeline noch eine gute Verteilung der Zufallswerte ergab.
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 5.1<br />
Seite 76<br />
Durch dieses Verfahren konnte <strong>mit</strong> geringem Aufwand an Testlogik eine hohe Testüberdeckung<br />
erreicht werden, indem der Zufallstest entsprechend lange betrieben wurde. Da bei hohen Taktfrequenzen<br />
auch eine Million Takte für einen solchen Test durchaus vertretbar sind, sind dabei<br />
TCLK<br />
TMS<br />
TRST<br />
TDI<br />
MODEOUTDR<br />
MODEINDR<br />
User ID<br />
DATA0ENABLE<br />
DATA1ENABLE<br />
DATA2ENABLE<br />
Pattern of<br />
‘IDCODE’<br />
Instruction<br />
Input<br />
Pads<br />
MODE<br />
SIN<br />
CLOCKDR<br />
BS Register<br />
IN(N-1:0) OUT(N-1:0)<br />
SHIFTDR<br />
SOUT<br />
UPDATEDR<br />
Data Register<br />
BILBO Data REG 1<br />
IN(N-1:0)<br />
RESET<br />
OUT(N-1:0)<br />
SIN<br />
SOUT<br />
EN<br />
CLOCKDR SHIFTDR UPDATEDR<br />
Data Register<br />
BILBO CTRL REG<br />
IN(N-1:0)<br />
RESET<br />
OUT(N-1:0)<br />
SIN<br />
SOUT<br />
EN<br />
CLOCKDR SHIFTDR UPDATEDR<br />
Data Register<br />
RESET<br />
BILBO Signature Reg 1<br />
IN(N-1:0) OUT(N-1:0)<br />
SIN<br />
EN<br />
CLOCKDR<br />
CLOCKDR<br />
SHIFTDR<br />
UPDATEDR<br />
SOUT<br />
BYPASS Register<br />
SIN SOUT<br />
IN(31:0)<br />
SIN SOUT<br />
CLOCKDR<br />
ID Register<br />
SHIFTID<br />
CLOCKIR SHIFTIR UPDATEIR<br />
IN(N-1:0) OUT(N-1:0)<br />
SIN<br />
Scan In Register<br />
SHIFTBR<br />
CLOCKDR SHIFTDR UPDATEDR<br />
TCLK RESET<br />
TMS<br />
TRST<br />
TAP Controller SEL<br />
ENABLE<br />
CLOCKIR SHIFTIR UPDATEIR<br />
Instruction Decoder<br />
Instruction Register<br />
SOUT<br />
Core Logic<br />
DATA0CAP<strong>TU</strong>RE<br />
DATA1CAP<strong>TU</strong>RE<br />
DATA2CAP<strong>TU</strong>RE<br />
BS<br />
BYPASS<br />
ID<br />
CLOCKDR<br />
BS Register<br />
IN(N-1:0) OUT(N-1:0)<br />
RESET (EN pins only)<br />
C1 D(N-1:0)<br />
C2 Generator BILBO<br />
Q(N-1:0)<br />
Data Path Logic<br />
CLR D(N-1:0)<br />
Signature BILBO<br />
Q(N-1:0)<br />
UPDATEDR<br />
Abbildung 5-2: Blockschaltbild einer JTAG-Logik, die über ein serielles Interface und Schieberegister den Zugang<br />
zu Chip-internen Daten und die Kontrolle der I/O-Signale (oben) ermöglicht. Rechts ist der Test eines Datenpfades<br />
über Zufallsgeneratoren und Signaturregister dargestellt.<br />
MODE<br />
SIN<br />
MUX<br />
Scan Out Register<br />
n<br />
SHIFTDR<br />
0<br />
1 MUX<br />
MUX<br />
SOUT<br />
Output<br />
Pads<br />
TDO<br />
(c) 1997 Lukas Bauer
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 5.1<br />
Seite 77<br />
nur der Aufwand der Testpatternerzeugung und die benötigte Tiefe des Patternspeichers im IC-<br />
Tester relevant. Bei beiden Parametern bietet das vorgestellte Verfahren Vorteile, da Testpattern<br />
nur zum Starten des Tests und zum Auslesen der Signaturen erforderlich sind, während die<br />
dazwischen liegende Testzeit beliebig gestreckt werden kann, ohne dass Änderungen der Eingangswerte<br />
oder Abfragen der Ausgänge erforderlich sind.<br />
Die korrekten Signaturen für den Ergebnisvergleich müssen dabei noch nicht einmal über eine<br />
Simulation generiert werden – diese würde auch extrem lange dauern – sondern können einfach<br />
am Tester er<strong>mit</strong>telt werden, indem mehrere ASICs getestet werden. Da unterschiedliche Fehler<br />
stets unterschiedliche Signaturen liefern und identische Fehler ausgeschlossen werden können,<br />
muss es sich bei der ersten Signatur, die bei zwei ASICs identisch ausgelesen wird, um den Sollwert<br />
handeln.<br />
Abbildung 5-2 zeigt neben den BILBO-Strukturen auch deren Ansteuerung über Datenregister,<br />
die entsprechend dem JTAG-Standard IEEE 1149.1 [27] über eine 5-Pin-Schnittstelle <strong>mit</strong><br />
genormten Protokoll seriell von außen zugänglich sind. Über Boundary-Scan-Register, die zwischen<br />
den Pads und dem Core der Schaltung angeordnet sind, kann dabei sowohl der Core <strong>mit</strong><br />
definierten Daten versorgt und seine Ausgangsleitungen abgefragt werden als auch die Peripherie<br />
des Chips getestet werden.<br />
Der serielle Zugang erlaubt so einen vollständigen Test des gesamten Core-Bereichs über diese<br />
fünf Leitungen, wo<strong>mit</strong> ein weiteres Problem gelöst werden kann: Eine Probe Card (Nadeladapter)<br />
zum Test des Grafikprozessors auf Wafer-Ebene hätte angesichts der enormen Anzahl von<br />
600 Pins weit über 100.000,- US-Dollar gekostet. Unter Verwendung des seriellen Interfaces hingegen<br />
kann ein Test von kleinen und <strong>mit</strong>tleren Serien <strong>mit</strong> einer wesentlich preiswerteren Probe<br />
Card erfolgen, die nur über Versorgungsspannungsanschlüsse und über die fünf seriellen Leitungen<br />
verfügt. Die Pads der Schaltung können dann erst an den gehäusten Chips getestet werden.<br />
5.1.2 Software-Speichertests <strong>mit</strong> Ausmaskierung defekter Bereiche<br />
Ein besonderes Problem beim Test integrierter Schaltungen stellen Speicher dar. Die möglichen,<br />
verschiedenartigen Ausfallprinzipien und Kopplungseffekte zwischen benachbarten Zellen (vgl.<br />
Abschnitt 4.4.2.4 auf Seite 66) erfordern Speichertests nach speziellen Algorithmen wie z. B.<br />
dem March-C-Algorithmus [24], der auf einem mehrmaligen Schreiben und Lesen verschiedener<br />
Werte in wechselnder Richtung basiert.<br />
Zur Durchführung des Tests sind zwei Verfahren gängige Praxis: Zum einen kann in einem Testmodus<br />
ein externer Zugang auf Daten-, Adress- und Steuerleitungen der Speicher freigeschaltet<br />
werden, so dass der IC-Tester die Ansteuerung und den Ergebnisvergleich ausführen kann. Zum<br />
anderen kann eine BIST-Logik in das ASIC integriert werden, die über eine Zustandsmaschine<br />
die Eingänge der Speicher kontrolliert und die Ausgänge observiert, um nach dem automatischen<br />
Ablauf des Tests das Ergebnis zu melden. Beiden Verfahren gemeinsam ist die Notwendigkeit,<br />
zumindest Multiplexer in die Eingangsleitungen der Speicher einzufügen, um zwischen den<br />
Testsignalen und den normalen Eingangssignalen umschalten zu können.<br />
In einem System <strong>mit</strong> integrierter CPU hingegen ist ein weitaus einfacheres Verfahren denkbar:<br />
Die CPU kann einen Speichertest in Software durchführen und das Ergebnis über Datenoder<br />
I/O-Leitungen dem Tester melden. Dazu kann eine Testsoftware, die den Speicher z. B. nach<br />
dem March-C-Algorithmus testet, in einen kleinen Bereich des Chip-internen Speichers kopiert<br />
und dort ausgeführt werden, oder die Software läuft aus einem externen Speicher, dessen Ausgangsdaten<br />
in einer Simulation als Bestandteil der Testvektoren abgespeichert und beim Test<br />
vom IC-Tester angelegt werden. Die Vorteile eines Selbsttests (BIST) bleiben bei diesem Verfah-
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 5.1<br />
Seite 78<br />
ren größtenteils erhalten, ohne dass zusätzliche Logik eingebaut werden muss. Auch die bei<br />
anderen Testverfahren erforderlichen Multiplexer in den Eingangsleitungen der Speicher können<br />
entfallen, was sogar das Timing der Schaltung verbessert. Die Testzeit hingegen wird zunehmen,<br />
da die Programmabarbeitung durch die CPU langsamer erfolgt als ein Hardware-Algorithmus.<br />
Naturgemäß ist das geschilderte Verfahren auf Speicher beschränkt, die direkt von der CPU aus<br />
gelesen und beschrieben werden können. Andere Speicher, z. B. FIFOs in Schnittstellenmodulen,<br />
sollten nach klassischen Verfahren getestet werden.<br />
Eine interessante Variante von Software-<br />
Speichertests wurde für den Nachtest von<br />
ASICs verwendet, deren Speicher aufgrund<br />
der in Abschnitt 4.4.1 unten geschilderten<br />
Probleme nicht getestet worden war. Da<br />
kein Testhaus gefunden werden konnte, das<br />
über einen Tester <strong>mit</strong> 160 Pins und den<br />
erforderlichen Testpatternspeicher von<br />
256.000 Vektoren verfügte, hat der Verfasser<br />
eine eigene Testhardware konstruiert,<br />
um den Nachtest der ASICs durchzuführen.<br />
Dazu wurde an den externen Speicherbus<br />
des ASICs auf einer kleinen Platine<br />
(vgl. Abbildung 5-3) ein Flash-Speicher<br />
angeschlossen, in dem ein Speichertestprogramm<br />
untergebracht wurde. Das Programm<br />
wurde beim Anlegen der<br />
Versorgungsspannung – dies geschah über<br />
Abbildung 5-3: Autonome Testhardware zum Speichertest<br />
von ASICs. Ein in einem Flash untergebrachtes Testprogramm<br />
wird von der integrierten CPU ausgeführt und meldet<br />
über eine grüne oder rote Leuchtdiode das Testergebnis.<br />
einen Taster – automatisch ausgeführt und meldete ca. 0,3 Sekunden später das Testergebnis<br />
durch Ansteuerung einer grünen oder roten Leuchtdiode. Das Testproblem konnte so auf einen<br />
autonomen, manuellen Test zurückgeführt werden, für den kein IC-Tester im Millionen-DM-<br />
Bereich erforderlich war, sondern eine äußerst preiswerte Testplatine.<br />
Doch die Möglichkeiten des Speichertests durch die integrierte CPU reichen noch wesentlich<br />
weiter. Ein System, das seinen Speicher selbst prüfen kann, kann sich im Fehlerfall abschalten<br />
und so in sicherheitsrelevanten Anwendungen Schäden vermeiden. Darüber hinaus ist es sogar<br />
möglich, fehlertolerante Systeme zu konstruieren, die ihren Speicher selbsttätig umkonfigurieren<br />
können, um defekte Speicherbereiche auszumaskieren. Dies soll im Folgenden ausführlich<br />
erläutert werden.<br />
Defekte in Speichern betreffen in der Regel nur einzelne Speicherzellen, wesentlich seltener auch<br />
einzelne Reihen oder Spalten. Ein Speicher wird daher in den meisten Fällen „größtenteils fehlerfrei“<br />
sein. Während in einem Festplattenlaufwerk defekte Sektoren auf der Platte markiert und<br />
vom Controller übersprungen werden können, so dass der größte Teil der Platte ohne weiteres<br />
verwendet werden kann, besteht in den meisten Computersystemen die Notwendigkeit eines<br />
zusammenhängenden, fehlerfreien Speicherraums. Dies gilt insbesondere für den Programmspeicher,<br />
da es technisch nicht durchführbar ist, für jede Anordnung von Defekt-bedingten Lücken im<br />
Speicher eigene Programmversionen zu compilieren, die die jeweiligen Lücken auslassen.<br />
Um einen zusammenhängenden, defektfreien Speicher zu erzeugen, ist es bei großen Speichern<br />
bereits üblich, die Speichermatrix um einige Reihen und/oder Spalten zu erweitern, die als Ersatz<br />
für defekte Speicherteile an den jeweiligen Reihen- oder Spaltenadressen in die Matrix eingeblendet<br />
werden. Hierzu werden beim Produktionstest die Positionen aller defekten Speicherzel-
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 5.1<br />
Seite 79<br />
len bestimmt und daraus errechnet, welche Reihen und Spalten der Matrix durch redundante zu<br />
ersetzen sind. Die betroffenen Reihen- oder Spaltenadressen werden dazu in einem einmal programmierbaren,<br />
nichtflüchtigen Speicher (in Fuse-Technologie) abgelegt. Im Betrieb werden bei<br />
erfolgreichem Vergleich <strong>mit</strong> der anliegenden Adresse anstelle der Matrix die redundanten Reihen<br />
bzw. Spalten angesprochen.<br />
Dieses Prinzip erlaubt zwar eine Reparatur des Speichers während des Produktionstests, nicht<br />
aber eine Reparatur von Speicherbereichen, die erst während des Betriebes ausfallen. Dies ist<br />
aber insbesondere bei Flash-Speichern aufgrund ihrer li<strong>mit</strong>ierten Anzahl von Schreibzyken interessant.<br />
Außerdem ist der ASIC-Designer auf die Verfügbarkeit entsprechender Speicherblöcke<br />
<strong>mit</strong> Reparaturmöglichkeit in der verwendeten ASIC-Technologie angewiesen; er kann derartige<br />
Strukturen nicht selbst hinzufügen.<br />
Ein Verfahren, das auch zur Laufzeit eine Reparatur von Speicherdefekten erlaubt, soll<br />
hier vorgestellt werden. Es wurde konzipiert, um in einem modernen SoC unter Verwendung herkömmlicher<br />
Speichermakros eine höhere Ausbeute und eine längere Lebensdauer des Produkts<br />
erzielen zu können.<br />
Das neu entwickelte Verfahren basiert<br />
auf einer Abbildung von logischen<br />
Adressen auf physikalische Adressen,<br />
bei der entsprechend Abbildung 5-4<br />
defekte Bereiche übersprungen werden,<br />
so dass ein einfach zusammenhängender<br />
logischer Adressraum entsteht, der<br />
frei von Defekten ist. Je nach Anzahl<br />
der zu erwartenden Fehler ist der entstehende<br />
Speicherbereich geringfügig<br />
kleiner als der physikalische Speicher.<br />
Der Verlust kann fest oder variabel<br />
gehalten werden, liegt typischerweise<br />
im Bereich von 1% der Gesamtgröße<br />
und kann bei der Programmierung des<br />
SoCs berücksichtigt werden.<br />
Realisiert wird die Abbildung (mapping)<br />
über ein kleines RAM, welches<br />
gemäß Abbildung 5-5 logische Adressen<br />
auf physikalische Adressen<br />
umsetzt. Hierbei wird auf Basis von<br />
Sektoradressen gearbeitet, um dem<br />
Umstand gerecht zu werden, dass in<br />
einem Flash nur ganze Sektoren (hier:<br />
256 Worte) gelöscht werden können.<br />
Die sektorweise Abbildung erlaubt darüber<br />
hinaus die Verwendung eines kleinen,<br />
sehr schnellen RAMs zur<br />
Adressumsetzung.<br />
physikalischer Adressraum<br />
Abbildung<br />
zusammenhängender<br />
logischer Adressraum<br />
ohne Defekte<br />
Abbildung 5-4: Ein zusammenhängender Speicherbereich<br />
ergibt sich durch ein Ausmaskieren schadhafter Speicherstellen.<br />
logische<br />
Sektoradresse<br />
physikalische<br />
Sektoradresse<br />
mapping<br />
RAM<br />
1024x10<br />
A[17:8]<br />
Flash 256k*16<br />
1024 Sektoren<br />
zu 256x16<br />
D[15:0]<br />
Abbildung 5-5: Die variable Umordnung der Adressen kann<br />
über ein Mapping-RAM realisiert werden.<br />
Wenn das Verfahren zur Fehlermaskierung in RAMs eingesetzt wird, kann bei jedem Systemstart<br />
ein Speichertest und die Berechnung der Umsetzungstabelle durchgeführt werden. Wird es auf<br />
ein Flash angewendet, sollte der Inhalt des Mapping-RAMs parallel auch im Flash abgelegt und<br />
beim Systemstart in dieses RAM kopiert werden, da anderenfalls notwendige Informationen über<br />
A[7:0]
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 5.1<br />
Seite 80<br />
den Zusammenhang von Teilen des Programmspeichers bei einem Spannungsausfall verloren<br />
gehen. Diesen Kopiervorgang kann die CPU ebenso wie die Berechnungen der Tabellen selbst<br />
ausführen.<br />
Das bis hierher vorgestellte Konzept ist bereits gut auf den Flash-Programmspeicher in einem<br />
SoC anwendbar. In dem SoC, für welches das Konzept entwickelt wurde, gab es allerdings noch<br />
zusätzliche Performance-Anforderungen an den Flash-Datenspeicher. Dieser sollte zum Teil als<br />
„Silicon Disk“ eingesetzt werden. Da die Programmierung eines Flashs äußerst langsam erfolgt –<br />
die Schreibzeit pro Wort lag bei 40μs, die Lesezugriffszeit bei 40ns – sollte aus Performancegründen<br />
ein Cache-System zum Beschreiben des Flashs konstruiert werden. Außerdem musste<br />
das Problem von zur Laufzeit entstehenden Defekten berücksichtigt werden, da einige Bereiche,<br />
insbesondere die FAT (file allocation table), sehr oft beschrieben werden sollten.<br />
Ein geeignetes Systemkonzept ist in<br />
Abbildung 5-6 dargestellt. Es basiert im<br />
wesentlichen auf zwei kleinen RAMs,<br />
die als Sektor-Cache eingesetzt werden.<br />
Beim Schreiben eines Sektors im Flash<br />
werden die Daten zunächst in einem der<br />
Cache-RAMs zwischengespeichert.<br />
Dieser Schreibvorgang kann <strong>mit</strong> minimaler<br />
Zugriffszeit erfolgen.<br />
Parallel dazu kann im Hintergrund der<br />
Inhalt eines anderen Sektors aus dem<br />
zweiten Cache in das Flash programmiert<br />
werden. Ein Controller verifiziert<br />
nach der Programmierung jedes Sektors<br />
dessen Inhalt, um im Fehlerfall gegebenenfalls<br />
das mapping-RAM umzukonfigurieren,<br />
den defekten Sektor so durch<br />
einen neuen zu ersetzen und die noch<br />
im Cache gespeicherten Daten in einen fehlerfreien Ersatzbereich zu schreiben. Ein Vergleich der<br />
Schreib- und Lesezeiten auf das Flash ergibt, dass die Verifikation der programmierten Daten die<br />
Gesamtschreibzeit nur um ca. 0,1% verlängert.<br />
Die Vor- und Nachteile des Verfahrens sollen im Folgenden zusammengefasst werden:<br />
Vorteile:<br />
mapping<br />
RAM<br />
1024x10<br />
A[17:8]<br />
Flash 256k*16<br />
1024 Sektoren<br />
zu 256x16<br />
D[15:0]<br />
Abbildung 5-6: Cache-System zum beschleunigten Schreiben<br />
von Flash-Sektoren <strong>mit</strong> Schreibverifikation und Ausmaskierung<br />
defekter Sektoren zur Laufzeit<br />
● Es ist möglich, Defekte zu Beginn und während der Laufzeit zu erkennen und zu reparieren<br />
und so die Ausbeute und Lebensdauer des SoCs erheblich zu steigern.<br />
● Auf einen kostenintensiven Burn-In kann daher verzichtet werden.<br />
● Auch beim Produktionstest kann teure Zeit am IC-Tester gespart werden, da der Endtest<br />
des Speichers im System erfolgt.<br />
● Es entsteht ein zusammenhängender Speicherbereich, ohne dass die Software defekte<br />
Sektoren verwalten muss.<br />
● Die Performance bei Schreibzugriffen auf das Flash wird stark erhöht (bis Faktor 1000<br />
beim Schreiben eines einzelnen Sektors), und die CPU wird entlastet.<br />
● Das Prinzip ist auch auf Speicher ohne integriertes Redundanzkonzept anwendbar und<br />
erfordert keine Fuse-Technologie zur Speicherung der Mapping-Daten.<br />
A[7:0]<br />
Sektor-<br />
Cache<br />
256x16<br />
Controller<br />
Sektor-<br />
Cache<br />
256x16<br />
D[15:0]
Nachteile:<br />
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 5.1<br />
Seite 81<br />
● Der entstehende Speicherbereich ist geringfügig (1%) kleiner als die Speichermakros.<br />
Ein nutzbarer Speicherbereich von genau 2 n Bit lässt sich nicht erzielen.<br />
● Die Zugriffszeit auf den Speicher wird vergrößert:<br />
bei Flash um ca. 2,5% (40ns Flash-Zugriffszeit, 1ns Zugriffszeit des mapping-RAMs),<br />
bei RAM um ca. 25% (4ns RAM-Zugriffszeit, 1ns Zugriffszeit des mapping-RAMs).<br />
● Es werden zusätzliche Logik und drei kleine RAMs benötigt, was im konzipierten<br />
System ca. 1% der Speicherfläche ausmachte.<br />
Das Überwiegen der Vorteile und die stark zunehmende Häufigkeit von SoC-Integrationen sprechen<br />
dafür, dass sich solche und ähnliche Verfahren der Selbstreparatur von Speichern bei hochkomplexen<br />
ASICs immer mehr durchsetzen werden.<br />
5.1.3 Selbsttest und digitale Kalibrierung von Analogfunktionen<br />
Neben Speichern erfordern auch alle analogen Schaltungsteile eine Sonderbehandlung beim Produktionstest.<br />
In diesem Abschnitt soll auf die Kombination hochkomplexer SoCs <strong>mit</strong> Analogfunktionen<br />
eingegangen werden, die einerseits besondere Probleme <strong>mit</strong> sich bringt, in der sich<br />
aber gleichzeitig auch Chancen für neue Test- und Kalibrierungsverfahren ergeben.<br />
Die Testproblematik von SoCs <strong>mit</strong> Analogfunktionen ergibt sich dabei nicht, wie man vermuten<br />
könnte, aus einer gesteigerten Komplexität der analogen Funktionsblöcke. Diese ist durch die<br />
Anzahl der ohne Schwingneigungen schachtelbaren Rückkopplungen sowie durch den Signal-<br />
Rausch-Abstand bei sequentiell aneinandergefügten Schaltungsteilen begrenzt und hat in den<br />
vergangenen Jahren kaum noch zugenommen. In Kombinationen <strong>mit</strong> digitalen Schaltungsteilen<br />
ist die Komplexität der Analogfunktionen sogar rückläufig, da der Trend immer mehr dahin geht,<br />
Analogsignale sofort bzw. nach einer Vorverstärkung und Filterung in digitale Größen zu wandeln<br />
und diese rein digital weiterzuverarbeiten („The world is going digital“).<br />
Die typischen, in SoCs verbleibenden analogen Funktionsblöcke sind daher A/D- und D/A-<br />
Wandler, Vorverstärker, analoge Filter, Spannungswandler, Referenzspannungsquellen sowie die<br />
physikalischen Interfaces von Schnittstellen, welche Leitungstreiber, Empfangsverstärker und<br />
Komparatoren enthalten. Zusätzlich werden analoge PLLs eingesetzt, um rein digitale Taktsignale<br />
zu vervielfachen oder ihre Phasenlage zu beeinflussen.<br />
Obwohl derartige Blöcke oft recht einfach modular zusammengeschaltet werden können und<br />
separat testbar sein sollten, stellen sie beim Produktionstest eines SoCs insofern ein Problem dar,<br />
als bei gängigen IC-Testern heutzutage noch eine Einteilung in zwei Gruppen zu beobachten ist:<br />
Ein typischer Tester verfügt entweder über eine hohe Anzahl digitaler I/Os und einen tiefen Patternspeicher,<br />
was ihn zum optimalen Digitaltester für SoCs macht, oder über präzise analoge<br />
Messkanäle. Eine Kombination beider Eigenschaften sollte bei modular aufgebauten IC-Testern<br />
zwar ohne weiteres möglich sein, ist aber in der Praxis noch zu selten anzutreffen.<br />
In vielen der Fälle, in denen der IC-Tester nicht die nötige Präzision bietet, um die Analogfunktionen<br />
zu testen, oder keine ausreichenden Analysefunktionen beherrscht, um die Qualität der<br />
analogen Module angemessen bewerten zu können, kann die in einem SoC integrierte CPU eingesetzt<br />
werden, um diese Aufgaben zu unterstützen oder sogar weitgehend unabhängig vom<br />
Tester einen autonomen Selbsttest der Analogfunktionen durchzuführen.
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 5.1<br />
Seite 82<br />
Eine notwendige Bedingung für den Test analoger Schaltungsteile ist trivialerweise ein Zugang<br />
zu allen wesentlichen Anschlüssen dieser Module. Typischerweise sind z. B. bei A/D- und D/A-<br />
Wandlern die analogen Ein- bzw. Ausgänge von außen zugänglich, während die digitalen Ausund<br />
Eingänge im ASIC von der CPU aus observiert bzw. kontrolliert werden können. Im Falle<br />
eines Tests vom IC-Tester aus bedeutet dies, dass diese digitalen Busse in einem Testmodus nach<br />
außen geführt werden müssen.<br />
Bei einem Selbsttest durch die CPU kann auf den Einbau dieser Testlogik verzichtet werden.<br />
Stattdessen muss für die CPU eine Möglichkeit geschaffen werden, Analogsignale präzise zu<br />
messen oder zu generieren, um das geschilderte Problem zu umgehen, dass typische digitale IC-<br />
Tester dies nur selten beherrschen. Im Umfeld des zu testenden ASICs müssen daher hochpräzise<br />
Wandler und Spannungsreferenzen untergebracht werden, <strong>mit</strong> denen die ASIC-internen Analogblöcke<br />
vermessen werden können.<br />
Bei einem IC-Tester bietet sich hierfür das Load Board an. Diese Platine stellt einen Adapter zwischen<br />
IC-Tester und ASIC dar, wird von unten <strong>mit</strong> Nadeln vom Tester kontaktiert und ist auf der<br />
Oberseite <strong>mit</strong> einem Testsockel zur Aufnahme der ASICs bestückt. Insbesondere beim Test von<br />
Mixed-Signal-ASICs wird oft ein individuelles Load Board für jedes zu testende Produkt entwikkelt.<br />
Es ist dabei ohne weiteres möglich, die benötigten Wandler und Referenzen im Umfeld des<br />
Testsockels unterzubringen.<br />
Dabei sind zwei Konzepte denkbar: Zum einen kann der Tester die Digitalseite der externen<br />
Wandler kontrollieren bzw. observieren. Auf diese Weise wird aus einem reinen Digitaltester ein<br />
Mixed-Signal-Tester <strong>mit</strong> speziell auf das ASIC zugeschnittenen Analogfunktionen; die im ASIC<br />
integrierte CPU wird dabei nur in geringem Maße zur Unterstützung des Tests eingesetzt. Zum<br />
anderen kann aber auch das ASIC über externe Datenbusse oder I/O-Leitungen die externen<br />
Wandler ansprechen. Dieses Konzept erlaubt einen vollständigen Selbsttest der analogen Schaltungsteile<br />
vom ASIC aus.<br />
Ein solcher Selbsttest<br />
ist dabei auch völlig<br />
autonom ohne Einsatz<br />
eines IC-<br />
Testers möglich. So<br />
zeigt Abbildung 5-7<br />
eine Testplatine, die<br />
für den Test von<br />
Modulen zur Leistungsmessung<br />
von<br />
M. Gatzmann entwickelt<br />
wurde. Die<br />
BGA-Module wurden<br />
unter Verwendung<br />
eines analogen<br />
und eines digitalen<br />
Chips [A-13], [A-14]<br />
assembliert, die<br />
zuvor separat am IC-<br />
Abbildung 5-7: Testplatine für den autonomen Selbsttest eines Multichip-Mixed-<br />
Signal-BGA-Moduls<br />
Tester getestet wurden. Ein detaillierter Endtest der Analogfunktionen erfolgte jedoch erst auf<br />
Modulebene, um die Intelligenz des Digitalchips <strong>mit</strong> integrierter ARM7-RISC-CPU für die Qualifizierung<br />
der analogen Komponenten im anderen Chip nutzen zu können. Dazu wurde, ähnlich<br />
wie bei der im letzten Abschnitt vorgestellten Testplatine, ein Testprogramm entwickelt, in Flash-
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 5.1<br />
Seite 83<br />
Bausteine gebrannt und beim Test von der integrierten CPU ausgeführt. Allerdings führt der Analog-Selbsttest<br />
in diesem Fall noch wesentlich weiter als der zuvor beschriebene Speichertest: Es<br />
werden von der CPU aus die Kennlinien von A/D- und D/A-Wandlern durchfahren, um durch<br />
Anwendung mathematischer Algorithmen aus den Messergebnissen präzise Aussagen zu Steigung,<br />
Offset, Stetigkeit und Nichtlinearitäten der Wandler zu gewinnen. Dabei wird der interne<br />
A/D-Wandler qualifiziert, indem ein auf der Testplatine befindlicher, hochpräziser D/A-Wandler<br />
von der CPU aus als Signalgenerator angesteuert wird, während die internen 10-Bit-D/A-Wandler<br />
vom internen 12-Bit-A/D-Wandler aus vermessen werden. Hierzu werden auf der Testplatine<br />
externe Verbindungen von Analogausgängen zu Analogeingängen geschaltet.<br />
Nach Ausführung der Tests über<strong>mit</strong>telt die CPU über eine im Digitalchip integrierte serielle<br />
Schnittstelle die detaillierten Messergebnisse zu einem PC, wo sogar die Kennlinienkurven grafisch<br />
dargestellt werden können.<br />
Es ist allerdings anzumerken, dass derartige Testverfahren den Test am IC-Tester nicht vollkommen<br />
ersetzen können. Verschiedene Parameter wie z. B. die Eingangs-Leckströme, die Stromaufnahme<br />
der Versorgungsspannung etc. sollten weiterhin von einem IC-Tester kontrolliert werden.<br />
Hierzu ist aber auch ein reiner Digitaltester in der Lage, so dass die vorgestellten Verfahren die<br />
Testkosten enorm reduzieren können. Dabei sind vielfältige Kombinationsmöglichkeiten von<br />
Testverfahren denkbar, die vom IC-Tester, von der CPU oder interaktiv unter Verwendung beider<br />
Systeme ausgeführt werden. So können z. B. die genannten elektrischen Parameter und die digitale<br />
Logik zunächst vom Tester geprüft werden, der daraufhin ein Programm zur Durchführung<br />
von Analogtests in den Speicher des SoCs überträgt und dieses startet, um dann auf eine Rückmeldung<br />
des Ergebnisses zu warten. Während der Testzeit des Analogteils kann der Tester evtl.<br />
noch interaktiv Signale anlegen oder messen. Dabei ist die komplexe Auswertung der Ergebnisse<br />
über eine integrierte CPU oft sogar einfacher auszuführen als unter Benutzung eines<br />
Digitaltesters, dessen Fähigkeiten in der Regel auf einen reinen Parameter- und Patternvergleich<br />
beschränkt sind.<br />
Die Möglichkeiten der Generierung und Messung von Analogsignalen sind bei Verwendung von<br />
externen A/D- und D/A-Wandlern durch deren Präzision und insbesondere durch ihr zeitliches<br />
Auflösungsvermögen beschränkt. Daher eignen sich die bisher beschriebenen Verfahren primär<br />
für alle statischen und niederfrequenten Messungen. Falls in einem SoC in geringem Umfang<br />
auch hochfrequente Parameter wie z. B. die Flankensteilheit von Ausgangssignalen gemessen<br />
werden sollen, reicht die Abtastfrequenz der externen Wandler hierfür oft nicht aus. In diesem<br />
Fall ist es jedoch denkbar, spezialisierte Messgeräte zu verwenden, die in der Lage sind, die Messergebnisse<br />
digital auszugeben. So verfügen moderne Geräte von Hewlett-Packard über eine<br />
IEEE-488-Schnittstelle, die eine Steuerung und Messwertabfrage erlaubt. Sie werden üblicherweise<br />
in Kombinationen <strong>mit</strong> IC-Testern eingesetzt, können im Falle eines CPU-basierten Tests<br />
aber durchaus auch von der CPU in einem SoC angesteuert werden.<br />
Mit den soeben dargestellten Verfahren kann das Problem des Tests und der Qualifizierung von<br />
Analogfunktionen in komplexen SoCs gelöst werden. Ein weiteres Problem ergibt sich jedoch<br />
aus der Kombination digitaler und analoger Schaltungsteile in der gleichen Technologie.<br />
Wenn die Komplexität des Digitalteils aus wirtschaftlichen Gründen die Integration in einer<br />
Deep-Submicron-Technologie <strong>mit</strong> hoher Gatterdichte erfordert, ist das <strong>mit</strong> Einschränkungen,<br />
Mehraufwendungen und neuen Risiken im Analogteil verbunden.<br />
Reine Analogchips oder Mixed-Signal-Designs <strong>mit</strong> geringer Komplexität des Digitalteils werden<br />
zumeist in Technologien im Bereich von 0,8μm gefertigt. Diese sind schon so lange verfügbar,<br />
dass oft bereits eine Vielzahl von qualifizierten Analog-Macros zur Verfügung steht, die in eini-
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 5.1<br />
Seite 84<br />
gen Anwendungen einen Schaltungsentwurf nach dem Baukastenprinzip erlauben. Bei der Entwicklung<br />
dieser Macros ist eine erhebliche Design-Kapazität investiert worden, und viele der<br />
Module wurden in mehreren Iterationen, also <strong>mit</strong> Redesigns, entwickelt. Dies gilt insbesondere<br />
für Module, deren Eigenschaften von schlecht modellierbaren Technologieparametern abhängen;<br />
ein Standardbeispiel ist eine Referenzspannungsquelle (Bandgap), bei der allein durch Simulationen<br />
kaum im ersten Versuch die gewünschten Eigenschaften erzielt werden können.<br />
Eine solche iterative Vorgehensweise ist in den älteren Technologien auch noch ohne weiteres<br />
tolerierbar. Bei neu entwickelten Schaltungsteilen <strong>mit</strong> kritischen Parametern kann sogar zu<br />
Beginn der Entwicklung ein eigener Technologiedurchlauf zur Fertigung dieser Module, z. B. als<br />
kostensparender MPW-Run, in Auftrag gegeben werden, um bis zur Abgabe des Gesamtchips die<br />
kritischen Schaltungsteile vermessen und ggf. korrigieren zu können.<br />
Wenn hingegen eine hochmoderne Deep-Submicron-Technologie zur Realisierung eines SoCs<br />
gewählt wurde, stehen in aller Regel noch kaum Analog-Macros zur Verfügung, da die Halbleiterhersteller<br />
sich zunächst auf die Erstellung der digitalen Standardzellbibliotheken konzentrieren<br />
und die aufwändigen Analog-Entwicklungen – wenn überhaupt – erst deutlich später<br />
durchführen. Der ASIC-Designer ist daher oft gezwungen, die analogen Schaltungsblöcke als<br />
Full-custom-Designs selbst zu entwickeln. Gleichzeitig ist ihm die Möglichkeit einer iterativen<br />
Vorgehensweise aufgrund der extrem hohen NRE-Kosten verwehrt. Dies bedeutet neben dem<br />
stark vermehrten Entwicklungsaufwand auch ein hohes Risiko bei der Kombination von SoCs<br />
<strong>mit</strong> Analogfunktionen.<br />
Gleichzeitig ergeben sich in Deep-Submicron-Technologien neue technologisch bedingte Probleme<br />
im Analogbereich. Zum einen handelt es sich fast ausnahmslos um reine CMOS-Prozesse,<br />
so dass Bipolar-Transistoren nur in parasitärer Form <strong>mit</strong> ungünstigen elektrischen Eigenschaften<br />
zur Verfügung stehen. Dies erschwert beispielsweise die Konstruktion einer präzisen Bandgap-<br />
Referenz zusätzlich. Zum anderen wird in Deep-Submicron-Prozessen bei der Technologiesteuerung<br />
vorrangig nur auf die Geschwindigkeit der digitalen Logik geachtet, während die hierfür<br />
unbedeutenden Parameter evtl. nicht exakt justiert werden. Diese können aber für die Arbeitspunkte<br />
und Parameter der Analogblöcke durchaus relevant sein. Auch die schlecht zu modellierende<br />
Substratsteuerung der Transistoren hat in modernen Prozessen wegen der geringen<br />
Schwellspannung einen zunehmenden Einfluss auf die Arbeitspunkte der Analogmodule. All<br />
dies erfordert wiederum einen höheren Entwicklungsaufwand, um eine ausreichende Toleranz<br />
gegenüber Parameterstreuungen zu erzielen.<br />
Weitere Probleme ergeben sich aus den in Deep-Submicron-Technologien stark reduzierten<br />
Versorgungsspannungen (vgl. Abbildung 3-11 auf Seite 18). Auch wenn im Analogteil wie im<br />
I/O-Bereich durch spezielle Technologieschritte dickere Oxide erzeugt werden können, die etwas<br />
höhere Spannungen als im Digitalteil zulassen, so ist doch <strong>mit</strong> einer starken Reduktion der Versorgungsspannung<br />
von 5V auf ca. 1,5V bis 2V zu rechnen. Dies erfordert zum Teil andere Schaltungsprinzipien,<br />
da z. B. eine Kaskadierung von Transistoren nur noch eingeschränkt möglich ist.<br />
Gleichzeitig muss die Amplitude der Analogsignale so groß wie möglich gehalten werden, um<br />
trotz der allgegenwärtigen Störeinstreuungen vom Digitalteil einen akzeptablen Signal-Rausch-<br />
Abstand und im Bereich der analogen I/Os geeignete Pegel zu erzielen. Der große Signalhub<br />
führt dabei zwangsläufig zu Nichtlinearitäten, insbesondere dann, wenn <strong>mit</strong> Rail-to-Rail-Verstärkern<br />
gearbeitet werden muss.<br />
Die resultierende Anforderung, trotz deutlich ungünstigerer technologischer Bedingungen und<br />
meist ohne Zugriffsmöglichkeit auf fertige Analog-Macros in Deep-Submicron-Technologien<br />
analoge Schaltungsblöcke „first time right“ entwickeln zu müssen, lässt sich <strong>mit</strong> konventionellen<br />
Designmethoden kaum noch erfüllen. Da die zu erwartenden Fehler im Analogbereich aber nur<br />
selten prinzipielle Fehler sind, sondern oft „nur“ Abweichungen von geforderten Parametern wie
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 5.1<br />
Seite 85<br />
Offsets, Verstärkungsfehler, Nichtlinearitäten etc. darstellen, ist es in vielen Fällen möglich, derartige<br />
Unzulänglichkeiten durch Kalibrierverfahren auszugleichen, was hier ausführlich<br />
beschrieben werden soll.<br />
Während eine solche Kalibrierung früher oft über einen Laser-Abgleich von Widerständen<br />
erfolgte, stehen heute Technologien zur Verfügung, in denen ein rein elektronischer Abgleich<br />
problemlos möglich ist. Eine zentrale Rolle spielen dabei MOSFETs, die als Schalter eingesetzt<br />
werden und an kritischen Stellen Schaltungsparameter justieren. So können z. B. zu Transistoren,<br />
die als Stromquelle (Stromspiegel) dienen, weitere, kleinere Transistoren bei Bedarf parallel<br />
geschaltet werden, um den Stromwert zu ändern; oder zu Widerständen können entsprechend<br />
weitere parallel geschaltet werden, um den Leitwert zu beeinflussen.<br />
Die Ansteuerung der Schalter,<br />
die diese Parallelzweige<br />
aktivieren, erfolgt dabei rein<br />
digital. Für einen feinen<br />
Abgleich empfiehlt es sich<br />
daher, mehrere, in Zweierpotenzen<br />
abgestufte Elemente<br />
zur Parallelschaltung<br />
zu verwenden, die über ein<br />
digitales Steuerwort entsprechender<br />
Breite getrennt aktiviert<br />
werden können (vgl.<br />
control<br />
W0 ⁄ L<br />
Abbildung 5-8). Die Steuerworte müssen dabei in einer Kalibrierungsphase, z. B. beim Produktionstest,<br />
er<strong>mit</strong>telt und in einem (mindestens) einmal programmierbaren Speicher abgelegt werden.<br />
Hierfür stehen neben gewöhnlichen Metall-Schmelzsicherungen („Fuses“) in vielen CMOS-<br />
Prozessen kleine Arrays von Zenerdioden zur Verfügung, die als einmal programmierbare „Antifuses“<br />
eingesetzt werden können.<br />
Während über einen solchen Eingriff<br />
in analoge Schaltungsparameter Offsets<br />
und Verstärkungsfehler recht einfach<br />
eliminiert werden können, ist ein<br />
Ausgleich von Nichtlinearitäten auf<br />
diese Weise <strong>mit</strong> einem erheblichen<br />
Aufwand verbunden. In Systemen<br />
<strong>mit</strong> einer digitalen Weiterverarbeitung<br />
der Signale empfiehlt es sich<br />
daher, stattdessen <strong>mit</strong>tels arithmetischer<br />
Operationen die vom A/D-<br />
Wandler aufgenommenen digitalen<br />
Messwerte zu konditionieren.<br />
Ein nach diesem Prinzip arbeitendes<br />
Sensor-ASIC [A-15], an dessen Konzeption<br />
und Umsetzung der Verfasser<br />
I out<br />
W0 ⁄ L<br />
Abbildung 5-8: Schaltbild einer Stromquelle, die über eine MOS-Schaltertechnik<br />
in 1%-Schritten um bis zu 7% getrimmt werden kann<br />
Sensor Bridge<br />
Temperature<br />
Resistor<br />
U bias<br />
<strong>mit</strong>wirken konnte, ist in Abbildung 5-9 zu sehen. Ein <strong>mit</strong> dem ASIC verbundener Sensor, z. B.<br />
ein Silizium-Drucksensor, liefert Druck- und Temperaturmesswerte, die <strong>mit</strong> einem A/D-Wandler<br />
aufgenommen und digital linearisiert werden. Dabei werden in einem Arbeitsgang sowohl die<br />
Offsets, Verstärkungsfehler und Nichtlinearitäten der analogen Eingangsstufen des ASICs und<br />
[2]<br />
Current<br />
Reference<br />
Signal Path<br />
Watch−<br />
dog<br />
Bandgap<br />
Reference<br />
Oscillator<br />
ADC<br />
10 Bit<br />
Temperature Path<br />
Power<br />
ON<br />
Reset<br />
4W<br />
---------- 0 ⁄ L<br />
100<br />
[1]<br />
Digital Signal Conditioning<br />
signal<br />
signal<br />
368 Bit Serial System Memory (One Time Programmable)<br />
T<br />
T<br />
P<br />
P<br />
2W<br />
---------- 0 ⁄ L<br />
100<br />
DAC<br />
10 Bit<br />
DAC<br />
10 Bit<br />
Serial<br />
Interface<br />
2<br />
I C<br />
Analog<br />
Outputs<br />
[0]<br />
SDA<br />
SCL<br />
Digital Supply<br />
Analog Supply<br />
W<br />
-------- 0 ⁄ L<br />
100<br />
V Temperature<br />
Output Voltage<br />
V<br />
PC<br />
Pressure<br />
Output Voltage<br />
Abbildung 5-9: In einem Sensor-ASIC werden Druck- und Temperaturwerte<br />
in digitale Größen gewandelt, rechnerisch linearisiert<br />
und analog und digital ausgegeben (Bild nach [39]).
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 5.1<br />
Seite 86<br />
des A/D-Wandlers als auch die nicht-idealen Eigenschaften des Sensors ausgeglichen, zu denen<br />
auch eine Abhängigkeit der Druck-Übertragungskennlinie von der Temperatur gehört.<br />
Um dies zu erreichen, wird der digitale Messwert der Temperatur T mess zunächst über ein Polynom<br />
dritten Grades in einen linearisierten Temperaturwert T lin überführt:<br />
T lin<br />
3<br />
d3Tmess (GL 5-1)<br />
Anschließend werden unter Verwendung des linearisierten Temperaturwertes und des Druckmesswertes<br />
p mess über ein zweidimensionales Polynom Nichtlinearitäten und Abhängigkeiten<br />
des Druckmesswertes von der Temperatur kompensiert, wobei auch Steilheit und Offset der<br />
Übertragungskennlinie beeinflusst werden können:<br />
p lin<br />
(GL 5-2)<br />
Alle Koeffizienten der Polynome werden während eines Kalibrierungsvorganges auf eine möglichst<br />
lineare und temperaturunabhängige Sensorcharakteristik hin optimiert und zusammen <strong>mit</strong><br />
den Einstellungen der ebenfalls programmierbaren Stromquellen und Eingangsverstärker in<br />
einem PROM auf dem Chip gespeichert, das über Zenerdioden realisiert wurde. Indem der Sensor<br />
und das ASIC in ein Gehäuse gebondet (vgl. Abbildung 5-10) und gemeinsam kalibriert werden,<br />
entsteht eine in sich abgeglichene, untrennbare Einheit: ein Drucksensor, dessen<br />
Nichtlinearität über den gesamten Messbereich von ±5% in der Praxis auf unter ±0,2% gesenkt<br />
werden konnte.<br />
Während bei diesem ASIC die<br />
arithmetische Linearisierung über<br />
ein Hardware-Rechenwerk und<br />
Zustandsmaschinen realisiert<br />
wurde, kann in einem modernen<br />
SoC <strong>mit</strong> Analogfunktionen die<br />
CPU diese Aufgaben übernehmen.<br />
Falls auf dem ASIC ein Flash vorhanden<br />
ist, kann dieses sogar für die<br />
Speicherung der Kalibrierungsdaten<br />
und Koeffizienten verwendet<br />
werden, was die Notwendigkeit<br />
zusätzlicher Fuse- oder Zenerdioden-Speicher<br />
eliminiert. Bei der<br />
arithmetischen Linearisierung kann<br />
die CPU die Werte dabei aus dem<br />
Flash lesen und direkt in die Rech-<br />
=<br />
2<br />
+ d2Tmess + d1Tmess + d0 3 2<br />
= a3pmess + a2pmess + a1pmess + a0 3 2<br />
+ ( b3pmess + b2pmess + b1pmess + b0)T lin<br />
3 2<br />
2<br />
+ ( c3pmess + c2pmess + c1pmess + c0)T lin<br />
Abbildung 5-10: Drucksensor und ASIC bilden eine kalibrierte Einheit<br />
(Bild: [39]).<br />
nungen einbeziehen. Bei der Beeinflussung analoger Parameter <strong>mit</strong>tels der zuvor beschriebenen<br />
Schaltertechniken muss die CPU nach dem Einschalten der Versorgungsspannung die Informationen<br />
über die Schaltzustände aus dem Flash lesen und in Register schreiben, deren Ausgänge<br />
die Schalter steuern.<br />
Wenn in einem System, das nicht als Single-Chip-Integration realisiert werden konnte, nur ein<br />
ASIC-externes Flash zur Verfügung steht, können die beschriebenen Verfahren des Analog-<br />
Selbsttests im System verwendet werden, um das Problem zu umgehen, dass bei einem Test am
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 5.1<br />
Seite 87<br />
IC-Tester die gewonnenen Kalibrierungsdaten in ein Flash übertragen werden müssen, das zu<br />
diesem Zeitpunkt dem ASIC noch nicht fest zugeordnet ist.<br />
Unabhängig von der Speichertechnologie kann durch die dargestellten Verfahren die Abhängigkeit<br />
der Schaltungsparameter von Technologiestreuungen eliminiert werden und gleichzeitig das<br />
Risiko minimiert werden, dass schlecht modellierte Simulationsparameter beim Schaltungsentwurf<br />
zu Abweichungen von den gewünschten Arbeitspunkten führen. Es wird so<strong>mit</strong> zum einen<br />
das Designrisiko reduziert und zum anderen die Ausbeute gesteigert, da ASICs ohne Kalibriermöglichkeiten<br />
unbrauchbar werden, wenn die Parameterstreuungen die vom Design her zulässigen,<br />
evtl. sehr engen Grenzen übersteigen.<br />
Darüber hinaus kann der Entwicklungsaufwand analoger Schaltungen sogar verringert werden.<br />
Anstatt beispielsweise einen Offset in einer Schaltung <strong>mit</strong>tels aufwändiger Konstruktionsprinzipien<br />
von vornherein zu vermeiden, wie dies <strong>mit</strong> Chopper-Operationsverstärkern möglich<br />
wäre, kann der Offset viel eleganter im Nachhinein von der CPU herausgerechnet werden. Dies<br />
vereinfacht nicht nur die Analogschaltungen, sondern kann aufgrund der einfacheren Konstruktionen<br />
sogar die Eigenschaften der Schaltungen verbessern. Insbesondere können auch die<br />
Eigenschaften von A/D- und D/A-Wandlern im System optimiert werden.
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 />
5.2 Strukturwandel in der Systemarchitektur<br />
5.2.1 Zukünftige Aufbau- und Verbindungstechniken<br />
Kapitel 5.2<br />
Seite 88<br />
Das Wachstum der <strong>Mikroelektronik</strong>, insbesondere die Zunahme der Busbreiten, führt zu einem<br />
Bedarf an IC-Gehäusen <strong>mit</strong> immer höherer Anschlusszahl (vgl. Abbildung 3-6 auf Seite 16). Bis<br />
in die 80er Jahre hielt man dabei überwiegend an DIL-Gehäusen im 2,54mm-Raster fest, deren<br />
größter Vertreter das 82mm lange DIL64-Gehäuse war (vgl. Abbildung 2-4 auf Seite 8).<br />
Die preiswerte Gehäuseserie der 90er Jahre war die Familie quadratischer, oberflächenmontierbarer<br />
PQFP-Gehäuse, die über eine stetige Verringerung des Pinabstandes (pin pitch) auf bis zu<br />
0,5mm Anschlusszahlen von bis zu 240 Pins bei Außenabmessungen von 34,6mm × 34,6mm<br />
erlaubten und deren Vertreter bis 208 Pins noch heute die preisgünstigste Gehäuselösung darstellen.<br />
Einer weiteren, signifikanten Vergrößerung der Gehäuseabmessungen stehen die Planaritätsanforderungen<br />
an die Leiterplatte sowie die schlechteren elektrischen Eigenschaften größerer<br />
Gehäuse entgegen, und eine weitere Reduktion des Pinabstandes ist mangels geeigneter SMD-<br />
Löttechniken derzeit nicht möglich. Daher scheiden peripher bedrahtete Gehäuse bei Pinzahlen<br />
deutlich über 300 Pins heute aus; es muss zu Gehäusen <strong>mit</strong> flächig angeordneten Anschlüssen<br />
(Area Arrays) übergegangen werden.<br />
Hier standen lange Zeit nur Pin Grid Arrays (PGAs) zur Verfügung, deren Pinabstand von<br />
2,54mm über den Zwischenschritt einer versetzten Anordnung auf heute 1,27mm im High-End-<br />
Bereich reduziert wurde. Die enormen Anforderungen an die Sockelkontakte und die Leiterplattentechnologie<br />
lassen hier bis auf weiteres keine weitere Reduktion mehr zu. Mit modernen<br />
PGAs lassen sich zwar durchaus Anschlusszahlen über 500 realisieren, die Kosten für derartige<br />
Gehäuse, die in der Regel als mehrlagige Keramikgehäuse ausgeführt werden, sind aber aufgrund<br />
der aufwändigen Herstellungsverfahren enorm hoch.<br />
Eine preisgünstige Alternative<br />
stellen Ball Grid Arrays<br />
(BGAs) dar, die auch in ähnlichen<br />
Technologien gefertigt<br />
werden können wie Leiterplatten<br />
(PBGAs) und die sogar<br />
noch höhere Anschlussdichten<br />
erlauben. Anstelle von<br />
Pins wird <strong>mit</strong> Lötzinnkügelchen<br />
auf runden Pads gearbeitet,<br />
die beim Lötvorgang<br />
aufschmelzen, das BGA dabei<br />
durch ihre Oberflächenspannung<br />
zentrieren und die Verbindung<br />
zur Leiterplatte<br />
herstellen.<br />
Abbildung 5-11: Layoutentwurf eines BGA-Gehäuses <strong>mit</strong> 600 I/Os (innen)<br />
und einer Matrix von 25×25 Balls in einer 4-Lagen-PCB-Technologie (Originalgröße<br />
33×33mm, zum Vergleich: Ein DIL600 wäre 763mm lang.)<br />
Da bei Beginn der Entwicklung eines 3D-Grafikprozessors <strong>mit</strong> 600 Anschlüssen [A-10] im Jahr<br />
1996 weltweit noch keine geeigneten Gehäuse zu vertretbaren Kosten zur Verfügung standen,<br />
wurde damals vom Verfasser ein BGA625-Gehäuse (s. Abbildung 5-11) in einer vierlagigen Leiterplattentechnologie<br />
<strong>mit</strong> geätzten Durchkontaktierungen entworfen, das auf einer Fläche von nur<br />
33mm × 33mm über 625 Balls im 1,27mm-Raster verfügte. Aufgrund von Bedenken wegen der<br />
thermischen Performance des Gehäuses wurde das Konzept aber zugunsten eines Aluminium-<br />
BGAs verworfen, das zwischenzeitlich von Olin Interconnect Technologies angeboten wurde.
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 />
Diese Gehäuse wurden in einer neu entwickelten<br />
Technologie aus eloxierten Aluminiumplatten<br />
hergestellt, in die eine Cavity zur Aufnahme des<br />
Dies gefräst wurde und auf deren Oberfläche in<br />
einer Feinstleitertechnik <strong>mit</strong> Leiterbahnbreiten<br />
und -abständen von ca. 30μm in einer einlagigen<br />
Verdrahtung die kompletten Verbindungen von<br />
den Bondfingern zu den Ball-Pads aufgebracht<br />
wurden. In enger Zusammenarbeit <strong>mit</strong> Olin<br />
konnte dabei eine 600polige Variante der Gehäuseserie<br />
entwickelt werden (vgl. Abbildung 5-<br />
12), die <strong>mit</strong> 12 US-Dollar pro Gehäuse (bei<br />
Kleinmengen) ein optimales Preis-Leistungs-<br />
Verhältnis bot.<br />
Da sich der Die auf der gleichen Seite befindet<br />
wie die Balls („Cavity Down“), sind insbesondere<br />
die thermischen Eigenschaften des Gehäuses<br />
hervorragend, was angesichts der hohen<br />
Verlustleistung des Grafikprozessors von ca. 12<br />
Watt entscheidend war. Das Aluminium-Substrat<br />
dient dabei der Wärmeverteilung. Bereits ohne<br />
Kapitel 5.2<br />
Seite 89<br />
Kühlkörper wird über die Gehäuseoberfläche zur Luft und über die Balls zur Platine so viel Energie<br />
abgeführt, dass sich ein Wärmewiderstand von nur Θ ja = 8°C/W ohne Luftstrom ergibt. Bei<br />
Verwendung eines flächig auf die glatte Gehäuseoberseite aufgeklebten Kühlkörpers ergibt sich<br />
zu diesem ein Wärmewiderstand von lediglich Θ jc = 0,5°C/W.<br />
Auch die elektrischen Eigenschaften sind aufgrund der für die Signalleitungen verwendeten<br />
Dünnfilmtechnik sehr günstig; so ergeben sich insbesondere sehr niedrige Induktivitäten der Verbindungen<br />
innerhalb des Gehäuses, ein geringes Übersprechen der Signale, und das Aluminiumsubstrat<br />
dient gleichzeitig als Abschirmung. So eignen sich derartige BGA-Gehäuse nach<br />
Herstellerangaben (Olin, Fujitsu) für Taktfrequenzen bis 2,5GHz.<br />
BGA-Gehäuse erlauben dabei durch die flächige Anordnung der Balls extrem hohe Anschlusszahlen<br />
bei eher moderaten Anschlussdichten: Der Ball Pitch von BGAs liegt bei 1,27mm, bei<br />
Micro-BGAs derzeit zwischen 0,65mm und 1,0mm, wobei allerdings noch Steigerungen der<br />
Dichte möglich sind. BGAs <strong>mit</strong> über 2000 Anschlüssen werden heute bereits eingesetzt.<br />
Darüber hinaus erlauben BGAs äußerst flexible<br />
Lösungen, die bei Plastikgehäusen <strong>mit</strong><br />
gestanztem Lead Frame kaum möglich sind.<br />
Insbesondere Mehrchip-Module lassen sich<br />
als PBGAs fast ohne zusätzliche technologische<br />
Anforderungen realisieren. So erforderte<br />
die in Abschnitt 3.1.2 auf Seite 19 geschilderte<br />
technologische Unvereinbarkeit einer DRAMund<br />
Flash-Integration in einem konzipierten<br />
ASIC-Projekt den gemeinsamen Aufbau eines<br />
Abbildung 5-12: Aluminium-BGA-Gehäuse <strong>mit</strong> 600<br />
Anschlüssen (Originalgröße 45×45mm), hier <strong>mit</strong><br />
einem Testchip für Zuverlässigkeitsuntersuchungen<br />
Lötseite<br />
Abbildung 5-13: Studie eines 2-Chip-BGA-Gehäuses<br />
(1 ASIC und 1 SDRAM, Originalgröße 19×11mm)<br />
ASICs <strong>mit</strong> internem Flash und eines SDRAMs in einem möglichst kleinen Gehäuse. Eine geeignete<br />
Lösung als 2-Chip-PBGA, bei der beide Dies in Chip-on-Board-Technik auf ein FR4-Substrat<br />
gebondet werden, zeigt Abbildung 5-13.<br />
ASIC<br />
SDRAM
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
Ein ähnliches Beispiel zeigt<br />
Abbildung 5-14. Hier ließen<br />
sich die Analogfunktionen<br />
eines Systems zur Leistungsmessung<br />
und -regelung in Dreiphasensystemen<br />
[A-13] nicht<br />
in der gleichen Technologie<br />
integrieren wie der Digitalteil<br />
[A-14] <strong>mit</strong> einer ARM7-RISC-<br />
CPU. Daher wurde das abgebildete<br />
PBGA entwickelt, das<br />
neben den beiden Dies diverse<br />
diskrete SMD-Komponenten<br />
aus dem Umfeld des Analogchips<br />
enthält. Auf diese Weise<br />
konnte die Anzahl der Balls auf<br />
204 begrenzt werden, was die<br />
fertigungstechnischen Anforderungen<br />
an die Mutterplatine<br />
stark reduzierte.<br />
In beiden Beispielen stellt das<br />
BGA eine sinnvolle Zwischenlösung<br />
zu einem SoC dar, das<br />
derzeit noch nicht als ein Chip<br />
gefertigt werden kann.<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
Die Vorteile von BGA-Gehäusen lassen sich wie folgt zusammenfassen:<br />
Kapitel 5.2<br />
Seite 90<br />
● BGA-Gehäuse erlauben extrem hohe Anschlusszahlen bei geringen Abmessungen und<br />
moderaten Anforderungen an die Leiterplattentechnologie und die Lötprozesse.<br />
● Die thermische und elektrische Performance von BGAs ist insbesondere bei Cavitydown-BGAs<br />
unübertroffen.<br />
● BGAs sind die preiswertesten Gehäuse im High-End-Bereich.<br />
● BGAs erlauben flexible Multi-Chip-Lösungen fast ohne technologische Änderungen.<br />
Diesen Vorteilen stehen die folgenden Nachteile gegenüber:<br />
Abbildung 5-14: Multichip-BGA für die Leistungs-Messtechnik bestehend<br />
aus einem Digitalchip <strong>mit</strong> ARM7-CPU, einem Analogchip <strong>mit</strong> A/D-Wandlern<br />
sowie diskreten SMD-Komponenten (Originalgröße 30×30mm)<br />
● Eine optische Inspektion der Lötstellen oder ein Nachlöten einzelner Balls ist unmöglich<br />
– aber aufgrund des selbst zentrierenden Lötverhaltens auch selten erforderlich.<br />
● Elektrische Messungen an den Anschlüssen sind nur möglich, wenn entsprechende<br />
Durchkontaktierungen vorgesehen sind.<br />
Im High-End-Bereich bieten sich daher zur Zeit keine Alternativen zum Einsatz von BGAs.<br />
Selbst wenn sich in Zukunft die Flip-Chip-Technik stärker durchsetzen sollte, bei der nicht mehr<br />
gebondet wird, sondern die Verbindungen zum Chip <strong>mit</strong>tels direkt auf den Pads des Chips aufgebrachter<br />
Zinnkügelchen hergestellt werden, werden vermutlich weiterhin BGAs als Zwischenträger<br />
eingesetzt werden, da bei der direkten Flip-Chip-Montage von Dies auf der Hauptplatine sehr<br />
hohe Anforderungen an die Leiterplattentechnik bezüglich der Planarität und Linienbreite entstehen<br />
würden.
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 />
5.2.2 Programmierbarkeit und Konfigurierbarkeit eines „System on a Chip“<br />
Kapitel 5.2<br />
Seite 91<br />
Zu den wesentlichsten Veränderungen der Eigenschaften von ASICs in den letzten 10 Jahren<br />
zählt sicherlich ihre zunehmende Flexibilität. Während ASICs in den 80er Jahren noch durch<br />
vergleichsweise starre Funktionsabläufe gekennzeichnet waren, zeichnen sie sich heute durch<br />
vielfältige Möglichkeiten der Programmierung, Konfiguration und Parametrisierung aus, die sich<br />
in komplexen Systemen über die verschiedenen Hardware- und Software-Ebenen erstrecken.<br />
Fest parametrisierte Funktionen nach starren Algorithmen werden dabei heute fast nur noch auf<br />
der untersten Hardware-Ebene eingesetzt, wo beispielsweise die Normierung einer einfachen<br />
Schnittstelle bei manchen Teilfunktionen keinerlei Freiheiten erfordert. Bei Betrachtung des<br />
gesamten Schnittstellenmoduls wird man aber in der Regel schon diverse programmierbare Register<br />
finden, um Eigenschaften wie z. B. die Baud-Rate oder Parameter des Übertragungsprotokolls<br />
von der CPU aus konfigurieren zu können.<br />
Bei komplexeren Schnittstellen definiert deren Standard nicht nur die physikalische und logische<br />
Übertragung einzelner Datenbytes, sondern evtl. auch mehrere höhere Protokollebenen. Die Programmierbarkeit<br />
eines Systems <strong>mit</strong> integrierter CPU erlaubt es dabei, die auszuführenden Funktionen<br />
sinnvoll zwischen Hardware und Software aufzuteilen, indem alle rechenintensiven<br />
Prozesse und der Datentransport (der Performance wegen) in Hardware und alle vergleichsweise<br />
selten stattfindenden Auswertungsvorgänge (der vergrößerten Flexibilität wegen) in Software<br />
gelöst werden.<br />
So empfiehlt es sich z. B. bei Ethernet-Schnittstellen, neben der Ansteuerung des physikalischen<br />
Interfaces (Phy) und dem Datentransport auch die Adressfilterung und die Prüfsummenberechnung<br />
während der Übertragung in Hardware zu realisieren, um die CPU nicht unnötig zu belasten.<br />
Die Entscheidungsmöglichkeiten darüber, wie <strong>mit</strong> den übertragenen Datenpaketen (Frames)<br />
zu verfahren ist, sind aber bereits so komplex, dass die Behandlung ab dieser Ebene (TCP Stack)<br />
in Software erfolgen sollte.<br />
Falls Daten von einer Schnittstelle zur anderen transportiert werden sollen, ist dies nur bei niedrigen<br />
Datenraten über Kopierfunktionen der CPU sinnvoll zu lösen. Wenn eine höhere Performance<br />
gewünscht wird, sollte hier eine Hardwareunterstützung implementiert werden. Hierzu<br />
bieten sich DMA-Controller (Direct Memory Access) an, die durch die Software aktiviert werden<br />
und den Datentransfer dann selbsttätig ohne Belastung der CPU durchführen.<br />
Durch eine sinnvolle Aufteilung der Systemfunktionen zwischen Hardware und Software<br />
kann dabei ein sehr flexibles ASIC entstehen, das als universelle Plattform erst durch die eingesetzte<br />
Software (bzw. Firmware) individualisiert wird und seine systemspezifischen Funktionen<br />
und Eigenschaften erhält. Durch Erweiterungen der Software kann ein SoC dabei auch nach seiner<br />
Fertigstellung noch um weitere Funktionen ergänzt werden.<br />
Die Programmierbarkeit und Konfigurierbarkeit des Systems bietet auch für den ASIC-Designer<br />
völlig neue Möglichkeiten. Er ist nicht mehr gezwungen, sämtliche Algorithmen und Parameter<br />
noch während der Entwicklung im Detail zu fixieren, sondern kann die exakte Lösung mancher<br />
Probleme zunächst offen lassen. Es bleibt dann der Software überlassen, die korrekten Parameter<br />
einzustellen oder sogar durch Programmierung eines Registers einen von mehreren, parallel in<br />
Hardware implementierten Algorithmen auszuwählen. Dies kann beispielsweise sinnvoll sein,<br />
wenn optimale Parameter erst aus Messungen am fertig gestellten System im realen Umfeld<br />
gewonnen werden können. So wurden in einem komplexen ASIC [A-19] beim Entwurf eines<br />
DTMF-Decoders zur Erkennung von Mehrfrequenz-Wahltönen <strong>mit</strong>tels digitaler Filter alle Filterparameter<br />
und Filterkoeffizienten programmierbar gehalten, um eine nachträgliche Optimierung<br />
zu erlauben. In einem anderen ASIC [A-17] wurden diverse Parameter der Interfaces zu verwendeten<br />
IPs überall dort konfigurierbar realisiert, wo Details dieser Schnittstellen in der Dokumen-
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 5.2<br />
Seite 92<br />
tation der IPs mehrdeutig oder widersprüchlich beschrieben wurden. Dank dieser Maßnahme und<br />
einer sinnvollen Hardware-Software-Aufteilung konnte über die Software die einwandfreie<br />
Funktion des Systems sichergestellt werden, obwohl alle drei verwendeten IPs im Detail Fehler<br />
aufwiesen bzw. falsch dokumentiert waren. Selbst komplexe Datenpfade und Rechenwerke können,<br />
indem sie über einen digitalen Signalprozessor (DSP) realisiert werden, beliebig flexibel<br />
gehalten werden, so dass eine nachträgliche Änderung der Algorithmen möglich ist.<br />
Doch nicht nur die digitale Logik in einem komplexen System kann flexibel konfiguriert werden.<br />
Auch die Eigenschaften von analogen Schaltungsteilen können, wie in Abschnitt 5.1.3 erläutert<br />
wurde, digital fest kalibriert oder aber durch Registerprogrammierung zur Laufzeit beeinflusst<br />
werden, und es können sogar einige Timing-Eigenschaften der digitalen Schaltungsteile konfiguriert<br />
werden, was im Folgenden anhand eines Beispiels erläutert werden soll.<br />
In einem hochkomplexen ASIC [A-<br />
19] <strong>mit</strong> integrierter ARM9-CPU sollten<br />
Zugriffe auf das interne RAM<br />
ohne Waitstates, also innerhalb eines<br />
Taktes möglich sein. Um dies zu<br />
erreichen, musste das verwendete<br />
synchrone SRAM im Gegensatz zum<br />
überwiegenden Teil der restlichen<br />
Schaltung <strong>mit</strong> dem invertierten<br />
Systemtakt betrieben werden. Die<br />
Laufzeit der Pfade vom und zum<br />
RAM durfte so<strong>mit</strong> höchstens noch<br />
Systemtakt<br />
(CPU-Takt)<br />
Adresse<br />
invert. Takt<br />
(RAM-Takt)<br />
Lesedaten<br />
Laufzeit<br />
CPU→RAM<br />
Lesezugriff<br />
t setup CPU-Daten<br />
t setup RAM-Adresse<br />
RAM-<br />
Zugriffszeit<br />
Abbildung 5-15: Eine maximale Systemtaktfrequenz ist bei asymmetrischer<br />
Einstellung des Puls-Pausen-Verhältnisses erreichbar.<br />
jeweils einer halben Taktperiode entsprechen (vgl. Abbildung 5-15). Die Pfade von der CPU zu<br />
den Eingängen des RAMs konnten dabei ohne weiteres entsprechend optimiert werden; die von<br />
der Zugriffszeit des RAMs dominierten Pfade von dessen Ausgängen zur CPU waren hingegen<br />
sehr zeitkritisch. Dies führte zu dem Wunsch, das Puls-Pausen-Verhältnis des Systemtaktes<br />
programmieren und so<strong>mit</strong> den Zeitanteil von der fallenden zur steigenden Flanke vergrößern zu<br />
können.<br />
Als Lösung dieses Problems konstruierte der Verfasser die in Abbildung 5-16 dargestellte Schaltung,<br />
<strong>mit</strong> der die steigende und fallende Flanke eines Taktsignals unabhängig voneinander in<br />
jeweils 16 Schritten (dargestellt sind 8 Schritte) verzögert werden können, wobei die Verzögerungszeit<br />
pro Schritt dem Delay eines Buffers, in diesem Fall ca. 160ns, entspricht. Durch die<br />
Programmierbarkeit konnte die maximal zulässige Taktfrequenz des Systems um ca. 15% erhöht<br />
werden, da nicht mehr das Doppelte der zweiten Phase, sondern nur noch die Summe beider Phasen<br />
als minimale Periodendauer eingestellt werden musste.<br />
clk_in<br />
clk_in<br />
clk_out<br />
0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0<br />
15 Clock Shaping Register / Rising Edge 8<br />
7 Clock Shaping Register / Falling Edge<br />
0<br />
Delay: 4 Buffer Delays (+ AND/OR Tree)<br />
Delay: 2 Buffer Delays (+ AND/OR Tree)<br />
clk_out<br />
Abbildung 5-16: Die Möglichkeiten, ein komplexes SoC zu konfigurieren, gehen sogar so weit, dass über ein programmierbares<br />
Register Clock-Signale variabel verzögert und im Puls-Pausen-Verhältnis beeinflusst werden können.
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 5.2<br />
Seite 93<br />
Ein weiteres Problem, das in diesem ASIC auftrat, konnte durch Einsatz dieser Schaltung gleichzeitig<br />
ebenfalls gelöst werden: An einem externen Speicherbus des ASICs sollte neben optionalen<br />
weiteren Speichern ein SDRAM angeschlossen werden. Hierbei sollte das vom ASIC<br />
generierte Taktsignal des SDRAMs von der Phasenlage her auf den Systemtakt und auf die<br />
Adress-, Daten- und Steuersignale des SDRAMs abgestimmt werden. Da aber in Abhängigkeit<br />
von der externen Speicherkonfiguration verschiedener Systeme unterschiedliche Lastkapazitäten<br />
an den Takt- und Datenleitungen zu Verschiebungen des Timings führen können, musste die<br />
Phasenlage des SDRAM-Taktsignals kontrolliert werden können. Hierzu wurde eine zweite<br />
Verzögerungsschaltung parallel zur ersten eingesetzt, wobei die eine das interne Taktsignal<br />
erzeugte und aus der zweiten das externe Taktsignal abgeleitet wurde. Dadurch war eine relative<br />
Verschiebung in beide Richtungen programmierbar, <strong>mit</strong> der die Phasenlage an die im jeweiligen<br />
System gegebene Kapazitätsverteilung angepasst werden konnte. Ohne diese Möglichkeit hätte<br />
es in manchen Systemen zu Hold Time Violations und da<strong>mit</strong> zu einem Fehlverhalten kommen<br />
können.<br />
Um die Verzögerungszeit der Gatter,<br />
die je nach Technologieausfall<br />
variieren kann, präzise messen zu<br />
können, wurde zusätzlich ein<br />
Ring-Oszillator implementiert.<br />
Hierbei läuft in einer in sich rückgekoppelten<br />
Kette von Invertern<br />
eine Störstelle um, so dass sich<br />
eine Frequenz ergibt, die zur Verzögerungszeit<br />
umgekehrt proportional<br />
ist. Die Messung dieser<br />
Frequenz erfolgt im klassischen<br />
start<br />
value<br />
ready<br />
start stop<br />
16-bit counter<br />
Q<br />
15-bit counter<br />
res Q14 Abbildung 5-17: Selbst ein Ring-Oszillator zur Technologiekontrolle<br />
kann über eine Zusatzschaltung von der CPU aus gestartet und die<br />
gemessene Gatterverzögerung aus einem Register gelesen werden.<br />
Verfahren durch den IC-Tester. Dank einer vom Verfasser entworfenen Zusatzschaltung (vgl.<br />
Abbildung 5-17) kann die Messung auch im System geschehen. Die CPU muss dazu den Oszillator<br />
starten und kann wenig später einen zur Verzögerungszeit proportionalen Wert aus einem<br />
Register auslesen. Dies erlaubt es nicht nur, eine nachträgliche Technologiekontrolle durchzuführen,<br />
sondern es kann sogar die – natürlich über eine PLL programmierbare – Taktfrequenz des<br />
Systems an die technologisch bedingte Maximalfrequenz angepasst werden.<br />
Der relativ geringe Aufwand für die Konstruktion und der hohe Nutzen sprechen dafür, dass derartiger<br />
Schaltungen in immer mehr modernen ASICs eingesetzt werden dürften. Lediglich bei<br />
der Logiksynthese ist eine Sonderbehandlung erforderlich, da<strong>mit</strong> die Verzögerungselemente<br />
(Buffer bzw. Inverter) bei der Optimierung nicht entfernt werden.<br />
16<br />
sysclk
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 />
5.2.3 Neubewertung von Speicher- und Logikintegration<br />
Kapitel 5.2<br />
Seite 94<br />
Seit einigen Jahren spricht man in der <strong>Mikroelektronik</strong>-Branche vom „Deep Submicron Design<br />
Gap“. Dieses bezeichnet die immer größer werdende Lücke zwischen den technologischen Möglichkeiten,<br />
immer komplexere integrierte Schaltungen zu fertigen, und den Designmethoden, <strong>mit</strong><br />
denen es nicht mehr möglich erscheint, entsprechend komplexe ICs zu entwerfen.<br />
Trivialerweise gilt dies nicht für Speicherbausteine, da bei deren Entwurf nur wenige Zellen entwickelt<br />
und matrixförmig aneinandergefügt werden, und auch nicht für Mikroprozessoren, da in<br />
diesem extrem umsatzstarken Marktsegment ein überproportional hoher personeller Aufwand<br />
zulässig ist. Speicher und Mikroprozessoren orientieren sich daher in etwa an den technologischen<br />
Grenzen (vgl. Abbildung 3-1 und 3-2 auf Seite 16).<br />
Beim ASIC-Design hingegen könnten zwei Phänomene zu einer geringen Ausnutzung der technologischen<br />
Ressourcen führen. Zum einen erlauben heute selbst die in Kapitel 4 vorgestellten<br />
modernen Designmethoden wie die Verwendung von Logiksynthese und grafischem HDL sowie<br />
die Einbindung von IPs keine Entwicklung von Schaltungen im Bereich von 10 bis 100 Millionen<br />
Gattern, zum anderen besteht derzeit auch gar kein Bedarf nach so hochintegrierter Logik.<br />
Systeme <strong>mit</strong> einer derart hohen Komplexität lassen sich kaum noch im Detail definieren oder<br />
überschauen, so dass noch nicht einmal ihre Spezifikation beherrschbar ist.<br />
Die größte zusammenhängende Zustandsmaschine, die im Umfeld des Verfassers je entworfen<br />
wurde, umfasste 5.747 Gatter, die größte Schnittstelleneinheit, ein Ethernet-Controller, 36.500<br />
Gatter und das komplexeste verwendete IP, eine ARM9-CPU, ca. 86.000 Gatter. Aus derartigen<br />
Blöcken lässt sich typischerweise ein ASIC zusammensetzen, dessen Logikanteil im Bereich von<br />
300.000 bis 500.000 Gattern liegt, nicht aber ein 100 mal so komplexes System, das sich heute<br />
durchaus fertigen ließe.<br />
Die technische Dokumentation allein der ARM9-CPU summiert sich dabei auf über 1000 Seiten.<br />
Wie soll also ein ASIC konzipiert, spezifiziert und entwickelt werden, das die technologischen<br />
Möglichkeiten voll ausschöpft? Offensichtlich ist dies nur durch massive Parallelität und unter<br />
Verwendung regulärer Strukturen möglich. Zu solchen flächenintensiven Strukturen gehören insbesondere<br />
● Datenpfade <strong>mit</strong> großen Busbreiten, wie sie im Bereich der 3D-Grafik erforderlich sind,<br />
● parallele, also mehrfach instanziierte, CPUs, Rechenwerke und Schnittstellen sowie<br />
● große Speicherblöcke.<br />
Komplexität<br />
(log.)<br />
technologische Grenzen<br />
Design<br />
Gap<br />
Auffüllen <strong>mit</strong> Speicher<br />
und regulärer Logik!<br />
+ Verwendung von IPs<br />
+ grafisches VHDL<br />
Logiksynthese<br />
Schematic Entry<br />
Abbildung 5-18: Die technologischen Ressourcen können selbst unter Verwendung der fortschrittlichsten<br />
Designmethoden nicht mehr <strong>mit</strong> Logikfläche allein ausgenutzt werden.<br />
Zeit
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
Während die ersten beiden<br />
Punkte nur in speziellen Systemen<br />
Anwendung finden, ist ein<br />
massiver Ausbau des Speichers<br />
wohl in jedem CPU-basierten<br />
SoC möglich. Dabei kann unterschieden<br />
werden zwischen dem<br />
Arbeitsspeicher der CPU und<br />
weiteren, im System verteilten<br />
Speichern. Zu letzteren gehören<br />
insbesondere FIFOs von<br />
Schnittstellenmodulen sowie<br />
Parameterspeicher, die in einem<br />
komplexen System in größerer<br />
Anzahl auftreten können, deren<br />
Größe aber selten über einige<br />
kByte hinausgeht (vgl. Abbildung<br />
5-19). Eine signifikante<br />
Vergrößerung derartiger Speicher<br />
ist dabei nur selten sinnvoll.<br />
Während die Integration<br />
solcher Speicher früher, insbesondere<br />
in Gate Arrays, noch<br />
problematisch war, führt heute<br />
an einer Integration nichts mehr<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
DTMF-Decoder<br />
Work+Config. RAM<br />
PCM-Hiway<br />
Switching Buffer<br />
USB FIFO HDLC<br />
Mode<br />
HDLC<br />
Timeslot<br />
Rx Work<br />
Tx Work<br />
HDLC Rx<br />
DMA Desc.<br />
HDLC Rx<br />
DMA Desc.<br />
HDLC CRC<br />
HDLC Work<br />
HDLC Rx FIFO<br />
HDLC Tx FIFO<br />
HDLC Rx Stat<br />
HDLC Tx Stat<br />
Ethernet Unit 0<br />
Trans<strong>mit</strong> FIFO<br />
Ethernet Unit 0<br />
Receive FIFO<br />
Ethernet Unit 1<br />
Trans<strong>mit</strong> FIFO<br />
Ethernet Unit 1<br />
Receive FIFO<br />
System-ROM<br />
Logik:<br />
403.000 Gatter<br />
Ethernet Unit 2<br />
Trans<strong>mit</strong> FIFO<br />
Ethernet Unit 2<br />
Receive FIFO<br />
PLL PLL<br />
Trans<strong>mit</strong> FIFO<br />
CPU-System-RAM<br />
ARM9TDMI<br />
Kapitel 5.2<br />
Seite 95<br />
Abbildung 5-19: Layout eines ASICs [A-19] <strong>mit</strong> stark verteilten, kleineren<br />
Speichern, überwiegend FIFOs von Schnittstellenmodulen<br />
vorbei: Die zunehmende Anzahl kleiner, verteilter Speicher würde anderenfalls die Systemkosten,<br />
die Pinanzahl des ASICs und die Signallaufzeiten zu den Speichern untolerierbar in die<br />
Höhe treiben.<br />
Der Arbeitsspeicher der CPU in einem SoC ist hingegen ein Parameter, der fast beliebig vergrößert<br />
werden kann. Es sind Systeme <strong>mit</strong> internem, externem oder verteiltem Speicher denkbar,<br />
wobei eine Teilintegration des Speichers durchaus sinnvoll sein kann. Zum einen können ASICinterne<br />
Zugriffe rund doppelt so schnell erfolgen wie externe, so dass bei einer gemischten Konfiguration<br />
häufig benötigte, geschwindigkeitskritische Software-Routinen im internen Speicher<br />
ausgeführt werden können. Zum anderen sind individuell gehaltene ASICs denkbar, die in Low-<br />
Cost-Anwendungen <strong>mit</strong> dem internen Speicher auskommen und im High-End-Bereich um externen<br />
Speicher erweitert werden können.<br />
Es empfiehlt sich daher, zumindest eine für viele Anwendungen ausreichende Minimalausstattung<br />
an Speicher zu integrieren, so dass sich ein gesunder Kompromiss aus Kosten und Nutzen<br />
ergibt. Das „Design Gap“ wird auf diese Weise <strong>mit</strong> Speicher aufgefüllt, wodurch die Systemkomplexität<br />
nicht nur im Sinne des Gate Counts extrem zunimmt: Die Speicherausstattung<br />
erlaubt gleichzeitig eine enorme Steigerung der Software-Komplexität.<br />
Da eine sinnvolle Speicherausstattung bereits oft im Megabyte-Bereich liegt, ergibt sich beim<br />
Vergleich von Speicher- und Logikfläche heute ein völlig anderes Bild als noch vor einigen Jahren:<br />
Selbst in ASICs, deren Logikanteil sich im Grenzbereich der von Spezifikation und Entwurf<br />
her handhabbaren Komplexitäten bewegt, dominiert der Speicher oft die Gesamtfläche des<br />
ASICs. So lässt sich bereits in einer 0,25μ-Technologie eine Dichte von über 40.000 Gattern pro<br />
mm 2 erreichen, in einer 0,13μ-Technologie sogar ca. 200.000 Gatter pro mm 2 (vgl. Abbildung 3-<br />
4 auf Seite 16). Der Logikanteil einer heute typischen Schaltung schrumpft da<strong>mit</strong> auf eine fast<br />
verschwindend kleine Fläche zusammen.<br />
Ethernet Unit 3<br />
Receive FIFO<br />
Ethernet Unit 3
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
Ein typisches Beispiel eines solchen,<br />
für eine 0,25μ-Technologie konzipierten<br />
SoCs zeigt Abbildung 5-20. Die<br />
Logikfläche nimmt dabei trotz ihrer<br />
Komplexität von ca. 320.000 Gattern<br />
weniger als 10% der Chipfläche ein.<br />
Angesichts der Chipgröße von fast<br />
90mm 2 musste dabei sowohl für die<br />
Flash-Bereiche als auch für den RAM-<br />
Bereich eine intelligente Ausmaskierung<br />
defekter Sektoren gemäß<br />
Abschnitt 5.1.2 eingeplant werden,<br />
wodurch der größte Teil der Fläche aus<br />
der Yield-Berechnung herausgelassen<br />
werden und ein rechnerischer Yield<br />
von ca. 90% erreicht werden konnte.<br />
Da angesichts der technologischen<br />
Möglichkeiten derart speicherlastige<br />
ASICs zum Normalfall werden dürften,<br />
muss auch die Komplexität des<br />
Logikanteils in Zukunft völlig neu<br />
bewertet werden. Auf der gleichen<br />
Chipfläche ließe sich in einer 0,13μ-<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
Kapitel 5.2<br />
Seite 96<br />
Technologie rund vier mal so viel Speicher integrieren, und der Logikanteil würde auf ca. 2mm 2<br />
zusammenschrumpfen. Die erreichbare Gatterdichte und die Betrachtung der Flächenverhältnisse<br />
verleiten dabei zu der Aussage:<br />
„Logik kostet nichts.“<br />
4Mbit Flash<br />
Abbildung 5-20: Floorplan-Studie zu einem SoC <strong>mit</strong> 320.000<br />
Gattern, 512kByte RAM, 1MByte Flash und 2 Ethernet-Phy’s auf<br />
einer Chipfläche von 90mm 2 in einem 0,25μ-Prozess von TSMC<br />
Ein Rechenbeispiel soll dies verdeutlichen: Legt man (recht konservativ) in einer 0,18μ-Technologie<br />
einen Siliziumpreis von 8¢/mm 2 (vgl. Abbildung 3-20 auf Seite 22) und eine Dichte von<br />
80.000 Gattern pro mm 2 zugrunde, kostet die Integration einer UART weniger als 1 US-Cent,<br />
eine ISDN-S0-Schnittstelle 2 Cent, ein USB-Anschluss 4 Cent und eine Ethernet-Schnittstelle<br />
(MAC-Layer incl. FIFOs ohne Phy) ca. 8 Cent. Werden derartige Schnittstellen hingegen als<br />
externe Bausteine angeschlossen, sind die entstehenden Kosten incl. Leiterplatten- und Montagekosten<br />
bis zu 50 mal höher.<br />
Die Grundtendenz, möglichst viele Komponenten des zu realisierenden Systems in ein ASIC zu<br />
integrieren, hat daher <strong>mit</strong> den Gatterdichten der Deep-Submicron-Technologien nicht nur ihre<br />
technischen Li<strong>mit</strong>ationen verloren. Das genannte Kostenverhältnis ist vielmehr so extrem geworden,<br />
dass es bei universell gehaltenen ASICs sinnvoll erscheint, alle Funktionen zu integrieren,<br />
von denen auch nur vorstellbar erscheint, dass sie in einem System sinnvoll sein könnten – das<br />
Weglassen der Funktionen ist aus Sicht der Systemkosten teurer als ihre Integration 1 .<br />
Abschließend sollen noch die Probleme diskutiert werden, die eine solche Vorgehensweise <strong>mit</strong><br />
sich bringen könnte. Diese sind sicher nicht von technologischer Natur, und auch bei der Layouterstellung<br />
und Timingkontrolle sind keine größeren Schwierigkeiten zu erwarten, da es sich ins-<br />
1. Da<strong>mit</strong> für die Pins der im jeweiligen System nicht benötigten Schnittstellen keine Kosten entstehen, können<br />
programmierbare Multiplexer an den Außenanschlüssen vorgesehen werden, um gemäß<br />
Abschnitt 5.2.2 ein universelles ASIC zu erstellen, bei dem in diesem Fall sogar die Auswahl der<br />
Schnittstellen und die Pinbelegung individuell konfiguriert werden können.<br />
2Mbit SRAM<br />
8mm 2 Logik<br />
2Mbit SRAM<br />
1Mbit Flash<br />
Ethernet Phy<br />
Ethernet Phy<br />
1Mbit Flash<br />
1Mbit Flash<br />
1Mbit Flash<br />
PLL
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 5.2<br />
Seite 97<br />
besondere bei Schnittstellenmodulen um kleinere, hierarchisch klar von den übrigen<br />
Schaltungsteilen getrennte Blöcke handelt. Dies erleichtert auch die Systemspezifikation und<br />
macht solche Module zum idealen Einsatzgebiet von IPs und Design Re-Use.<br />
Dabei ist die Anzahl der zu integrierenden Schnittstellen auch bei einem weitgehenden Anspruch<br />
auf Vollständigkeit nicht allzu groß, da die Vielfalt von Datenraten und Übertragungsverfahren<br />
begrenzt ist. So können im Telekommunikations- und Netzwerkbereich (Ethernet, ISDN, USB,<br />
RS232, PCM-Hiway) und im Industrie- und Automotive-Bereich (SPI, Profibus, CAN, I 2 C,<br />
Firewire) <strong>mit</strong> zusammen 10 Schnittstellen die meisten heute aktuellen Anwendungen abgedeckt<br />
werden.<br />
Das Hindernis, einen wirklich universellen Controller zu definieren, liegt dabei eher in der<br />
Schwierigkeit, einen geeigneten Kompromiss zwischen RAM- und Flash-Größe, CPU- und evtl.<br />
DSP-Architektur, der Anzahl an I/Os und dem Preis zu finden als in der weitreichenden Abdekkung<br />
der (von den Außenanschlüssen her umschaltbaren) Schnittstellentypen.<br />
Letztere bringt als größtes Problem die in der Summe aller Schnittstellen enorm hohen Designbzw.<br />
IP-Kosten <strong>mit</strong> sich. Die Konsequenzen daraus sollen im nächsten Abschnitt erläutert werden.
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 />
5.2.4 Neue Kosten- und Marktstrukturen<br />
Kapitel 5.2<br />
Seite 98<br />
Wie in den Abschnitten 3.2.1 und 3.2.2 ausführlich dargestellt wurde, nehmen die NRE-Kosten<br />
bei hochkomplexen ASICs seit einigen Jahren explosionsartig zu. Dies ist einerseits auf die <strong>mit</strong><br />
der Komplexität steigenden Entwicklungs- und IP-Kosten und andererseits auf die in Deep-Submicron-Technologien<br />
extrem hohen Maskenkosten (vgl. Abbildung 3-19 auf Seite 22) zurückzuführen.<br />
Zwar bleiben die Kosten pro Siliziumfläche, wie ebenfalls dargestellt wurde, in etwa<br />
konstant, doch die NRE-Kosten können sich zu einer außerordentlich hohen Einstiegsbarriere für<br />
den ASIC-Einsatz entwickeln.<br />
Angesichts eines Entwicklungsaufwandes im Bereich von 12-36 Mannmonaten, Maskenkosten<br />
von beispielsweise 500.000 US-Dollar in einer 0,18μ-Technologie und IP-Kosten im Bereich von<br />
140.000 US-Dollar für einen Ethernet-Phy und 100.000 bis 400.000 1 US-Dollar für eine CPU<br />
wird klar, dass die Summe der einmaligen Kosten für ein „System on a Chip“ bereits heute weit<br />
oberhalb von einer Million US-Dollar liegen kann.<br />
Da diese Summe vom ASIC-Kunden meist vorzufinanzieren ist, sind immer weniger <strong>mit</strong>telständische<br />
Unternehmen bereit, die Kosten und Risiken einer ASIC-Entwicklung zu tragen. Erst ab<br />
ASIC-Volumina von im Mittel einer Million Stück rentiert sich heute eine SoC-Integration. Diese<br />
Stückzahl liegt aber deutlich oberhalb des Bedarfs der meisten Einzelunternehmen.<br />
Auf der anderen Seite können moderne SoCs so flexibel gestaltet werden, dass sie sehr universell<br />
einsetzbar werden. Wenn im Gegensatz zu der in Abschnitt 2.2.3 gegebenen Definition ein ASIC<br />
nicht nur für ein Produkt und noch nicht einmal exklusiv für einen Kunden entwickelt wird, sondern<br />
auf die Erfordernisse eines ganzen Marktes zugeschnitten wird, lassen sich, insbesondere<br />
angesichts des gleichzeitigen Wachstums des Gesamtmarktes, ohne weiteres sehr hohe Stückzahlen<br />
erreichen.<br />
Die Entwicklung solcher ICs erfordert allerdings vollkommen andere Geschäftsmodelle als bei<br />
der klassischen ASIC-Entwicklung, bei der sich der ASIC-Designer zum Teil als reiner Dienstleister<br />
betätigen konnte. Da sich die möglichen Kunden eines flexiblen SoCs nicht von alleine<br />
zusammenschließen werden, um gemeinsam eine ASIC-Entwicklung in Auftrag zu geben, muss<br />
das ASIC-Designhaus neben der Beauftragung der Fertigung und der Produktlieferung auch die<br />
Produktdefinition übernehmen. Da die Vorfinanzierung der Entwicklung und der NRE-Kosten in<br />
der Regel Probleme bereitet, wird ein kleines ASIC-Designhaus allerdings meistens versuchen,<br />
zu Beginn des Projekts mindestens einen großen Kunden zu beteiligen oder sogar Allianzen <strong>mit</strong><br />
mehreren Kunden oder einem Halbleiterhersteller zu bilden, um eine gewisse finanzielle Absicherung<br />
zu erreichen. Angesichts der explodierenden NRE-Kosten könnten solche Geschäftsmodelle<br />
die einzige Zukunftsperspektive des ASIC-Designs darstellen.<br />
Wenn dieser Ansatz verfolgt wird, kommt es zu einer Vermischung der beiden Erscheinungsformen<br />
integrierter Schaltungen, der ASICs und der Standardprodukte. Von einem Anbieter von<br />
Standardkomponenten, der ICs selbst entwickelt und vermarktet, unterscheidet sich das ASIC-<br />
Designhaus dabei nur noch dadurch, dass es als „Fabless ASIC Provider“ über keine eigenen<br />
Fertigungsmöglichkeiten verfügt – ein Trend, der von den reinen „Silicon Foundries“ wie TSMC<br />
voll unterstützt wird.<br />
1. Preis einer ARM7-CPU in Technologien von TSMC, zuzüglich Anteilen am Chipumsatz
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
6. Kapitel<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
Zusammenfassung und Ausblick<br />
Kapitel 6<br />
Seite 99<br />
Die technologische Entwicklung, insbesondere der Fortschritt in der Lithographie, hat dazu<br />
geführt, dass heute integrierte Schaltungen <strong>mit</strong> 10 bis 100 Millionen Gattern gefertigt werden<br />
können. Selbst bei Anwendung der modernsten Designmethoden erscheint es aber unmöglich,<br />
derart komplexe Schaltungen zu entwickeln oder auch nur von der Spezifikation her voll zu<br />
beherrschen. Die einzige Lösung zur Nutzung der technologischen Ressourcen besteht deshalb<br />
darin, die zur Verfügung stehende Chipfläche <strong>mit</strong> regulärer Logik, insbesondere <strong>mit</strong> mehrfach<br />
instanziierten Funktionsblöcken, oder <strong>mit</strong> Speicher aufzufüllen.<br />
Ein massiver Speicherausbau in einem System <strong>mit</strong> integrierter CPU kann dabei die Systemkomplexität<br />
(hier durch Softwarekomplexität) enorm erhöhen und macht das System gleichzeitig sehr<br />
universell. Mit flexiblen ASICs können so breite Anwendungsfelder eröffnet und sehr hohe<br />
Stückzahlen erreicht werden.<br />
Die Möglichkeiten der Software unterliegen aber den Restriktionen der Hardware, so dass immer<br />
mehr die Frage nach einer universellen Hardware in den Vordergrund rückt. FPGAs bieten dabei<br />
zwar ein Höchstmaß an Konfigurationsmöglichkeiten, sie sind jedoch technologisch bedingt etwa<br />
drei bis sechs mal langsamer als ASICs gleicher Komplexität und 100 mal so teuer. Günstiger ist<br />
es, die CPU und den Speicher als optimierte Hard Macros neben den FPGA-Strukturen unterzubringen,<br />
wie es derzeit bei Altera („Excalibur“ <strong>mit</strong> integrierter ARM922T, [48]) und im Gate-<br />
Array-Bereich bei NEC („SoC Lite“ <strong>mit</strong> ARM7TDMI, [49]) zu beobachten ist. Die Verbesserungen<br />
sind jedoch in keiner Weise ausreichend, um <strong>mit</strong> Full-custom-ASICs <strong>mit</strong>halten zu können.<br />
Ein konkurrenzfähiges Produkt könnte sich nach Ansicht des Verfassers ergeben, wenn (getreu<br />
dem im letzten Abschnitt erklärten Motto „Logik kostet nichts“) neben der CPU und dem Speicher<br />
auch noch ein Maximum an häufig benötigten Schnittstellen und Systemfunktionen als Hard<br />
Macros integriert würden, deren Anbindung an die CPU (Glue Logic) und deren Verbindungen<br />
zu den Außenanschlüssen programmierbar sind. In der Folge wäre der Anteil an FPGA-Strukturen<br />
im System so gering, dass er von den Kosten her nur geringfügig ins Gewicht fallen und aufgrund<br />
der kleinen Fläche akzeptable Taktfrequenzen erlauben würde. Da die Systemarchitektur<br />
eines derartigen ASICs aufgrund der festen Auswahl von CPU, Speicher und Schnittstellen<br />
bereits relativ stark fixiert ist, könnte es <strong>mit</strong> geringen Abschlägen an Flexibilität sogar ganz ohne<br />
FPGA-Strukturen realisiert werden, indem Register zur systemspezifischen Konfiguration vorgesehen<br />
werden.<br />
Ein großer Gewinn an Flexibilität und Programmierbarkeit ergibt sich, sobald zusätzlich digitale<br />
Signalprozessoren (DSPs) integriert werden, um weitere Systemteile und Schnittstellen über<br />
deren freie Programmierung realisieren zu können. Ein solches System, bestehend aus<br />
● einer CPU,<br />
● großen Speicherblöcken (RAM und Flash),<br />
● den am häufigsten benötigen Schnittstellen und Funktionsblöcken (die als Hard Macros<br />
kleiner sind als DSPs),<br />
● allen Schnittstellen <strong>mit</strong> hoher Datenrate (die nicht über DSPs realisierbar sind) und<br />
● einem oder mehreren DSPs zur universellen Abdeckung der noch fehlenden Systemteile
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 6<br />
Seite 100<br />
könnte als universelle und in gewissem Maße zukunftssichere Hardware-Plattform ein relativ frei<br />
konfigurierbares „System on a Chip“ darstellen, das, vergleichbar <strong>mit</strong> einem FPGA, ohne individuelle<br />
Aufwendungen an NRE-Kosten durch eine (Flash-)Programmierung seine systemspezifischen<br />
Funktionen und Eigenschaften erhält und dennoch auch von den Stückkosten her attraktiv<br />
ist.<br />
Da es trotz aller Flexibilität schwierig sein dürfte, einen für alle Anwendungsfälle optimalen<br />
Kompromiss zwischen der Speichergröße, der Pin- und Schnittstellenanzahl, den ggf. integrierten<br />
Analogfunktionen und dem Preis zu finden, kann auch eine Familie derartiger Bausteine definiert<br />
werden, deren Vertreter sich im Wesentlichen durch eine Skalierung unterscheiden und<br />
deren preiswerteste Bausteine bei Beschränkung auf einige Standardschnittstellen ohne DSPs<br />
auskommen.<br />
Derartige Systeme sind dabei auch vom Design her beherrschbar. Aufgrund der stark modularen<br />
Systemarchitektur kann die Hardware unter Verwendung der in Abschnitt 4.1 vorgestellten Entwicklungsmethoden,<br />
der Logiksynthese, dem Einsatz grafischer HDL-Programme und der Verwendung<br />
von IPs, ohne weiteres entworfen werden. Die gute Partitionierbarkeit kommt darüber<br />
hinaus der Layouterstellung entgegen, so dass die in Abschnitt 4.3 beschriebenen Verfahren weiterhin<br />
ausreichen dürften und sich aufgrund der kleinen Modulgrößen hohe Schaltungsgeschwindigkeiten<br />
erzielen lassen. Auch die Software solcher Systeme lässt sich handhaben, insbesondere<br />
wenn dank FPGA-Prototypenboards (vgl. Abschnitt 4.2) eine Parallelentwicklung von Hardware<br />
und Software erfolgen kann. Die heute gegebene Möglichkeit, Software-Updates im Internet zur<br />
Verfügung zu stellen, entschärft die Softwareentwicklung zusätzlich, da hier<strong>mit</strong> auch der finanzielle<br />
und logistische Zwang entfällt, die Software in jedem Fall „first time right“ entwickeln zu<br />
müssen.<br />
Gleichzeitig erlauben es die in Abschnitt 5.1 vorgestellten Verfahren, die Testkosten zu begrenzen,<br />
indem der Speicher und die evtl. integrierten Analogfunktionen durch die CPU nahezu autonom<br />
getestet werden, und die Ausbeute zu steigern, indem die CPU bei Analogfunktionen eine<br />
Kalibrierung oder eine arithmetische Konditionierung der Signale vornimmt, während bei Speichern<br />
eine Zusatzschaltung zur Laufzeit defekte Speicherstellen ausmaskieren und durch intakte<br />
ersetzen kann. Die Stückkosten können daher sehr attraktiv sein, insbesondere wenn bei ASICs<br />
<strong>mit</strong> hoher Pinanzahl BGA-Gehäuse (vgl. Abschnitt 5.2.1) eingesetzt werden.<br />
Zusammenfassend lässt sich sagen, dass das Problem der explodierenden NRE-Kosten <strong>mit</strong><br />
immer universeller einsetzbaren ASICs umgangen werden kann. In den Vordergrund rückt ihre<br />
Programmierbarkeit und Konfigurierbarkeit (vgl. Abschnitt 5.2.2), wobei der Verfasser <strong>mit</strong><br />
einem neuen Verfahren zur Beeinflussung der Timing-Eigenschaften eines ASICs eine völlig<br />
neue Ebene der Konfigurierbarkeit aufgezeigt hat. Eine noch höhere Flexibilität kann erreicht<br />
werden, indem digitale Signalprozessoren oder in kleinen Bereichen FPGA-Strukturen <strong>mit</strong> integriert<br />
werden. Mit universellen ASICs scheint es dabei möglich zu sein, dem Sog der Kostenspirale<br />
noch für einige Zeit zu entkommen und weiterhin, auch im Bereich höchster Komplexitäten,<br />
konkurrenzfähige ASICs zu entwickeln.<br />
Die offensichtliche Beherrschbarkeit der Hardware- und Softwareentwicklung und die Interpretation<br />
der Speicherfläche als Raum für Softwarekomplexität lässt dabei die Aussage zu, es gebe<br />
kein Design Gap, und nach dem weitgehenden Übergang von der Analogtechnik zur digitalen<br />
Signalverarbeitung – „The world is going digital“ – zeichnet sich als nächster großer Trend eine<br />
Verschiebung zur Software bzw. Firmware in universell programmierbaren und konfigurierbaren<br />
Systemen ab.
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
Lebenslauf<br />
persönliche Daten<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
Lebenslauf<br />
Seite 101<br />
Jahrgang 1969<br />
wohnhaft [gelöscht]<br />
Familienstand: seit dem 21.05.1993 verheiratet <strong>mit</strong> Doris Bauer geb. Brandt, 2 Kinder<br />
Mutter: Dr. Sibylle Bauer, Studienrätin für Deutsch, Philosophie, Politische Weltkunde<br />
Vater: Dr. Gerhard Bauer, Professor für Neuere deutsche Literatur, FU <strong>Berlin</strong><br />
Schulbildung<br />
ab 08/1975 Giesensdorfer Grundschule, <strong>Berlin</strong>-Lichterfelde<br />
ab 02/1981 Cherokee Middle School, Madison, Wisconsin, USA<br />
ab 08/1981 Goethe-Oberschule (Gymnasium), <strong>Berlin</strong>-Lichterfelde<br />
06/1988 Abitur, Note 1,5, Leistungskurse Mathematik und Physik<br />
Studium<br />
ab 10/1988 Studium der Elektrotechnik an der <strong>TU</strong> <strong>Berlin</strong><br />
11/1990 Vordiplom, „<strong>mit</strong> Auszeichnung“ bestanden<br />
09/1993 Diplom, „<strong>mit</strong> Auszeichnung“ bestanden<br />
Vertiefungsfach: <strong>Mikroelektronik</strong> (Chipentwurf)<br />
Hauptfächer: Elektronik, Hardwaretechnik, Softwaretechnik<br />
Studienarbeit: Entwurf eines abgleichfreien Audioschaltkreises als Modul eines Multinormsingle-chip-Farbfernsehers<br />
in 1,2μm BiCMOS-Technologie<br />
Diplomarbeit: Entwicklung eines TI-34020-kompatiblen Hochleistungs-Grafikprozessors unter<br />
Verwendung modernster Werkzeuge der Logiksynthese<br />
Auszeichnungen<br />
03/1989 <strong>Berlin</strong>er Landessieger im Wettbewerb „Jugend forscht“, Sonderpreis für Elektronik<br />
02/1992 Aufnahme in die Studienstiftung des deutschen Volkes<br />
07/1994 Erwin-Stephan-Preis der <strong>TU</strong> <strong>Berlin</strong> „für hervorragende Studienleistungen und<br />
kurze Studiendauer“<br />
Berufserfahrungen<br />
08/1986 - 05/1989 freier Mitarbeiter der Firma Jann Datentechnik, <strong>Berlin</strong>, beschäftigt zunächst als<br />
Löter, später als Hardware- und Softwareentwickler<br />
01/1991 - 07/1992 Veröffentlichung von sechs Artikeln in der „c’t“ und anderen Computermagazinen,<br />
hauptsächlich Bauanleitungen zu selbst entwickeltem Computerzubehör<br />
04/1991 - 04/1992 studentische Hilfskraft am FB Mathematik der <strong>TU</strong> <strong>Berlin</strong>, Betreuung von Tutorien<br />
zu den Lehrveranstaltungen „Höhere Mathematik III und IV für Elektrotechniker“<br />
05/1993 - 08/1993 studentische Hilfskraft am Institut für <strong>Mikroelektronik</strong> der <strong>TU</strong> <strong>Berlin</strong>, Betreuung<br />
des Praktikums „Simulation und Entwurf analoger integrierter Schaltungen“<br />
10/1993 - 10/1998 Wissenschaftlicher Mitarbeiter <strong>mit</strong> Lehraufgaben (Assistent) am Institut für<br />
<strong>Mikroelektronik</strong> der <strong>TU</strong> <strong>Berlin</strong><br />
seit 11/1998 Projektleiter für Mixed-Signal-Design am <strong>Mikroelektronik</strong>-Anwendungszentrum<br />
MAZ Brandenburg GmbH<br />
Werder (Havel), im November 2001
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
Danksagung<br />
Ich danke<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
Danksagung<br />
Seite 102<br />
Herrn Prof. Otto Manck für die wissenschaftliche Betreuung und Unterstützung während der Durchführung<br />
der Arbeit,<br />
Herrn Prof. Hans Weinerth und Herrn Prof. Ulrich Golze für ihr Interesse and der Arbeit und für<br />
die Erstellung der weiteren Gutachten,<br />
Herrn Prof. Ernst Obermeier für die Übernahme des Vorsitzes in der Prüfungskommission,<br />
Rüdiger Arnold, Dieter Bethke, Michael Gatzmann, Rainer Kind, Roman Koczy, Gerriet Müller<br />
und Jens Völkl für wertvolle Informationen und fruchtbare Diskussionen,<br />
allen Kommilitonen, Kollegen und Geschäftspartnern für die hervorragende Zusammenarbeit in<br />
den ASIC-Projekten, in denen die in dieser Arbeit verwerteten Erfahrungen gesammelt werden konnten,<br />
Christian Hesse, Ulrich Leiseder (Beleuchtung) und Dirk Pflug für die Unterstützung bei der Digitalfotografie,<br />
meinen Eltern Gerhard und Sibylle Bauer für orthographische, stilistische und philosophische Ratschläge<br />
und nicht zuletzt<br />
meiner Frau Doris für ihre Geduld und moralische Unterstützung.
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
Kurzfassung (Abstract)<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
Kurzfassung (Abstract)<br />
Seite 103<br />
Das exponentielle Wachstum der <strong>Mikroelektronik</strong>, das etwa alle fünf Jahre eine Verzehnfachung der Schaltungskomplexitäten<br />
erlaubt, stellt den ASIC-Designer ständig vor neue Herausforderungen. Um von der<br />
Produktivität und Designsicherheit her <strong>mit</strong> dem Wachstum <strong>mit</strong>halten zu können, ist eine Revolution der<br />
Designmethoden in regelmäßigen Abständen unabdingbar. Die heute mögliche Totalintegration eines<br />
hochkomplexen Systems in einem Chip bringt jedoch nicht nur Probleme <strong>mit</strong> sich, sondern eröffnet dem<br />
Designer auch völlig neue Möglichkeiten.<br />
In der vorliegenden Arbeit wird zunächst, um den ASIC-Begriff indirekt zu definieren, kurz die historische<br />
Entwicklung integrierter Schaltungen vom ersten Transistor bis zum „System on a Chip“ beleuchtet; außerdem<br />
werden Motive für den ASIC-Einsatz aufgezeigt und die ASICs von den Märkten und Einsatzfeldern<br />
her gegenüber den Standardkomponenten abgegrenzt.<br />
Die technologischen und wirtschaftlichen Randbedingungen der ASIC-Integration werden anhand von 18<br />
Diagrammen erläutert, in denen die historische und die zu erwartende künftige Entwicklung der wichtigsten<br />
Größen dargestellt wird. Einige Kernparameter sind bis heute sehr steilen und lang anhaltenden exponentiellen<br />
Wachstumstrends gefolgt, die sich zumindest für die Laufzeit eines ASIC-Projekts fortsetzen<br />
dürften. Da das Wachstum technologisch gesehen ein ständiges Vordringen in neue Grenzbereiche erfordert<br />
und <strong>mit</strong> enormen Kostensteigerungen insbesondere bei der Maskenfertigung einhergeht, nehmen die<br />
Einrichtungskosten bei der ASIC-Produktion explosionsartig zu, was nur noch bei sehr großen Stückzahlen<br />
eine wirtschaftliche Fertigung erlaubt.<br />
Es werden zeitgemäße, in der Praxis erprobte Entwurfsstrategien vorgestellt, die der Fehlervermeidung und<br />
der Produktivitätssteigerung dienen. Hierzu zählen die Logiksynthese, der Einsatz von IPs und insbesondere<br />
die Verwendung grafischer HDL-Programme, die gegenüber der Programmierung in reinem HDL eine<br />
weitere Abstraktion und eine übersichtlichere Darstellung erlauben, welche intuitiv zu verstehen ist und<br />
grafisches HDL daher auch zu einer idealen Spezifikationsform macht. Durch den Einsatz von FPGA-Prototypenboards<br />
und das da<strong>mit</strong> mögliche Hardware-Software-Co-Design kann die Produktentwicklung<br />
zusätzlich beschleunigt und das Risiko in der Spezifikation reduziert werden. Bei der Layouterstellung<br />
wird die Einhaltung der Timing-Vorgaben in Deep-Submicron-Technologien durch die dominierenden Verdrahtungskapazitäten<br />
erschwert. Sie kann durch moderne Algorithmen beherrscht werden, die die Treiberstärke<br />
der Gatter an die Lastkapazitäten anpassen. In Zukunft wird aber eine weitere Verschmelzung von<br />
Synthese- und Layoutprogrammen erfolgen müssen, da<strong>mit</strong> bei der Optimierung der Schaltung die tatsächlichen<br />
Metallisierungskapazitäten berücksichtigt werden können. Anhand eines vollständigen, modernen<br />
Design Flows werden anschließend Möglichkeiten der lückenlosen Verifikation aller Schritte beschrieben,<br />
die eine Grundvoraussetzung für die ASIC-Entwicklung ist.<br />
Die Integration einer CPU in einem SoC eröffnet völlig neue Perspektiven im ASIC-Design und auch beim<br />
Produktionstest. Auf einem gewöhnlichen IC-Tester ist der Test des integrierten Speichers, insbesondere<br />
bei Flash-Blöcken, und der Test von Analogfunktionen recht aufwändig und aufgrund der langen Testzeiten<br />
auch kostspielig. Anhand konkreter Beispiele und vom Verfasser entwickelter Lösungen wird aufgezeigt,<br />
dass die CPU derartige Tests nicht nur (bis hin zum Selbsttest) unterstützen kann, sondern <strong>mit</strong>tels<br />
vergleichsweise einfacher Zusatzschaltungen auch in der Lage ist, die Eigenschaften der analogen Schaltungsteile<br />
durch eine Kalibrierung oder eine arithmetische Konditionierung zu verbessern und bei integrierten<br />
Speichern selbst noch zur Laufzeit defekte Speicherstellen auszumaskieren und durch intakte zu<br />
ersetzen. Hierdurch können die Testkosten reduziert und die Ausbeute erheblich gesteigert werden.<br />
Abschließend wird noch ein Strukturwandel in der Systemarchitektur beschrieben: Der Logikanteil eines<br />
ASICs schrumpft bei Verwendung modernster Technologien, selbst wenn er sich im Grenzbereich der von<br />
Spezifikation und Entwurf her handhabbaren Komplexitäten bewegt, auf eine fast verschwindend kleine<br />
Fläche zusammen. Das entstehende „Design Gap“ kann jedoch <strong>mit</strong> Speicher oder <strong>mit</strong> regulärer Logik aufgefüllt<br />
werden, um die technologischen Ressourcen voll auszuschöpfen. Da der Einsatz einer CPU immer<br />
vielfältigere Möglichkeiten der Programmierung und Konfiguration erlaubt, die der Verfasser in einem<br />
ASIC um ein dargelegtes neues Verfahren zur Steuerung von Timing-Eigenschaften erweitern konnte,<br />
schlägt er vor, eine Familie universeller ASICs zu definieren, die aufgrund der extremen Gatterdichte<br />
nahezu ohne Mehrkosten modular <strong>mit</strong> einer Vielzahl recht frei konfigurierbarer Schnittstellen und Funktionen<br />
ausgestattet werden kann. Hierdurch entstehen so universelle Schaltungen, dass über ihr breites<br />
Anwendungsfeld die geschilderte Stückzahlproblematik gelöst werden kann.
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
English Abstract<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
English Abstract<br />
Seite 104<br />
The exponential growth of microelectronics, allowing a tenfold increase of circuit complexities nearly<br />
every five years, constantly presents new challenges to the ASIC designer. In order to be able to keep up<br />
with this growth regarding the designer’s productivity and reliability, a revolution in design methods is<br />
indispensable at regular intervals. However, the complete integration of a highly complex system into a single<br />
chip, as is possible today, does not only entail problems but also offers new possibilities to the designer.<br />
In this dissertation, first the term “ASIC” is defined indirectly by briefly describing the history of integrated<br />
circuits from the first transistor to “System on a Chip” solutions, by showing the motives for using ASICs,<br />
and by pointing out the differences between ASICs and standard components concerning their markets and<br />
their fields of application.<br />
The technological and economic boundary conditions of microelectronics are described by means of 18<br />
diagrams showing the historical and expected future development of the most important values. Some of<br />
the main parameters have followed trends of fast exponential growth for a long time, which is likely to continue<br />
at least for the lifetime of an ASIC project. To keep up the growth, technological difficulties have to<br />
be overcome regularly, leading to exploding costs especially in mask manufacturing. As a result, an economic<br />
application of ASICs is only possible in high-volume projects.<br />
The author then describes up-to-date design methods from his practical experience which allow an increase<br />
in productivity and reliability. These include logic synthesis, the use of IPs, and in particular the application<br />
of graphical HDL tools which per<strong>mit</strong> a higher level of abstraction compared with textual HDL. Their clear,<br />
instantly understandable representation also makes graphical HDL ideal for specification. Evaluation<br />
boards with FPGAs can be used to facilitate hardware-software co-design, additionally accelerating the<br />
product development and reducing the risk in the specification. During the generation of the layout, meeting<br />
the timing requirements is more difficult in deep submicron technologies due to the dominating wire<br />
capacities. It can be mastered by using modern algorithms which adapt the gates’ driver strength to the load<br />
capacities. However, in the future a further fusion of synthesis and layout programs will have to take place<br />
so that the actual capacities of the metallization can be considered during the optimization of the circuit.<br />
Afterwards, a complete modern design flow is presented, including a discussion of means for a continuous<br />
verification of all steps which is essential for the ASIC development.<br />
The integration of a CPU in an SoC offers completely new chances for the ASIC design and also for the<br />
production test. On a normal IC tester, the test of the integrated memory, especially of Flash memory, and<br />
the test of analog functions is quite difficult and also expensive, due to the long test times. Giving concrete<br />
examples and showing solutions developed by the author, it is described how the CPU can aid such tests or<br />
perform a self-test. Using relatively simple additional circuitry, the CPU can even improve the characteristics<br />
of analog modules by a calibration or by an arithmetic signal conditioning, and defects in the integrated<br />
memory can be repaired even at run time by masking out defective sectors and by replacing them with<br />
intact ones. Thus the test costs can be reduced and the yield can be increased significantly.<br />
Finally, a structural change in the system architecture is described: In modern technologies, the logic portion<br />
of an ASIC becomes extremely small, even if it is at the li<strong>mit</strong>s of the complexities that can be managed<br />
in specification and in design. The resulting “design gap”, however, can be filled up with memory or with<br />
regular logic in order to fully utilize the technological resources. The integration of a CPU per<strong>mit</strong>s ever<br />
more varied possibilities of programming and configuration to which the author could add a new circuit for<br />
controlling even the timing characteristics of an ASIC. He suggests defining a family of universal ASICs.<br />
Due to the high gate density, these could be modularly equipped with a multiplicity of quite freely configurable<br />
interfaces and functions nearly without extra costs. Such universal circuits should have very<br />
broad fields of application, so that they could be a solution to the problem of ASIC project volumes<br />
described.
Glossar<br />
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 />
Glossar<br />
Seite 105<br />
analog Alle zu verarbeitenden Größen (z. B. Lautstärkeinformationen, Temperaturen etc.) werden<br />
durch kontinuierliche Spannungen oder Ströme repräsentiert, deren Wert in der<br />
Regel proportional zur verarbeiteten Größe ist (vgl. → digital).<br />
AMS Austria Mikro Systeme. Ein österreichischer → Halbleiterhersteller, der sich auf spezielle<br />
→ CMOS-Prozessvarianten für → Mixed Signal ASICs spezialisiert hat<br />
ARM Advanced RISC Machines. Marktführender Anbieter stromsparender, aber leistungsstarker<br />
→ RISC → CPUs, die als → IP in → ASICs integriert werden können<br />
Ausbeute Anteil der funktionsfähigen → integrierten Schaltungen an den produzierten Schaltungen,<br />
beschränkt durch Fertigungsfehler<br />
ASIC Application Specific Integrated Circuit. Anwendungsspezifische → integrierte Schaltung,<br />
die ein Kunde in der Regel exklusiv für seine eigenen Produkte entwickeln und<br />
fertigen lässt<br />
BGA Ball Grid Array. → Gehäusebauform für → integrierte Schaltungen, bei der auf der<br />
Gehäuseunterseite auf einer Matrix aus Kontaktflächen kleine Kugeln aus Lötzinn<br />
angeordnet sind, die beim Lötvorgang aufschmelzen und so die Verbindung zu entsprechenden<br />
Kontaktflächen auf der Leiterplatte herstellen<br />
Bibliothek Hier: Sammlung von Daten, insbesondere von Zellparametern und Simulationsmodellen<br />
Bipolar-Transistor Stromverstärkendes → Halbleiter-Bauelement, das heute überwiegend nur noch<br />
in → analogen Schaltungen eingesetzt wird<br />
BIST Built In Self Test. In die → integrierten Schaltungen werden Teststrukturen eingebaut,<br />
die Logikblöcke oder Speicherelemente <strong>mit</strong> Eingangssignalen versorgen, ihre Ausgangsdaten<br />
<strong>mit</strong> Sollwerten vergleichen und so automatisch er<strong>mit</strong>teln, ob der Chip fehlerfrei<br />
gefertigt wurde.<br />
Bit Binary Digit. Binärziffer (0 oder 1) der Zahlendarstellung im Dualsystem, gleichzeitig<br />
kleinste Informationseinheit und Grundlage → digitaler Schaltungen<br />
bonden Herstellung von Verbindungen zwischen den → Pads auf dem → Die und den inneren<br />
Anschlüssen (Bond Finger) eines → Gehäuses <strong>mit</strong>tels dünner Gold- oder Aluminiumdrähte.<br />
Boundary Scan Zwischen dem → Core und den → Pad-Zellen einer → integrierten Schaltung<br />
wird eine Schieberegisterkette eingefügt, die es in einem Testmodus erlaubt, über eine<br />
serielle → JTAG-Schnittstelle Signale einzuspeisen und auszulesen und so den Core<br />
oder die Verbindungen auf der Leiterplatte zu testen.<br />
Buffer → Gatter zur Verstärkung der Treiberfähigkeit → digitaler Signale, das aus zwei<br />
→ Invertern aufgebaut ist und auch zur Signalverzögerung eingesetzt werden kann<br />
Bus Parallele Leitungen zur gleichzeitigen Übertragung mehrerer Informationen, meist<br />
mehrerer Binärziffern eines Wertes<br />
CAD Computer Aided Design. Computerunterstützter Entwurf z. B. → von Layouts<br />
CAE Computer Aided Engineering. Computerunterstützte Entwicklung<br />
Clock Taktsignal eines → Flipflops<br />
Clock Skew Laufzeitdifferenz des Taktsignals zu den Clock-Eingängen verschiedener → Flipflops,<br />
bedingt durch verbleibende Asymmetrien des → Clock Trees<br />
Clock Tree Um ein Taktsignal an Hunderte oder Tausende von → Flipflops zu verteilen, reicht die<br />
Treiberstärke eines einzelnen → Buffers nicht aus. Daher wird eine baumartig aufgefächerte<br />
Struktur vieler Buffer <strong>mit</strong> gleichmäßig verteilten Lasten verwendet.
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 />
Glossar<br />
Seite 106<br />
CMOS Complementary Metal Oxide Semiconductor. Der heute dominierende Herstellungsprozess<br />
(bzw. ein Konstruktionsprinzip) für digitale → integrierte Schaltungen. Es werden<br />
komplementäre → MOSFETs (<strong>mit</strong> positiver und negativer Dotierung des<br />
Halbleitermaterials) verwendet und durch identische Gate-Spannungen angesteuert.<br />
Hierdurch werden die MOSFETs wechselweise ein- und ausgeschaltet, so dass im<br />
Ruhezustand kein Strom durch in Reihe geschaltete MOSFETs fließen kann.<br />
Constraints Vorgaben wie z. B. Geschwindigkeitsanforderungen bei der Synthese und Layouterzeugung<br />
von → integrierten Schaltungen<br />
Core Kernbereich einer → integrierten Schaltung ohne die → Pad-Zellen<br />
CPU Central Processing Unit. Zentrales Steuer- und Rechenwerk eines Computers<br />
Deep Submicron → Strukturbreiten weit unterhalb von einem Mikrometer (1μm = 1/1000 mm)<br />
Design Der Vorgang des Entwerfens oder der dabei entstehende Entwurf einer Schaltung<br />
Design Entry Manuelle Eingabe einer Schaltung oder einer Schaltungsbeschreibung<br />
Design Flow Ablauf aller Eingabe- und Umsetzungsvorgänge bei der Entwicklung einer<br />
→ integrierten Schaltung<br />
Die Eine → integrierte Schaltung als rechteckiges, aus einem → Wafer gesägtes Plättchen<br />
aus → Halbleitermaterial. Zur Weiterverarbeitung wird ein Die durch → Bonden in ein<br />
→ Gehäuse eingesetzt.<br />
digital Alle zu verarbeitenden Daten werden als Zahlenwerte im Binärformat als Folge von<br />
Nullen und Einsen dargestellt, wobei die Werte 0 und 1 jeder Binärziffer (Bit) durch<br />
zwei verschiedene Spannungswerte repräsentiert werden. Die Verarbeitung der Informationen<br />
erfolgt über → Gatter, die Speicherung über → Flipflops. Gegenteil: → analog<br />
diskret Aus Einzelbauteilen zusammengesetzt; nicht in Form einer → integrierten Schaltung<br />
DRC Design Rule Check. Die Überprüfung, ob ein → Layout den Anforderungen des<br />
→ Halbleiterherstellers z. B. in Bezug auf die Breiten und Abstände von Leiterbahnen<br />
entspricht<br />
DSP Digital Signal Processor. Ein programmierbares Rechenwerk ähnlich einer → CPU, das<br />
für Aufgaben der digitalen Signalverarbeitung optimiert wurde<br />
EDA Electronic Design Automation. Der stark automatisierte Entwurf elektronischer und<br />
→ integrierter Schaltungen<br />
ERC Electrical Rule Check. Die Überprüfung eines → Layouts nach einfachen Regeln elektrischer<br />
Verbindungen, bei der z. B. Kurzschlüsse und nicht angeschlossene Leitungen<br />
gefunden werden<br />
Ethernet Eine Schnittstelle <strong>mit</strong> hoher Datenrate für lokale Computernetzwerke<br />
Firmware Die fest in einem Computersystem gespeicherte Systemsoftware<br />
Flash Ein Speicher innerhalb eines Computersystems oder einer (integrierten) Schaltung, der<br />
(langsam) <strong>mit</strong> Daten- oder Programminhalten beschrieben werden und gelesen werden<br />
kann und dessen Daten auch bei einem Ausfall der Versorgungsspannung erhalten bleiben<br />
Flipflop Speicherelement für ein → Bit als Grundelement → integrierter Schaltungen, das bei<br />
einer Änderung eines Taktsignals (in der Regel bei einem Wechsel von 0 auf 1) den<br />
Wert des anliegenden Eingangssignals speichert und am Ausgang ausgibt<br />
FPGA Field Programmable Gate Array. Reguläre Anordnung von → Gattern und → Flipflops<br />
in einer (sehr teuren) → integrierten Schaltung, deren Verbindungen so programmiert<br />
werden können, dass beliebige → digitale Schaltungen implementiert werden können<br />
FSM Finite State Machine → Zustandsmaschine
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 />
Glossar<br />
Seite 107<br />
Gate Array Reguläre Anordnung von Transistoren auf vorprozessierten → Wafern, deren Verbindungen<br />
über wenige Metallisierungsmasken hergestellt werden können, um so<br />
→ NRE-Kosten bei der Fertigung der → integrierten Schaltungen zu sparen<br />
Gatter Grundelemente → digitaler → integrierter Schaltungen zur logischen Verknüpfung von<br />
Signalen; ein UND-Gatter z. B. liefert am Ausgang nur den logischen Wert 1, wenn alle<br />
Eingangssignale den Wert 1 haben, anderenfalls den Wert 0<br />
Als Komplexitätsmaß entspricht ein Gatter vier → Transistoren.<br />
GDSII <strong>Datei</strong>format für die Abgabe eines → Layouts an einen → Halbleiterhersteller<br />
Gehäuse Da ein → Die nicht auf Leiterplatten gelötet werden kann, wird er durch → bonden in<br />
ein IC-Gehäuse montiert, das an den Kanten oder der Unterseite lötbare Anschlüsse<br />
besitzt.<br />
grafisches HDL Spezifikationsformat für → digitale → integrierte Schaltungen, bei dem<br />
→ HDL-Texte kombiniert <strong>mit</strong> grafischen Darstellungsformen wie → Zustandsmaschinen<br />
und → Schematics eingesetzt werden<br />
Halbleiter Ein Material wie z. B. Silizium, das im reinen Zustand isoliert, aber durch Dotierung<br />
<strong>mit</strong> Fremdatomen elektrisch leitfähig wird, da bewegliche Elektronen oder Löcher<br />
(Elektronen-Fehlstellen) entstehen. Durch elektrische Felder können die elektrischen<br />
Ladungsträger verdrängt oder angezogen werden, so dass eine Steuerung der Leitfähigkeit<br />
möglich ist (→ MOSFET).<br />
Halbleiterhersteller Ein Unternehmen, das nicht das Halbleitermaterial selbst herstellt, sondern<br />
→ integrierte Schaltungen daraus fertigt<br />
Hardwarebeschreibungssprache Computersprache zur Spezifikation von Ein- und Ausgangssignalen,<br />
Rechenoperationen und der Ablaufsteuerung in → digitalen → integrierten Schaltungen,<br />
geeignet für die Schaltungserzeugung durch → Logiksynthese<br />
HDL Hardware Description Language → Hardwarebeschreibungssprache<br />
High-End-Produkt Produkt des höchsten Funktions- bzw. Leistungsbereichs<br />
IC Integrated Circuit → integrierte Schaltung<br />
ICDA Integrated Circuit Design Automation. Der stark automatisierte Entwurf → integrierter<br />
Schaltungen<br />
Integrierte Schaltung Auf einem → Wafer aus → Halbleitermaterial werden <strong>mit</strong>tels fotografischer<br />
Verfahren, Diffusions- und Ätzvorgängen viele elektronische Schaltungen <strong>mit</strong><br />
allen Bauteilen, darunter evtl. Millionen von → Transistoren, einschließlich ihrer Verbindungen<br />
gleichzeitig gefertigt, so dass die preiswerte Produktion hochkomplexer<br />
Schaltungssysteme wie z. B. Computerbauteilen möglich wird.<br />
Inverter → Gatter zur Umkehr des logischen Pegels (0/1) eines → digitalen Signals<br />
I/O Inputs / Outputs. Die Ein- und Ausgänge einer → integrierten Schaltung als Schnittstellen<br />
zur Außenwelt, realisiert über → Pad-Zellen, die am Rand jedes → Dies liegen<br />
IP Intellectual Property. Teilschaltungen einer komplexen → integrierten Schaltung, die<br />
vom Entwickler gegen Gebühren anderen ASIC-Designern zur Mitbenutzung angeboten<br />
wird<br />
JTAG Joint Test Action Group. Standard eines Test-Interfaces, das den seriellen Zugang zu<br />
→ Boundary Scan Logik, → BIST-Strukturen und → Scan-Path-Ketten erlaubt<br />
Kondensator → Kapazität<br />
Kapazität Parallele Anordnung von Metallflächen, als elektronisches Bauteil Kondensator<br />
genannt, auf denen elektrische Ladungen gespeichert werden können. Da ein Umladen<br />
einer Kapazität Zeit kostet, beeinflussen unerwünschte aber unvermeidbare Kapazitäten<br />
in der Verdrahtung → integrierter Schaltungen deren Zeitverhalten
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 />
Glossar<br />
Seite 108<br />
Layout Geometrische Strukturbeschreibung für die Fertigung → integrierter Schaltungen, die<br />
über Polygone und Linien in verschiedenen Ebenen die Form, Größe und Position von<br />
Diffusionsgebieten, Kontakten, Verbindungsbahnen etc. beschreibt und direkt für die<br />
Herstellung der → Masken verwendet wird<br />
Logik Gewöhnliche Grundelemente → digitaler Schaltungen wie → Gatter und → Flipflops,<br />
jedoch keine Speicher.<br />
Logiksynthese Automatische Erzeugung von → digitalen Schaltungen aus einer exakten, in<br />
einer → Hardwarebeschreibungssprache verfassten Spezifikation unter Verwendung<br />
von Entwurfs- und Optimierungsalgorithmen sowie Bibliotheken der zu verwendenden<br />
Grundelemente<br />
LVS Layout Versus Schematic. Vergleich von → Netzliste und → Layout <strong>mit</strong>tels Computerprogrammen<br />
zur Verifikation der Layouterzeugung<br />
Masken Vorlagen für die Belichtung der → Wafer bei der Fertigung → integrierter Schaltungen,<br />
um <strong>mit</strong>tels fotografischer Verfahren, Diffusions- und Ätzvorgängen Bauteile und Leiterbahnen<br />
auf dem → Halbleitermaterial gezielt erzeugen zu können<br />
Masse Bezugspotential von 0 Volt für Spannungsangaben<br />
Mixed Signal Kombination von → analoger und → digitaler Signalverarbeitung<br />
Modelsim Ein Simulator für Verhaltensbeschreibungen und → Netzlisten, auch kombiniert in den<br />
→ Hardwarebeschreibungssprachen Verilog und VHDL<br />
MOSFET Metal Oxide Semiconductor Field Effect Transistor (Metall-Oxyd-Halbleiter-Feldeffekt-Transistor).<br />
Ein spannungsgesteuerter elektronischer Schalter <strong>mit</strong> einem Steueranschluss<br />
(Gate) aus Metall (heute aus polykristallinem Silizium), der durch Oxyd<br />
gegenüber dem → Halbleiter isoliert ist. Eine Spannung am Gate zieht Ladungsträger<br />
ins Halbleitermaterial und steuert so die Leitfähigkeit des Transistors, ohne dass ein<br />
statischer Steuerstrom fließt.<br />
MPW Run Um → NRE-Kosten zu sparen, werden auf einem → Wafer Prototypen von<br />
→ integrierten Schaltungen mehrerer Kunden gefertigt, die anteilige Maskenkosten<br />
bezahlen.<br />
Netzliste Textuelle Strukturbeschreibung einer Schaltung anhand von Bauelementen und ihren<br />
Verbindungen<br />
NRE Non Recurring Engineering [Costs]. Einmalige Einrichtungskosten bei der ASIC-Produktion<br />
für → Masken sowie evtl. für die → Layouterstellung und einen ersten Technologiedurchlauf<br />
(Musterfertigung)<br />
Pad-Zellen Zellen im Randbereich eines → Die, in denen größere Metallflächen (Pads) zum<br />
→ bonden der Ein- und Ausgangssignale des Chips in ein → Gehäuse zur Verfügung<br />
stehen<br />
Parasitäre Bauteile In CMOS-Technologien lassen sich z. B.→ Bipolar-Transistoren nur unter<br />
Verwendung von Strukturen (Wannen) herstellen, die eigentlich nicht hierfür konzipiert<br />
wurden.<br />
Parasitäre Kapazitäten Ungewollt entstehende → Kapazitäten. In Layouts → digitaler<br />
→ integrierter Schaltungen zählen hierzu alle Kapazitäten der Schaltungsverdrahtung.<br />
Phy Physical Layer. Physikalische Ebene einer Computerschnittstelle, die u. a. aus Leitungstreibern,<br />
Komparatoren und Filtern besteht<br />
Pitch Produktionstechnisch bedingter minimaler Mittenabstand z. B. von → Pads oder Leiterbahnen<br />
Place & Route Erzeugung eines → Layouts durch Platzieren und Verdrahten von → Standardzellen
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 />
Glossar<br />
Seite 109<br />
Post Layout Nach Erstellung des → Layouts. Unter anderem das Zeitverhalten einer Schaltung<br />
(Post Layout Timing) wird von den Leiterbahnlängen und -Kapazitäten im Layout<br />
beeinflusst.<br />
RAM Random Access Memory (Schreib-lese-Speicher). Ein Speicher innerhalb eines Computersystems<br />
oder einer (integrierten) Schaltung, der <strong>mit</strong> Daten- oder Programminhalten<br />
beschrieben werden und gelesen werden kann, der die Daten aber nur so lange<br />
halten kann, wie eine Versorgungsspannung anliegt<br />
Redesign Änderung oder Neuentwurf einer fehlerhaft entworfenen → integrierten Schaltung<br />
RISC Reduced Instruction Set Computer. Ein Computer, dessen → CPU nur wenige Befehle<br />
beherrscht, welche aber so schnell ausgeführt werden, dass auch komplexe Funktionen<br />
(z. B. Multiplikationen) als Kette einzelner Befehle schnell bearbeitet werden können<br />
ROM Read Only Memory (Nur-lese-Speicher). Ein Speicher innerhalb eines Computersystems<br />
oder einer (integrierten) Schaltung, der <strong>mit</strong> unveränderbaren Daten- oder Programminhalten<br />
gefertigt wird<br />
Routing → Place & Route<br />
Scan Path Verschaltung aller → Flipflops in einer Schaltung zu Schieberegisterketten, die es<br />
ermöglicht, beim Test der Schaltung auf interne Flipflops observierend und kontrollierend<br />
zuzugreifen und so den Schaltkreis weitgehend unabhängig von seiner normalen<br />
Funktion zu testen<br />
Schematic Schaltplan, der die elektrischen Verbindungen einzelner Bauteile, meist innerhalb einer<br />
→ integrierten Schaltung, wiedergibt<br />
Script Eine <strong>Datei</strong>, die Befehlssequenzen und evtl. Parameterdefinitionen enthält<br />
sdf Standard-<strong>Datei</strong>format für Daten zu parasitären Widerständen und → Kapazitäten im<br />
→ Layout einer → integrierten Schaltung<br />
SoC System on a Chip. Die Integration aller wesentlichen Komponenten eines (Computer)Systems<br />
auf einer → integrierten Schaltung einschließlich einer → CPU und des<br />
Speichers<br />
Speedchart Ein Eingabe- und Simulationsprogramm für → grafisches HDL<br />
Standardzellen Grundbausteine (→ Gatter und → Flipflops) einer → integrierten Schaltung, zu<br />
denen Simulationsmodelle und aneinander reihbare → Layouts existieren<br />
State Machine → Zustandsmaschine<br />
Strukturbreite Minimale in einer Technologie zulässige Gate-Länge von → MOSFETs<br />
Submikron → Strukturbreiten unterhalb von einem Mikrometer (1μm = 1/1000 mm)<br />
synchron Gleichzeitige Ansteuerung aller → Flipflops einer → integrierten Schaltung <strong>mit</strong> einem<br />
identischen Taktsignal<br />
Synopsys Ein → Logiksyntheseprogramm<br />
Synthese → Logiksynthese<br />
top down Im → Design Flow wird <strong>mit</strong> der groben Spezifikation begonnen, die Schaltung strukturiert<br />
und nach und nach immer feiner ausgearbeitet; es wird also von oben nach unten<br />
vorgegangen, nach Möglichkeit ohne höhere, bereits fertige Ebenen noch einmal zu<br />
ändern.<br />
Transistor → Halbleiter-Bauelement, das als Verstärker oder als elektrisch gesteuerter Schalter<br />
eingesetzt werden kann. Man unterscheidet die spannungsgesteuerten → MOSFETs<br />
und die stromverstärkenden → Bipolartransistoren<br />
TSMC Taiwan Semiconductor Manufacturing Company. Der erste und bis heute größte<br />
→ Halbleiterhersteller, der im reinen Kundenauftrag → integrierte Schaltungen nach
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 />
Glossar<br />
Seite 110<br />
angelieferten → GDSII-Vorlagen fertigt, ohne eigene Designleistungen anzubieten<br />
oder eigene ICs zu produzieren (Foundry Business)<br />
TTL Transistor Transistor Logic. Unmodernes Konstruktionsprinzip für → digitale<br />
→ integrierte Schaltungen aus → Bipolartransistoren<br />
UART Universal Asynchronous Receiver and Trans<strong>mit</strong>ter. Eine einfache Schnittstelle zur<br />
Datenübertragung, bei der die Bits als Spannungspegel in konstanten zeitlichen Abständen<br />
ohne weitere Synchronisationssignale übertragen werden<br />
Übersprechen Gegenseitige Beeinflussung von Signalen, zwischen denen → parasitäre Kapazitäten<br />
existieren<br />
USB Universal Serial Bus. Eine moderne serielle Schnittstelle <strong>mit</strong> hoher Datenrate zum<br />
Anschluss von Peripheriegeräten<br />
Verifault Ein Fehlersimulator für → Verilog-Netzlisten, der zur Optimierung der Testmuster für<br />
den Produktionstest er<strong>mit</strong>teln kann, welcher Anteil aller möglichen (Fertigungs)fehler<br />
bei der Simulation (bzw. beim Test) detektiert werden kann<br />
Verilog Eine weit verbreitete → Hardwarebeschreibungssprache<br />
Verilog-XL Ein Simulator für Verhaltensbeschreibungen und → Netzlisten in → Verilog<br />
VHDL Very High Speed Integrated Circuits Hardware Description Language. Eine weit verbreitete<br />
→ Hardwarebeschreibungssprache<br />
Wafer Dünne runde Scheiben aus einem → Halbleitermaterial wie z. B. Silizium, aus denen<br />
→ integrierte Schaltungen gefertigt werden<br />
Wire Load Model Statistische Modellierung der zu erwartenden Metallisierungskapazitäten von<br />
Leiterbahnen im → Layout einer → integrierten Schaltung, die als Grundlage für die<br />
→ Timing-Analyse bei der → Logiksynthese dient<br />
Yield → Ausbeute<br />
Zustandsmaschine Eine Schaltung zur Ablaufsteuerung innerhalb einer → integrierten Schaltung,<br />
die in Abhängigkeit von Eingangssignalen ihren gespeicherten Zustand ändert und je<br />
nach Zustand verschiedene Operationen ausführen und Ausgangssignale erzeugen kann<br />
(s. Abbildung 4-1 auf Seite 31)
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
Literaturverzeichnis<br />
Wachstum der <strong>Mikroelektronik</strong><br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
Literaturverzeichnis<br />
Seite 111<br />
[1] “Workshop Conclusions [The National Technology Roadmap for Semiconductors, 1992]”,<br />
Semiconductor Industry Association, San Jose, California, 1993<br />
[2] “The National Technology Roadmap for Semiconductors, 1994 Edition”, Semiconductor<br />
Industry Association, San Jose, California, 1994<br />
http://www.lirmm.fr/~w3mic/Docs/roadmap.<strong>pdf</strong><br />
/home/bauer/texte/dis/dokumente/SIA_Roadmap_1994.<strong>pdf</strong><br />
[3] “The National Technology Roadmap for Semiconductors, 1997 Edition”, Semiconductor<br />
Industry Association, San Jose, California, 1997<br />
http://www.lirmm.fr/~w3mic/Docs/roadmap4.<strong>pdf</strong><br />
/home/bauer/texte/dis/dokumente/SIA_Roadmap_1997.<strong>pdf</strong><br />
[4] “International Technology Roadmap for Semiconductors, 1999 Edition”, Semiconductor<br />
Industry Association, San Jose, California, 1999<br />
http://public.itrs.net/files/1999_SIA_Roadmap/<br />
/home/bauer/texte/dis/dokumente/SIA_Roadmap_1999<br />
[5] “EDA Industry Standards Roadmap”, Sematech, Inc., 1995<br />
http://www.si2.org/roadmap/roadmapHomePage.html<br />
/home/bauer/texte/dis/dokumente/EDA_Industry_roadmap.ps<br />
[6] “Clock Cycle Estimation and Test Challenges for Future Microprocessors”, Sematech, Inc.,<br />
1998<br />
http://www.sematech.org/public/docubase/document/3484atr.<strong>pdf</strong><br />
/home/bauer/texte/dis/dokumente/SIA_Clock_Cycle.<strong>pdf</strong><br />
[7] “Efficient Full-Chip Yield Analysis Methodology for OPC-Corrected VLSI Designs”, V.<br />
Axelrad, N. Cobb, M. O’Brien, V. Boksha, T. Donnelly, Y. Granik, E.Sahouria, A. Balasinski,<br />
2000<br />
http://www.sequoiadesignsystems.com/qed.<strong>pdf</strong><br />
/home/bauer/texte/dis/dokumente/Efficient_Yield_Analysis.<strong>pdf</strong><br />
[8] “Foundry Market Outlook: Into The Fire”, James Hines, Dataquest Group, 2000<br />
http://www.fsasurvey.com/2000/insights/hines.asp<br />
/home/bauer/texte/dis/dokumente/silicon_prices.ps<br />
[9] “Where will processor performance improvement come from in the next ten years?”, Hiroshi<br />
Iwai, ISSCC 2000<br />
http://www.cag.lcs.<strong>mit</strong>.edu/isscc2000panel/hiroshiiwai.<strong>pdf</strong><br />
/home/bauer/texte/dis/dokumente/hiroshiiwai.<strong>pdf</strong><br />
[10] “Die Size Trends”, Semiconductor Consulting Service, 1997<br />
http://www.semiconsulting.com/archive.html<br />
/home/bauer/texte/dis/dokumente/SCS/Die_Size_Trends.<strong>pdf</strong><br />
[11] “Minimum Line Width Trends”, Semiconductor Consulting Service, 1997<br />
http://www.semiconsulting.com/archive.html<br />
/home/bauer/texte/dis/dokumente/SCS/Min_Linewidth_Trends.<strong>pdf</strong><br />
[12] “MOS Process Complexity Trends”, Semiconductor Consulting Service, 1997<br />
http://www.semiconsulting.com/archive.html<br />
/home/bauer/texte/dis/dokumente/SCS/MOS_Complexity_Trends.<strong>pdf</strong><br />
[13] “Evolution of Intel Microprocessors: 1971 to 2003”, 2001<br />
http://www.archivebuilders.com/whitepapers/22016h.html<br />
/home/bauer/texte/dis/dokumente/Evo_of_Micro.ps
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
[14] “Intel Microprocessor Guide”, 2001<br />
http://morehouse.8m.com/processor.htm<br />
/home/bauer/texte/dis/dokumente/Micro_Guide.ps<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
[15] “Hard Phase Shift”, Photronics, 2001<br />
http://www.photronics.com/internet/prodserv/techdev/phaseshift/phaseshift.htm<br />
/home/bauer/texte/dis/dokumente/Phase_Shift.ps<br />
Literaturverzeichnis<br />
Seite 112<br />
[16] “Who Has Nanometer Design Under Control ?”, S. Wang, S. Borkar, E. Cheng, J. Cohn, N.<br />
Nettleton, L. Scheffer, DAC 2001<br />
http://videos.dac.com/videos/38th/36/36/36slides.<strong>pdf</strong><br />
/home/bauer/texte/dis/dokumente/Nanometer.<strong>pdf</strong><br />
[17] “Technology Trends: The Nature of Exponential Change”, Professor Sam Wood, Stanford<br />
University, 2000<br />
http://www.stanford.edu/~swood/T361/trends.<strong>pdf</strong><br />
/home/bauer/texte/dis/dokumente/Technology_Trends.<strong>pdf</strong><br />
[18] “Review of Technology Trends and Cost/Performance”, Professor Jan M. Rabaey, Berkeley,<br />
2000<br />
http://bwrc.eecs.berkeley.edu/Classes/CS252/Notes/Lec01-intro.<strong>pdf</strong><br />
/home/bauer/texte/dis/dokumente/Rabaey.<strong>pdf</strong><br />
[19] “Subwavelength Challenge”, Numerical Technology, Inc., 2001<br />
http://www.numeritech.com/technology/subwavelength.html<br />
/home/bauer/texte/dis/dokumente/subwavelength.ps<br />
[20] Einzelinformationen aus dem Internet<br />
Die Abbildungen 3-1 bis 3-15 auf Seite 21 bis 24 wurden zum Teil unter Verwendung von Einzelinformationen aus dem Internet generiert,<br />
wobei auf die Quellenangabe verzichtet wurde, wenn einer Quelle nicht mehr als ein Wert entnommen wurde.<br />
Da eine Zuordnung der einzelnen Punkte in den Grafiken zu bestimmten Internet-Seiten ohnehin nicht möglich gewesen wäre und die<br />
Inhalte des Internets erfahrungsgemäß schnellen Änderungen unterliegen, lassen sich die Informationen <strong>mit</strong> Hilfe von Suchprogrammen<br />
im Internet ohnehin gezielter und zuverlässiger wiederfinden als bei Angabe einer Liste von Quellen.<br />
Schaltungstechnik, Schaltungsentwurf<br />
[21] Tietze, Schenk: „Halbleiter-Schaltungstechnik“, 9. Auflage, Springer-Verlag, <strong>Berlin</strong>, 1989<br />
[22] Gray, Meyer: “Analysis and Design of Analog Integrated Circuits”, 2nd edition, Wiley, New<br />
York, 1984<br />
[23] C. Mead, L. Conway: “Introduction to VLSI Systems”, Addison-Wesley,1980<br />
[24] VLSI Technology: “Static RAM Testing Application Note”, Version 1.0, 1997<br />
/home/bauer/texte/dis/dokumente/Static_RAM_Testing_v1_0.<strong>pdf</strong><br />
[25] VLSI Technology: “VLSI Memory Testing Requirements”, Version 1.0, 1999<br />
/home/bauer/texte/dis/dokumente/VLSI_RAM_Test_requrements.<strong>pdf</strong><br />
[26] “Semiconductor memory device with row and column redundancy circuits and a timeshared<br />
redundancy circuit test architecture”, Luigi Pascucci, Europäisches Patentamt, Nr.<br />
96830326.3, 1997<br />
http://www.european-patent-office.org/correct/01_<strong>pdf</strong>docs/0811988a.<strong>pdf</strong><br />
/home/bauer/texte/dis/dokumente/Redundancy.<strong>pdf</strong><br />
[27] Kenneth P. Parker: “The Boundary-Scan Handbook”, Kluwer Academic Publishers, 1992<br />
[28] “1T-SRAM, The System-on-Chip Embedded Memory”, MoSys, Inc., 2001<br />
http://www.mosysinc.com/products/1tsram3.<strong>pdf</strong><br />
/home/bauer/texte/dis/dokumente/Mosys_1tsram3.<strong>pdf</strong><br />
[29] “Built In Self Test”, Ranga Vemuri, College of Engineering, University of Cincinnati, 2001<br />
http://www.ececs.uc.edu/~ranga/courses/682/slides-spring-2001/BIST2.<strong>pdf</strong><br />
/home/bauer/texte/dis/dokumente/LFSR.<strong>pdf</strong>
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 />
[30] D. L. Perry: “VHDL”, 2nd edition, McGraw-Hill, New York, 1994<br />
Literaturverzeichnis<br />
Seite 113<br />
[31] Chr. v. Reventlow: „VLSI-Design komplexer Systeme – Steuerung und statistische Kontrolle<br />
des Entwurfsablaufs“, Dissertation, <strong>TU</strong> <strong>Berlin</strong>, Institut für <strong>Mikroelektronik</strong>, 1993<br />
[32] U. Elsholz, G. Gottschalk, G. Müller: „Vergleich des Aufwandes verschiedener Repräsentationen<br />
im Digitalentwurf“, <strong>TU</strong> <strong>Berlin</strong>, Institut für <strong>Mikroelektronik</strong>, 1995<br />
/home/bauer/texte/dis/dokumente/eis/beitrag/main.028<br />
[33] L. Bauer, O. Manck: „Von grafischem VHDL zur FPGA-Realisierung“, <strong>TU</strong> <strong>Berlin</strong>, Institut<br />
für <strong>Mikroelektronik</strong>, 1995<br />
/home/bauer/texte/dis/dokumente/Vortrag_graph_VHDL.fm<br />
[34] L. Bauer: „Speedchart-Praktikum, Synthese und Umsetzung ins FPGA“, <strong>TU</strong> <strong>Berlin</strong>, Institut<br />
für <strong>Mikroelektronik</strong>, 1995<br />
/home/bauer/texte/dis/dokumente/Speed_Praktikum_Unterlagen.fm<br />
[35] L. Bauer: „Testbericht, Test eines Bildmustergenerator-ASICs“, <strong>TU</strong> <strong>Berlin</strong>, Institut für<br />
<strong>Mikroelektronik</strong>, 1996<br />
/home/bauer/texte/dis/dokumente/Testbericht_PIC.fm<br />
[36] L. Bauer: „Von der Spezifikation zum Silizium: Speedchart - Synopsys - Cascade“, Vortrag<br />
auf dem Eurochip Workshop, 1994<br />
[37] Ethernet-Konsortium der University of New Hampshire<br />
http://www.iol.unh.edu/consortiums/index.html<br />
[38] Christof Bergmann: „Entwurf und Realisierung eines 3D-Grafikprozessors <strong>mit</strong> 1,2 Millionen<br />
Gattern in 0,35 μm CMOS Technologie“, <strong>TU</strong> <strong>Berlin</strong>, Diplomarbeit (Betreuer: Lukas<br />
Bauer), Institut für <strong>Mikroelektronik</strong>, 1998<br />
/home/bauer/texte/diplomarbeit_christof.tgz<br />
[39] Jens Völkl: „Ein vollständig digital kalibrierbares Sensor-ASIC“, <strong>TU</strong> <strong>Berlin</strong>, Diplomarbeit<br />
(Betreuer: Lukas Bauer), Institut für <strong>Mikroelektronik</strong>, 2000<br />
/home/bauer/texte/diplomarbeit_jens<br />
Design Flow, CAE Tools, Halbleiterhersteller<br />
[40] Samsung Electronics Co., Ltd.: “CubicWare Hierarchical Design Environment for the Deep<br />
Submicron Design in Samsung”, 2000<br />
/home/bauer/texte/dis/dokumente/CubicWare2000V6_a.<strong>pdf</strong><br />
[41] Synopsys: “DesignWare Foundation Library”, Vol. 1, 1999<br />
/home/bauer/texte/dis/dokumente/Synopsys_DesignWare_1.ps<br />
[42] Samsung Electronics Co., Ltd.: “Satest2 V.2.20 Manual”, 2000<br />
/home/bauer/texte/dis/dokumente/Satest.<strong>pdf</strong><br />
[43] Cadence Design Systems: “Cadence Delivers Industry’s First Tool Integrating Synthesis<br />
and Place-and-Route Technologies”, 1999<br />
http://www.cadence.com/company/pr/archive99/07_12_99.html<br />
/home/bauer/texte/dis/dokumente/Cadence_PKS.ps<br />
[44] Samsung Electronics Co., Ltd.: “STD90/DML90 0.35um 3V CMOS Standard Cell Library<br />
Data Book”, 2nd edition, 1999<br />
[45] AMS Austria Mikro Systeme International: “2.0-Micron, 1.2-Micron, 1.0-Micron and 0.8-<br />
Micron Standard Cell Databook”, 1996
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 />
Literaturverzeichnis<br />
Seite 114<br />
[46] AMS Austria Mikro Systeme International, Rainer Kind: Informationen zum Leistungsverbrauch<br />
von Gattern in verschiedenen Technologien, 2001<br />
/home/bauer/texte/dis/dokumente/AMS_power_per_gate.<strong>pdf</strong><br />
[47] TSMC-Online: diverse Technologie-Informationen im Internet, TSMC, 2001<br />
http://www.tsmc.com/<br />
https://ectwww2.tsmc.com/online/on_login1.jsp<br />
[48] Altera: “ARM-Based Embedded Processor”, 2001<br />
http://www.altera.com/products/devices/excalibur/exc-arm_index.html<br />
/home/bauer/texte/dis/dokumente/Altera_ARM.ps<br />
[49] NEC: “System-on-Chip Lite, Gate Array with ARM7TDMI Subsystem”, 2001<br />
http://www.nec.de/_PDF/A15045EE4V0PL00.PDF<br />
/home/bauer/texte/dis/dokumente/SoCLite.<strong>pdf</strong><br />
Zitate<br />
[50] Markus Schirmer, <strong>TU</strong> <strong>Berlin</strong>: „Der ASIC-Designer fürchtet zwei Dinge im Leben: dass ihm<br />
der Himmel auf den Kopf fällt und dass der Chip nicht funktioniert.“, mündlich, 1992<br />
[51] Murhpy’s Law: “If anything can go wrong, it will.”, nach Edward A. Murphy Jr., 1949<br />
http://www.hithere.com/murphy/origin.htm<br />
[52] Niels Bohr: “Prediction is very difficult, especially about the future.”<br />
[53] Gordon Moore: “The complexity for minimum component costs has increased at a rate of<br />
roughly a factor of two per year. Certainly over the short term this rate can be expected to<br />
continue, if not to increase. Over the longer term, the rate of increase is a bit more uncertain,<br />
although there is no reason to believe it will not remain constant for at least 10 years.”, 1965
ASICs<br />
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 />
Literaturverzeichnis<br />
Seite 115<br />
Aufgeführt wurden nur ASICs, an deren Entwicklung der Verfasser beteiligt war und die tatsächlich<br />
gefertigt wurden.<br />
[A-1] Schachuhr: Digitale Schachuhr<br />
Technologie: 5μ Gate Array UMI UA4<br />
Designgröße: 5085μ × 4455μ = 22,7mm 2<br />
Komplexität: 2.676 Transistoren (digital)<br />
Tapeout: 20.01.1991<br />
Designer: Rüdiger Arnold, Lukas Bauer, Matthias Braun, Christian Piesnack<br />
[A-2] ECL-Teiler: Frequenzteiler in ECL-Technik<br />
Technologie: Bipolar Array AEG B1000<br />
Designgröße: 5080μ × 4320μ = 22,0mm 2<br />
Komplexität: 193 Transistoren (digital)<br />
Tapeout: 30.07.1991<br />
Designer: Rüdiger Arnold, Lukas Bauer, Matthias Braun, Thuyen Le, Christian Piesnack<br />
[A-3] TV-Chip: Single-Chip-Farbfernseher<br />
Technologie: 1.2μ BiCMOS Samsung<br />
Designgröße: 5460μ × 5300μ = 28,9mm 2<br />
Komplexität: 21.836 Transistoren+R+C, davon 9.602 T digital, 12.234 T+R+C analog<br />
Tapeout: 24.06.1993<br />
Designer: Rüdiger Arnold, Lukas Bauer (PLL-Audio-Demodulator), Hr. Janelli, Thomas Lorenz (Projektleiter),<br />
Martin Rose, Markus Schirmer, Stefan Wahl, Jens Werner<br />
[A-4] Parity: Ultraschneller Parity Generator für Speichermodule<br />
Technologie: 0.8μ 2m1p AMS CYB<br />
Designgröße: 1185μ × 840μ = 1,0mm 2<br />
Komplexität: 2.106 Transistoren (digital, überwiegend full custom)<br />
Tapeout: 01.09.1994<br />
Designer: Rüdiger Arnold, Lukas Bauer (Projektleiter)<br />
[A-5] Pic: TV-Bildmustergenerator zum Test von Satellitenempfängern<br />
Technologie: 0.8μ 2m1p AMS CYB<br />
Designgröße: 2130μ × 2130μ = 4,5mm 2<br />
Komplexität: 8.813 Transistoren+R+C, davon 8.753 T digital, 60 T+R+C analog<br />
Tapeout: 14.08.1995<br />
Designer: Lukas Bauer (Projektleiter), Christof Bergmann<br />
[A-6] GRST: Pulsgenerator für Ultraschall-Gruppenstrahler<br />
Technologie: 0.8μ 2m1p AMS CYB<br />
Designgröße: 2790μ × 2790μ = 7,8mm 2<br />
Komplexität: 18.122 Transistoren (digital)<br />
Tapeout: 20.11.1995<br />
Designer: Lukas Bauer (Projektleiter), Christof Bergmann<br />
Highlight: 100MHz Taktfrequenz (worst case) in 0.8μ CMOS<br />
[A-7] DVS: Richtungsselektiver Empfänger für Ultraschall-Gruppenstrahler<br />
Technologie: 0.8μ 2m1p ES2 ECPD07<br />
Designgröße: 5700μ × 6120μ = 34,9mm 2<br />
Komplexität: 218.174 Transistoren, davon 62.838 T digital und 15 kBit FIFO<br />
Tapeout: 11.06.1996<br />
Designer: Lukas Bauer (Projektleiter), Marius Tegethoff<br />
[A-8] Key: Tastatur-Encoder und Displaytreiber für Handheld-PCs<br />
Technologie: 0.8μ 2m1p AMS CYB<br />
Designgröße: 3440μ × 3330μ = 11.5mm 2<br />
Komplexität: 25.076 Transistoren (digital)<br />
Tapeout: 20.10.1997<br />
Designer: Lukas Bauer (Projektleiter), Knut Dalkowski, Marius Tegethoff<br />
[A-9] Miri: Analoges Netzspannungs-Stabilisierungsgerät<br />
Technologie: 1.2μ 50V 2m1p AMS CBZ<br />
Designgröße: 4615μ × 4560μ = 21,0mm 2<br />
Komplexität: 5.355 Transistoren (analog)<br />
Tapeout: 16.01.1998<br />
Designer: Rüdiger Arnold, Lukas Bauer (beide Projektleiter), Hans Burgdorf, Marco Liem, Marius Tegethoff
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 />
Literaturverzeichnis<br />
Seite 116<br />
[A-10] VISA + Rendi: 3D-Grafikprozessor <strong>mit</strong> Hardware Phong Shading<br />
Technologie: 0.35μ 4m1p TSMC<br />
Designgröße: 16580μ × 15630μ = 259,1mm 2<br />
Komplexität: 5.248.945 Transistoren, davon 4.439.253 T digital, 74 kBit FIFO, 648 kBit ROM<br />
Tapeout: 01.11.1998<br />
Designer: Lukas Bauer (Projektleiter), Christof Bergmann, Enrico Krull, Markus von Lehmann, Oliver Meisel<br />
[A-11] VISA + Tamic: Texturprozessor für 3D-Grafikprozessor<br />
Technologie: 0.35μ 4m1p TSMC<br />
Designgröße: 16580μ × 10050μ = 166,6mm 2<br />
Komplexität: 3.031.169 Transistoren, davon 1.963.086 T digital, 104 kBit FIFO, 128 Bit ROM<br />
Tapeout: 01.11.1998<br />
Designer: Lukas Bauer (Projektleiter), Christof Bergmann, Enrico Krull, Markus von Lehmann<br />
[A-12] HiS924A: Universelles Chipkarten-Interface <strong>mit</strong> Schaltnetzteil<br />
Technologie: 0.8μ 2m2p AMS CYE<br />
Designgröße: 3215μ × 4055μ = 13,0mm 2<br />
Komplexität: 47.262 Transistoren, davon 43.444 T digital, 3.303 T+R+C analog, 6 Bit ZPROM<br />
Tapeout: 24.12.1998<br />
Designer: Rüdiger Arnold (Projektleiter), Lukas Bauer (Digitalteil), Christian Feucht<br />
[A-13] Proteus: Messchip zur Leistungsregelung in 3-Phasen-Systemen<br />
Technologie: 0.8μ 2m2p AMS CYE<br />
Designgröße: 8870μ × 8940μ = 79,3mm 2<br />
Komplexität: 195.737 Transistoren+R+C, davon 62.323 T digital, 133.414 T+R+C analog<br />
Tapeout: 26.02.1999<br />
Designer: Lukas Bauer, Michael Gatzmann (Projektleiter), Enrico Krull, Thilo Mohr<br />
[A-14] Adam: ARM7-Microcontroller <strong>mit</strong> diversen Schnittstellen<br />
Technologie: 0.5μ 3m Samsung STD85<br />
Designgröße: 8000μ × 8330μ = 66,6mm 2<br />
Komplexität: 1.114.136 Transistoren, davon 341.416 T digital, 1 ARM7TDMI, 1 8-Kanal-8-Bit-ADC,<br />
16kByte RAM, 8kByte ROM<br />
Netzlistenabgabe: 07.10.1999<br />
Designer: Lukas Bauer, Michael Gatzmann (Projektleiter), Maik Heese<br />
[A-15] Smart Sensor: Sensorcontroller <strong>mit</strong> Linearisierung und Temperaturkompensation<br />
Technologie: 0.8μ 2m2p AMS CYE<br />
Designgröße: 4550μ × 3315μ = 15,1mm 2<br />
Komplexität: 61.188 Transistoren+R+C, davon 27.500 T digital, 33.688 T+R+C analog, 368 Bit ZPROM<br />
Tapeout: 24.12.1998<br />
Designer: Rüdiger Arnold, Lukas Bauer, Thilo Mohr, Alfred Probst, Jens Völkl (Projektleiter)<br />
[A-16] Transponder: Meßchip-Transponder <strong>mit</strong> Datenprotokollierung<br />
Technologie: 0.8μ 2m2p AMS CYE<br />
Designgröße: 2549μ × 3959μ = 10,1mm 2<br />
Komplexität: 49.423 Transistoren+R+C, dav. 30.262 T digital,, 2.274 T+R+C analog, 256 Byte RAM, 20 Bit ZPROM<br />
Tapeout: 25.05.1999<br />
Designer: Lukas Bauer, Christian Feucht (Projektleiter), Jens Völkl<br />
[A-17] P2000: ISDN-Telekommunikations-Controller <strong>mit</strong> ARM7-CPU<br />
Technologie: 0.35μ 3m Samsung STD90<br />
Designgröße: 6200μ × 6000μ = 37,2mm 2<br />
Komplexität: 1.489.056 Transistoren, davon 484.904 T digital, 1 ARM7TDMI, 2 Audio-Codecs, 2 PLLs,<br />
139 kBit RAM, 64 kBit ROM<br />
Netzlistenabgabe: 24.04.2000<br />
Designer: Lukas Bauer, Roman Koczy, Jurij Kostasenko (Projektleiter), Karsten Westerdorf, Xiang-Long Yin<br />
[A-18] CENS: Echo- und Rauschunterdrückungs-IC für Sprachsignale<br />
Technologie: 0.35μ 3m Samsung STD90<br />
Designgröße: 6650μ × 5450μ = 36,2mm 2<br />
Komplexität: 1.646.296 Transistoren, davon 326.064 T digital, 2 Audio-Codecs, 309 kBit RAM<br />
Netzlistenabgabe: 08.08.2000<br />
Designer: Lukas Bauer, Marco Liem (Projektleiter), Sven Fiedrich, Christian Sorge<br />
[A-19] P2001: ISDN-Ethernet-Kommunikationsprozessor <strong>mit</strong> ARM9-CPU<br />
Technologie: 0.25μ 5m Samsung STD110<br />
Designgröße: 6510μ × 6550μ = 42,6mm 2<br />
Komplexität: 4.336.349 Transistoren, dav. 1.614.178 T digital, 1 ARM9TDMI, 2 PLLs, 498 kBit RAM, 256 kBit ROM<br />
Netzlistenabgabe: 24.09.2001<br />
Designer: Lukas Bauer (Projektleiter), Sven Fiedrich, Maik Heese, Roman Koczy, Jurij Kostasenko, André Krüger,<br />
Christian Sorge, Karsten Westerdorf
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
ASIC Gallery<br />
Dissertation<br />
Perspektiven des modernen ASIC-Designs<br />
Literaturverzeichnis<br />
Seite 117<br />
1 2 3 4<br />
5 6 7 8<br />
9 10 11 12<br />
13 14 15 16<br />
17 18 19
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 />
Literaturverzeichnis<br />
Seite 118