21.07.2013 Aufrufe

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

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

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!